我知道Smoothness通道其实就是Roughness。但我下载了一些模型,包括纹理,它们都有粗糙度图像。但是我在图像中看不到粗糙度(或平滑度)有多大,所以我实际上不知道模型看起来完美的平滑度值应该有多大。
我怎样才能检测到这个?
谢谢
PS:请看我的另一个问题,我 2 周前问过,但我仍然没有任何答案:Unity3d:Mixamo 动画有问题,他们改变了 Player 图形的位置,脱离了对撞机和附加的相机
光滑度和粗糙度是同一个度量的两端,通常使用
0.0 - 1.0
的尺度。要完全平滑,您可以使用 1.0 的平滑值或 0.0 的粗略值。
查看图像,大部分黑色表示零值,而大部分白色表示一个值。使用它来确定您希望它使用的秤的哪一端。
使用节点或图像编辑器,您可以在将平滑贴图连接到粗糙套接字之前反转它。
数学上是
smooth = 1.0 - rough
或
rough = 1.0 - smooth
可以使用Unity提供的Autodesk Shader。它支持粗糙纹理。 https://docs.unity3d.com/Manual/Shader-Autodesk-Interactive.html
补充一下sampler的答案,如果你在shader graph中做一个graph或者amplify然后把roughness map的结果通过一个负一的节点,然后把它插入到smoothness slot,这是一个非常简单的快速得到smoothness的方法材料中的改性剂充当粗糙度改性剂。
最简单、最有效的方法是使用像 Krita 这样的图像编辑器
打开粗糙度图
使用 CTRL+I 反转颜色并将其保存为平滑贴图并在着色器中使用它
作为替代方案,您可以在将粗糙度贴图连接到着色器图中的平滑度之前使用一个减号节点,但它会比上述方法慢一点