为什么要乘以unity_Scale.w?
// Computes object space view direction
inline float3 ObjSpaceViewDir( in float4 v )
{
float3 objSpaceCameraPos = mul(_World2Object, float4(_WorldSpaceCameraPos.xyz, 1)).xyz * unity_Scale.w;
return objSpaceCameraPos - v.xyz;
inline float3 ObjSpaceViewDir( in float4 v )
{
float3 objSpaceCameraPos = mul(_World2Object, float4(_WorldSpaceCameraPos.xyz, 1)).xyz * unity_Scale.w;
return objSpaceCameraPos - v.xyz;
}
为什么要乘以unity_Scale.w?
首先我们要知道unity4.x对模型有统一缩放,如果模型的ScaleX,ScaleY,ScaleZ不一致,untiy会生成一个同等大小的新模型,该模型的ScaleX,ScaleY,ScaleZ保持一致。unity_Scale.w=1/uniform scale;
因为世界空间转模型空间得到的坐标是计算了uniform scale之后的值,所以需要乘以unity_Scale.w,再具体的原因要再确认了。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: ugui记录
- 下一篇:没有了
