Height Map高度图
来源:互联网 发布:淘宝宾卡达手表怎么样 编辑:程序博客网 时间:2024/05/17 09:22
高度图
1. 什么是高度图
2. 高度图格式
1.什么是高度图?
首先,什么是高度图(Height Map)呢?所谓高度图实际上就是一个2维数组。创建地形为什么需要高度图呢?我们这样考虑,地形实际上就是一系列高度不同的网格而已,这样数组中每个元 素的索引值刚好可以用来定位不用的网格(x,y),而所储存的值就是网格的高度(z)。正是由于这个简单的映射关系,最常见的地形生成方法都使用高度图作 为输入数据。同时,为了减小数组的尺寸,通常使用Byte类型来保存高度值,因此,地形中最低点将用0表示,而最高点使用255表示(当然,这样做可能会 出现一些问题,比如,地形中大部分区域的高度差别都不大,但是有少数地方高度差特别大时,不过大多数情况下这个系统都能运行的很好)。使用2D Byte数组的另一个好处就是我们高度图刚好可以用一张灰度位图(gray-scale bitmap) 来表示。对于位图中的每个像素来说,同样使用0~~255之间的值来表示一个灰度。这样,我们又能把不同的灰度映射为高度,并且用像素索引表示不同网格。
要从高度图创建一个地形,你需要创建一个与高度图相同大小的顶点网格,并使用高度图上每个像素的高度值作为顶点的高度。例如,你可以使用一张6×6像素分辨率的高度图生成一个6×6大小的顶点网格。
网格上的顶点不仅包含位置,还包含诸如法线和纹理坐标的信息。下图展示了一个在XZ平面中的6×6大小的顶点网格,每个顶点的高度对应在Y坐标上。
你应定义相邻顶点的距离(水平和垂直)。这个距离在上图中用“Block Scale”表示。这个距离小会使顶点间的高度过渡平滑但减少了网格大小,这个距离大能使网格尺寸变大,但顶点间的过渡会变得陡峭。如果两顶点间的距离是1米,那么所生产地形的大小就是25平方米
由于高度图通常是一张8位灰度图,它的高度值变化范围是在0和255之间,其中0 (黑色)表示最低高度而255 (白色)表示最大高度。你可以使用一个缩放值增加这个间隔,用这个缩放值乘以默认高度值,增加其范围,这样可以增加高度范围,但会使两个高度之间的误差增大。
2.高度图格式
你使用的高度图文件格式是RAW,这个格式不包含诸如图像类型和大小信息的文件头,所以易于被读取。RAW文件只是简单的二进制文件,只包含地形的高度数据。在一个8位高度图中,每个字节都表示顶点的高度。
[例图1]
- Height Map高度图
- iframe自适应高度(height)
- CSS 高度(css height)
- 二元高度(binary height)
- ie6下height高度问题
- css div自适应高度height
- css div自适应高度height
- 网页中的各种高度height
- css div自适应高度height
- textview高度问题 textsize height
- 如何由Height Map生成Normal Map
- 310. Minimum Height Trees (无向图中,找最小高度的根)
- 真正的DIV高度height自适应
- height高度100%在ie中的问题
- line-height高度大于font-size
- ie6 实现最小高度 min-height
- JQuery的height函数(操作元素高度)
- 设置UINavigationtabBar高度(set UINavigationBar height)
- Linux下log4cxx的安装使用
- 图像滤镜艺术--PS平均(滤镜-模糊-平均)效果
- app timeline server
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 创业:房多多--如何成功从红海杀出一片天空
- Height Map高度图
- android学习网站
- DOM解析xml文件
- spark maven编译
- 判断字符串中第一位字符是否是ASCII字符( 0–127),ASCII字符占一个字节
- 爬爬爬之路:C语言(三) 入门篇3
- iOS9适配系列教程
- js快速排序
- exchenge 反复提示重启