这个问题非常简单。我不知道 IN.worldRefl
代表什么,我看过一些教程将其与立方体贴图一起使用,但我仍然不知道。
Unity 的 description因为它很穷:
float3 worldRefl - contains world reflection vector if surface shader does not write to o.Normal.
最佳答案
我已经研究了几天,我对 IN.worldRefl
的含义有了预感。
首先我看到了这张图片(找到 here ):
所以我猜测 IN.worldRefl
是相机光线在物体多边形表面的反射,如图所示。
例如,当将SurfaceOutput
的发射设置为与IN.worldRefl
对应的位置处的立方体贴图的纹理时,即
samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}
这意味着,将对象设置在具有给定立方体贴图的立方体内,摄像机在对象多边形表面上的反射光线将穿过立方体的一点。该点的颜色将由相机光线接触到物体的位置处的物体发出。
我可能完全错了,但这对我来说是有道理的。
关于unity-game-engine - 表面着色器输入结构中的 IN.worldRefl 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57234402/