一、地形几何
最开始,也是最简单表达一个地形的方法就是高程图(Heightfield),也就是用明暗颜色代表地形高度的图。虽然简单,但是当高程图与纹理和光影搭配的时候也有很高的表现力。
那么如何处理地形渲染的问题,最简单的方法就是在每隔一段距离做一个网格,根据高程图去移动网格顶点,但问题也很明显,当世界特别大的时候存储就成了问题。

那么接下来就是老生常谈的网格细分(Mesh Tessellation)的问题了,实际上在渲染地形的时候只需要渲染相机可以观察到的地方。这其中要保持两个原则:1、离相机越近越密集,fov越小越密集;2、要保证在简化合并的时候,采样点变少,地形高低误差不能超过一个阈值(Error Bound,这个阈值是在视空间上,理性情况下不要超过一个像素)。

将三角形做的疏密相间,最经典的方法就是基于三角形的剖分(Triangle-Based Subdivision) 。在我们的网格中连接对角线成为两个等腰直角三角形,如果密度不够就在三角形最长边做等分(如上图)。当然这样也有一个叫做 T-Junction 的问题,就是当同一条边相邻的三角形精度不同的时候,高精度的在这条边上的顶点是有起伏的,会产生露
本文探讨游戏中地形渲染的方法,包括使用高程图、地形网格细分、避免T-Junction问题,以及材质融合和动态地形处理。介绍了四叉树剖分、虚拟纹理技术以及为解决浮点精度问题的Camera-Relative Rendering策略。
最低0.47元/天 解锁文章
2842

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



