OpenGL中三种抗锯齿处理(2012-08-06)


1、生成纹理时,设置纹理的过滤方式

线性采样和最近点采样方式

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MAG_FILTER,GL10.GL_LINEAR);

2、对于点、线的抗锯齿处理

a、首先要打开混合

gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

b、设置点、线平滑

gl.glEnable(GL10.GL_POINT_SMOOTH);
gl.glHint(GL10.GL_POINT_SMOOTH_HINT, GL10.GL_NICEST);
gl.glEnable(GL10.GL_LINE_SMOOTH);
gl.glHint(GL10.GL_LINE_SMOOTH_HINT, GL10.GL_NICEST);

开启混合是为了使绘制的图形边缘更好的与后面的图形想混合。

3、对于多边形的抗锯齿处理

//多重采样方式
gl.glEnable(GL10.GL_MULTISAMPLE);

注意:如果启用多重采样,点、线、多边形的平滑处理将会被忽略,也就是说如果开启第三种抗锯齿方式,第二中抗锯齿方式将会被忽略。

4、非实时性渲染的场景可以使用累积缓冲去,多次渲染;当然累积缓冲去,同时可以实现运动模糊效果。
 

你可能感兴趣的:(OpenGL中三种抗锯齿处理(2012-08-06))