参考教程
学习记录
这篇文章中主要介绍对已经渲染的地形进行光照渲染(其实没什么新东西)。本篇代码基于上一篇,框架如下:
为地形添加光照,我们主要是需要在 TerrainClass
中计算法线,然后使用 LightShaderClass
代替 TextureShaderClass
渲染就行了。在 TerrainClass
中,我们修改顶点及模型等结构体为其添加法线的变量,然后新增一个计算法线的方法。修改后的 TerrainClass
声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
法线计算方法如下:
1 | bool TerrainClass::CalculateNormals() |
除此之外,我们在 ShaderManagerClass
里新增 LightShaderClass
的对象,以及在 ZoneClass
里新增 LightClass
的对象,然后修改渲染的方式就可以了。
最终效果如下:
有光照的情况下我们的地形显得更加真实,源代码地址:DX11TerrainTutorial-TerrainLight