Unity / CG:在顶点着色器中缩放对象

缬戊酸

我正在尝试编写可缩放对象大小的顶点着色器。我已经找到了解决此问题的许多“解决方案”,就像“沿着法线扩展顶点”之类的那样:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章