UnityObjectToViewPos

inline float3 UnityObjectToViewPos(in float3 pos)
{
    return mul(UNITY_MATRIX_V, mul(unity_ObjectToWorld, float4(pos, 1.0))).xyz;
}

inline float3 UnityObjectToViewPos(in float4 pos)
{
    return UnityObjectToViewPos(pos.xyz);
}

定义这个重载版本是为了当传递float4类型参数到UnityObjectToViewPos函数时,避免出现隐式截断(implicit truncation)的问题。

UnityWorldToViewPos

inline float3 UnityWorldToViewPos(in float3 pos)
{
    return mul(UNITY_MATRIX_V, float4(pos, 1.0)).xyz;
}

UnityWorldToClipPos

将世界坐标空间中的某一点变换到齐次裁剪空间中。

inline float4 UnityWorldToClipPos(in float3 pos)
{
    return mul(UNITY_MATRIX_VP, float4(pos, 1.0));
}

UnityViewToClipPos

将观察坐标空间中的某一点变换到齐次裁剪空间中。

inline float4 UnityViewToClipPos(in float3 pos)
{
    return mul(UNITY_MATRIX_P, float4(pos, 1.0));
}

freemanzZZ
0 声望3 粉丝

引用和评论

0 条评论