[发明专利]基于OpenSceneGraph的体积光生成方法、装置、设备和存储介质在审
申请号: | 202011105083.2 | 申请日: | 2020-10-15 |
公开(公告)号: | CN112233220A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 丁伟 | 申请(专利权)人: | 洛阳众智软件科技股份有限公司 |
主分类号: | G06T15/50 | 分类号: | G06T15/50 |
代理公司: | 北京细软智谷知识产权代理有限责任公司 11471 | 代理人: | 付登云 |
地址: | 471000 河南省洛阳市高新开*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 openscenegraph 体积 生成 方法 装置 设备 存储 介质 | ||
本发明涉及三维图形渲染的后期场景光影特效处理相关技术领域,具体涉及一种基于OpenSceneGraph的体积光生成方法、装置、设备和存储介质。其中所述方法包括:搭建延迟渲染框架、生成场景图/深度图;基于所述场景图和所述深度图,生成光源掩码图;剔除光源不在屏幕时的情景;基于所述掩码图,计算光线叠加处理效果,得到体积光;其中,所述体积光的计算和所述生成光源掩码图在一个pass中执行;通过预设算法进行体积光平滑处理;对体积光和所述场景图进行融合并输出最终场景。
技术领域
本发明涉及三维图形渲染的后期场景光影特效处理相关技术领域,具体涉及一种基于OpenSceneGraph的体积光生成方法、装置、设备和存储介质。
背景技术
长期以来,基于OpenSceneGraph的项目,大多应用于三维仿真项目的开发,虽然得益于OpenSceneGraph的场景管理和数据结构,但场景效果一直比较一般,没有比较绚丽的光感画面。因此,如何提升场景效果,成为当前比较重要的一个话题。
发明内容
有鉴于此,提供一种基于OpenSceneGraph的体积光生成方法、装置、设备和存储介质,以解决背景技术中的相关问题。
本发明采用如下技术方案:
第一方面,本发明实施例提供了一种基于OpenSceneGraph的体积光生成方法,包括:
搭建延迟渲染框架、生成场景图/深度图;
基于所述场景图和所述深度图,生成光源掩码图;
剔除光源不在屏幕时的情景;
基于所述掩码图,计算光线叠加处理效果,得到体积光;
通过预设算法进行体积光平滑处理;
对体积光和所述场景图进行融合并输出最终场景。
可选地,所述基于所述场景图和所述深度图,生成光源掩码图,包括
在禁用颜色缓冲区的深度写入功能的基础上,绘制场景光源和天空;
依照背景优先绘制的顺序,进行场景的绘制;
绘制完场景后,从所述深度图获取掩码颜色分量值中的red分量,此分量即为深度信息;
判断深度信息是否大于1,如果大于,则认为需要从原始场景中对应像素获取颜色,否则返回黑色。
可选地,所述剔除光源不在屏幕时的情景,包括:
将太阳在视图空间的深度信息的保存到屏幕坐标;
判断太阳的深度值是否小于35;
若小于,在认为光源不在屏幕,则无需处理体积光。
可选地,所述基于所述掩码图,计算光线叠加处理效果,得到体积光,包括:
用当前像素所处的纹理坐标和光源经过处理后投射到屏幕的归一化坐标相减,获取屏幕纹理偏移值;
将纹理偏移值除以采样次数,获取每次采样的纹理偏移步长;
以当前像素为起点,沿着光源的方向进行步进采样,并将每次采样的颜色值进行叠加;
采样结束后,将叠加得到的颜色值除以采样次数,获得当前像素的最终颜色;
执行对整个屏幕的采样后,便能产生沿着光源方向,向外辐射的光柱。
可选地,还包括:
控制所述体积光的强度大小。
可选地,所述控制所述体积光的强度大小,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于洛阳众智软件科技股份有限公司,未经洛阳众智软件科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011105083.2/2.html,转载请声明来源钻瓜专利网。