表面着色器输入结构中的 IN.worldRefl 是什么?
What is IN.worldRefl in surface shader Input struct?
这个问题很简单。我不知道 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
的emission在IN.worldRefl
对应的位置是一个立方体贴图的贴图,即
samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}
这意味着,将对象设置在具有给定立方体贴图的立方体内部,相机在对象多边形表面的反射光线将在一个点上穿过立方体。这个点的颜色会在相机光线接触到物体的位置由物体发出。
我可能完全错了,但这对我来说很有意义。
这个问题很简单。我不知道 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
的emission在IN.worldRefl
对应的位置是一个立方体贴图的贴图,即
samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}
这意味着,将对象设置在具有给定立方体贴图的立方体内部,相机在对象多边形表面的反射光线将在一个点上穿过立方体。这个点的颜色会在相机光线接触到物体的位置由物体发出。
我可能完全错了,但这对我来说很有意义。