圆角边缘的常用方法是什么,如示例中的矩形对象?
理想的结果看起来非常像这些图像。
(当然,您可以使用具有仔细圆角边缘和角落的网格,但要实现这一点需要很多tris。)
注意,当然是非着色器方法......
添加两个小扁平盒子,然后在两侧之间简单地制作新的正常位置,即45度:
那将是完美的圆形......
下面的GDG提供了一篇文章,如果没有使用着色器方法,有人断言这确实是最好的方法。
我真的很想知道如何用着色器做到这一点。
注意 - 关于非着色器方法的非常详细的教程
使用延迟着色,您可以访问G-buffer来定位和舍入边缘,就像在this paper中完成一样。虽然它是一种后处理技术,但它能够在某些像素的范围内模拟圆度。
简单平均法线(1像素宽度):
简单平均法线(2像素宽度):
简单平均法线(3像素宽度):
我肯定会推荐一个以着色器为导向的答案,但特别是如果在给定的平台上没有必要的着色器,我会用一些“细节级别”模型(即LoD)来实现这一点。
这种技术在3D游戏中被广泛使用,这是一种很好的方式来表示一旦相机近距离接近可以变得更加细致的远距离群体。
我们能够为我们的游戏WorldToBuild完成斜面立方体,我在这里写了一篇关于它的文章:
https://www.linkedin.com/pulse/coding-resizable-beveled-cubes-unity-richard-christley
如果您只想了解该过程,请滚动到文章的底部。关键是你可以继续制作斜面模型,然后只需将组顶点移动。
简而言之,我所要做的就是:创建一个斜面立方体(我使用了搅拌机)。通过它们从中心的位置找出您将在每个方向上移动的顶点。计算斜边,并设置确切的大小。