3D图形:法线贴图与凹凸贴图?

时间:2011-09-19 16:33:59

标签: opengl graphics 3d directx rendering

我知道法线贴图描述了在不增加多边形数量的情况下向网格添加细节的过程,并且这是通过使用特定的普通纹理来操纵光线应用于对象的方式来实现的。好。

  • 但是什么是凹凸贴图呢?它只是普通映射的另一个术语吗?
  • 视觉效果如何比较?这两种技术可以结合起来吗?

2 个答案:

答案 0 :(得分:8)

凹凸贴图描述了用于模拟物体表面上的凸起和皱纹的一般技术。这通常通过在进行光照计算时操纵曲面法线来实现。

法线贴图是凹凸贴图的一种变体,其中曲面法线通过纹理提供,法线嵌入图像的RGB通道。

其他技术,例如视差贴图,也是凹凸贴图技术,因为它们会扭曲曲面法线。

要回答问题的第二部分,可以很容易地将它们结合起来。基础曲面法线可以从法线贴图确定,然后通过另一种凹凸贴图技术进行修改。

答案 1 :(得分:7)

凹凸贴图最初是由Jim Blinn在1978年提出的。他的系统基本上是通过使用该纹理像素的高度和周围纹理像素的高度来扰乱表面上的法线。

这与DUDV凹凸贴图非常相似(您可能还记得DX6中引入的原始环境映射凹凸贴图,即DUDV)。这可以通过预先计算上面的导数来实现,这样就可以错过计算的第一阶段(因为它不会改变每一帧)。

法线贴图是一种非常相似的技术,只需在每个纹素位置替换法线即可。概念上它更简单。

还有另一种产生“相似”结果的技术。它被称为浮雕凹凸贴图。此方法使用多通道渲染。基本上你最终会从最后一次通过中减去灰度高度图,但会根据光线方向将其略微偏移。

还有其他模拟表面拓扑的方法。

高程贴图使用高度贴图作为Alpha贴图,然后通过具有不同Alpha值的纹理渲染多个切片以模拟高度变化。但是,如果没有正确执行,切片可能非常明显。

置换贴图通过生成以纹理为基础的3D网格来工作。显然,这会大大增加您的顶点数。

陡峭的视差,浮雕图等是最新技术。它们通过在高度图上投射光线直到它相交来工作。这有一个很大的好处,如果一块肿块应该阻挡纹理,它现在就会发现,因为光线没有碰到它最初命中的高度图,所以总是显示“最接近”的纹素。