欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017105348062
申请人: 长春理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,其特征在于:

把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点和光线A001一一对应;首先,针对每个可视场景点B001,按均匀分布在面光源上随机地产生nls个光源采样点,计算每个光源采样点与可视场景点B001之间的可见性并作记录;然后,对每个可视场景点B001,找到与之对应的虚拟像素平面上的像素B002,对于每个到像素B002的距离小于Dpix的虚拟像素平面上的像素B003,如果像素B003对应的可视场景点B004到视点的距离及其所在表面的法向量与可视场景点B001到视点的距离及其所在表面的法向量之间的差异小于给定阈值,则标记可视场景点B004与可视场景点B001为同一个

2 2 1/2

几何对象表面上的邻近点;Dpix > 0;像素B003到像素B002的距离定义为(ΔI+ΔJ) ,ΔI为像素B003在虚拟像素平面上的行号和像素B002在虚拟像素平面上的行号之差,ΔJ为像素B003在虚拟像素平面上的列号和像素B002在虚拟像素平面上的列号之差;对每个可视场景点B001,根据可视场景点B001及与其在同一个几何对象表面上的所有邻近可视场景点对应的光源采样点及相应的可见性来估计可视场景点B001的直接光照值;具体实现步骤如下:提供一种数据结构LSPD,用于存储与面光源采样点相关的数据;数据结构LSPD包括光源采样点的空间位置Pls和光源采样点的可见性Vls两个成员变量;

1)为每个可视场景点按均匀分布在面光源上随机地产生nls个光源采样点,并计算光源采样点与对应的可视场景点之间的可见性,具体步骤如下:

步骤Step101:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点对应了虚拟像素平面上的一个唯一的像素;

步骤Step102:创建一个包含M行、N列元素的数组LS,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组LS的每个元素存储一个列表C001,列表C001的每个元素存储一个数据结构LSPD类型的变量;令数组LS的每个元素存储的列表C001为空;数组LS的每个元素和虚拟像素平面上的像素一一对应;

步骤Step103:对每条与三维场景的几何对象相交的光线A001对应的可视场景点B001,执行如下操作:

按均匀分布在面光源上随机地产生nls个光源采样点C002;在计算机存储器中创建nls个数据结构LSPD类型的变量,其与nls个光源采样点C002一一对应;把每个光源采样点C002的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置Pls成员变量;对于每个光源采样点C002,判断从光源采样点C002的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性Vls成员变量为0,否则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性Vls成员变量为1;把nls个光源采样点C002对应的nls个数据结构LSPD类型的变量添加到可视场景点B001对应的虚拟像素平面上的像素对应的数组LS的元素存储的列表C001中;

2)估计每个可视场景点的直接光照值,并绘制出三维场景的直接光照效果,具体步骤如下:

步骤Step201:创建一个包含M行、N列元素的数组ILU,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组ILU的每个元素与虚拟像素平面上的像素一一对应,数组ILU的每个元素用于保存虚拟像素平面上的像素对应的可视场景点的直接光照值;令数组ILU的每个元素的值为背景色对应的光照值;

步骤Step202:对每个可视场景点B001,执行如下操作:

步骤Step202-1:找到可视场景点B001对应的虚拟像素平面上的像素B002;在虚拟像素平面上找出到像素B002的距离小于Dpix的所有像素B003并把它们保存到列表C003中,列表C003中不包括像素B002;

步骤Step202-2:在计算机存储器中创建一个列表LCS来存储一系列数据结构LSPD类型的变量,令列表LCS为空;把可视场景点B001对应的虚拟像素平面上的像素B002对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中;对列表C003中的每个像素C004,执行如下操作:如果从视点出发穿过像素C004的光线A001与三维场景的几何对象有交,则找到像素C004对应的可视场景点C005,可视场景点C005到视点的距离为d1、可视场景点B001到视点的距离为d2、可视场景点C005所在表面的归一化法向量为V1、可视场景点B001所在表面的归一化法向量为V2,如果|d1− d2| < Td且V1∙V2 > Tv,则把可视场景点C005对应的虚拟像素平面上的像素C004对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中,V1∙V2表示V1和V2的点乘;Td表示距离差异阈值,Tv表示法向量方向差异阈值;

步骤Step202-3:令ns1为列表LCS中存储的数据结构LSPD类型的变量个数;如果ns1 ≥ NUM,则转步骤Step202-4,否则按均匀分布在面光源上随机地产生NUM − ns1个光源采样点C006,在计算机存储器中创建NUM − ns1个数据结构LSPD类型的变量,其与NUM − ns1个光源采样点C006一一对应,把每个光源采样点C006的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置Pls成员变量;对于每个光源采样点C006,判断从光源采样点C006的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性Vls成员变量为0,否则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性Vls成员变量为1;把NUM − ns1个光源采样点C006对应的NUM − ns1个数据结构LSPD类型的变量添加到列表LCS中;

步骤Step202-4:根据列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的空间位置Pls成员变量的值来确定可视场景点B001的蒙特卡洛直接光照值估计所需的光源采样点,用列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的可见性Vls成员变量的值作为对应的光源采样点对可视场景点B001的可见性近似值,并使用蒙特卡洛直接光照值估计技术来计算可视场景点B001的直接光照近似值C007;

步骤Step202-5:计算可视场景点B001对应的虚拟像素平面上的像素B002在虚拟像素平面上所在的行号irow和列号jcol;把数组ILU的第irow行、第jcol列的元素赋值为直接光照近似值C007;

步骤Step203:把数组ILU的每个元素保存的直接光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。