如何使用着色器平滑基元的边缘?

时间:2015-01-25 18:30:14

标签: android opengl-es glsl jogl aliasing

使用片段着色器在OpenGL中用于软化简单基元(如GL_TRIANGLES)边缘的最简单技术是什么?

我已经在GL_BLEND上下文中读到,我们可以调整片段的alpha值,具体取决于它与边缘的接近程度;但这在实践中如何有效实现?

1 个答案:

答案 0 :(得分:0)

可以使用抗锯齿对图元的边缘进行平滑处理。

OpenGL提供multisample buffers以允许图像的硬件加速别名,但是由于它依赖于GPU上的专用硬件缓冲区,因此并非所有平台都支持此功能。另一种方法是render your display to a texture using a FrameBuffer,然后通过Timothy Lottes的Fast Approximate Anti Aliasing (FXAA)着色器传递渲染的纹理,这需要单次传递。