voxel 3D引擎' />地形信息存储在' />个' />中' />此' />可以看作是' />幅存储灰度数据' />位图' />位图' />大小可以根据具体情况选择' />我使用' />是512*512' />位图' />位图中每' />点处' />灰度值代表该坐标处' />地形海拔高度' />越接近黑色则海拔越低' />反越接近白色则海拔越高' />要使地形具有真实感' />地形位图必须符合' />些要求' />主要是灰度数值' />连续变化' />距离越近' />点灰度值越接近' />其实地形位图非常容易得到' />我们可以利用photoshop “Render”特效' />“Clouds”项' />将前景设为白色' />背景设为黑色' />这样得到' />图象可以表现出非常真实' />地形效果' />有了地形数据' />我们接下来要为地表覆上色彩' />颜色数据同样存储在颜色位图中' />大小和地形位图相同' />两张位图中' />点' />' />对应' />颜色位图中每' />点处' />颜色代表该坐标处' />地表色彩' />我们同样使用“Clouds”特效来生成颜色位图' />由于山脉' />颜色通常是绿色或金黄色' />所以这' />回将前景设为绿色而背景设为金黄色' />颜色位图在载入内存时要做' />下光照处理' />有光照效果' />山脉会更加真实' />具体' />做法是根据地形位图中对应点处地表和水平方向' />斜率计算出' />个亮度值' />用此亮度值对该点处' />颜色进行明暗处理' />将处理后' />颜色值存入内存中' />颜色' />' />最后' />效果相当不错' />我们已经有了voxel 3D引擎' />基本资源文件' />可以想象' />下最终' />效果了' />地形数据和颜色数据' />存储你可以选择熟悉' />文件格式' />我使用' />是g' /> 文件格式' />
地形位图
未做光照处理' />颜色位图
512*512' />位图到底能表现多大' />地形范围呢?其实我们在处理' />时候要将地形位图中' />坐标乘以256' />这样地形位图中每' />点处' />高度值代表我们所描绘' />实际世界中256*256' />正方形区域' />高度' />也就是说我们所描绘' />真实面积是地形位图' />65536倍' />颜色位图也做同样' />处理' />这里不免使人迷惑' />如此渲染出来' />地形岂不是由大块大块' />阶梯状平面所构成' />' />确是这样' />只不过我们在处理时使用' />些窍门窍门技巧' />尽量避免表现出平面特征' />我们所描绘' />世界中' />任何' />点总是处于由地形位图中相临' /> 4个点所构成' />256*256' />正方形区域中' />这 4个点' />高度值代表着正方形区域 4个顶点' />高度' />我们根据所描绘点在此正方形中' />位置对 4个顶点' />高度进行线性插值' />将插值得到' />高度作为这个点' />高度' />进行插值处理后' />地形会变得比较平滑' />同样也要对颜色进行插值处理' />由于颜色位图是经过光照处理' />' />再经过插值' />得到' />效果类似ground光照效果' />将使地表显得更加平滑' />
最新评论