【复习笔记】 cocos2d-x 2.x 渲染特效实现 四 高斯模糊效果二

本文详细介绍了在cocos2d-x 2.x中如何使用OpenGL ES 2.0和shader实现高斯模糊效果。通过离屏渲染和帧缓冲对象(FBO)技术,将渲染结果保存到纹理,再进行纵向模糊处理,从而达到最终的高斯模糊效果。文章还提及了渲染到纹理的步骤,并展示了实际应用中的效果对比。
摘要由CSDN通过智能技术生成

在上文末,我们已经完成了高斯模糊横向上的模糊效果,而且提到,纵向模糊要在横向模糊的结果上进行,所以为了得到横向模糊的贴图,我们使用离屏渲染。顾名思义,现在渲染的目的地不是屏幕了~一般状况下,gl是直接把渲染好的纹理绘制到屏幕缓冲区的,进而直接显示在屏幕上。但是现在,我们要把它绘制到一张纹理中,这样,就可以像操作一张普通的纹理一样,对它进行再次加工了~这里我们用到FBO技术。

FBO即Frame Buffer Object,帧缓存对象,这使得我们可以创建一个由gl控制的帧缓存。通常情况下,我们只绘制到操作系统提供的帧缓存。

渲染到纹理的大致步骤如下:

1.创建一个空的texture

2.创建FBO

3.绑定texture到FBO上

4.使用自己创建的FBO作为当前渲染的帧缓存

4.draw~

具体代码如下:

void CCEffectSprite::drawGaussianBlur()
{
	
	CCEGLView *eglView = CCDirector::sharedDirector()->getOpenGLView();
	float zoomScale = eglView->getFrameZoomFactor();
	CCSize frameSize = eglView->getFrameSize();
	CCSize screenBufferSize = CCSizeMake(frameSize.width*zoomScale, frameSize.height*zoomScale);
	//CCLOG("frameSize : %f, %f", frameSize.width, frameSize.hei
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值