CN102243768A - 一种三维虚拟场景立体画面的绘制方法 - Google Patents
一种三维虚拟场景立体画面的绘制方法 Download PDFInfo
- Publication number
- CN102243768A CN102243768A CN2011101629765A CN201110162976A CN102243768A CN 102243768 A CN102243768 A CN 102243768A CN 2011101629765 A CN2011101629765 A CN 2011101629765A CN 201110162976 A CN201110162976 A CN 201110162976A CN 102243768 A CN102243768 A CN 102243768A
- Authority
- CN
- China
- Prior art keywords
- derived
- virtual camera
- illumination value
- member variable
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明公开一种三维虚拟场景立体画面的绘制方法,属于真实感三维虚拟场景绘制技术领域。传统的三维虚拟场景立体画面绘制方法采用分别独立绘制左右眼虚拟相机的图像画面的方式实现立体画面的绘制。本发明方法首先绘制左眼虚拟相机的图像画面,记录从左眼虚拟相机位置向左眼虚拟相机的像平面上的像素发射的所有主光线与三维虚拟场景的面片的相交信息以及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值;在绘制右眼虚拟相机的图像画面时,基于左眼虚拟相机的图像画面的绘制结果,计算源自光源的漫反射光照值和源自环境光的漫反射光照值,避免了大量的重复光照计算,可实现15%~30%的立体画面绘制加速。
Description
技术领域
本发明属于真实感三维虚拟场景绘制技术领域,涉及一种三维虚拟场景立体画面的绘制方法。
背景技术
三维动画电影作为近年来新兴的计算机艺术,发展势头非常迅猛,已经在许多行业得到了广泛的应用。为了产生更强的视觉冲击力,目前很多三维动画电影都具有立体视觉效果。立体视觉效果的基本原理是,观众在观看动画电影时,左右眼能分别互不干扰地看到左右眼虚拟相机拍摄的图像画面,再通过人脑的合成,最终产生画面的入屏或者出屏效果。
为了提高三维动画电影画面的真实感,往往要求在绘制的图像中加入全局光照、柔和阴影等效果。使用标准的光线跟踪方法可以比较容易地绘制出全局光照效果。绘制柔和阴影效果往往需要计算绘制点处的面光源可见性,这一过程通常非常耗时。当照射三维虚拟场景的光源为面光源时,可以利用蒙特卡洛方法对面光源进行采样,以计算面光源可见性,进而绘制出柔和阴影效果。此外,如果动画电影三维虚拟场景的环境光照随空间位置变化比较明显,则需要进一步计算不同绘制点处的环境光照值;环境光照值可利用环境遮蔽体算法来计算(见2010年欧洲图形学学会出版的High Performance Graphics会议论文集中的论文《Ambient Occlusion Volumes》,作者M.McGuire)。
传统的三维虚拟场景立体画面绘制方法采用分别独立绘制左右眼虚拟相机的图像画面的方式来实现立体画面的绘制。值得注意的是,如果漫反射表面上的某点对左右眼同时可见,则根据漫反射的特点可知,经该点反射进入左右眼的实际光照值基本上相等。因此,如果已经绘制出左眼虚拟相机的图像画面,则在绘制右眼虚拟相机的图像画面时,可以利用左眼虚拟相机的图像画面的绘制结果来避免重复计算。利用这一特点,可以大大提高三维虚拟场景立体画面的绘制速度。
发明内容
本发明的目的在于提供一种三维虚拟场景立体画面的绘制方法,首先绘制左眼虚拟相机的图像画面,并记录从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的所有主光线与三维虚拟场景的面片的相交信息以及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值;在绘制右眼虚拟相机的图像画面时,利用绘制左眼虚拟相机的图像画面时记录的源自光源的漫反射光照值和源自环境光的漫反射光照值,来避免大量的重复光照计算,从而提高三维虚拟场景立体画面的绘制速度。
本发明方法提供一种光照数据记录结构,其包括源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id。
本发明方法提供一种像素位置映射结构,其包括标识成员变量tag、左眼图像像素行号成员变量Li、左眼图像像素列号成员变量Lj、右眼图像像素行号成员变量Ri、右眼图像像素列号成员变量Rj、交点处的面片索引号成员变量id。
本发明方法的第一部分绘制三维虚拟场景的左眼虚拟相机的图像画面,同时记录所有从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的主光线与三维虚拟场景中的面片的交点位置及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值,具体步骤如下:
步骤S101:创建一个光照数据记录结构类型的二维矩阵R,其包括M×N个元素,M为左眼虚拟相机的像平面上的像素行数,N为左眼虚拟相机的像平面上的像素列数,二维矩阵R中的元素与左眼虚拟相机的像平面上的像素一一对应;将二维矩阵R的每个元素的源自光源的漫反射光照值成员变量Is和源自环境光的漫反射光照值成员变量Ie初始化为0;
步骤S102:从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的每个像素发射主光线(A01),并测试主光线(A01)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(A01)对应的像素的颜色值设置为背景色,否则计算交点位置Pi,记录交点处的面片索引号ID;判断交点位置Pi所在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1,否则源自光源的漫反射光照值I1设置为0;判断交点位置Pi所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2,否则源自环境光的漫反射光照值I2设置为0;将I1、I2、Pi和ID分别赋值给二维矩阵R中与主光线(A01)相对应的元素的源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id;判断交点位置Pi所在面片的镜面反射系数ks是否为0,若不为0,则利用蒙特卡洛方法计算源自光源的镜面反射光照值I3,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4,否则源自光源的镜面反射光照值I3设置为0,源自镜面反射二次光线的光照值I4设置为0;将I1+I2+I3+I4作为主光线(A01)对应的像素的颜色值。
如图1所示,三维虚拟场景中的某点(105)在左眼虚拟相机(101)的像平面(102)上的成像点位于像素p1上,在右眼虚拟相机(102)的像平面(104)上的成像点位于像素p2上,像素p1和像素p2相对于点(105)构成映射关系;本发明方法的第二部分计算左眼虚拟相机的像平面上的像素与右眼虚拟相机的像平面上的像素的映射关系,具体步骤如下:
步骤S201:创建一个像素位置映射结构类型的二维矩阵R′,其包括M×N个元素,M为右眼虚拟相机的像平面上的像素行数,N为右眼虚拟相机的像平面上的像素列数,二维矩阵R′中的元素与右眼虚拟相机的像平面上的像素一一对应;将二维矩阵R′的每个元素的标识成员变量tag初始化为0;
步骤S202:建立x-y-z坐标系,其原点位于右眼虚拟相机的像平面的中心,z轴正方向与右眼虚拟相机的前向方向向量F相同,y轴正方向与右眼虚拟相机的向上方向向量U相同,x轴正方向与向量F×U相同;根据右眼虚拟相机的水平方向视场角α和垂直方向视场角β以及右眼虚拟相机光心位置到x-y-z坐标系原点的距离确定右眼虚拟相机的像平面上的有效矩形成像区域A;
步骤S203:对二维矩阵R中的每个元素ER,做如下计算:
连接元素ER的交点位置成员变量Ps表示的空间位置和右眼虚拟相机光心位置Pc,得到一条直线段L,计算直线段L与右眼虚拟相机的像平面的交点S1,判断交点S1是否在有效矩形成像区域A之内,如果交点S1在有效矩形成像区域A内,则:
根据右眼虚拟相机的图像分辨率和有效矩形成像区域A的几何尺寸,计算右眼虚拟相机的像平面的像素的水平方向几何尺寸sx和垂直方向几何尺寸sy;创建一个像素位置映射结构类型的变量V,变量V的标识成员变量tag设置为1,变量V的左眼图像像素行号成员变量Li设置为元素ER的行号,变量V的左眼图像像素列号成员变量Lj设置为元素ER的列号,变量V的右眼图像像素行号成员变量Ri设置为变量V的右眼图像像素列号成员变量Rj设置为其中xS1、yS1分别为交点S1在x-y平面内的横、纵坐标,变量V的交点处的面片索引号成员变量id设置为元素ER的交点处的面片索引号成员变量Id;将变量V赋值给二维矩阵R′中行号为变量V的右眼图像像素行号成员变量Ri表示的行号、列号为变量V的右眼图像像素列号成员变量Rj表示的列号的元素。
本发明方法的第三部分在本发明方法的第一部分和第二部分的计算结果的基础上,绘制右眼虚拟相机的图像画面,具体步骤如下:
步骤S301:从右眼虚拟相机光心位置向右眼虚拟相机的像平面上的每个像素Pix发射主光线(301),并测试主光线(301)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(301)对应的像素的颜色值设置为背景色,否则计算交点位置Pi′,记录交点处的面片索引号ID′;
步骤S302:将像素Pix对应的二维矩阵R′的元素赋值给变量V′;如果变量V′的标识成员变量tag为1且ID′等于V′的交点处的面片索引号成员变量id的值,则转步骤S303,否则转步骤S304;
步骤S303:将二维矩阵R中的元素ER′赋值给变量W,其中元素ER′的行号为V′的左眼图像像素行号成员变量Li表示的行号,元素ER′的列号为V′的左眼图像像素列号成员变量Lj表示的列号;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;求变量W的源自光源的漫反射光照值成员变量Is、变量W的源自环境光的漫反射光照值成员变量Ie、光照值I3′、光照值I4′等四个量的和,将其作为主光线(301)对应的像素的颜色值;转步骤S305;
步骤S304:判断交点位置Pi′所在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1′,否则源自光源的漫反射光照值I1′设置为0;判断交点位置Pi′所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2′,否则源自环境光的漫反射光照值I2′设置为0;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;将I1′+I2′+I3′+I4′作为主光线(301)对应的像素的颜色值;
步骤S305:计算结束。
有益效果
本发明提供了一种三维虚拟场景立体画面的绘制方法。由于在绘制右眼虚拟相机的图像画面时利用了左眼虚拟相机的图像画面绘制结果,因此减少了绘制三维虚拟场景立体画面的总时间。利用本发明方法绘制三维虚拟场景立体画面比传统方法快15%~30%。
附图说明
图1是左右眼虚拟相机的像平面上的像素映射关系示意图。
具体实施方式
为了使本发明的特征和优点更加清楚明白,下面结合具体实施例对本发明作进一步的描述。
在本实施例中,利用GPU加速三维虚拟场景的源自光源的漫反射光照值和源自环境光的漫反射光照值计算。本发明的目的在于提供一种三维虚拟场景立体画面的绘制方法,首先绘制左眼虚拟相机的图像画面,并记录从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的所有主光线与三维虚拟场景的面片的相交信息以及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值;在绘制右眼虚拟相机的图像画面时,利用绘制左眼虚拟相机的图像画面时记录的源自光源的漫反射光照值和源自环境光的漫反射光照值,来避免大量的重复光照计算,从而提高三维虚拟场景立体画面的绘制速度。
本发明方法提供一种光照数据记录结构,其包括源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id。
本发明方法提供一种像素位置映射结构,其包括标识成员变量tag、左眼图像像素行号成员变量Li、左眼图像像素列号成员变量Lj、右眼图像像素行号成员变量Ri、右眼图像像素列号成员变量Rj、交点处的面片索引号成员变量id。
本发明方法的第一部分绘制三维虚拟场景的左眼虚拟相机的图像画面,同时记录所有从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的主光线与三维虚拟场景中的面片的交点位置及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值,具体步骤如下:
步骤S101:创建一个光照数据记录结构类型的二维矩阵R,其包括M×N个元素,M为左眼虚拟相机的像平面上的像素行数,N为左眼虚拟相机的像平面上的像素列数,二维矩阵R中的元素与左眼虚拟相机的像平面上的像素一一对应;将二维矩阵R的每个元素的源自光源的漫反射光照值成员变量Is和源自环境光的漫反射光照值成员变量Ie初始化为0;
步骤S102:从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的每个像素发射主光线(A01),并测试主光线(A01)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(A01)对应的像素的颜色值设置为背景色,否则计算交点位置Pi,记录交点处的面片索引号ID;判断交点位置Pi所在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1,否则源自光源的漫反射光照值I1设置为0;判断交点位置Pi所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2,否则源自环境光的漫反射光照值I2设置为0;将I1、I2、Pi和ID分别赋值给二维矩阵R中与主光线(A01)相对应的元素的源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id;判断交点位置Pi所在面片的镜面反射系数ks是否为0,若不为0,则利用蒙特卡洛方法计算源自光源的镜面反射光照值I3,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4,否则源自光源的镜面反射光照值I3设置为0,源自镜面反射二次光线的光照值I4设置为0;将I1+I2+I3+I4作为主光线(A01)对应的像素的颜色值。
如图1所示,三维虚拟场景中的某点(105)在左眼虚拟相机(101)的像平面(102)上的成像点位于像素p1上,在右眼虚拟相机(102)的像平面(104)上的成像点位于像素p2上,像素p1和像素p2相对于点(105)构成映射关系;本发明方法的第二部分计算左眼虚拟相机的像平面上的像素与右眼虚拟相机的像平面上的像素的映射关系,具体步骤如下:
步骤S201:创建一个像素位置映射结构类型的二维矩阵R′,其包括M×N个元素,M为右眼虚拟相机的像平面上的像素行数,N为右眼虚拟相机的像平面上的像素列数,二维矩阵R′中的元素与右眼虚拟相机的像平面上的像素一一对应;将二维矩阵R′的每个元素的标识成员变量tag初始化为0;
步骤S202:建立x-y-z坐标系,其原点位于右眼虚拟相机的像平面的中心,z轴正方向与右眼虚拟相机的前向方向向量F相同,y轴正方向与右眼虚拟相机的向上方向向量U相同,x轴正方向与向量F×U相同;根据右眼虚拟相机的水平方向视场角α和垂直方向视场角β以及右眼虚拟相机光心位置到x-y-z坐标系原点的距离确定右眼虚拟相机的像平面上的有效矩形成像区域A;
步骤S203:对二维矩阵R中的每个元素ER,做如下计算:
连接元素ER的交点位置成员变量Ps表示的空间位置和右眼虚拟相机光心位置Pc,得到一条直线段L,计算直线段L与右眼虚拟相机的像平面的交点S1,判断交点S1是否在有效矩形成像区域A之内,如果交点S1在有效矩形成像区域A内,则:
根据右眼虚拟相机的图像分辨率和有效矩形成像区域A的几何尺寸,计算右眼虚拟相机的像平面的像素的水平方向几何尺寸sx和垂直方向几何尺寸sy;创建一个像素位置映射结构类型的变量V,变量V的标识成员变量tag设置为1,变量V的左眼图像像素行号成员变量Li设置为元素ER的行号,变量V的左眼图像像素列号成员变量Lj设置为元素ER的列号,变量V的右眼图像像素行号成员变量Ri设置为变量V的右眼图像像素列号成员变量Rj设置为其中xS1、yS1分别为交点S1在x-y平面内的横、纵坐标,变量V的交点处的面片索引号成员变量id设置为元素ER的交点处的面片索引号成员变量Id;将变量V赋值给二维矩阵R′中行号为变量V的右眼图像像素行号成员变量Ri表示的行号、列号为变量V的右眼图像像素列号成员变量Rj表示的列号的元素。
本发明方法的第三部分在本发明方法的第一部分和第二部分的计算结果的基础上,绘制右眼虚拟相机的图像画面,具体步骤如下:
步骤S301:从右眼虚拟相机光心位置向右眼虚拟相机的像平面上的每个像素Pix发射主光线(301),并测试主光线(301)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(301)对应的像素的颜色值设置为背景色,否则计算交点位置Pi′,记录交点处的面片索引号ID′;
步骤S302:将像素Pix对应的二维矩阵R′的元素赋值给变量V′;如果变量V′的标识成员变量tag为1且ID′等于V′的交点处的面片索引号成员变量id的值,则转步骤S303,否则转步骤S304;
步骤S303:将二维矩阵R中的元素ER′赋值给变量W,其中元素ER′的行号为V′的左眼图像像素行号成员变量Li表示的行号,元素ER′的列号为V′的左眼图像像素列号成员变量Lj表示的列号;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;求变量W的源自光源的漫反射光照值成员变量Is、变量W的源自环境光的漫反射光照值成员变量Ie、光照值I3′、光照值I4′等四个量的和,将其作为主光线(301)对应的像素的颜色值;转步骤S305;
步骤S304:判断交点位置Pi′所在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1′,否则源自光源的漫反射光照值I1′设置为0;判断交点位置Pi′所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2′,否则源自环境光的漫反射光照值I2′设置为0;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;将I1′+I2′+I3′+I4′作为主光线(301)对应的像素的颜色值;
步骤S305:计算结束。
Claims (1)
1.一种三维虚拟场景立体画面的绘制方法,其特征在于,所需的数据结构及实现步骤如下:
本发明的目的在于提供一种三维虚拟场景立体画面的绘制方法,首先绘制左眼虚拟相机的图像画面,并记录从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的所有主光线与三维虚拟场景的面片的相交信息以及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值;在绘制右眼虚拟相机的图像画面时,利用绘制左眼虚拟相机的图像画面时记录的源自光源的漫反射光照值和源自环境光的漫反射光照值,来避免大量的重复光照计算,从而提高三维虚拟场景立体画面的绘制速度;
本发明方法提供一种光照数据记录结构,其包括源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id;
本发明方法提供一种像素位置映射结构,其包括标识成员变量tag、左眼图像像素行号成员变量Li、左眼图像像素列号成员变量Lj、右眼图像像素行号成员变量Ri、右眼图像像素列号成员变量Rj、交点处的面片索引号成员变量id;
本发明方法的第一部分绘制三维虚拟场景的左眼虚拟相机的图像画面,同时记录所有从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的像素发射的主光线与三维虚拟场景中的面片的交点位置及相应的源自光源的漫反射光照值和源自环境光的漫反射光照值,具体步骤如下:
步骤S101:创建一个光照数据记录结构类型的二维矩阵R,其包括M×N个元素,M为左眼虚拟相机的像平面上的像素行数,N为左眼虚拟相机的像平面上的像素列数,二维矩阵R中的元素与左眼虚拟相机的像平面上的像素一一对应;将二维矩阵R的每个元素的源自光源的漫反射光照值成员变量Is和源自环境光的漫反射光照值成员变量Ie初始化为0;
步骤S102:从左眼虚拟相机光心位置向左眼虚拟相机的像平面上的每个像素发射主光线(A01),并测试主光线(A01)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(A01)对应的像素的颜色值设置为背景色,否则计算交点位置Pi,记录交点处的面片索引号ID;判断交点位置Pi所在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1,否则源自光源的漫反射光照值I1设置为0;判断交点位置Pi所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2,否则源自环境光的漫反射光照值I2设置为0;将I1、I2、Pi和ID分别赋值给二维矩阵R中与主光线(A01)相对应的元素的源自光源的漫反射光照值成员变量Is、源自环境光的漫反射光照值成员变量Ie、交点位置成员变量Ps和交点处的面片索引号成员变量Id;判断交点位置Pi所在面片的镜面反射系数ks是否为0,若不为0,则利用蒙特卡洛方法计算源自光源的镜面反射光照值I3,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4,否则源自光源的镜面反射光照值I3设置为0,源自镜面反射二次光线的光照值I4设置为0;将I1+I2+I3+I4作为主光线(A01)对应的像素的颜色值;
如果三维虚拟场景中的某点(105)在左眼虚拟相机(101)的像平面(102)上的成像点位于像素p1上,在右眼虚拟相机(102)的像平面(104)上的成像点位于像素p2上,则像素p1和像素p2相对于点(105)构成映射关系;本发明方法的第二部分计算左眼虚拟相机的像平面上的像素与右眼虚拟相机的像平面上的像素的映射关系,具体步骤如下:
步骤S201:创建一个像素位置映射结构类型的二维矩阵R′,其包括M×N个元素,M为右眼虚拟相机的像平面上的像素行数,N为右眼虚拟相机的像平面上的像素列数,二维矩阵R′中的元素与右眼虚拟相机的像平面上的像素一一对应;将二维矩阵R′的每个元素的标识成员变量tag初始化为0;
步骤S202:建立x-y-z坐标系,其原点位于右眼虚拟相机的像平面的中心,z轴正方向与右眼虚拟相机的前向方向向量F相同,y轴正方向与右眼虚拟相机的向上方向向量U相同,x轴正方向与向量F×U相同;根据右眼虚拟相机的水平方向视场角α和垂直方向视场角β以及右眼虚拟相机光心位置到x-y-z坐标系原点的距离确定右眼虚拟相机的像平面上的有效矩形成像区域A;
步骤S203:对二维矩阵R中的每个元素ER,做如下计算:
连接元素ER的交点位置成员变量Ps表示的空间位置和右眼虚拟相机光心位置Pc,得到一条直线段L,计算直线段L与右眼虚拟相机的像平面的交点S1,判断交点S1是否在有效矩形成像区域A之内,如果交点S1在有效矩形成像区域A内,则:
根据右眼虚拟相机的图像分辨率和有效矩形成像区域A的几何尺寸,计算右眼虚拟相机的像平面的像素的水平方向几何尺寸sx和垂直方向几何尺寸sy;创建一个像素位置映射结构类型的变量V,变量V的标识成员变量tag设置为1,变量V的左眼图像像素行号成员变量Li设置为元素ER的行号,变量V的左眼图像像素列号成员变量Lj设置为元素ER的列号,变量V的右眼图像像素行号成员变量Ri设置为变量V的右眼图像像素列号成员变量Rj设置为其中xS1、yS1分别为交点S1在x-y平面内的横、纵坐标,变量V的交点处的面片索引号成员变量id设置为元素ER的交点处的面片索引号成员变量Id;将变量V赋值给二维矩阵R′中行号为变量V的右眼图像像素行号成员变量Ri表示的行号、列号为变量V的右眼图像像素列号成员变量Rj表示的列号的元素;
本发明方法的第三部分在本发明方法的第一部分和第二部分的计算结果的基础上,绘制右眼虚拟相机的图像画面,具体步骤如下:
步骤S301:从右眼虚拟相机光心位置向右眼虚拟相机的像平面上的每个像素Pix发射主光线(301),并测试主光线(301)与三维虚拟场景的面片是否相交;如果不相交,则将主光线(301)对应的像素的颜色值设置为背景色,否则计算交点位置Pi′,记录交点处的面片索引号ID′;
步骤S302:将像素Pix对应的二维矩阵R′的元素赋值给变量V′;如果变量V′的标识成员变量tag为1且ID′等于V′的交点处的面片索引号成员变量id的值,则转步骤S303,否则转步骤S304;
步骤S303:将二维矩阵R中的元素ER′赋值给变量W,其中元素ER′的行号为V′的左眼图像像素行号成员变量Li表示的行号,元素ER′的列号为V′的左眼图像像素列号成员变量Lj表示的列号;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;求变量W的源自光源的漫反射光照值成员变量Is、变量W的源自环境光的漫反射光照值成员变量Ie、光照值I3′、光照值I4′等四个量的和,将其作为主光线(301)对应的像素的颜色值;转步骤S305;
步骤S304:判断交点位置Pi′在面片的光源漫反射系数kd是否为0,若不为0,则利用蒙特卡洛方法计算交点处的源自光源的漫反射光照值I1′,否则源自光源的漫反射光照值I1′设置为0;判断交点位置Pi′所在面片的环境光漫反射系数ke是否为0,若不为0,则利用环境遮蔽体算法计算源自环境光的漫反射光照值I2′,否则源自环境光的漫反射光照值I2′设置为0;判断交点位置Pi′所在面片的镜面反射系数ks是否为0,若不为0,则按照蒙特卡洛方法计算源自光源的镜面反射光照值I3′,同时生成镜面反射二次光线,并递归地跟踪计算源自镜面反射二次光线的光照值I4′,否则源自光源的镜面反射光照值I3′设置为0,源自镜面反射二次光线的光照值I4′设置为0;将I1′+I2′+I3′+I4′作为主光线(301)对应的像素的颜色值;
步骤S305:计算结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110162976 CN102243768B (zh) | 2011-06-17 | 2011-06-17 | 一种三维虚拟场景立体画面的绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110162976 CN102243768B (zh) | 2011-06-17 | 2011-06-17 | 一种三维虚拟场景立体画面的绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102243768A true CN102243768A (zh) | 2011-11-16 |
CN102243768B CN102243768B (zh) | 2013-01-30 |
Family
ID=44961806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110162976 Expired - Fee Related CN102243768B (zh) | 2011-06-17 | 2011-06-17 | 一种三维虚拟场景立体画面的绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102243768B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346919A (zh) * | 2011-11-21 | 2012-02-08 | 长春理工大学 | 在3d动画绘制中利用帧间时间相关的方法 |
CN102520970A (zh) * | 2011-12-28 | 2012-06-27 | Tcl集团股份有限公司 | 一种立体用户界面的生成方法及装置 |
CN103544725A (zh) * | 2013-11-19 | 2014-01-29 | 马宁 | 一种二维立体动画制作方法 |
CN103578130A (zh) * | 2012-07-24 | 2014-02-12 | 三星电子株式会社 | 用于光线跟踪的方法和设备 |
CN105096371A (zh) * | 2015-07-14 | 2015-11-25 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN106991717A (zh) * | 2017-03-16 | 2017-07-28 | 珠海市魅族科技有限公司 | 一种应用于三维场景下的图像处理方法和系统 |
CN107274474A (zh) * | 2017-07-03 | 2017-10-20 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
WO2018209710A1 (zh) * | 2017-05-19 | 2018-11-22 | 华为技术有限公司 | 一种图像处理方法及装置 |
CN109493409A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于左右眼空间复用的虚拟三维场景立体画面绘制方法 |
CN112002003A (zh) * | 2020-08-26 | 2020-11-27 | 长春理工大学 | 虚拟3d场景的球面全景立体画面生成与交互式显示方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016150A (en) * | 1995-08-04 | 2000-01-18 | Microsoft Corporation | Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers |
KR20060040118A (ko) * | 2004-11-04 | 2006-05-10 | 이성혜 | 맞춤형 3차원 애니메이션 제작 방법 및 장치와 그 배포시스템 |
CN1885155A (zh) * | 2005-06-20 | 2006-12-27 | 钟明 | 数字球幕电影制作方法 |
CN101324961A (zh) * | 2008-07-25 | 2008-12-17 | 上海久游网络科技有限公司 | 计算机虚拟世界中人脸部三维贴图方法 |
-
2011
- 2011-06-17 CN CN 201110162976 patent/CN102243768B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016150A (en) * | 1995-08-04 | 2000-01-18 | Microsoft Corporation | Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers |
KR20060040118A (ko) * | 2004-11-04 | 2006-05-10 | 이성혜 | 맞춤형 3차원 애니메이션 제작 방법 및 장치와 그 배포시스템 |
CN1885155A (zh) * | 2005-06-20 | 2006-12-27 | 钟明 | 数字球幕电影制作方法 |
CN101324961A (zh) * | 2008-07-25 | 2008-12-17 | 上海久游网络科技有限公司 | 计算机虚拟世界中人脸部三维贴图方法 |
Non-Patent Citations (1)
Title |
---|
M. MCGUIRE: "Ambient occlusion volumes", 《PROCEEDINGS OF THE CONFERENCE ON HIGH PERFORMANCE GRAPHICS》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346919A (zh) * | 2011-11-21 | 2012-02-08 | 长春理工大学 | 在3d动画绘制中利用帧间时间相关的方法 |
CN102346919B (zh) * | 2011-11-21 | 2013-08-21 | 长春理工大学 | 在3d动画绘制中利用帧间时间相关的方法 |
CN102520970A (zh) * | 2011-12-28 | 2012-06-27 | Tcl集团股份有限公司 | 一种立体用户界面的生成方法及装置 |
US9779537B2 (en) | 2012-07-24 | 2017-10-03 | Samsung Electronics Co., Ltd. | Method and apparatus for ray tracing |
CN103578130A (zh) * | 2012-07-24 | 2014-02-12 | 三星电子株式会社 | 用于光线跟踪的方法和设备 |
CN103578130B (zh) * | 2012-07-24 | 2018-03-09 | 三星电子株式会社 | 用于光线跟踪的方法和设备 |
CN103544725A (zh) * | 2013-11-19 | 2014-01-29 | 马宁 | 一种二维立体动画制作方法 |
CN105096371B (zh) * | 2015-07-14 | 2017-08-22 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN105096371A (zh) * | 2015-07-14 | 2015-11-25 | 长春理工大学 | 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 |
CN106991717A (zh) * | 2017-03-16 | 2017-07-28 | 珠海市魅族科技有限公司 | 一种应用于三维场景下的图像处理方法和系统 |
WO2018209710A1 (zh) * | 2017-05-19 | 2018-11-22 | 华为技术有限公司 | 一种图像处理方法及装置 |
US10970918B2 (en) | 2017-05-19 | 2021-04-06 | Huawei Technologies Co., Ltd. | Image processing method and apparatus using a pixelated mask image and terminal orientation for a reflection effect |
CN107274474A (zh) * | 2017-07-03 | 2017-10-20 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
CN107274474B (zh) * | 2017-07-03 | 2020-06-23 | 长春理工大学 | 三维场景立体画面绘制中的间接光照复用方法 |
CN109493409A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于左右眼空间复用的虚拟三维场景立体画面绘制方法 |
CN109493409B (zh) * | 2018-11-05 | 2022-08-23 | 长春理工大学 | 基于左右眼空间复用的虚拟三维场景立体画面绘制方法 |
CN112002003A (zh) * | 2020-08-26 | 2020-11-27 | 长春理工大学 | 虚拟3d场景的球面全景立体画面生成与交互式显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102243768B (zh) | 2013-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102243768B (zh) | 一种三维虚拟场景立体画面的绘制方法 | |
US11423599B2 (en) | Multi-view processing unit systems and methods | |
CN112513712B (zh) | 具有虚拟内容翘曲的混合现实系统和使用该系统生成虚拟内容的方法 | |
US8345046B2 (en) | Method for adding shadows to objects in computer graphics | |
Raskar et al. | Table-top spatially-augmented realty: bringing physical models to life with projected imagery | |
CN107341853B (zh) | 超大虚拟场景和动态摄屏的虚实融合方法及系统 | |
CN103337095B (zh) | 一种真实空间三维地理实体的立体虚拟显示方法 | |
CN102768765B (zh) | 实时点光源软阴影渲染方法 | |
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
KR101334187B1 (ko) | 다시점 렌더링 장치 및 방법 | |
CN102800119B (zh) | 一种三维曲线的动画展示方法和装置 | |
CN105209960A (zh) | 为近眼光场显示器生成图像的系统、方法和计算机程序产品 | |
CN106415667A (zh) | 具有增强的深度效果的计算机图形 | |
CN105282536A (zh) | 一种基于Unity3D引擎的裸眼3D图文交互方法 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
CN104103092A (zh) | 一种基于聚光灯实时动态阴影的实现方法 | |
JP2012190428A (ja) | 立体映像視覚効果処理方法 | |
US9001157B2 (en) | Techniques for displaying a selection marquee in stereographic content | |
Ganestam et al. | Real-time multiply recursive reflections and refractions using hybrid rendering | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
CN104217461A (zh) | 一种基于深度图模拟实时凹凸效果的视差映射方法 | |
CN103679818B (zh) | 一种基于虚拟面光源的实时场景绘制方法 | |
US10708597B2 (en) | Techniques for extrapolating image frames | |
Luo et al. | GPU rendering for tiled multi-projector autostereoscopic display based on chromium | |
CN116485987A (zh) | 一种基于阴影渲染的真实环境模拟方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130130 Termination date: 20140617 |
|
EXPY | Termination of patent right or utility model |