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

摘要:

权利要求书:

1.基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法,其特征在于:本方法涉及一种数据结构VLIGHT,用于存储虚拟点光源数据,数据结构VLIGHT包含虚拟点光源所在位置Pos、虚拟点光源所在位置的表面法向量Nv、虚拟点光源所在位置的反射光通量Φ共三个成员变量;本方法需要执行以下操作:步骤Step101:把相机放在主光源位置处,使用光栅化技术绘制虚拟三维场景,从而创建反射阴影图A001;

步骤Step102:在计算机系统的存储器中创建一个列表LISTSP,令列表LISTSP为空;

步骤Step103:把相机放在视点位置处,用主光源照射虚拟三维场景,按照视点观察参数使用光栅化与阴影映射技术绘制虚拟三维场景,得到虚拟三维场景可视区域在主光源照射下的直接光照图像A002;直接光照图像A002的每个像素存储与之对应的可视场景点A003的直接光照值;在使用光栅化与阴影映射技术绘制虚拟三维场景的过程中,需要利用阴影图测试直接光照图像A002的每个像素对应的可视场景点A003的主光源可见性,即判断主光源与可视场景点A003之间是否直接可视,如果直接可视,则可视场景点A003的主光源可见性为1,否则可视场景点A003的主光源可见性为0;把那些主光源可见性不为1的所有可视场景点A003添加到列表LISTSP中;

步骤Step104:在计算机系统的存储器中创建一个列表LISTVL,令列表LISTVL为空;在计算机系统的存储器中创建一个列表LRSAM,令列表LRSAM为空;

步骤Step105:针对反射阴影图A001的每个像素A005,在计算机系统的存储器中创建一个数据结构VLIGHT类型的变量A006,把变量A006的虚拟点光源所在位置Pos成员变量赋值为像素A005存储的世界坐标值,把变量A006的虚拟点光源所在位置的表面法向量Nv成员变量赋值为像素A005存储的法向量值,把变量A006的虚拟点光源所在位置的反射光通量Φ成员变量赋值为像素A005存储的反射光通量值,把变量A006添加到列表LISTVL中;反射阴影图A001的像素A005与虚拟点光源一一对应;列表LISTVL的元素与虚拟点光源一一对应;

步骤Step106:在计算机系统的存储器中创建一个一维数组A007,数组A007包含的元素个数等于列表LISTVL包含的元素个数;把数组A007的所有元素都赋值为0;数组A007的元素和列表LISTVL的元素一一对应,即数组A007的第一个元素对应列表LISTVL的第一个元素,数组A007的第二个元素对应列表LISTVL的第二个元素,以此类推;

步骤Step107:针对列表LISTVL中的每个元素ELE,做如下操作:

用元素ELE中保存的数据结构VLIGHT类型的变量A006的虚拟点光源所在位置Pos成员变量、虚拟点光源所在位置的表面法向量Nv成员变量、虚拟点光源所在位置的反射光通量Φ成员变量所描述的虚拟点光源A008照射虚拟三维场景,计算虚拟点光源A008对列表LISTSP中保存的所有可视场景点A003产生的光照贡献总和A009,把光照贡献总和A009赋值给元素ELE对应的数组A007的元素;

步骤Step108:计算数组A007的所有元素的值的总和A010;针对数组A007的每个元素A011,做如下操作:

计算元素A011的值除以总和A010得到的结果A012,然后再把结果A012赋值给元素A011;

步骤Step109:把数组A007看作是一个离散概率质量函数PMF对应的数据,离散概率质量函数PMF的自变量是数组A007的元素编号index,index取值为1至N的整数,N为数组A007包含的元素个数;数组A007的第1个元素的值表示列表LISTVL的第1个元素存储的数据结构VLIGHT类型的变量A006表示的虚拟点光源对应的概率,数组A007的第2个元素的值表示列表LISTVL的第2个元素存储的数据结构VLIGHT类型的变量A006表示的虚拟点光源对应的概率,以此类推;使用反变换法根据离散概率质量函数PMF,产生NUM个统计特性服从离散概率质量函数PMF的随机整数RA,并把这NUM个随机整数RA添加到列表LRSAM中;RA为1到N范围内的整数;

步骤Step110:在计算机系统的存储器中创建一个列表ALISTVL,令列表ALISTVL为空;

针对列表LRSAM的每个元素B001,做如下操作:

令n等于元素B001的值;令VLG表示列表LISTVL的第n个元素;令vLight表示VLG存储的数据结构VLIGHT类型的变量A006;令p等于数组A007的第n个元素的值;在计算机系统的存储器中创建一个数据结构VLIGHT类型的变量B002,把vLight的虚拟点光源所在位置Pos成员变量的值赋值给变量B002的虚拟点光源所在位置Pos成员变量,把vLight的虚拟点光源所在位置的表面法向量Nv成员变量的值赋值给变量B002的虚拟点光源所在位置的表面法向量Nv成员变量,计算vLight的虚拟点光源所在位置的反射光通量Φ成员变量的值与p的比值Rt,把Rt与NUM的比值赋值给变量B002的虚拟点光源所在位置的反射光通量Φ成员变量;把变量B002添加到列表ALISTVL中;

步骤Step111:针对列表ALISTVL的每个元素C001,做如下操作:

把相机放在视点位置处,把元素C001存储的数据结构VLIGHT类型的变量B002的值描述的虚拟点光源当作一个虚拟主光源C002,用虚拟主光源C002照射虚拟三维场景,按照视点观察参数使用光栅化与阴影映射技术绘制虚拟三维场景,得到虚拟三维场景可视区域在虚拟主光源C002照射下的直接光照图像C003;直接光照图像C003与元素C001一一对应;直接光照图像C003的每个像素存储与之对应的可视场景点在虚拟主光源C002照射下的直接光照值;

步骤Step112:把列表ALISTVL的所有元素C001对应的直接光照图像C003相加在一起得到虚拟三维场景的间接光照图像C004;把直接光照图像A002与间接光照图像C004相加在一起得到虚拟三维场景的全局光照图像C005;

步骤Step113:把全局光照图像C005转换成可以在显示器上显示的虚拟三维场景图像画面,并保存在计算机系统的磁盘图像文件中。