好的,我正在尝试进行模拟。整个模拟是由圆形(带有gl_Point)和矩形(带有索引的gl_triangles)绘制的。

添加一些抗锯齿效果很好,特别是因为比例通常很小。

我的问题是我看到了一些平滑形状边缘的公式,但是我不知道如何适当地考虑比例。

每个子图都有不同的比例,每个矩形宽度/高度比将有所不同,更不用说我还没有传递纹理坐标,因为到目前为止它们是不必要的。这将在多种屏幕分辨率下运行。

我想我有两个问题:


是否可以在片段着色器中对矩形进行锯齿处理而无需知道每个碎片的紫外线,因为我还没有通过它们吗?即使有可能我如何考虑不同比例的矩形?
我可以使用什么数学来确保无论设备分辨率或形状大小如何,抗锯齿效果最多为2个像素(或其他值)从形状的边缘开始?


#1 楼

好吧,您可以以更高的分辨率进行渲染,并且可以将其采样下来称为FSAA,并且应该可以正常工作而无需进行太多更改即可渲染代码。 FSAA的好处是没有合并问题,而平滑则没有。


不,某些东西必须发出此信息。您)表面的变化,以确定台阶将您带到像素中的距离。如果超出边缘,则表示抗锯齿。


评论


$ \ begingroup $
我应该将分辨率提高多少?
$ \ endgroup $
–J.Doe
16年7月7日在20:22

$ \ begingroup $
通常4很好,但是请先阅读opengl.org/wiki/Multisampling,您实际上不需要存储这些多余的像素
$ \ endgroup $
– joojaa
16年7月7日在20:24

$ \ begingroup $
我希望它与opengl es 2.0兼容。似乎几乎没有。我担心我的应用程序使用累积缓冲区,因此我永远不会清除绘制的缓冲区,我只是淡出它,然后绘制一个新的框架。显然,较大的FBO意味着加载时间较慢。希望该扩展程序受支持,因此这不是一个问题。
$ \ endgroup $
–J.Doe
16年7月7日在23:36