《OpenGL ES 2.0 Programming Guide》第11章“最简单的MSAA”示例代码【C语言版】

简介: 《OpenGL ES 2.0 Programming Guide》第11章“最简单的MSAA”示例代码【C语言版】

由于《OpenGL ES 2.0 Programming Guide》原书第11章的MultiSample示例代码是错误的,遂自己实现了一份C语言版本的,希望能够帮助到同样喜欢OpenGL ES 2.0的同学。

废话不多说,直接上代码:



第一步,修改 esCreateWindows 的 flags

int main ( int argc, char *argv[] )
{
   ESContext esContext;
   UserData  userData;
   esInitContext ( &esContext );
   esContext.userData = &userData;
   // ☆
   esCreateWindow ( &esContext, "MipMap 2D", 640, 480, ES_WINDOW_RGB|ES_WINDOW_MULTISAMPLE); 
   if ( !Init ( &esContext ) )
      return 0;
   esRegisterDrawFunc ( &esContext, Draw );
   esMainLoop ( &esContext );
   ShutDown ( &esContext );
}

第二步,修改esUtil.c

   EGLint attribList[] =
   {
       EGL_RED_SIZE,       5,
       EGL_GREEN_SIZE,     6,
       EGL_BLUE_SIZE,      5,
       EGL_ALPHA_SIZE,     (flags & ES_WINDOW_ALPHA) ? 8 : EGL_DONT_CARE,
       EGL_DEPTH_SIZE,     (flags & ES_WINDOW_DEPTH) ? 8 : EGL_DONT_CARE,
       EGL_STENCIL_SIZE,   (flags & ES_WINDOW_STENCIL) ? 8 : EGL_DONT_CARE,
       EGL_SAMPLE_BUFFERS, (flags & ES_WINDOW_MULTISAMPLE) ? 1 : 0,
       EGL_SAMPLES, 4,    // ☆
       EGL_NONE
   };

第三步:在MipMap.c的 init 方法添加以下代码

   //glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE);
   glEnable(GL_SAMPLE_COVERAGE);
   glSampleCoverage(.5, FALSE);

原图:

image.png

效果图:

image.png



目录
相关文章
|
23天前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
34 1
ly~
|
2月前
|
数据可视化 BI API
除了 OpenGL,还有哪些常用的图形库可以在 C 语言中使用?
除了OpenGL,C语言中还有多个常用的图形库:SDL,适合初学者,用于2D游戏和多媒体应用;Allegro,高性能,支持2D/3D图形,广泛应用于游戏开发;Cairo,矢量图形库,支持高质量图形输出,适用于数据可视化;SFML,提供简单接口,用于2D/3D游戏及多媒体应用;GTK+,开源窗口工具包,用于创建图形用户界面。这些库各有特色,适用于不同的开发需求。
ly~
544 4
|
7月前
|
XML 小程序 Java
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
142 0
|
缓存 C++
Opengl ES之FBO
Opengl ES连载系列
157 0
|
存储 编解码 算法
Opengl ES之LUT滤镜(上)
Opengl ES之连载系列
472 0
|
数据安全/隐私保护 开发者
OpenGL ES 多目标渲染(MRT)
Opengl ES连载系列
331 0
|
数据安全/隐私保护 索引
Opengl ES之纹理数组
Opengl ES连载系列
264 0
|
数据安全/隐私保护
Opengl ES之水印贴图
Opengl ES之连载系列
157 0
|
Java 数据安全/隐私保护 Android开发
Opengl ES之矩阵变换(下)
Opengl ES连载系列
136 0
|
Java API 数据安全/隐私保护
Opengl ES之矩阵变换(上)
Opengl ES连载系列
153 0