Introduction to 3D game programming中渲染地形的方法是,1,将地形抽象为位置(x,y)和高度(z)。用一个raw文件(photoshop做的灰度图)的灰度值来表示高度。2,读这个raw文件,并根据此信息建立vertex buffer.[同时建立index buffer,如何建立index buffer,比较麻烦。???]
如何建立index buffer
想法:图1,一个相邻的平面上的A.B 点都对应一个v1 v2.要渲染index的话,可以将这四个点分解为这两个index (v1,v2,A);(A,B,v2).然后对平面上相邻的点都做这个分解动作。(错误的,对于底部的一个正方形而言,这样渲染的结果是一个没有顶盖和底盖的四方直筒。而地形渲染所要得到的结果实际上是只需要这个顶盖而以,只有顶盖的效果如图2,这样index buffer就很好确定了
图1
图2
图3:对M x N的平面,index buffer的取值。{nM+1 ,nM+2, (n+1)M+1} {nM+2,(n+1)M+1, (n+1)M+2 } {n=0,1,2....N}
---------------------------------------------------------------
vertex buffer,index buffer设置好,几何体便已经确定,接下来贴图。