[发明专利]一种基于KD树的阴影体优化方法有效
申请号: | 201710524634.0 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107481314B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 程翔;俞蔚 | 申请(专利权)人: | 浙江科澜信息技术有限公司 |
主分类号: | G06T15/60 | 分类号: | G06T15/60 |
代理公司: | 浙江杭知桥律师事务所 33256 | 代理人: | 王梨华;陈丽霞 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kd 阴影 优化 方法 | ||
本发明实施例提供了一种基于KD树的阴影体优化方法,其中,上述方法包括:提取相邻面位于光源两侧的共享边作为阴影体的共享轮廓边;基于KD树对场景数据进行分割,提取只有一个相邻面的边进行遮挡计算,对于没有遮挡的边界提取为阴影体的边界轮廓边;基于共享轮廓边和边界轮廓边建立阴影体;基于KD树对阴影体数据进行分割,通过阴影体剔除包围体,对阴影进行剔除操作,提高处理阴影体顶点的速率。采用本发明实施例提供的上述技术方案,解决了传统阴影体算法中无法处理存在非闭合几何体场景的问题,并通过CPU端的阴影体裁剪工作,大大节省了往GPU端传入的数据量,减少了GPU的负担。
技术领域
本发明涉及计算机图形渲染领域,更具体地说,涉及一种基于KD(K维空间)树的阴影体优化方法。
背景技术
阴影是指空间中的光线被遮挡了的一定区域。阴影效果可以帮助人们更好地感知物体之间的距离和相对位置,同时帮助人们获取阴影遮挡物及阴影接收体的几何形状等信息。
相关技术中,到目前为止还没有标准的动态阴影渲染技术。为了渲染出逼真的动态阴影效果,相关研究人员已经做出了很多尝试,也提出了不少真实感阴影渲染算法。在这些不同的算法中,阴影体算法是一种主流的高效动态阴影算法。
阴影体算法始终被两个关键的步骤所限制着:一个是轮廓边的提取,另一个是阴影体的渲染。对于轮廓边的提取,现在提取的方法是通过判断共享边的相邻面的向光性,但该方法存在的问题是要求模型是封闭的,像树叶这样的场景就无法适用了。对于阴影体的渲染,没有做任何CPU端的裁剪工作,所有的阴影体数据都送入图形处理单元GPU渲染获得模板值,极大增加了GPU的负担。
对于相关技术中场景存在非闭合模型和阴影体渲染开销极大的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种基于KD树的阴影体优化方法,以至少解决上述问题。
本发明提供的方法包括:
步骤1、提取三维场景中共享轮廓边;
步骤2、提取三维场景中边界轮廓边;
步骤3、根据所述共享轮廓边和所述边界轮廓边建立阴影体;
步骤4、对阴影体进行剔除。
其中,所述步骤1包括:
遍历场景中所有面,将边的相邻面信息添加到边信息中,对边的相邻面进行向光性计算,判断该边是否为共享轮廓边;
计算相邻面法向量与光线方向的夹角,判断其向光性,若两个相邻面的向光性不一致,则判定该边为共享轮廓边;若只存在一个相邻面,则将该边放入待处理的边界列表中;
根据入射光向量与面的法线向量判断面的向光性,若则表示该面面向光源;若则表示该面背向光源,其中,表示入射光向量,表示面的法线向量。
其中,步骤2包括:遍历所述步骤1中得到的所述边界列表,判断每个边界在灯光方向与三维场景形成的遮挡关系,如果边界没有被遮挡,则判定该边界为边界轮廓边。
其中,所述判断边界为边界轮廓边的过程具体为:
(1)对于点光源,使用边界的端点与光源位置的连线作为相交测试线段;对于平行光源,使用边界的端点沿光源方向无限延伸形成的线段作为相交测试线段;
(2)使用相交测试线段和三维场景进行空间相交测试,利用KD树管理三维场景数据的优势,对相交测试的计算进行加速,计算相交测试线段与三维场景的KD树节点的相交情况,若相交,则进入下一级的KD树节点的相交判断;若不相交,则返回相交测试结果为否;若执行到与KD树叶子节点的相交测试,则计算相交测试线段与叶子节点内所有面片的相交情况;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江科澜信息技术有限公司,未经浙江科澜信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710524634.0/2.html,转载请声明来源钻瓜专利网。