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

本文介绍了如何在cocos2d-x 2.x中使用OpenGL ES 2.0和shader实现高斯模糊效果。通过应用二维正态分布的加权平均,对图像进行分步的横向和纵向模糊处理,以提高模糊质量。虽然计算量较大,但通过将卷积运算拆分为两个维度,可以分次进行,优化效率。
摘要由CSDN通过智能技术生成

前一篇中,我们用一种较为简单的方法实现了模糊,但是他只能实现取点距离很小的模糊,不是很完美~本篇中,我们用另一种方法实现模糊效果,它叫高斯模糊,用过PS的同学对这个词应该不陌生吧~基本的模糊实现的思想还是和前一篇是一样的,但是在取点的方法上,这次会更加科学一些~

高斯模糊实现用的函数叫做高斯函数,高斯函数也就是正态分布的密度函数,也就是说这些临近点取到之后,最终要对这些值进行服从于正态分布的加权,就获得了当前像素模糊之后应该表现出的颜色了。因为我们处理的是一张贴图,是一个二维的数据,所以我们必须要使用二维的正态分布。简单来说,把一维的标准正态分布函数曲线沿着y轴旋转一圈,得到的曲面就是二维的正态分布了~取邻近点的时候我们从中心原点向外每隔固定半径距离采样,这样当前处理的像素点就带有更多周围像素的信息了,模糊的效果也会好一些。这样的话,实际上,我们每次采样的时候,都取的是周围圆形面积内的点,有较多的计算量。好在高斯模糊是一个可分割的卷积运算,我们可以把这个面积内的运算拆分成横向和纵向两次处理,第二次计算在第一次的结果上进行,最后得到的结果是一样的~(关于二维正态分布和卷积运算等数学概念这里不展开了,相关资料很容易找到)

由于一次只能对一个维度进行处理,这里先进行横向的处理,u_blurDis参数如下设置:

_pixelSpan = 1.0f;
float blursDi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值