这个问题很简单。我不知道IN.worldRefl
代表什么,我看过一些将它与立方体贴图一起使用的教程,但我仍然不知道。
Unity对它的描述很差:
float3 worldRefl -如果表面着色器 不写入 o.Normal ,则包含世界反射向量。
我已经研究了几天了,我有预感是什么IN.worldRefl
意思。
首先我看到了这张图片(在这里找到):
所以我猜这IN.worldRefl
是相机光线在物体多边形表面的反射,如图所示。
例如,当一组的发射为SurfaceOutput
立方体贴图的纹理在对应的位置IN.worldRefl
,即
samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}
这意味着,使用给定的立方体贴图将对象设置在立方体内,对象多边形表面中相机的反射光线将在一个点中穿过立方体。该点的颜色将由相机光线接触到物体的位置的物体发出。
我可能完全错了,但这对我来说很有意义。