基于我对Ch的阅读.红皮书中的6,更改了需要为ES更改的内容,我认为以下代码应该已经完成了:
gl.glEnable(GL10.GL_POLYGON_SMOOTH); gl.glBlendFunc(GL10.GL_SRC_ALPHA_SATURATE,GL10.GL_ONE); gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT,GL10.GL_NICEST); // no visible diff gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL10.GL_NICEST); gl.glColor4f(1,1,1); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,4); // first and count
等等
但上述失败.输出中没有明显的差异,混叠伪像与插入glEnable … glHint之前的痛苦明显一样明显.
实际上,我刚才描述的是当我用GL_LINE_SMOOTH代替GL_POLYGON_SMOOTH时.甚至找不到后者!那么,如果没有GL10,它会在哪里?或者它怎么能被排除在OpenGL ES之外呢?如果没有使用GL_POLYGON_SMOOTH,我们如何绘制带抗锯齿的填充多边形?
解决方法
如果不尝试,你上面所做的事情似乎并不正确.然而,尽管API确实存在,但许多手机实际上并不支持抗锯齿.
您应该能够通过多次绘制屏幕来实现全屏抗锯齿,同时抖动每个矩阵.
有关iPhone上的相同问题,请参阅http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node63.html和this post