[发明专利]基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法有效
申请号: | 201811305202.1 | 申请日: | 2018-11-05 |
公开(公告)号: | CN109493413B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 陈纯毅;杨华民;蒋振刚;曲福恒;李华;权巍 | 申请(专利权)人: | 长春理工大学 |
主分类号: | G06T15/50 | 分类号: | G06T15/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 130022 *** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 自适应 虚拟 光源 采样 三维 场景 全局 光照 效果 绘制 方法 | ||
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转换成可以在显示器上显示的虚拟三维场景图像画面,并保存在计算机系统的磁盘图像文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学,未经长春理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811305202.1/1.html,转载请声明来源钻瓜专利网。