冯乐乐《shader入门精要》备忘录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010314160/article/details/82800404

1.广告牌
顶点函数
float3 center = float3(0,0,0);
float3 viewer = mul(unity_WorldToObject,float4(_WorldSpaceCameraPos,1));
float3 normalDir = viewer - center;
normalDir.y = normalDir.y * _VerticalBillboarding;
normalDir = normalize(normalDir);

float3 upDir = abs(normalDir.y) > 0.999? float3(0,0,1):float3(0,1,0);
float3 rightDir = normalize(cross(upDir,normalDir));
upDir = normalize(cross(normalDir,rightDir));

float3 centerOffs = v.vertex.xyz - center;
float3 localPos = center + rightDir * centerOffs.x + upDir * centerOffs.y + normalDir * centerOffs.z;
o.vertex = mul(UNITY_MATRIX_MVP,float4(localPos,1));

猜你喜欢

转载自blog.csdn.net/u010314160/article/details/82800404