导数图与切线空间法线图


11

我发现某些引擎使用导数贴图代替切线法线贴图

经过一番阅读之后,替换切线空间法线似乎是一种很棒的方法,但是使用它们会不会有一些不利之处?为什么仍继续使用切线空间法线?

是否可以将优点和缺点进行比较?


有几篇关于衍生工具的博客,获得在生产引擎中实现它们的人的一些反馈以及为什么选择这种方法会很酷。

2
为什么事情不会立即被采用的一大因素是惯性,并且现有解决方案足够好。
棘轮怪胎

Answers:


4

经过一些研究和专业人士的解答,这是我的结论。

优点

  • 不需要切线或双法线。内插器更少。
  • 只需要两个通道。更少的纹理内存。
  • 不要遭受切线缝。
  • 可以使用alpha混合进行混合,而无需重新规范化。
  • 更少的网格内存:我们不需要存储切线向量。
  • 快速实施。

缺点

  • 更多ALU
  • 不太灵活。法线图可以表示任何导数图,但反之则不正确。例如,锋利的边缘可能很难呈现。

因此,与缺点相比,这有很多优点。但是主要的问题是这不是行业标准。
几乎没有内容创作工具,也没有艺术家的专有技术。

这是Bart Wronski的名言,很好地说明了导数图的当前状态:

可悲的是,在生活/技术中,并非总是最好的解决方案会获胜/甚至没有得到应有的关注……更多是关于标准和惯性。

如果您有兴趣了解更多有关导数图的信息,那么这里有一些有趣的文章。

如果我忘记了一些东西,或者如果您不同意您的意见,请随时提出意见,我很乐意改善这个答案。


您的某些专家似乎不使用预先计算的切线空间(即从每个像素的UV导数得出切线空间),而AFAIK是独立的设计选择,与导数图和法线图的选择无关。
内森·里德

感谢@NathanReed的评论您是否在谈论计算切线和双法线的事实?您能告诉我更多关于预先计算的切线空间的信息吗?
马太福音

1

我假设你正在使用预先计算的高度地图衍生品而不是计算他们的飞行(详见这个帖子对米克尔森的博客)。如果需要提供预先计算的高度导数,则必须提供两个通道,就像法线贴图一样。有人可能会说,导数贴图不需要像法线贴图那样需要切线顶点属性,但是高度图上的额外微分操作会使该性能提升无效。导数图是一个很酷的概念,但归根结底,我认为它们在性能方面并没有比普通的地图明显更好(尽管从概念上讲,我同意导数图更易于使用,因为我们不必处理与切线空间)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.