【问题标题】:How do I know if I need world or object space when I am writing shader in cg?当我在 cg 中编写着色器时,我如何知道我是否需要世界或对象空间?
【发布时间】:2015-08-21 08:24:57
【问题描述】:

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

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

float3 lightDirection = normalize(_WorldSpaceLightPos0.xyz);

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

我如何知道何时需要将某些东西放入世界空间或对象空间?

提前致谢!

【问题讨论】:

  • 你能发布你的整个着色器文件吗?我也不知道你为什么想要对象空间中的法线。

标签: unity3d cg


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多