参考教程
Tutorial 5: Color Mapped Terrain
学习记录
这篇文章中我们主要介绍地形的颜色渲染,本篇没有新的类增加,主要修改内容在 TerrainClass
。
和地形纹理贴图不一样的是,我们使用纹理贴图的时候是基于地形的单个网格,而颜色映射则是对整个地形图的着色,和高度图类似。我们首先需要一张颜色的贴图(256 * 256),如下:
我们将在 TerrainClass
中从这张图中读取出颜色数据,然后赋值给顶点,最后着色的时候使用网格的自身纹理和颜色贴图混合。部分代码如下:
1 | bool TerrainClass::LoadSetupFile(CHAR* filename) { |
之后我们修改 Terrain.vs
和 Terrain.ps
,新增 COLOR
属性,并且在 Terrain.ps
中混合 color
和 textureColor
:
1 | //////////////////////////////////////////////////////////////////////////////// |
记得修改着色器代码的时候同步更新对应渲染类的代码。
最终效果: