当我在cg中编写着色器时,如何知道是否需要世界或对象空间?

时间:2015-08-13 16:00:59

标签: unity3d cg

所以我正在写一个着色器,我正在设置光线方向和法线方向来制作一个lambert着色器。

VOUT.normalDirection = normalize( mul(float4(i.normal,0.0),_World2Object).xyz);

float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);

我想知道,为什么我需要对象空间中的法线和世界空​​间中的光?

我怎么知道什么时候需要把东西放在世界空间或物体空间?

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是一个偷偷摸摸的,但它可能是正确的,因为变换法线的正确方法是将它们乘以用于变换点的矩阵的逆的转置。