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

摘要:

权利要求书:

1.一种利用可见性插值实现三维场景间接光照效果近似绘制的方法, 其特征在于:首先利用双向反射阴影图和重要性采样技术,根据待绘制三维场景模型创建在间接光照绘制过程中实际使用的间接光源集合A001;然后,把相机放到视点位置,按照正常的视点观察参数绘制三维场景,计算得到每个可视场景点的空间位置A002,并把所有空间位置A002存放在二维数组A003中;对二维数组A003进行降采样得到二维数组A004,对于间接光源集合A001中的每个间接光源A005,判断间接光源A005与二维数组A004中的每个空间位置A002之间是否直接可视,如果直接可视,把与之对应的可见性值设置为1,否则把与之对应的可见性值设置为0,把二维数组A004中的所有空间位置A002对应的可见性值保存在二维数组A006中;对于间接光源集合A001中的每个间接光源A005,计算在不考虑几何物体遮挡时的间接光源A005对二维数组A003中的每个空间位置A002的光照贡献A007,利用二维双线性插值技术根据二维数组A006的内容插值计算出间接光源A005与二维数组A003中的每个空间位置A002之间的可见性值VIS,间接光源A005对二维数组A003中的每个空间位置A002的实际光照贡献IndI等于光照贡献A007与可见性值VIS之乘积;对于二维数组A003中的每个空间位置A002,累加间接光源集合A001中的每个间接光源A005对空间位置A002的实际光照贡献IndI就得到空间位置A002的总间接光照结果;具体实现步骤如下:步骤S101:利用双向反射阴影图和重要性采样技术,根据待绘制三维场景模型创建在间接光照绘制过程中实际使用的间接光源集合A001;

步骤S102:把相机放到视点位置,按照正常的视点观察参数绘制三维场景,计算得到每个可视场景点的空间位置A002,并把所有空间位置A002存放在二维数组A003中;可视场景点就是从视点位置透过虚拟像素平面的像素能直接看到的场景点,二维数组A003的行数等于虚拟像素平面的像素行数Nr,二维数组A003的列数等于虚拟像素平面的像素列数Nc;二维数组A003的每个元素与虚拟像素平面的各个像素一一对应;

步骤S103:在计算机系统的存储器中创建一个包含 行、 列的二维数

组A004,其中 表示对x进行向上取整,n为一个正奇数表示降采样倍数,n < Nr且n < Nc;把二维数组A003的第 行、第 列的元素赋值给二维数组A004的第i行、第j列的元素,其中i = 1, 2, ⋯,  −1,j = 1, 2, ⋯, −1, 表示对x进行向下取整;如果 ,则令Idr =   + +1,否则令Idr = Nr;如果 ,

则令 ,否则令Idc = Nc;把二维数组A003的第

Idr行、第 列的元素赋值给二维数组A004的第 行、第j列

的元素,其中 ;把二维数组A003的第

行、第Idc列的元素赋值给二维数组A004的第i行、第 列的元素,其中

;把二维数组A003的第Idr行、第Idc列的元素赋值给二维数组A004

的第 行、第 列的元素;

步骤S104:在计算机系统的存储器中创建一个包含Nr行、Nc列的二维数组IndLS,把二维数组IndLS的每个元素赋值为0,二维数组IndLS的元素与二维数组A003的元素一一对应,二维数组IndLS用于保存二维数组A003中的元素对应的空间位置A002的总间接光照结果;对于间接光源集合A001中的每个间接光源A005,做如下操作:步骤S104-1:在计算机系统的存储器中创建一个包含 行、 列的二维数

组A006;二维数组A006的元素与二维数组A004的元素一一对应;对于二维数组A004中的每个元素B003,计算元素B003在二维数组A004中对应的行号row和列号col,做如下操作:① 连接元素B003对应的空间位置A002与间接光源A005对应的空间位置B004,确定一条线段B005,判断线段B005与三维场景中的几何物体之间是否有除线段B005的两个端点之外的交点,如果有,则把二维数组A006的第row行、第col列的元素赋值为0,否则把二维数组A006的第row行、第col列的元素赋值为1;

② 计算元素B003对应的空间位置A002在视点坐标系中的坐标vCOR;视点坐标系由u、v、w三个正交的方向定义,视点坐标系的原点在视点位置,w方向为位于视点处的相机的正前方向,v方向为位于视点处的相机的竖直向上方向;

步骤S104-2:对于二维数组A003中的每个元素B006,做如下操作:

① 计算在不考虑几何物体遮挡时的间接光源A005对元素B006对应的空间位置A002产生的光照贡献A007;

② 二维数组A006的各个元素与二维数组A004的各个元素对应的空间位置A002的坐标vCOR的u和v分量共同定义了二维可见性函数V(u, v)的离散采样结果B007,二维数组A006的各个元素的值为二维可见性函数V(u, v)在特定的u和v位置处的采样值;计算元素B006对应的空间位置A002在视点坐标系中的坐标vCOR2;令s2等于坐标vCOR2的u分量值,t2等于坐标vCOR2的v分量值;根据离散采样结果B007,如果s2和t2在离散采样结果B007的u和v坐标的采样范围内,则利用二维双线性插值技术计算V(u = s2, v = t2)的值,否则在离散采样结果B007中搜索离(u = s2, v = t2)最近的采样点SP,把采样点SP对应的二维可见性函数V(u, v)的值作为V(u = s2, v = t2)的近似值;令变量DSI等于光照贡献A007与V(u = s2, v = t2)的值之乘积;

③ 计算元素B006在二维数组A003中的行号i2和列号j2;先把变量BUF赋值为二维数组IndLS的第i2行、第j2列的元素的值,再把二维数组IndLS的第i2行、第j2列的元素赋值为变量BUF的值与变量DSI的值之和;

步骤S105:用标准的阴影映射方法绘制三维场景的直接光照结果,把直接光照结果与二维数组IndLS中保存的总间接光照结果加在一起就得到全局光照结果,最后把全局光照结果转换成像素颜色值,输出到三维场景画面图像文件中。