参考教程
学习记录
本篇介绍地形网格的纹理贴图,基于上一篇代码,我们简单的使用 TextureShaderClass
来渲染网格,使用一个 TextureManagerClass
类管理项目中的纹理数据。框架如图:
这次我们将以 TextureShaderClass
来代替 ColorShaderClass
渲染网格,所以在 ShaderManagerClass
中新增 TextureShaderClass
的对象,同时添加它的 Render
接口。修改后的类声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
其次,我们修改 TerrainClass
,为顶点增加 uv
属性,并且在初始化顶点数据的时候初始化:
1 | struct VertexType |
之后,我们需要一个 TextureManagerClass
类来管理我们的纹理,其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
最后,我们替换 ZoneClass
中的渲染方法为纹理渲染:
1 | // Render the terrain grid using the texture shader. |
最终效果如下: