This sample shows us how to create a landscape by means of height mapping. As the word height mapping means that the height of the landscape come from a gray image. Of course, you could apply other method to generate the height values like randomly seeds calculation, or modeling the whole stuff with content create package like Maya or Max. Save the height values as a image, the artist could know how the mountain or valley going along in the landscape. They could even paint the height map with PS or some special terrain tools.
The image show on the left is the height map that used in this sample. You could open the Terrain.raw file with PS. The bright are means the height value is much higher than the dark area.
Here is main logic of how the height map landscape mesh generated:
pHeightMap = {raw image file content} ... int Height(BYTE *pHeightMap, int X, int Y) { // customize height calculation function could be used here! return pHeightMap[x + (y * MAP_SIZE)]; } ... // create the landscape mesh for ( X = 0; X < (MAP_SIZE-STEP_SIZE); X += STEP_SIZE ) { for ( Y = 0; Y < (MAP_SIZE-STEP_SIZE); Y += STEP_SIZE ) { // Get The (X, Y, Z) Value For The Bottom Left Vertex x = X; y = Height(pHeightMap, X, Y ); z = Y; // use the same way generate the following 3 point : // (X, Y+STEP_SIZE), (X + STEP_SIZE, Y + STEP_SIZE) // (X + STEP_SIZE, Y) } }
The full source code could be found here.
本文介绍了一种使用高度映射创建地形景观的方法。高度映射是指从灰度图中获取地形高度值,艺术家可以使用PS或其他特殊地形工具绘制高度图。通过将高度映射应用于网格生成,可以创建出山峰和山谷的详细景观。
148

被折叠的 条评论
为什么被折叠?



