一种基于OpenGL实现景深效果的方法技术

技术编号:7918093 阅读:879 留言:1更新日期:2012-10-25 02:59
本发明专利技术实施例公开了一种基于OpenGL实现景深效果的方法,所述方法包括以下步骤:获取图像的原始色彩缓存信息,所述原始色彩缓存信息包括深度缓存信息和色彩缓存信息;根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息;计算所述图像的像素点的泊松分布圆直径,根据所述像素点的泊松分布圆直径计算图像层级信息;根据所述原始色彩缓存信息、所述新的色彩缓存信息、所述像素点的泊松分布圆直径和所述图像层级信息计算最终的色彩缓存信息并对所述图像进行渲染。本发明专利技术的实施例中,通过基于OpenGL的Mipmap原理与泊松分布结合,计算不同层级的图像场景信息实现景深,提高了实现景深的效率和效果。

【技术实现步骤摘要】
一种基于OpenGL实现景深效果的方法
本专利技术涉及图像/视频处理领域,尤其涉及一种基于OpenGL实现景深效果的方法。
技术介绍
景深是指在摄影机镜头或其他成像器前沿着能够取得清晰图像的成像景深相机器轴线所测定的物体距离范围。在聚焦完成后,在焦点前后的范围内都能形成清晰的像,这一前一后的距离范围,便叫做景深。在镜头前方(调焦点的前、后)有一段一定长度的空间,当被摄物体位于这段空间内时,其在底片上的成像恰位于焦点前后这两个弥散圆之间。被摄体所在的这段空间的长度,就叫景深。换言之,在这段空间内的被摄体,其呈现在底片面的影象模糊度,都在容许弥散圆的限定范围内,这段空间的长度就是景深。在图像/视频处理软件中,经常要用到三维合成器来实现许多三维合成效果,在真实的三维世界中,景深是很重要的效果,因此景深的实现在三维合成器中是不可或缺的。像素深度是指存储每个像素所用的位数,它也是用来度量图像的分辨率。像素深度决定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。例如,一幅彩色图像的每个像素用R,G,B三个分量表示,若每个分量用8位,那么一个像素共用24位表示,就说像素的深度为24,每个像素可以是16777216(2的24次方)种颜色中的一种。在这个意义上,往往把像素深度说成是图像深度。表示一个像素的位数越多,它能表达的颜色数目就越多,而它的深度就越深。虽然像素深度或图像深度可以很深,但各种VGA的颜色深度却受到限制。例如,标准VGA支持4位16种颜色的彩色图像,多媒体应用中推荐至少用8位256种颜色。由于设备的限制,加上人眼分辨率的限制,一般情况下,不一定要追求特别深的像素深度。此外,像素深度越深,所占用的存储空间越大。相反,如果像素深度太浅,那也影响图像的质量,图像看起来让人觉得很粗糙和很不自然。在用二进制数表示彩色图像的像素时,除R,G,B分量用固定位数表示外,往往还增加1位或几位作为属性(Attribute)位。例如,RGB5:5:5表示一个像素时,用2个字节共16位表示,其中R,G,B各占5位,剩下一位作为属性位。在这种情况下,像素深度为16位,而图像深度为15位。属性位用来指定该像素应具有的性质。例如在CD-I系统中,用RGB5:5:5表示的像素共16位,其最高位(b15)用作属性位,并把它称为透明(Transparency)位,记为T。T的含义可以这样来理解:假如显示屏上已经有一幅图存在,当这幅图或者这幅图的一部分要重叠在上面时,T位就用来控制原图是否能看得见。例如定义T=1,原图完全看不见;T=0,原图能完全看见。在用32位表示一个像素时,若R,G,B分别用8位表示,剩下的8位常称为α通道(alphachannel)位,或称为覆盖(overlay)位、中断位、属性位。它的用法可用一个预乘α通道(premultipliedalpha)的例子说明。假如一个像素(A,R,G,B)的四个分量都用规一化的数值表示,(A,R,G,B)为(1,1,0,0)时显示红色。当像素为(0.5,1,0,0)时,预乘的结果就变成(0.5,0.5,0,0),这表示原来该像素显示的红色的强度为1,而现在显示的红色的强度降了一半。用这种办法定义一个像素的属性在实际中很有用。例如在一幅彩色图像上叠加文字说明,而又不想让文字把图覆盖掉,就可以用这种办法来定义像素,而该像素显示的颜色又有人把它称为混合色(keycolor)。在图像产品生产中,也往往把数字电视图像和计算机生产的图像混合在一起,这种技术称为视图混合(videokeying)技术,它也采用α通道。泊松分布(Poissondistribution),是一种统计与概率学里常见到的离散机率分布(discreteprobabilitydistribution),由法国数学家西莫恩·德尼·泊松(Siméon-DenisPoisson)在1838年时发表。Mpmap是一种电脑图形图像技术,用于在三维图像的二维代替物中达到立体感效应。Mipmap技术与材质帖图技术结合,根据距观看者远近距离的不同,以不同的分辨率将单一的材质帖图以多重图像的形式表现出来并代表平面纹理:尺寸最大的图像放在前面显著的位置,而相对较小的图像则后退到背景区域。每一个不同的尺寸等级定义成一个Mipmap水平。Mipmap技术帮助避免了不想要的锯齿边缘(称为锯齿状图形)在图像中出现,这种锯齿状图形可能是由于在不同分辨率下使用bitmap图像产生的。在基于OpenGL实现景深效果时,把场景的深度信息和场景分别渲染到一张纹理中,然后通过模糊处理后合成新的场景,新的场景中就带有了景深效果。专利技术人在完成本专利技术的过程,发现现有技术存在以下不足:实现景深的效率低,尤其是在做模糊处理的过程中,高斯模糊处理的方法效率非常低;实现景深的效果不理想,因为泊松分布采样具有不确定性,限制了景深实现的效果。
技术实现思路
本专利技术实施例提供了一种基于OpenGL实现景深效果的方法,本专利技术的实施例中,通过基于OpenGL的Mipmap原理与泊松分布结合,计算不同层级的图像场景信息,实现景深的效果。本专利技术实施例提供了一种基于OpenGL实现景深效果的方法,包括以下步骤:获取图像的原始色彩缓存信息,所述原始色彩缓存信息包括深度缓存信息和色彩缓存信息;根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息;计算所述图像的像素点的泊松分布圆直径,根据所述像素点的泊松分布圆直径计算图像层级信息;根据所述原始色彩缓存信息、所述新的色彩缓存信息、所述像素点的泊松分布圆直径和所述图像层级信息计算最终的色彩缓存信息;根据所述最终的色彩缓存信息对所述图像进行渲染,实现景深效果。所述获取图像的原始色彩缓存信息前,包括:判断图像处理设备是否开启深度缓存且摄像机为渲染模式。所述获取图像的原始色彩缓存信息,包括:若开启了深度缓存且摄像机为渲染模式,获取所述深度缓存信息和所述色彩缓存信息;将所述深度缓存信息和所述色彩缓存信息绑定到指定的纹理中。所述根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息,包括以下步骤:A、根据所述深度缓存信息和所述色彩缓存信息计算焦距深度:B、用所述焦距深度替换所述原始色彩缓存信息中alpha通道的值,得到运算色彩缓存信息;C、将所述运算色彩缓存信息绑定到指定的纹理中,生成所述新的色彩缓存信息。所述根据所述深度缓存信息和所述色彩缓存信息计算焦距深度,具体包括:计算像素点与虚拟视点的距离:distance=farPlane*nearPlane/((1-depth)*farPlane+depth*nearPlane)其中,distance为像素点与虚拟视点的距离,farPlane为所述摄像机的远平面,nearPlane为所述摄像机的近平面,depth为像素深度;计算焦距深度:d=distance-focalPlaneDistance;如果d<0,focalDepth=d/(focalPlaneDistance-nearBlurDistance);如果d>0或者d=0,focalDepth=d/(farBlurDistance-focalPlaneDistance);其中,d为像素点平面与焦距平面的距离,foc本文档来自技高网
...
一种基于OpenGL实现景深效果的方法

【技术保护点】
一种基于OpenGL实现景深效果的方法,其特征在于,包括以下步骤:获取图像的原始色彩缓存信息,所述原始色彩缓存信息包括深度缓存信息和色彩缓存信息;根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息;计算所述图像的像素点的泊松分布圆直径,根据所述像素点的泊松分布圆直径计算图像层级信息;根据所述原始色彩缓存信息、所述新的色彩缓存信息、所述像素点的泊松分布圆直径和所述图像层级信息计算最终的色彩缓存信息;根据所述最终的色彩缓存信息对所述图像进行渲染,实现景深效果。

【技术特征摘要】
1.一种基于OpenGL实现景深效果的方法,其特征在于,包括以下步骤:获取图像的原始色彩缓存信息,所述原始色彩缓存信息包括深度缓存信息和色彩缓存信息;根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息;包括以下步骤:A、根据所述深度缓存信息和所述色彩缓存信息计算焦距深度:B、用所述焦距深度替换所述原始色彩缓存信息中alpha通道的值,得到运算色彩缓存信息;C、将所述运算色彩缓存信息绑定到指定的纹理中,生成所述新的色彩缓存信息;所述根据所述深度缓存信息和所述色彩缓存信息计算焦距深度,具体包括:计算像素点与虚拟视点的距离:distance=farPlane*nearPlane/((1-depth)*farPlane+depth*nearPlane)其中,distance为像素点与虚拟视点的距离,farPlane为摄像机的远平面,nearPlane为所述摄像机的近平面,depth为像素深度;计算焦距深度:d=distance-focalPlaneDistance如果d<0,focalDepth=d/(focalPlaneDistance-nearBlurDistance)如果d>0或者d=0,focalDepth=d/(farBlurDistance-focalPlaneDistance)其中,d为像素点平面与焦距平面的距离,focalPlaneDistance为焦距平面距离,focalDepth...

【专利技术属性】
技术研发人员:黄裔
申请(专利权)人:新奥特北京视频技术有限公司
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2014年12月06日 05:14
    汉语jǐngshēn景深是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围在聚焦完成后在焦点前后的范围内都能形成清晰的像这一前一后的距离范围便叫做景深在镜头前方调焦点的前后有一段一定长度的空间当被摄物体位于这段空间内时其在底片上的成像恰位于焦点前后这两个弥散圆之间被摄体所在的这段空间的长度就叫景深换言之在这段空间内的被摄体其呈现在底片面的影象模糊度都在容许弥散圆的限定范围内这段空间的长度就是景深
    0
1