【发布时间】:2015-07-28 16:14:26
【问题描述】:
它是 Unity3D 中着色器的一部分。
我使用填充了颜色 (128,128,255) 的法线贴图,因此它表示 (0.0,0.0,1.0)。
我怀疑为什么会这样?
void surf (Input IN, inout SurfaceOutput o)
{
float3 normals = UnpackNormal(tex2D(_NormalMap, IN.uv_NormalMap));
o.Normal = float3(0.0,0.0,1.0);
float2 litSphereUV;
litSphereUV.x = dot(IN.tan1, o.Normal);
litSphereUV.y = dot(IN.tan2, o.Normal);
half4 c = tex2D (_MainTex, litSphereUV*0.5+0.5);
o.Albedo = c.rgb * _MainTint;
o.Alpha = c.a;
}
这是错的吗?
litSphereUV.x = dot(IN.tan1, (0.0,0.0,1.0));
litSphereUV.y = dot(IN.tan2, (0.0,0.0,1.0));
【问题讨论】:
-
@anderas 它有效!非常感谢!但为什么呢?