[发明专利]一种基于KD树的阴影体优化方法有效
申请号: | 201710524634.0 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107481314B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 程翔;俞蔚 | 申请(专利权)人: | 浙江科澜信息技术有限公司 |
主分类号: | G06T15/60 | 分类号: | G06T15/60 |
代理公司: | 浙江杭知桥律师事务所 33256 | 代理人: | 王梨华;陈丽霞 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kd 阴影 优化 方法 | ||
1.一种基于KD树的阴影体优化方法,其特征在于,包括:
步骤1、提取三维场景中共享轮廓边;
步骤2、提取三维场景中边界轮廓边;
步骤3、根据所述共享轮廓边和所述边界轮廓边建立阴影体;
步骤4、对阴影体进行剔除;
基于步骤3建立的阴影体,对三维场景中阴影体数据进行KD树划分,减少阴影体的渲染批次;使用视锥体构建用于阴影体剔除的包围体,使用该包围体对阴影体数据进行裁剪,渲染处于包围体内的阴影体数据,减少渲染量;若阴影体的KD树节点与阴影体剔除包围体相交,则继续判断下一级KD树节点;若不相交,对该节点进行裁剪;
无论是点光源还是平行光,都是基于视锥体对应的多面体进行处理,最终得到阴影体剔除的包围体,其中
如果是点光源,若点光源在视锥体内,则直接使用视锥多面体作为阴影体剔除的包围体;若点光源不在视锥体内,分别判断光源与视锥多面体各面的位置关系,若该面面向光源,将面的四条边加入到待处理的边集合,并从视锥多面体中去除该面;遍历边集合,对于只在集合中出现一次的边,使用光源位置与该边构建新的几何面,得到的多面体即为阴影体剔除的包围体;如果是平行光,分别判断光源与视锥多面体各面的位置关系,若该面面向光源,将面的四条边加入到待处理的边集合,并从视锥多面体中去除该面;遍历边集合,对于只在集合中出现一次的边,将该边沿光源方向无限拉伸构建新的几何面,得到的多面体即为阴影体剔除的包围体。
2.根据权利要求1所述的方法,其中所述步骤1包括:
遍历场景中所有面,将边的相邻面信息添加到边信息中,对边的相邻面进行向光性计算,判断该边是否为共享轮廓边;
计算相邻面法向量与光线方向的夹角,判断其向光性,若两个相邻面的向光性不一致,则判定该边为共享轮廓边;若只存在一个相邻面,则将该边放入待处理的边界列表中;
根据入射光向量与面的法线向量判断面的向光性,若则表示该面面向光源;若则表示该面背向光源,其中,表示入射光向量,表示面的法线向量。
3.根据权利要求2所述的方法,其中步骤2包括:遍历所述步骤1中得到的所述边界列表,判断每个边界在灯光方向与三维场景形成的遮挡关系,如果边界没有被遮挡,则判定该边界为边界轮廓边。
4.根据权利要求3所述的方法,其中所述判断边界为边界轮廓边的过程具体为:
(1)对于点光源,使用边界的端点与光源位置的连线作为相交测试线段;对于平行光源,使用边界的端点沿光源方向无限延伸形成的线段作为相交测试线段;
(2)使用相交测试线段和三维场景进行空间相交测试,利用KD树管理三维场景数据的优势,对相交测试的计算进行加速,计算相交测试线段与三维场景的KD树节点的相交情况,若相交,则进入下一级的KD树节点的相交判断;若不相交,则返回相交测试结果为否;若执行到与KD树叶子节点的相交测试,则计算相交测试线段与叶子节点内所有面片的相交情况;
(3)如果边界的两个端点都没有通过相交测试,则判断边界为边界轮廓边。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江科澜信息技术有限公司,未经浙江科澜信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710524634.0/1.html,转载请声明来源钻瓜专利网。