一段时间以来,我一直在尝试在 Unity 中绘制平滑的线条,但使用线条渲染器时,我只获得了锯齿状的线条,且边角不是圆角的,特别是当曲率角度非常小时。我在质量设置中增加了抗锯齿的值,并尝试了不同的材质,但没有任何改变。我还尝试在每次鼠标移动时实例化一个球体,但它会在各个球体之间产生一些间隙,特别是当鼠标快速移动时。我知道有一个名为 Vectrosity 的插件可以实现此目的,但是有没有一种方法可以在不使用它的情况下实现此目的?
通过从一组点生成网格可以获得一些好的结果。
其算法如下:
- 您有一组点,可以用贝塞尔曲线生成。
- 对于每个点,获取到下一个点的方向向量
v = (p2 - p1)
(以蓝色标记)。然后将该向量旋转 90 度normal = v.y, -v.x
标记为红色.
- 这说明我们将使用点位置的每个法线。现在,您可以在两个方向上将此向量乘以所需的线宽度。
- 在这些位置创建顶点。
- 添加索引以形成三角形。会是这样的
[i, w/2 + i, w/2 + i + 1]
where i
是当前索引,并且w
是顶点总数。
- 创建其他三角形。又像
[i, w/2 * i + 1, i + 1]
- 以及最终的结果。您可以添加更多点以使线条更平滑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)