c语言11 2.0,《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);

原图:

a5e76b66306f7e56efdb194938de093a.png

效果图:

98324358460c30a3bba9703e75f275dc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值