将光泽度转换为粗糙度,反之亦然的公认方法是什么?


12

大多数现代渲染器使用基于物理的材料,其模型通常会根据粗糙度进行参数化。由于渲染器并非总是如此,因此常规资产通常没有粗糙感。相反,我们将“光泽度”或“镜面反射力”视为常见的材料参数。

我知道两者之间没有精确的转换,但是对于已知镜面反射能力或光泽度的材料,是否有经验法则/近似方法获得粗糙度?


1
如何渲染一系列比较样本并尝试拟合转换曲线?
joojaa

Answers:


10

您已经注意到,这些值没有明确的解释/转换。我认为情况甚至更糟:根据您的BRDF和内部限制(例如定义的指数范围为2-2048),解释是完全不同的。就像注释中所建议的那样,最好是使用不同的值渲染序列并拟合转换曲线,直到该值看起来直观为止。

我可以通过一些示例找到一些博客文章,其中提到了有关该主题的内容:

  • 在Dontnod娱乐公司,他们使用“感知线性分布”。塞巴斯蒂安·拉加德(SébastienLagarde)在此博客文章中承认了这一问题,并为此写了一些笔记。
  • Brian Karis在此Microfacet BRDF概述中使用平方的粗糙度值。这也很好地说明了在不同的正态分布函数中如何使用不同的粗糙度。此处将Blinn-Phong幂定义为2/roughness^4 - 2
  • 冻伤使用平方重映射。即。粗糙度=(1 -光滑)关于它和它们的整个材料系统^ 2详细在塞巴斯蒂安拉加德的第3.2节进行说明的书面记录
  • 该博客文章建议根据粗糙度alpha将Beckmann分布的粗糙度定义为:

在此处输入图片说明


1
我想知道在单个图上绘制各种方法是否会有所帮助。例如-我画出你的两个链接的位置:i.imgur.com/YJjIMOQ.png
AP_
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.