参考教程
Tutorial 2: Bitmap Height Maps
学习记录
这篇文章中我们简单介绍使用高度图来实现非平面地形的绘制,本篇代码基于上一篇。
高度图其实就是一张单通道分量图(灰度图),每一个像素只有一个值。我们使用与我们地形网格等大小的高度图来表示我们地形中的高度。这篇文章中我们所使用的高度图如下:
我们主要修改的也只是 TerrainClass
部分。首先来看其声明:
1 | //////////////////////////////////////////////////////////////////////////////// |
添加了多个方法以读取高度图相关信息,例如我们的 Setup.txt
文件和 HeightMap.bmp
文件,其实现如下:
1 | bool TerrainClass::LoadSetupFile(CHAR* filename) { |
顶点的处理我们放在了 BuildTerrainModel
方法里,在 InitializeBuffers
方法里我们仅仅做一个赋值操作。
最后,我们将渲染图元改为三角形:
1 | deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); |
最终效果: