OpenGL在创建纹理后对形状进行抗锯齿处理

时间:2015-03-08 23:35:25

标签: c++ opengl textures antialiasing post-processing

我有一个透明的OpenGL纹理,OpenGL上有一些简单的形状: 圆圈,多边形,线条。它们的绘制没有抗锯齿,多次采样等。因此,它们有锯齿状的边界。

我无法访问纹理创建过程,因此无法启用多次采样 。 有没有办法让那些平滑的画后完成?

1 个答案:

答案 0 :(得分:2)

有基于图像的抗锯齿过滤器,例如FXAA和MLAA,可以在这种情况下工作。我毫不犹豫地称他们为抗锯齿,因为他们并没有真正避免混淆,他们只是在事后隐藏它。它们更类似于智能模糊滤镜。

我从你的其他问题中知道你不想使用FBO,因此这让我相信你正在使用OpenGL 2.1或更旧的代码库。 FXAA可以在GLSL 1.20中实现,但在1.30(GL 3.0)中效果更好。我不知道的一件事是在包含透明度的图像上使用FXAA,它期望亮度在alpha通道中编码(或sRGB,这不是GL 2.1功能)。

您可能不希望直接将FXAA应用于纹理,而是需要绘制到PBuffer并在混合输入纹理后应用FXAA