【技术实现步骤摘要】
本专利技术涉及一种雾化方法,尤其涉及一种基于OpenGL的雾化方法和系统。
技术介绍
现有的雾化效果大多是直接调用OpenGL(Open Graphics Library,开放图形库)的现有接口,根据内置的雾化方程式对全屏内容对象进行雾化,使远处的物体看上去逐渐变得模糊。其中,雾的浓度和颜色受到雾化方程式个数的限制,无法调试出最合适的雾化效果,其次,调用OpenGL的现有接口产生的雾化效果是基于全屏内容对象的,不能进行局部雾化,总而言之就是无法满足人们对雾化效果的个性化需求。
技术实现思路
针对现有技术的不足,本专利技术的目的在于提供一种基于OpenGL的雾化方法和系统,可以对对象的局部片段进行雾化,满足人们对雾化效果的个性化需求。第一方面,本专利技术实施例提供的一种基于OpenGL的雾化方法,包括:将待雾化对象划分成若干个片段;计算各个所述片段的雾化颜色值;根据所述雾化颜色值对各个所述片段进行雾化处理。第二方面,本专利技术实施例还对应提供的一种基于OpenGL的雾化系统,包括:片段划分模块,用于将待雾化对象划分成若干个片段;雾化颜色值计算模块,用于计算各个所述片段的雾化颜色值;雾化处理模块,用于根据所述雾化颜色值对各个所述片段进行雾化处理。本专利技术实施例提供的技术方案带来的有益效果:本技术方案中,将待雾化对象划分成若干个片段,计算各个片段的雾化颜色值,根据雾化颜色值对各个片段进行雾化处理。通过将整体待雾化对象划分成若干个片段,计算各个片段对应的雾化颜色值,并根据该对应的雾化颜色值对各个片段进行雾化处理,从而实现对整个待雾化对象的雾化处理,并可以对待雾化对 ...
【技术保护点】
一种基于OpenGL的雾化方法,其特征在于,包括:将待雾化对象划分成若干个片段;计算各个所述片段的雾化颜色值;根据所述雾化颜色值对各个所述片段进行雾化处理。
【技术特征摘要】
1.一种基于OpenGL的雾化方法,其特征在于,包括:将待雾化对象划分成若干个片段;计算各个所述片段的雾化颜色值;根据所述雾化颜色值对各个所述片段进行雾化处理。2.如权利要求1所述的方法,其特征在于,所述将待雾化对象划分成若干个片段,包括:获取模型视图矩阵和所述待雾化对象中各个像素点的顶点坐标;根据所述模型视图矩阵和所述顶点坐标,计算各个所述像素点的视觉坐标;根据所述视觉坐标,计算各个所述像素点与观察点间的视觉坐标距离;将与所述观察点间的视觉坐标距离相同的像素点划分在同一个片段内,所述待雾化对象被划分成若干个片段。3.如权利要求2所述的方法,其特征在于,所述计算各个所述片段的雾化颜色值,包括:根据各个所述片段与观察点间的视觉坐标距离,和预设的雾化浓度值计算雾混合因子;根据所述雾混合因子计算各个所述片段的雾化颜色值。4.如权利要求2所述的方法,其特征在于,所述视觉坐标的计算公式为:E=MV式中,E表示所述视觉坐标,M表示所述模型视图矩阵,V表示所述顶点坐标。5.如权利要求3所述的方法,其特征在于,所述雾混合因子的计算公式为: f = e - ( d e n s i t y * z ) f = e - ( d e n s i t y * z ) 2 f = e n d - z e n d - s t a r t ]]>式中,f=e-(density*z)为在指数模式一GL_EXP下雾混合因子的计算公式;为在指数模式二GL_EXP2下雾混合因子的计算公式;为在线性模式GL_LINEAR下雾混合因子的计算公式;f表示所述雾混合因子,density表示所述预设的雾化浓度值,z表示所述片段与观察点间的视觉坐标距离,end表示在观察点处可见的最远距离,start表示在观察点处可见的最近距离;所述雾化颜色值的计算公式为:C=fCi+(1-f)Cf式中,C表示所述雾化颜色值,Ci表示源片段的颜色索引,Cf表示设置雾效的初始颜色值,f表示所述雾混合因子。6.一种基于OpenGL的雾化系统,其特征在于,包括:片段划分模块,用于将待雾化...
【专利技术属性】
技术研发人员:曾超,
申请(专利权)人:广东小天才科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。