Answers:
位移贴图和高度贴图是“几乎”相同技术的两个名称,它们旨在达到相同的效果,但在不同的上下文中使用。
解释更多:
位移贴图:一种技术,旨在在非常精细的网格中将凹凸渲染为真实的几何形状。与凹凸贴图,视差和浮雕贴图试图使用法线贴图“模拟”凹凸不同,“位移”贴图实际上是使曲面位移,从而在纹理像素之间创建三角形。。
高度贴图:是一回事,但通常在将位移贴图(也称为高度贴图)应用于仅用于修改顶点高度的地形上的情况下使用。
可以在CPU或GPU上实现。
一种常见的CPU方法是从高度/位移贴图(纹理)读取高度或位移值,其中每个纹理像素直接映射到一个顶点。每个纹理像素编码高度/位移值的位置。然后使用查找值沿唯一方向移动每个顶点,从而将其直接应用于几何图形。
选择方向可以沿“向上”方向(通常在地形情况下),这会导致修改顶点Y值,或者可以沿通常在非地形对象上使用的面法线方向。
GPU的替代方法是使用顶点纹理获取功能(在Shader Model 3.0中引入)来通过访问位移/高度图来修改terrain网格。顶点着色程序使用从纹理中检索的高度来修改顶点的位置。
使用纹理的其他用途可以更快地操纵数据,以进行波浪模拟和其他应用于网格的动画。
关于自适应细分:
位移贴图的一个缺点是,对于大的地形,您需要大量的多边形和顶点来建模详细的地形,这使得位移贴图在某种程度上对大的地形无效。
这是适应性细分和细节级别技术发挥作用的地方,以使位移映射更可行,尤其是随着GPU的发展和引入几何着色器的发展,在这种进步下实时执行细分已成为主要技术。它易于编程并且可以在较新的GPU上运行,并且几乎没有缺点。
诸如浮雕和凹凸贴图之类的其他技术以通常合理的成本提供了额外的真实感,但是底面不受干扰的事实使碰撞检测以及对象交互变得更具挑战性。
结论结论位移映射和自适应细分可带来可观的性能成本,同时具有更少的缺点和出色的细节和质量。
位移映射可以表示(但不总是)表面上每个点的向量位移。身高映射意味着只有一个标位移值,即每个点被沿着它的正常推进。但是,术语“位移映射”也可以用于标量位移,因此,在讨论矢量位移时,人们通常会明确地说“矢量位移映射”。
通过将曲面细分为小多边形并将位移(从地图中查找)应用于细分曲面的每个顶点,可以使用细分来应用位移贴图。您需要的细分级别部分取决于位移图的噪点/详细程度,因此可以使用自适应细分来在细节更多的区域进行更精细的细分,而在更平坦的区域进行细分,从而提高性能。
基本上,它们是同一回事。
位移贴图是一种用于增加表面细节的技术,例如凹凸贴图。但是,与凹凸贴图不同,位移贴图实际上是基于一些输入的高度图(实际上是高程值的网格)使几何变形。
“位移贴图”基本上是另一个技术上更准确的术语,俗称“高度贴图”(严格地说,“高度贴图”可能应该指的是从某些源材料生成高程数据网格的过程,例如作为3D扫描仪,将用于位移贴图实现中-但实际上,大多数人甚至可以说“位移贴图”来互换使用这些术语)。
该技术并不直接与自适应细分相关联,自适应细分本身就是将网格(例如球体)的数学描述控制为将用于渲染该网格的三角形的具体集合的分解。“自适应”位表示镶嵌细节将根据某些输入标准(例如视距)而变化。
例如,在球体情况下,当球体很远时,可以非常粗糙地细分该球体(有效地作为一个立方体),而在球体靠近时,可以使用更多细节。
通常,您会看到与镶嵌细分化结合讨论的位移映射之类的技术,因为镶嵌细分化会影响您将高程图映射到几何体以执行位移的方式(或要选择的高程图分辨率等)。