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

Can*_*Win 6 opengl directx 3d graphics rendering

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

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

Jam*_*mes 8

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

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

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

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


Goz*_*Goz 7

凹凸贴图最初是由吉姆·布林建议回在1978年他的系统基本上是通过使用纹理像素的高度和周围的纹理像素的高度扰动的表面上正常工作.

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

法线贴图是一种非常相似的技术,可以简单地替换每个纹素位置处的法线.从概念上讲它简单得多.

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

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

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

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

陡峭的视差,浮雕图等是最新技术.它们通过在高度图上投射光线直到它相交来工作.这具有很大的优势,如果肿块应该屏蔽掉纹理现在behing它的光线不打后面它最初碰到这样始终显示"最近的"纹理像素的高度图.