我已经思考了这个问题一段时间了...许多3D引擎支持使用四叉树、LOD等高级地形渲染功能。但是,我见过的每个引擎都从高度图中加载高度数据...灰度位图。我就是不明白这有什么用——高度图中的每个点只能有256个值。但是如果你想要建模珠穆朗玛峰呢?还要保留1米甚至更高的细节吗?那就远远超出了256的范围。当然我知道你可以实现自己的地形格式来实现这一点,但是尽管高度图有很大的局限性,它们仍然被广泛使用。
我已经思考了这个问题一段时间了...许多3D引擎支持使用四叉树、LOD等高级地形渲染功能。但是,我见过的每个引擎都从高度图中加载高度数据...灰度位图。我就是不明白这有什么用——高度图中的每个点只能有256个值。但是如果你想要建模珠穆朗玛峰呢?还要保留1米甚至更高的细节吗?那就远远超出了256的范围。当然我知道你可以实现自己的地形格式来实现这一点,但是尽管高度图有很大的局限性,它们仍然被广泛使用。
高度图非常轻量级、快速加载,并且可以相对容易地进行程序化生成。它们在内存占用方面也非常小。
它们经常被使用,因为它们简单快捷,能够很好地处理许多场景。然而,需要注意的是,它们并不适用于每种情况,并不是完全通用的地形格式。
归根结底,认为您希望在珠穆朗玛峰高度图上使用一米的精度只是一个错误——需要(或甚至使用)该级别的精度就处于罕见和不存在之间的界线上。同时,使用相对密集的格式(如每个像素一个字节)通常意味着很多——存储空间更少,带宽更少,导致显示更快。
高度图优点:
高度图缺点:
高度图具有直接硬件支持(纹理)的优点,并且可以使用现有的绘画工具(甚至是专业工具)进行绘制。
当然,根据高度图中存储的信息格式,有些渲染看起来可能不像应该的样子,但这是因为高度图实际上在错误的情况下使用了。
作为增强功能,高度图像素可以存储在16位浮点数(半精度浮点数)或32位浮点数中,允许具有比固定精度8位像素更高的范围和精度。