本文主要是介绍为什么要乘以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;
}
为什么要乘以unity_Scale.w?
首先我们要知道unity4.x对模型有统一缩放,如果模型的ScaleX,ScaleY,ScaleZ不一致,untiy会生成一个同等大小的新模型,该模型的ScaleX,ScaleY,ScaleZ保持一致。unity_Scale.w=1/uniform scale;
因为世界空间转模型空间得到的坐标是计算了uniform scale之后的值,所以需要乘以unity_Scale.w,再具体的原因要再确认了。
这篇关于为什么要乘以unity_Scale.w?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!