[发明专利]基于空间复用的真实感虚拟3D场景光场投影图像绘制方法有效

专利信息
申请号: 201711175280.X 申请日: 2017-11-22
公开(公告)号: CN107909647B 公开(公告)日: 2020-09-15
发明(设计)人: 陈纯毅;杨华民;蒋振刚;姜会林 申请(专利权)人: 长春理工大学
主分类号: G06T17/00 分类号: G06T17/00
代理公司: 吉林长春新纪元专利代理有限责任公司 22100 代理人: 王薇
地址: 130022 *** 国省代码: 吉林;22
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开一种基于空间复用的真实感虚拟3D场景光场投影图像绘制方法,其特征在于:在绘制虚拟相机阵列拍摄的各幅虚拟3D场景画面时,通过对光照计算结果进行空间复用来加快3D场景画面的绘制速度。对于面光源照射下的虚拟3D场景的间接光照结果,该方法使用光子映射技术来实现在绘制各个虚拟相机拍摄画面时对间接光照计算结果的空间复用。对于面光源照射下的虚拟3D场景的直接光照结果,该方法对面光源采样点的可见性计算结果进行空间复用。
搜索关键词: 基于 空间 真实感 虚拟 场景 投影 图像 绘制 方法
【主权项】:
基于空间复用的真实感虚拟3D场景光场投影图像绘制方法,其特征在于:首先使用光子跟踪技术创建光子图,接着计算虚拟相机阵列中的所有虚拟相机对应的可视场景点,并把所有可视场景点保存在一个列表中,然后计算列表中的所有可视场景点的全局光照值,具体实现步骤如下:提供一种数据结构TVSPT,用于存储与可视场景点相关的数据;数据结构TVSPT包含可视场景点所在位置vsPos、可视场景点所在位置的几何对象表面的法向量vsNrm、可视场景点对应的虚拟相机编号nCam、可视场景点对应的虚拟相机的虚拟像素平面上的像素的行号vnRow、可视场景点对应的虚拟相机的虚拟像素平面上的像素的列号vnCol、从可视场景点散射进入对应虚拟相机的光线的光亮度vsL、可视场景点对应的光源采样点位置vsQ、可视场景点对应的光源可见性vsV共八个成员变量;提供一种数据结构TALSPT,用于存储光源采样点相关数据;数据结构TALSPT包含光源采样点位置lsPos、光源可见性lsV共两个成员变量;1)使用光子跟踪技术创建光子图,具体方法如下:首先在计算机的存储器中创建一个不包含任何光子记录的光子图PMap;使用光子跟踪技术从面光源向三维场景发射Npt个光子,跟踪这Npt个光子在3D场景中传播时与几何对象发生碰撞而被散射的过程;对于每个光子A002,在跟踪光子A002在3D场景中传播时与几何对象发生碰撞而被散射的过程中,从光子A002第二次与3D场景几何对象发生碰撞开始,每发生一次碰撞就向光子图PMap中添加一个光子记录,每个光子记录包括光子与3D场景几何对象的碰撞位置PPos、光子在碰撞位置PPos处的归一化入射方向向量PVi,光子在碰撞位置PPos处的入射功率PW共三个分量;2)计算包含Ncamr×Ncamc个虚拟相机的虚拟相机阵列中的每个虚拟相机的虚拟像素平面上的每个像素对应的可视场景点,具体方法如下:步骤Step201:在计算机的存储器中创建一个列表Ltvspt,列表Ltvspt的每个元素用于存储一个数据结构TVSPT类型的变量,令列表Ltvspt为空;步骤Step202:对于包含Ncamr×Ncamc个虚拟相机的虚拟相机阵列中的每个虚拟相机A003,做如下操作:根据虚拟相机A003的视点位置、视口朝向、视场角和相机分辨率参数,利用光线投射技术,从虚拟相机A003的视点位置发射穿过虚拟相机A003的虚拟像素平面上的每个像素中心点的光线A004,光线A004与虚拟相机A003的虚拟像素平面上的像素一一对应;对虚拟相机A003的虚拟像素平面上的每个像素对应的光线A004,执行如下操作:判断光线A004与3D场景的几何对象是否相交,如果光线A004与3D场景的几何对象相交,则进一步执行如下两个子步骤:步骤Step202‑1:计算光线A004与3D场景的几何对象的离虚拟相机A003的视点位置最近的交点A005,交点A005是一个可视场景点,创建一个数据结构TVSPT类型的变量A006,变量A006对应了一条唯一的光线A004,把变量A006的可视场景点所在位置vsPos成员变量赋值为交点A005的位置,把变量A006的可视场景点所在位置的几何对象表面的法向量vsNrm成员变量赋值为交点A005处的几何对象表面法向量,把变量A006的可视场景点对应的虚拟相机编号nCam成员变量赋值为虚拟相机A003在虚拟相机阵列中的编号,把变量A006的可视场景点对应的虚拟相机的虚拟像素平面上的像素的行号vnRow成员变量赋值为变量A006对应的光线A004对应的虚拟相机A003的虚拟像素平面上的像素的行号,把变量A006的可视场景点对应的虚拟相机的虚拟像素平面上的像素的列号vnCol成员变量赋值为变量A006对应的光线A004对应的虚拟相机A003的虚拟像素平面上的像素的列号,把变量A006的从可视场景点散射进入对应虚拟相机的光线的光亮度vsL成员变量赋值为0;步骤Step202‑2:把变量A006添加到列表Ltvspt中;3)计算经每个可视场景点散射进入对应的虚拟相机的光线的光亮度,具体方法如下:步骤Step301:对列表Ltvspt中的每个元素B001,执行如下操作:按均匀分布在面光源上产生一个随机光源采样点B002;把元素B001存储的数据结构TVSPT类型的变量的可视场景点对应的光源采样点位置vsQ成员变量赋值为光源采样点B002所在位置;判断从光源采样点B002所在位置到元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置的线段B003与3D场景的几何对象是否相交,如果相交,则把元素B001存储的数据结构TVSPT类型的变量的可视场景点对应的光源可见性vsV成员变量赋值为0,否则把元素B001存储的数据结构TVSPT类型的变量的可视场景点对应的光源可见性vsV成员变量赋值为1;步骤Step302:以数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量的值作为主键值,把列表Ltvspt中的所有元素存储的数据结构TVSPT类型的变量保存在一个kd树空间数据结构C001中;步骤Step303:对列表Ltvspt中的每个元素B001,执行如下子步骤:步骤Step303‑1:在计算机存储器中创建一个列表C002,列表C002的每个元素存储一个数据结构TVSPT类型的变量,令列表C002为空;从kd树空间数据结构C001中找出满足条件COND1的所有数据结构TVSPT类型的变量,并把这些被找出的数据结构TVSPT类型的变量添加到列表C002中;条件COND1为:kd树空间数据结构C001中存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置到元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置的距离小于Td;步骤Step303‑2:对列表C002中的每个元素C003,执行如下操作:步骤Step303‑2‑1:令Vs代表元素C003存储的数据结构TVSPT类型的变量的可视场景点所在位置的几何对象表面的法向量vsNrm成员变量表示的向量,令Vr代表元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置的几何对象表面的法向量vsNrm成员变量表示的向量;如果(Vs·Vr)/(|Vs|·|Vr|)小于Tv,则从列表C002中删除元素C003,并转步骤Step303‑2‑2,|Vs|表示Vs的长度,|Vr|表示Vr的长度;令P1代表元素C003存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置,令P2代表元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置,令Ql代表元素C003存储的数据结构TVSPT类型的变量的可视场景点对应的光源采样点位置vsQ成员变量表示的位置,令Vl1代表从Ql指向P1的向量,令Vl2代表从Ql指向P2的向量;如果(Vl1·Vl2)/(|Vl1|·|Vl2|)小于Tl,则从列表C002中删除元素C003,|Vl1|表示Vl1的长度,|Vl2|表示Vl2的长度;步骤Step303‑2‑2:针对元素C003的操作结束;步骤Step303‑3:在计算机的存储器中创建一个列表C004,列表C004的每个元素存储一个数据结构TALSPT类型的变量,令列表C004为空;对列表C002中的每个元素C005,执行如下操作:创建一个数据结构TALSPT类型的变量C006,把元素C005存储的数据结构TVSPT类型的变量的可视场景点对应的光源采样点位置vsQ成员变量的值赋给变量C006的光源采样点位置lsPos成员变量,把元素C005存储的数据结构TVSPT类型的变量的可视场景点对应的光源可见性vsV成员变量的值赋给变量C006的光源可见性lsV成员变量;把变量C006添加到列表C004中;步骤Step303‑4:令NC004表示列表C004的元素个数;如果NC004小于Nals,则按均匀分布在面光源上产生Nals‑NC004个随机光源采样点C007,同时在计算机的存储器中创建Nals‑NC004个数据结构TALSPT类型的变量C008,Nals‑NC004个随机光源采样点C007和Nals‑NC004个数据结构TALSPT类型的变量C008一一对应,把每个随机光源采样点C007所在位置赋值给与之对应的变量C008的光源采样点位置lsPos成员变量;判断从每个随机光源采样点C007到元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置的线段与3D场景的几何对象是否相交,如果相交,把随机光源采样点C007对应的变量C008的光源可见性lsV成员变量赋值为0,否则把随机光源采样点C007对应的变量C008的光源可见性lsV成员变量赋值为1;步骤Step303‑5:令VSPOINT代表元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量表示的位置,令NCam代表元素B001存储的数据结构TVSPT类型的变量的可视场景点对应的虚拟相机编号nCam成员变量表示的编号;根据光子图PMap和元素B001存储的数据结构TVSPT类型的变量的可视场景点所在位置vsPos成员变量的值、可视场景点所在位置的几何对象表面的法向量vsNrm成员变量的值,使用最终聚集技术计算面光源发出的光照先经其他3D场景点散射到VSPOINT位置后,再经VSPOINT位置散射进入第NCam个虚拟相机的光亮度D001;根据列表C004中存储的所有数据结构TALSPT类型的变量的光源采样点位置lsPos成员变量的值来确定蒙特卡罗直接光照亮度值估计所需的光源采样点,用列表C004中存储的所有数据结构TALSPT类型的变量的光源可见性lsV成员变量的值作为对应光源采样点对VSPOINT位置的可见性近似值,使用蒙特卡罗直接光照亮度值估计技术来计算面光源发出的光照直接经VSPOINT位置散射进入第NCam个虚拟相机的光亮度D002;把光亮度D001与光亮度D002之和赋值给元素B001存储的数据结构TVSPT类型的变量的从可视场景点散射进入对应虚拟相机的光线的光亮度vsL成员变量;4)根据列表Ltvspt中的元素,生成光场投影图像,具体方法如下:对于包含Ncamr×Ncamc个虚拟相机的虚拟相机阵列中的每个虚拟相机A003,做如下操作:步骤Step401:在计算机的存储器中创建一个包含Npixr行、Npixc列元素的二维数组ILLUMIN,Npixr为虚拟相机A003的虚拟像素平面上的像素行数,Npixc为虚拟相机A003的虚拟像素平面上的像素列数;数组ILLUMIN的元素与虚拟相机A003的虚拟像素平面上的像素一一对应;数组ILLUMIN用于存储经虚拟相机A003的虚拟像素平面上的像素对应的可视场景点散射进入虚拟相机A003的光亮度;把数组ILLUMIN的每个元素赋值为0;计算虚拟相机A003在虚拟相机阵列中的编号IDCam;在计算机的存储器中创建一个列表D003,令列表D003为空;把列表Ltvspt中的满足条件COND2的所有元素D004放到列表D003中;条件COND2为:元素D004存储的数据结构TVSPT类型的变量的可视场景点对应的虚拟相机编号nCam等于编号IDCam;对列表D003的每个元素D005,做如下操作:令IdR代表元素D005存储的数据结构TVSPT类型的变量的可视场景点对应的虚拟相机的虚拟像素平面上的像素的行号vnRow成员变量表示的行号,令IdC代表元素D005存储的数据结构TVSPT类型的变量的可视场景点对应的虚拟相机的虚拟像素平面上的像素的列号vnCol成员变量表示的列号,把元素D005存储的数据结构TVSPT类型的变量的从可视场景点散射进入对应虚拟相机的光线的光亮度vsL成员变量的值赋给数组ILLUMIN的第IdR行、第IdC列元素;步骤Step402:把数组ILLUMIN的每个元素保存的光亮度值转换成虚拟相机A003拍摄3D场景得到的画面图像像素颜色值,并把画面图像像素颜色值保存到与虚拟相机A003相对应的图像文件中,该图像文件存储的就是一幅光场投影图像。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学,未经长春理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201711175280.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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