参考教程
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);  | 
最终效果:
