3d图形开发--地形描制与lod
2013-07-10 21:44
218 查看
地形绘制比较简单,各种3d引擎实现基本相似,
引入一个高度图,用颜色深浅来表示高度。
依次扫描,根据高度,生成相应的三角形,最终形成地形
鬼怪引擎,将地形场景作为八叉树场影管理的子类进行派生。
采用的是性价比较高的GeoMipMap算法,
即把地形分成相同的块,称为tile。
根据每个tile距离观察者的距离,来决定该块的解析度。
边界处理,由于相邻块可能出现解析度不一,引起地形撕裂,在解析度不同的地方。
边缘部的三角形需要特殊处理
鬼怪还进行了更进一步的优化,会根据相邻的四个tile的解析度,
生成一个map
由于生成tile时,鬼怪采用的是顶点索引方式,如果在map里找到相应的项,
则顶点索引无需要再次生成,直接传给opengl即可,这样极大的提高生成lod的速度
仿真程序截图:(笔者尚未处理边解析度不同的边缘地带,所以地形中会出现撕裂的现象)
从每个块的"北"面边缘,针对解析度不同,进行处理后
引入一个高度图,用颜色深浅来表示高度。
依次扫描,根据高度,生成相应的三角形,最终形成地形
鬼怪引擎,将地形场景作为八叉树场影管理的子类进行派生。
采用的是性价比较高的GeoMipMap算法,
即把地形分成相同的块,称为tile。
根据每个tile距离观察者的距离,来决定该块的解析度。
边界处理,由于相邻块可能出现解析度不一,引起地形撕裂,在解析度不同的地方。
边缘部的三角形需要特殊处理
鬼怪还进行了更进一步的优化,会根据相邻的四个tile的解析度,
生成一个map
由于生成tile时,鬼怪采用的是顶点索引方式,如果在map里找到相应的项,
则顶点索引无需要再次生成,直接传给opengl即可,这样极大的提高生成lod的速度
仿真程序截图:(笔者尚未处理边解析度不同的边缘地带,所以地形中会出现撕裂的现象)
从每个块的"北"面边缘,针对解析度不同,进行处理后
相关文章推荐
- 3D图形软引擎开发总结
- WebGL高级编程-- 开发Web 3D 图形
- bada开发:OpenGL ES 2.0程序 创建简单3D图形
- 运用Open InventorTM 进行面向对象的3D图形开发
- Android OpenGL与3D应用开发之3D图形绘制
- 3D数学基础 图形与游戏开发的学习 (六)[多坐标系]
- 3D数学基础,图形与游戏开发笔记1
- 3D Math Primer for Graphics and Game Development -- 图形与游戏开发(3D数学基础) (简介)
- [Bada开发]OpenGL ES 2.0程序 创建简单3D图形
- 3D数学基础 图形与游戏开发的学习 第三章 多坐标系
- 3D数学基础:图形与游戏开发(第6章3D向量类)笔记
- Android OpenGL ES 简明开发教程六: 真正的3D图形
- /LGC图形渲染/基于 OpenGL 进行 3D 图形开发
- 推荐一本3D基础的书----《3D数学基础图形与游戏开发》
- 3D数学基础:图形与游戏开发 第3章笔记
- 3D数学基础:图形与游戏开发(第7章矩阵)笔记
- 【代码】Android 开发 Open GL ES 绘制 3D 图形
- 3D数学基础:图形与游戏开发
- 3D数学基础,图形与游戏开发笔记3
- 推荐一本3D基础的书----《3D数学基础图形与游戏开发》