[发明专利]一种包含模糊反射效果的3D虚拟场景的左右眼立体画面绘制方法无效
申请号: | 201110225275.1 | 申请日: | 2011-08-08 |
公开(公告)号: | CN102306401A | 公开(公告)日: | 2012-01-04 |
发明(设计)人: | 陈纯毅;杨华民;范静涛;蒋振刚;李岩芳;冯欣;权巍;张育力;薛耀红;宋小龙;曲福恒;从立钢 | 申请(专利权)人: | 长春理工大学 |
主分类号: | G06T19/00 | 分类号: | G06T19/00;G06T15/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 130022 *** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种包含模糊反射效果的3D虚拟场景的左右眼立体画面绘制方法,属于真实感三维虚拟场景绘制技术领域。传统的三维虚拟场景的左右眼立体画面绘制方法采用分别独立绘制左右眼虚拟相机的图像画面的方式实现立体画面的绘制。本发明方法在双核CPU上分别同时执行左右眼虚拟相机的图像画面的绘制程序,左眼虚拟相机的图像画面从第一行像素开始绘制,右眼虚拟相机的图像画面从最后一行像素开始绘制,保证了左右眼虚拟相机的图像画面绘制过程中的入射辐射亮度计算结果的可重用性;通过基于梯度的插值方法,在绘制过程中重用了入射辐射亮度计算结果。利用本发明方法绘制三维虚拟场景立体画面比传统方法快20%~35%。 | ||
搜索关键词: | 一种 包含 模糊 反射 效果 虚拟 场景 右眼 立体 画面 绘制 方法 | ||
【主权项】:
1.一种包含模糊反射效果的3D虚拟场景的左右眼立体画面绘制方法,其特征在于,所需的设备、数据结构以及实现步骤如下:本发明的目的在于提供一种包含模糊反射效果的3D虚拟场景的左右眼立体画面绘制方法;本发明方法需要的设备包括:带有双核CPU和共享内存的计算机系统;当左眼虚拟相机(101)和右眼虚拟相机(102)能同时拍摄到3D虚拟场景中的物体(105)的表面上的点p1、点p2和点p3时,点p1、点p2和点p3的光照值将分别保存在左眼虚拟相机(101)的像平面(103)和右眼虚拟相机(102)的像平面(104)上的像素中;首先将3D虚拟场景中的漫反射和模糊反射表面的双向反射分布函数(Bi-directional Reflectance Distribution Function,缩写为BRDF)展开成低阶半球谐和基函数(Hemispherical Harmonics Basis Function,缩写为HSHBF)的累加和的形式,把各阶HSHBF的系数保存在共享内存中并与该表面的BRDF相关联;然后在双核CPU上同时绘制左眼虚拟相机(101)的图像画面和右眼虚拟相机(102)的图像画面,将漫反射和模糊反射表面点的入射辐射亮度展开成低阶HSHBF的累加和的形式,并保存在入射辐射亮度缓存中,通过基于梯度的入射辐射亮度插值计算,实现入射辐射亮度计算结果的重用,从而提高3D虚拟场景的左右眼立体画面的绘制速度;本发明方法提供一种入射辐射亮度记录项数据结构,其包括位置分量、局部坐标系分量、HSHBF展开系数分量、HSHBF展开系数平移梯度分量等成员变量;本发明方法将入射辐射亮度记录项保存在位于共享内存中的入射辐射亮度缓存中;为了便于根据空间位置检索入射辐射亮度缓存中的入射辐射亮度记录项和向入射辐射亮度缓存中添加新的入射辐射亮度记录项,入射辐射亮度缓存使用三维空间均匀网格数据结构;根据给定的三维空间位置,可以直接检索出对应网格中的所有入射辐射亮度记录项,以及向网格中添加新的入射辐射亮度记录项;本发明方法的第一部分计算3D虚拟场景中的所有漫反射和模糊反射表面的BRDF的低阶HSHBF展开系数,具体步骤如下:步骤S101:设置最低HSHBF阶数nl、最高HSHBF阶数nh和HSHBF展开的误差阈值Et;步骤S102:将漫反射看作是模糊反射的特例,对于3D虚拟场景中的各漫反射和模糊反射表面的BRDF(A101),标记BRDF(A101)能表示成低阶HSHBF的累加和的形式,令nv=nl,做如下计算:①按余弦分布对正半球空间进行空间角度采样,在每个角度采样
处计算(其中θo为极角分量,
为方位角分量):
l=0,1,...,nv,m=-l,...,l,其中
为BRDF(A101)在出射角为
入射角为
时的值,
为一个半球谐和基函数,
为BRDF(A101)在角度采样
上与
相关联的HSHBF展开系数;②计算
如果
且nv<nh,则nv=nv+1,转①;如果
且nv=nh,则标记BRDF(A101)不能表示成低阶HSHBF的累加和的形式;如果
则在共享内存中保存所有HSHBF展开系数
并将其与BRDF(A101)及角度采样
相关联;本发明方法的第二部分在带有双核CPU和共享内存的计算机系统上并行地绘制左右眼虚拟相机的图像画面,通过对已经计算出的入射辐射亮度值进行缓存并利用基于梯度的插值方法,实现入射辐射亮度计算结果的复用,以提高左右眼虚拟相机的图像画面的绘制速度,具体步骤如下:步骤S201:清空共享内存中的入射辐射亮度缓存;步骤S202:在第一个CPU计算内核上运行左眼虚拟相机的图像画面的绘制程序,同时在第二个CPU计算内核上运行右眼虚拟相机的图像画面的绘制程序;左眼虚拟相机的图像画面的绘制程序执行步骤S203,右眼虚拟相机的图像画面的绘制程序执行步骤S204;步骤S203:令I=1,J=1,执行如下计算:①从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的第I行、J列像素发射主光线(B01),测试主光线(B01)与3D虚拟场景的表面是否相交;如果不相交,则将主光线(B01)对应的像素的颜色设置为背景光照值,转⑦,否则计算最近的交点位置pi,利用蒙特卡洛方法对光源进行采样,计算交点pi处的直接光照值;②如果交点pi所在表面的反射类型为镜面反射,则递归跟踪镜面反射二次光线,计算镜面反射间接光照值;如果交点pi所在表面的反射类型为漫反射,则转③;如果交点pi所在表面的反射类型为模糊反射,则在共享内存中查询交点pi所在表面的BRDF是否能表示成低阶HSHBF的累加和的形式,若能,则转③,否则使用蒙特卡洛方法对交点pi的局部坐标系(Ui,Vi,Ni)的正Ni半球空间进行重要性采样(Ni与交点pi的法线方向同向),直接计算模糊反射间接光照值,转⑥;③对入射辐射亮度缓存进行访存加锁操作;从入射辐射亮度缓存中查找满足如下条件的入射辐射亮度记录项(B02):条件A:
其中p为入射辐射亮度记录项(B02)中的位置分量成员变量,n为入射辐射亮度记录项(B02)的位置分量成员变量所表示的表面点处的法线向量,ni为交点pi的单位法线向量,Ri为交点pi到所有可见对象的谐和函数平均距离,a为预先给定的精度阈值;对入射辐射亮度缓存进行访存解锁操作;④将查找到的所有满足条件A的入射辐射亮度记录项(B02)放入一个集合S中,如果S非空,则转⑤,否则利用蒙特卡洛方法对交点pi的局部坐标系(Ui,Vi,Ni)的正Ni半球空间进行空间角度采样,计算各角度采样方向上的入射辐射亮度值
k表示角度采样编号,根据它们计算入射辐射亮度的HSHBF展开系数
及其平移梯度
其中l=0,1,...,nv,m=-l,...,l,N为角度采样数;创建一个新的入射辐射亮度记录项,其位置分量成员变量赋值为pi,局部坐标系分量成员变量赋值为(Ui,Vi,Ni),HSHBF展开系数分量成员变量赋值为
HSHBF展开系数平移梯度分量成员变量赋值为
对入射辐射亮度缓存进行访存加锁操作;将该入射辐射亮度记录项添加到入射辐射亮度缓存中的与位置pi相对应的网格单元中,同时将其加入集合S中;对入射辐射亮度缓存进行访存解锁操作;⑤根据集合S中的各元素的局部坐标系分量成员变量,旋转各元素的局部坐标系以便与交点pi的局部坐标系对齐,利用基于梯度的插值方法,根据集合S中的入射辐射亮度记录项插值计算交点pi的入射辐射亮度的HSHBF展开系数
计算主光线(B01)在交点pi的局部坐标系(Ui,Vi,Ni)的正Ni半球空间中所对应的角度
将
的值作为交点pi的模糊反射间接光照值,其中
为交点pi所在表面的BRDF的HSHBF展开系数;⑥将交点pi处的直接光照值和反射间接光照值相加作为交点pi的最终光照值计算结果;⑦J=J+1,如果J>Npix,则J=1,I=I+1,其中Npix表示左眼虚拟相机的图像画面的像素列数;⑧如果I<=Mpix,其中Mpix表示左眼虚拟相机的图像画面的像素行数,则转①,否则转步骤S205;步骤S204:令I′=Mpix,J′=Npix,其中Mpix表示右眼虚拟相机的图像画面的像素行数,Npix表示右眼虚拟相机的图像画面的像素列数,执行如下计算:①从右眼虚拟相机光心位置向右眼虚拟相机的像平面上的第I′行、J′列像素发射主光线(B03),测试主光线(B03)与3D虚拟场景的表面是否相交;如果不相交,则将主光线(B03)对应的像素的颜色设置为背景光照值,转⑦,否则计算最近的交点位置p′i,利用蒙特卡洛方法对光源进行采样,计算交点p′i处的直接光照值;②如果交点p′i所在表面的反射类型为镜面反射,则递归跟踪镜面反射二次光线,计算镜面反射间接光照值;如果交点p′i所在表面的反射类型为漫反射,则转③;如果交点p′i所在表面的反射类型为模糊反射,则在共享内存中查询交点p′i所在表面的BRDF是否能表示成低阶HSHBF的累加和的形式,若能,则转③,否则使用蒙特卡洛方法对交点p′i的局部坐标系(U′i,V′i,N′i)的正N′i半球空间进行重要性采样(N′i与交点p′i的法线方向同向),直接计算模糊反射间接光照值,转⑥;③对入射辐射亮度缓存进行访存加锁操作;从入射辐射亮度缓存中查找满足如下条件的入射辐射亮度记录项(B04):条件A′:
p′为入射辐射亮度记录项(B04)中的位置分量成员变量,n′为入射辐射亮度记录项(B04)的位置分量成员变量所表示的表面点处的法线向量,n′i为交点p′i的单位法线向量,Ri为交点p′i到所有可见对象的谐和函数平均距离,a为预先给定的精度阈值;对入射辐射亮度缓存进行访存解锁操作;④将查找到的所有满足条件A′的入射辐射亮度记录项(B04)放入一个集合S′中,如果S′非空,则转⑤,否则利用蒙特卡洛方法对交点p′i的局部坐标系(U′i,V′i,N′i)的正N′i半球空间进行空间角度采样,计算各角度采样方向上的入射辐射亮度值
k表示角度采样编号,根据它们计算入射辐射亮度的HSHBF展开系数
及其平移梯度
其中l=0,1,...,nv,m=-l,...,l,N为角度采样数;创建一个新的入射辐射亮度记录项,其位置分量成员变量赋值为p′i,局部坐标系分量成员变量赋值为(U′i,V′i,N′i),HSHBF展开系数分量成员变量赋值为
HSHBF展开系数平移梯度分量成员变量赋值为
对入射辐射亮度缓存进行访存加锁操作;将该入射辐射亮度记录项添加到入射辐射亮度缓存中的与位置p′i相对应的网格单元中,同时将其加入集合S′中;对入射辐射亮度缓存进行访存解锁操作;⑤根据集合S′中的各元素的局部坐标系分量成员变量,旋转各元素的局部坐标系以便与交点p′i的局部坐标系对齐,利用基于梯度的插值方法,根据集合S′中的入射辐射亮度记录项插值计算交点p′i的入射辐射亮度的HSHBF展开系数
计算主光线(B03)在交点p′i的局部坐标系(U′i,V′i,N′i)的正N′i半球空间中所对应的角度
将
的值作为交点p′i的模糊反射间接光照值,其中
为交点p′i所在表面的BRDF的HSHBF展开系数;⑥将交点p′i处的直接光照值和反射间接光照值相加作为交点p′i的最终光照值计算结果;⑦J′=J′-1,如果J′<1,则J′=Npix,I′=I′-1;⑧如果I′≥1,则转①,否则转步骤S205;步骤S205:左右眼虚拟相机的图像画面绘制完毕。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学,未经长春理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110225275.1/,转载请声明来源钻瓜专利网。
- 上一篇:一种腐皮肉制品的制作方法
- 下一篇:无线通信系统中的方法和设备