[发明专利]基于OSG的高效体阴影生成方法有效
申请号: | 201811574843.7 | 申请日: | 2018-12-21 |
公开(公告)号: | CN109712211B | 公开(公告)日: | 2023-02-10 |
发明(设计)人: | 何泉;杨石兴;李鹏飞;崔万福;张尚;何振 | 申请(专利权)人: | 西安恒歌数码科技有限责任公司 |
主分类号: | G06T11/00 | 分类号: | G06T11/00 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710000 陕西省西安市雁*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 osg 高效 阴影 生成 方法 | ||
基于OSG的高效体阴影生成方法,包括以下步骤:步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;步骤3,开启双面模板测试后渲染阴影锥,生成阴影。本发明在保证了ShadowVolume技术原有优点的基础上,提升了对复杂对象的阴影生成效率。
技术领域
本发明属于计算机图形技术领域,特别涉及基于OSG的高效体阴影生成方法。
背景技术
在计算机图形领域,实时阴影技术作为一种通用技术,常被用来增强场景的真实性,目前主流的阴影技术主要包括ShadowMap和ShadowVolume两种。
ShadowMap常用于大场景中,由于它的实现过程与场景的几何复杂度相关性较低,因此效率较高。但其缺点是由于用来保存深度纹理的图片大小有限,在阴影的边缘会出现锯齿。另外在大场景中,单个物体所占的像素较少,导致其对应生成的阴影比较粗糙,特别是投射到自身的阴影质量更低。
因此当我们对物体的阴影精度有要求,特别是对自阴影的质量有要求时,ShadowVolume是一种更适合的方法。ShadowVolume技术通过遍历模型的三角面,根据光源的位置反向生成阴影锥,最后通过双面模板测试生成阴影,其阴影的准确度能达到像素级。通常的ShadowVolume中,阴影锥的生成过程都是在CPU中完成的,因此当模型的面片过多时,会严重影响阴影锥的生成速度,从而效率降低。
发明内容
本发明的目的在于提供基于OSG的高效体阴影生成方法,以解决上述问题。
为实现上述目的,本发明有以下技术效果:
基于OSG的高效体阴影生成方法,包括以下步骤:
步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;
步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;
步骤3,开启双面模板测试后渲染阴影锥,生成阴影。
进一步的,步骤1中,遍历OSG模型的三角面,对每一个三角面,存储6个顶点,分别是原始三角形的三个顶点和每一条边对应的相邻三角形的顶点,如果没有相邻三角形,则存储为默认值。
进一步的,步骤2中,将包含邻接信息的顶点数据传入到几何着色器中后,每一个三角面的几何阶段会接收到6个顶点数据,存储方式如步骤一所述,根据光源的位置和原始三角形的顶点,生成阴影锥的上表面和下表面,再通过判断每条边的邻接三角面的法线方向,如果背向光源,那么生成两个三角形相邻的侧面,全部检测完毕后,即完成了阴影锥的构建。
进一步的,通过若干个GPU分别同时生成阴影锥。
进一步的,步骤3中,进入渲染阶段,首先渲染原始模型,然后开启双面模板测试,关闭深度写,设置正面通过模板测试后模板值减一,背面通过模板测试后模板值加一,设置完成后渲染阴影锥;最后渲染一个屏幕大小的矩形,设置仅当模板值不等于0时渲染,此时渲染出来的像素即为阴影的像素,生成阴影。
与现有技术相比,本发明有以下技术效果:
本发明由于体阴影技术是通过像素级运算来确定阴影范围的,相对于纹理采样,它的精度更高,同时本发明将阴影锥的生成过程从传统的CPU端移到了GPU端,利用GPU的并行计算能力,同时多个GPU进行阴影锥的渲染,从而进一步提升了体阴影的生成效率。
附图说明
图1是本发明方法的流程图;
具体实施方式
以下结合附图对本发明进一步说明:
基于OSG的高效体阴影生成方法,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安恒歌数码科技有限责任公司,未经西安恒歌数码科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811574843.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于区块链的图形生成方法
- 下一篇:一种工业CT伪影校正方法