看见以前写的文章,都是4月份了。。呵呵,最近终于有时间,重新来搞搞opengl。不出意料,不一会就碰见拦路虎---多边形锯齿。
查遍谷歌和度娘,stackoverflow也看了不少,竟然没有现成方案解决opengl的多边形锯齿问题!
最后终于在各种补充基础后,找到了解决方案,要是省了你很多时间,请给32个赞。
代码很简单:
mGLView = new GLSurfaceView(this);
mGLView.setEGLConfigChooser(new EGLConfigChooser() {
@Override
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
int[] attrList = new int[] { //
EGL10.EGL_SURFACE_TYPE, EGL10.EGL_WINDOW_BIT, //
EGL10.EGL_RED_SIZE, 8, //
EGL10.EGL_GREEN_SIZE, 8, //
EGL10.EGL_BLUE_SIZE, 8, //
EGL10.EGL_DEPTH_SIZE, 16, //
EGL10.EGL_SAMPLE_BUFFERS, 1,
EGL10.EGL_SAMPLES, 2,
EGL10.EGL_NONE //
};
EGLConfig[] configOut = new EGLConfig[1];
int[] configNumOut = new int[1];
egl.eglChooseConfig(display, attrList, configOut, 1, configNumOut);
return configOut[0];
}
});
帮助了我的文章:http://www.linuxgraphics.cn/opengl/aa.html
分享到:
相关推荐
本文将深入探讨如何在Android环境下,利用NDK进行原生代码开发,结合OpenGL ES 1.0来实现点和线的抗锯齿效果。 首先,让我们理解什么是抗锯齿。抗锯齿(Anti-Aliasing)是一种图形处理技术,用于消除边缘的锯齿现象...
在OpenGL ES中,可以使用多种方法实现抗锯齿。其中一种常见的方法是开启多边形边缘抗锯齿(Polygon Smooth Hint)。这可以通过调用`glHint`函数并设置`GL_POLYGON_SMOOTH_HINT`参数来实现。不过,需要注意的是,这种...
FBO是OpenGL ES中的一种扩展,允许开发者将渲染结果存储在离屏的帧缓冲中,以便进行后期处理,如多重采样抗锯齿、光照效果或屏幕空间模糊等。 8. **优化技巧**: 在使用OpenGL ES和JNI时,需要注意内存管理和性能...
在Qt框架中结合OpenGL进行开发时,可以利用多重采样(Multisampling)来实现抗锯齿效果。本文将深入探讨如何使用Qt和OpenGL实现多重采样抗锯齿,并基于提供的源码进行分析。 首先,我们需要了解OpenGL中的多重采样。...
6. **多采样抗锯齿**(Multisample Anti-Aliasing, MSAA):提升了图像质量,减少边缘锯齿。 7. **纹理数组和3D纹理**:支持多层纹理和三维纹理,适应更丰富的纹理需求。 在Android平台上,使用OpenGL ES通常需要...
OpenGL ES 3.0引入了诸如顶点数组对象(VAOs)、多重采样抗锯齿、浮点纹理、计算着色器等高级特性,极大地拓宽了移动端图形编程的可能性。 通过《OpenGLES3-book》,开发者可以深入学习这些概念,并掌握如何在实际...
OpenGL ES 2.0 定点着色器、预先 片段着色器、片段预处理、OpenGL ES 2.0 和 OpenGL ES 1.0 向后兼容、EGL、库和包含文件、EGL 命令规则、OpenGL ES 命令规则、错误处理、Flush 和 Finish、基本状态管理、扩展阅读。...
OpenGL ES 3.0还加强了帧缓冲对象(FBO)的功能,支持多重采样抗锯齿(MSAA),提高了图像质量。同时,增加了深度、模板和颜色缓冲区的附加功能,使得开发者能够创建更复杂的渲染效果。 在图形流水线方面,OpenGL ...
在Android系统中,OpenGLES2.0是广泛用于2D和3D图形渲染的标准,它提供了丰富的图形功能,为游戏开发提供了强大的支持。下面我们将深入探讨OpenGLES2.0在Android游戏开发中的关键知识点。 1. **顶点着色器(Vertex ...
“es_spec_3.0.0.pdf”可能是OpenGL ES 3.0规范的文档,这个版本进一步扩展了OpenGL ES的功能,例如增加对浮点纹理、多采样抗锯齿、纹理数组、计算着色器等的支持,使移动平台的图形性能更加接近桌面级。 综上所述...
4. **多重采样抗锯齿(MSAA)**:提高了图像质量,减少边缘锯齿,使得图形更加平滑。 5. **帧缓冲对象(FBO)增强**:支持更多附件类型,如深度纹理和stencil纹理,使得后处理效果和渲染到纹理变得更加容易。 6. *...
在着色器编程方面,本书不仅详细介绍了如何创建、编译和链接着色器程序,还深入讲解了OpenGLES着色器语言的基础知识,包括变量和类型、构造器、矢量和矩阵操作、常量、结构体、数组、操作符、函数以及内置函数等。...
在实际的OpenGL ES 3D绘图中,开发者通常会使用Android的`GLSurfaceView`和`GLSurfaceView.Renderer`接口来创建一个OpenGL ES上下文,并通过这些接口进行渲染操作。例如,创建顶点缓冲区、设置着色器程序、绑定纹理...
- **帧缓冲对象(Framebuffer Objects, FBOs)**:学习如何创建和使用FBO进行离屏渲染,实现后期处理特效,如景深、抗锯齿等。 - **深度测试**:掌握如何使用深度缓冲区确保正确的3D渲染顺序和遮挡处理。 - **光照和...
7. **帧缓冲对象(FBO)和离屏渲染**:FBO允许我们将渲染结果保存到纹理中,用于后期处理,如模糊、抗锯齿等效果。 8. **状态管理和性能优化**:理解和控制OpenGL ES的状态机至关重要,避免无效的函数调用以提高...
9. **帧缓冲对象(FBO)和离屏渲染**:FBO允许在内存中创建离屏图像,用于后期处理特效,如抗锯齿、模糊或阴影贴图。 10. **着色器**:现代OpenGL依赖于可编程的着色器语言GLSL,它允许在GPU上执行复杂的计算。顶点...
OpenGL提供了多种渲染技术,包括颜色管理、光照处理、深度测试、抗锯齿等。这些技术可以提升模型的真实感和视觉质量。例如,光照模型可以模拟实际环境中的光源效果,而深度测试则能正确处理物体间的遮挡关系。 5. ...
作者们不仅深入讲解了OpenGL的基本原理,还涵盖了高级主题,如着色器语言、纹理映射、顶点数组、混合与深度测试、抗锯齿技术等。此外,书中提供了大量的代码示例,帮助读者理解和实践OpenGL的各种功能。 对于初学者...