NeHe OpenGL Lesson34 – Beautiful Landscapes By Means Of Height Mapping

本文介绍了一种使用高度映射创建地形景观的方法。高度映射是指从灰度图中获取地形高度值,艺术家可以使用PS或其他特殊地形工具绘制高度图。通过将高度映射应用于网格生成,可以创建出山峰和山谷的详细景观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

screen_shot19-300x209  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.

 

Terrain-150x150  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.

转载于:https://www.cnblogs.com/open-coder/archive/2012/08/23/2651831.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值