我正在尝试编写可缩放对象大小的顶点着色器。我已经找到了解决此问题的许多“解决方案”,就像“沿着法线扩展顶点”之类的那样:
v2f vert(appdata_base v)
{
v2f OUT;
float3 norm = normalize(v.normal); //Unity 5 fix
v.vertex.xyz += norm * _Scaling;
OUT.pos = mul(UNITY_MATRIX_MVP, v.vertex);
OUT.normals = v.normal;
return OUT;
}
但是,这不适用于具有尖锐边缘的对象(例如立方体)。在立方体的情况下,它只是使边直接移出,但边保持相同的大小,因此您得到一个“爆炸”的立方体:
有人可以告诉我在着色器中正确缩放任何对象可能会缺少什么吗?
您有中心,也有相对于该中心的顶点位置向量。您可以找到其大小,然后进行缩放。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句