[发明专利]一种基于空间预探索的真实过渡阴影实现方法有效

专利信息
申请号: 202010057152.0 申请日: 2020-01-17
公开(公告)号: CN111243077B 公开(公告)日: 2022-08-12
发明(设计)人: 陈旋;周海;王立森 申请(专利权)人: 江苏艾佳家居用品有限公司
主分类号: G06T15/80 分类号: G06T15/80
代理公司: 南京新慧恒诚知识产权代理有限公司 32424 代理人: 邓唯
地址: 211100 江苏省南京市江宁区*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 空间 探索 真实 过渡 阴影 实现 方法
【权利要求书】:

1.一种基于空间预探索的真实过渡阴影实现方法,其特征在于,具体包括以下步骤:

步骤1,将网格物体的三角形存入kDopTree,其中,kDopTree是一种基于方差分割的树结构;

步骤2,将网格物体的空间均匀分割成空间块,进而对每个空间块进行空间的预探索获得场景物体的位置信息;

步骤3,在空间块内生成采样射线,对于步骤2得到的每一个空间块Box,其边界分别为块最小值Box.Min,块最大值Box.Max,空间块的中心位置Box.Center=(Box.Min+Box.Max)/2,从中心位置均匀发射出M条射线,射线的方向记为Ray.Dir,每条射线和步骤1中的kDopTree中的三角形求交点P,得到块中心到网格物体的最小长度;计算每个块到网格物体的最小长度;

其中,P=Intersect(Ray.Dir,Mesh.Triangles),P为交点,Ray.Dir为射线的方向,Mesh.Triangles是网格物体内的三角形;

步骤4,获取空间块内射线探索和网格三角形的交点,得到最小长度,逐级判断射线和树子节点范围的位置关系;

步骤5,将空间块的最小长度存入3D纹理;

步骤6,建立网格物体和3D纹理内数据的对应关系,根据步骤2中得到的空间块,创建3D纹理,且每一个纹理的像素对应一个空间块,像素值对应空间块到网格物体的最小距离;

步骤7,步进像素并读取3D纹理数据计算阴影。

2.根据权利要求1所述的一种基于空间预探索的真实过渡阴影实现方法,其特征在于:在步骤2中,将网格物体的空间均匀分割成空间块,具体如下:网格物体内一个三角形的顶点位置坐标记为Vertex(x,y,z),循环网格物体的所有三角形的顶点比较得到最大值Max、最小值Min,网格物体的空间范围即Max-Min,把这个范围在x,y,z方向均分为N等分,得到N的3次方个空间块。

3.根据权利要求1所述的一种基于空间预探索的真实过渡阴影实现方法,其特征在于:所述步骤4具体如下:根据步骤3中产生的各个射线方向,计算出各个空间块和网格物体的最小长度的交点,计算交点需要通过步骤1中的kDopTree对遍历射线和三角形相交加速,从树的根节点开始,判断射线Ray和根节点的Box是否相交,依次计算Ray和Box六个面的交点坐标并判断交点是否在Box内,如果有一个交点在Box内,退出循环,进入下一级子节点的相同判断,如果子节点也相交并且为叶子节点,射线Ray依次判断和叶子节点内三角形的交点方法同步骤3,计算出长度后保存,开始下一个射线Ray的相同计算过程,比较前后交点的长度,最后得到最小长度,逐级判断射线和树子节点范围的位置关系。

4.根据权利要求2所述的一种基于空间预探索的真实过渡阴影实现方法,其特征在于:所述步骤5具体如下:根据步骤4得到每个空间块到网格物体最小长度的射线方向和长度,将长度信息写入3D纹理,用于步进像素射线Ray计算像素的阴影Shadow,具体如下:

其中,Ray.StepVolume为步进过程中第i步的阴影体积,根据当前位置从3D纹理中双线性采样得到;ConeVolume为像素步进圆锥体的总体积等于底面积乘以高除以3。

5.根据权利要求4所述的一种基于空间预探索的真实过渡阴影实现方法,其特征在于:所述步骤6具体如下:在得到单个网格物体的空间预探索信息写入3D纹理之后,把网格物体和3D纹理中的长度信息进行对应,创建网格对象的空间范围信息ObjectBoundsBuffer和对象空间里的位置信息ObjectsTransformData,建立网格对象的信息和3D纹理数据信息的对应关系:

ObjectsTransformData=ObjectBoundsBuffer/N,N为步骤2中的N。

6.根据权利要求5所述的一种基于空间预探索的真实过渡阴影实现方法,其特征在于:所述步骤7具体如下:

步骤7.1,根据步骤6建立的3D纹理数据,在像素位置发出沿着光线方向的射线,从像素的世界位置开始迭代步进出新的世界位置;

步骤7.2,步进每次迭代沿着光线方向逐级增加,在步进位置创建球体和场景空间预计算的范围信息进行相交判断,步进位置记为StepPosition,采样3D纹理判断是否在与探索范围内,如果在预探索范围内,记录位置为MinPosition,计算得到球体的最小半径为MinRadius=MinPosition-StepPosition,累加到步进长度后,继续下次迭代读取网格对象的空间范围和位置信息;

步骤7.3,根据步进位置StepPosition和网格对象空间范围ObjectBoundsBuffer,判断步进位置位于哪个网格对象的范围内,根据网格对象从3D纹理读取空间预探索信息计算对应位置的球体体积,根据步骤7.2中得到的最小半径为MinRadius,

球体体积

累计遮挡体积,除以总的像素射线空间体积得到真实过渡阴影;

Shadow=(∑Volume)/TotalVolume;

其中,TotalVolume等同于上述的ConeVolume。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏艾佳家居用品有限公司,未经江苏艾佳家居用品有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010057152.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top