CN107274474B - 三维场景立体画面绘制中的间接光照复用方法 - Google Patents
三维场景立体画面绘制中的间接光照复用方法 Download PDFInfo
- Publication number
- CN107274474B CN107274474B CN201710534108.2A CN201710534108A CN107274474B CN 107274474 B CN107274474 B CN 107274474B CN 201710534108 A CN201710534108 A CN 201710534108A CN 107274474 B CN107274474 B CN 107274474B
- Authority
- CN
- China
- Prior art keywords
- eye picture
- ray
- virtual
- photon
- dimensional scene
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种三维场景立体画面绘制中的间接光照复用方法,该方法首先使用光子跟踪技术创建光子图,然后绘制左眼画面的全局光照效果,接着再绘制右眼画面的全局光照效果;在绘制右眼画面时,如果可视场景点所在几何对象表面是漫反射表面,且该可视场景点在左眼画面对应的空间区域中,则复用绘制左眼画面时聚集得到的间接光照结果,从而提高三维场景立体画面的绘制效率。
Description
技术领域
本发明涉及一种三维场景立体画面绘制中的间接光照复用方法,属于真实感三维场景绘制技术领域。
背景技术
3D电影技术目前已得到广泛应用。3D电影中的许多画面通常都用计算机真实感三维场景绘制技术来生成。3D场景的立体画面由左眼画面和右眼画面组成。可以通过图1所示的方式,使用两个虚拟相机来拍摄三维场景的立体画面,左眼画面对应的虚拟相机(101)拍摄左眼画面,右眼画面对应的虚拟相机(102)拍摄右眼画面,虚拟相机(101)在左眼视点位置,虚拟相机(102)在右眼视点位置,从左眼视点发射穿过虚拟相机(101)的虚拟像素平面(103)上的像素的光线与几何对象(105)交于点P1,从右眼视点发射穿过虚拟相机(102)的虚拟像素平面(104)上的像素的光线与几何对象(105)交于点P1。在播放立体画面时,观众的左眼只能看到左眼画面,观众的右眼只能看到右眼画面,通过人脑合成产生立体视觉效果。
在绘制三维场景的立体画面时,需要分别绘制左眼画面和右眼画面。由于每帧立体画面实际包含两幅画面,因此其绘制时间相比于非立体画面绘制时间更长。虽然左眼画面和右眼画面通常存在一定的差异,但是二者也具有明显的相似性;如果已经绘制出左眼画面,则在绘制右眼画面时可以在一定程度上复用左眼画面的部分计算结果,从而节省绘制时间。在电影三维场景绘制中,通常需要绘制出场景的全局光照效果。全局光照可以分为直接光照和间接光照两部分。直接光照是光源发出的光直接到达可视场景点产生的光照贡献;间接光照是光源发出的光先经其他物体散射后,再入射到可视场景点产生的光照贡献。通过观察现实生活场景可以发现,直接光照效果的空间变化在视觉上一般比间接光照效果的空间变化明显。这意味着间接光照比直接光照更适合于在空间上进行复用。此外,生活经验表明,镜面反射物体的光照视觉效果具有很强的方向依赖性,这会给镜面反射间接光照复用带来困难。因此,在绘制左右眼画面时,本发明只对漫反射物体上的可视场景点的间接光照进行复用,镜面反射物体上的可视场景点的间接光照则重新计算。由于实际三维场景通常包含大量漫反射类型的物体,因此本发明的间接光照复用方法能明显缩短立体画面绘制时间。
光线跟踪(Ray Tracing)是一种常用的真实感三维场景绘制技术。通常光线跟踪采用逆向跟踪策略,即不是从光源出发跟踪光线在三维场景中的传播,而是从视点出发逆向跟踪光线在三维场景中的传播。用光线跟踪可以很好地绘制出镜面反射物体的间接光照效果。然而,用传统光线跟踪技术绘制漫反射物体的间接光照效果则比较低效。光线跟踪和光子映射(Photon Mapping)技术经常被结合在一起用来绘制三维场景的全局光照效果。首先使用光子跟踪技术创建光子图,然后利用光线跟踪技术找到可视场景点。对每个漫反射类型的可视场景点,可从光子图中搜索与该可视场景点邻近的光子并据此计算该可视场景点的间接光照。然而,这种直接根据光子图中的光子计算可视场景点间接光照的方式会导致三维场景画面中出现明显的低频噪声。解决这一问题的方法是使用最终聚集(FinalGathering)技术。最终聚集技术从漫反射类型的可视场景点向该可视场景点的法向量指向的半球空间随机发射一系列射线,该可视场景点也称为最终光照聚集点,计算这些射线与三维场景几何对象的交点,这些交点称为光照采集点。最终聚集技术通过从光子图中搜索与光照采集点邻近的光子来计算光照采集点的间接光照值,进而根据光照采集点的间接光照值来计算最终光照聚集点的间接光照值。可视场景点的法向量指向的半球空间如图2所示,其中法向量与半球底面垂直,可视场景点在半球底面的中心位置。最终聚集技术在许多文献中有专门论述,例如2010年Morgan Kaufmann出版社出版的由M. Pharr和G.Humphreys撰写的书《Physically Based Rendering: From Theory to Implementation,2nd Edition》、山东大学2014年崔云鹏的硕士学位论文《基于Renderman的光子映射算法研究与实现》等。
发明内容
本发明的目的在于提供一种三维场景立体画面绘制中的间接光照复用方法,其在绘制右眼画面时通过对绘制左眼画面时聚集得到的间接光照结果进行复用,来提高三维场景立体画面的绘制效率。
本发明的技术方案是这样实现的:一种三维场景立体画面绘制中的间接光照复用方法,其特征在于:首先使用光子跟踪技术创建光子图,然后绘制左眼画面的全局光照效果,接着再绘制右眼画面的全局光照效果,具体实现步骤如下:
1)使用光子跟踪技术创建光子图,具体方法如下:
首先创建一个不包含任何光子记录的光子图PMap;使用光子跟踪技术从光源向三维场景发射NUM个光子,跟踪这NUM个光子在三维场景中传播时与几何对象发生碰撞而被散射的过程;对于每个光子A001,在跟踪光子A001在三维场景中传播时与几何对象发生碰撞而被散射的过程中,从光子A001第二次与三维场景几何对象发生碰撞开始,每发生一次碰撞就向光子图PMap中添加一个光子记录,每个光子记录包括光子与三维场景几何对象的碰撞位置PPos、光子在碰撞位置PPos处的归一化入射方向向量PVi、光子在碰撞位置PPos处的入射功率PW共三个分量。
2)综合利用光线跟踪和光子映射技术绘制三维场景左眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景左眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,用最终聚集技术计算三维场景左眼画面的所有漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组LIM,M表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素行数,N表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素列数;把数组LIM的每个元素赋值为背景色对应的光照值;数组LIM的元素和左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素一一对应;利用光线跟踪技术,从左眼视点发射穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的各个像素的光线A002,光线A002和虚拟像素平面LVCPP上的像素一一对应;对于每条光线A002,做如下操作:
步骤Step201-1:计算光线A002对应的虚拟像素平面LVCPP上的像素对应的数组LIM的元素的行号irow和列号jcol;判断光线A002与三维场景几何对象是否相交,如果相交,则转步骤Step201-2,否则转步骤Step201-5;
步骤Step201-2:计算光线A002与三维场景几何对象的离左眼视点最近的交点B001,交点B001是一个可视场景点LVSPOINT,光线A002与可视场景点LVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点B001的直接光照B002,同时进一步判断交点B001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step201-3,如果是镜面反射表面则转步骤Step201-4;
步骤Step201-3:根据光子图PMap,使用最终聚集技术计算交点B001的间接光照B003,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B003之和;转步骤Step201-5;
步骤Step201-4:使用光线跟踪技术计算交点B001的间接光照B004,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B004之和;
步骤Step201-5:对光线A002的操作结束。
步骤Step202:把数组LIM的每个元素的值转换成三维场景左眼画面图像像素颜色值,并把三维场景左眼画面图像保存到计算机磁盘文件之中。
3)综合利用光线跟踪和光子映射技术绘制三维场景右眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景右眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,另外如果绘制右眼画面时计算得到的漫反射类型的可视场景点在左眼画面对应的空间区域中,则直接复用绘制左眼画面时聚集得到的间接光照结果,否则用最终聚集技术计算该漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step301:创建一个包含M行、N列元素的数组RIM,M表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素行数,N表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素列数;把数组RIM的每个元素赋值为背景色对应的光照值;数组RIM的元素和右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素一一对应;利用光线跟踪技术,从右眼视点发射穿过右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的各个像素的光线C002,光线C002和虚拟像素平面RVCPP上的像素一一对应;对于每条光线C002,做如下操作:
步骤Step301-1:计算光线C002对应的虚拟像素平面RVCPP上的像素对应的数组RIM的元素的行号Irow和列号Jcol;判断光线C002与三维场景几何对象是否相交,如果相交,则转步骤Step301-2,否则转步骤Step301-8;
步骤Step301-2:计算光线C002与三维场景几何对象的离右眼视点最近的交点D001,交点D001是一个可视场景点RVSPOINT,光线C002与可视场景点RVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点D001的直接光照D002,同时进一步判断交点D001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step301-3,如果是镜面反射表面则转步骤Step301-7;
步骤Step301-3:计算交点D001在左眼画面对应的虚拟相机的相机坐标系CORSL中的坐标POSL,相机坐标系CORSL的原点在左眼视点位置,相机坐标系CORSL的W方向为左眼画面对应的虚拟相机的观察正前方向的反方向,相机坐标系CORSL的V方向为左眼画面对应的虚拟相机的观察向上方向,相机坐标系CORSL的U方向与相机坐标系CORSL的V方向和相机坐标系CORSL的W方向相互垂直,相机坐标系CORSL的U方向、V方向、W方向符合右手三维直角坐标系规范;令坐标POSL在U方向上的分量为u,坐标POSL在V方向上的分量为v,坐标POSL在W方向上的分量为w,左眼画面对应的虚拟相机在U方向上的视场角为α,左眼画面对应的虚拟相机在V方向上的视场角为β;如果|u/w| ≤ tan(α/2)且|v/w| ≤ tan(β/2)且w < 0,则转步骤Step301-4,否则转步骤Step301-6;
步骤Step301-4:创建一条光线RAY,光线RAY的起点为左眼视点,光线RAY的方向为从左眼视点指向坐标POSL所在位置的方向,计算光线RAY穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素的行号ir和列号jc;如果虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002与三维场景几何对象相交,且虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT所在的几何对象表面和交点D001所在的几何对象表面是同一个几何对象表面,则转步骤Step301-5,否则转步骤Step301-6;
步骤Step301-5:把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT的间接光照B003之和;转步骤Step301-8;
步骤Step301-6:根据光子图PMap,使用最终聚集技术计算交点D001的间接光照D003,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D003之和;转步骤Step301-8;
步骤Step301-7:使用光线跟踪技术计算交点D001的间接光照D004,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D004之和;
步骤Step301-8:对光线C002的操作结束。
步骤Step302:把数组RIM的每个元素的值转换成三维场景右眼画面图像像素颜色值,并把三维场景右眼画面图像保存到计算机磁盘文件之中。
本发明的积极效果是利用了三维场景立体画面的左右眼画面的间接光照存在相似性的特点,在绘制右眼画面的全局光照效果时复用那些在绘制左眼画面时已经计算出的漫反射可视场景点间接光照结果,从而在绘制右眼画面时节省了执行最终聚集操作所需的时间开销,提高了三维场景立体画面的绘制效率。
附图说明
图1为使用左眼和右眼虚拟相机拍摄三维场景立体画面的示意图。
图2为可视场景点的法向量指向的半球空间示意图。
图3为左眼画面对应的虚拟相机的相机坐标系CORSL示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。本实施例考虑包含一面镜子和一张床的卧室三维场景,镜子表面被指定为镜面反射表面,床、卧室墙、卧室天花板、卧室地板都被指定为漫反射表面。计算机系统的CPU选择Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz,内存选择金士顿8GB DDR3 1333,磁盘选择Buffalo HD-CE 1.5 TU2,显卡选用NVidia Quadro K2000;计算机操作系统选用Windows 7,软件编程工具选用VC++ 2010。
一种三维场景立体画面绘制中的间接光照复用方法,首先使用光子跟踪技术创建光子图,然后绘制左眼画面的全局光照效果,接着再绘制右眼画面的全局光照效果,具体实现步骤如下:
1)使用光子跟踪技术创建光子图,具体方法如下:
首先创建一个不包含任何光子记录的光子图PMap;使用光子跟踪技术从光源向三维场景发射NUM个光子,跟踪这NUM个光子在三维场景中传播时与几何对象发生碰撞而被散射的过程;对于每个光子A001,在跟踪光子A001在三维场景中传播时与几何对象发生碰撞而被散射的过程中,从光子A001第二次与三维场景几何对象发生碰撞开始,每发生一次碰撞就向光子图PMap中添加一个光子记录,每个光子记录包括光子与三维场景几何对象的碰撞位置PPos、光子在碰撞位置PPos处的归一化入射方向向量PVi、光子在碰撞位置PPos处的入射功率PW共三个分量。
2)综合利用光线跟踪和光子映射技术绘制三维场景左眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景左眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,用最终聚集技术计算三维场景左眼画面的所有漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组LIM,M表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素行数,N表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素列数;把数组LIM的每个元素赋值为背景色对应的光照值;数组LIM的元素和左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素一一对应;利用光线跟踪技术,从左眼视点发射穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的各个像素的光线A002,光线A002和虚拟像素平面LVCPP上的像素一一对应;对于每条光线A002,做如下操作:
步骤Step201-1:计算光线A002对应的虚拟像素平面LVCPP上的像素对应的数组LIM的元素的行号irow和列号jcol;判断光线A002与三维场景几何对象是否相交,如果相交,则转步骤Step201-2,否则转步骤Step201-5;
步骤Step201-2:计算光线A002与三维场景几何对象的离左眼视点最近的交点B001,交点B001是一个可视场景点LVSPOINT,光线A002与可视场景点LVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点B001的直接光照B002,同时进一步判断交点B001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step201-3,如果是镜面反射表面则转步骤Step201-4;
步骤Step201-3:根据光子图PMap,使用最终聚集技术计算交点B001的间接光照B003,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B003之和;转步骤Step201-5;
步骤Step201-4:使用光线跟踪技术计算交点B001的间接光照B004,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B004之和;
步骤Step201-5:对光线A002的操作结束。
步骤Step202:把数组LIM的每个元素的值转换成三维场景左眼画面图像像素颜色值,并把三维场景左眼画面图像保存到计算机磁盘文件之中。
3)综合利用光线跟踪和光子映射技术绘制三维场景右眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景右眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,另外如果绘制右眼画面时计算得到的漫反射类型的可视场景点在左眼画面对应的空间区域中,则直接复用绘制左眼画面时聚集得到的间接光照结果,否则用最终聚集技术计算该漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step301:创建一个包含M行、N列元素的数组RIM,M表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素行数,N表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素列数;把数组RIM的每个元素赋值为背景色对应的光照值;数组RIM的元素和右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素一一对应;利用光线跟踪技术,从右眼视点发射穿过右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的各个像素的光线C002,光线C002和虚拟像素平面RVCPP上的像素一一对应;对于每条光线C002,做如下操作:
步骤Step301-1:计算光线C002对应的虚拟像素平面RVCPP上的像素对应的数组RIM的元素的行号Irow和列号Jcol;判断光线C002与三维场景几何对象是否相交,如果相交,则转步骤Step301-2,否则转步骤Step301-8;
步骤Step301-2:计算光线C002与三维场景几何对象的离右眼视点最近的交点D001,交点D001是一个可视场景点RVSPOINT,光线C002与可视场景点RVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点D001的直接光照D002,同时进一步判断交点D001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step301-3,如果是镜面反射表面则转步骤Step301-7;
步骤Step301-3:计算交点D001在左眼画面对应的虚拟相机的相机坐标系CORSL中的坐标POSL,相机坐标系CORSL的原点在左眼视点位置,相机坐标系CORSL的W方向为左眼画面对应的虚拟相机的观察正前方向的反方向,相机坐标系CORSL的V方向为左眼画面对应的虚拟相机的观察向上方向,相机坐标系CORSL的U方向与相机坐标系CORSL的V方向和相机坐标系CORSL的W方向相互垂直,相机坐标系CORSL的U方向、V方向、W方向符合右手三维直角坐标系规范;令坐标POSL在U方向上的分量为u,坐标POSL在V方向上的分量为v,坐标POSL在W方向上的分量为w,左眼画面对应的虚拟相机在U方向上的视场角为α,左眼画面对应的虚拟相机在V方向上的视场角为β;如果|u/w| ≤ tan(α/2)且|v/w| ≤ tan(β/2)且w < 0,则转步骤Step301-4,否则转步骤Step301-6;
步骤Step301-4:创建一条光线RAY,光线RAY的起点为左眼视点,光线RAY的方向为从左眼视点指向坐标POSL所在位置的方向,计算光线RAY穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素的行号ir和列号jc;如果虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002与三维场景几何对象相交,且虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT所在的几何对象表面和交点D001所在的几何对象表面是同一个几何对象表面,则转步骤Step301-5,否则转步骤Step301-6;
步骤Step301-5:把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT的间接光照B003之和;转步骤Step301-8;
步骤Step301-6:根据光子图PMap,使用最终聚集技术计算交点D001的间接光照D003,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D003之和;转步骤Step301-8;
步骤Step301-7:使用光线跟踪技术计算交点D001的间接光照D004,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D004之和;
步骤Step301-8:对光线C002的操作结束。
步骤Step302:把数组RIM的每个元素的值转换成三维场景右眼画面图像像素颜色值,并把三维场景右眼画面图像保存到计算机磁盘文件之中。
图3示出了步骤Step301-3中提及的左眼画面对应的虚拟相机的相机坐标系CORSL示意图,能被虚拟相机拍摄到的几何对象在相机坐标系CORSL的W轴的负向空间中。
在本实施例中,NUM取值为1000,M取值为768,N取值为1024,α取值为45度,β取值为45度。对于立体画面绘制,左眼画面对应的虚拟相机的虚拟像素平面上的像素行数等于右眼画面对应的虚拟相机的虚拟像素平面上的像素行数,左眼画面对应的虚拟相机的虚拟像素平面上的像素列数等于右眼画面对应的虚拟相机的虚拟像素平面上的像素列数。
Claims (1)
1.三维场景立体画面绘制中的间接光照复用方法,其特征在于,首先使用光子跟踪技术创建光子图,然后绘制左眼画面的全局光照效果,接着再绘制右眼画面的全局光照效果,具体实现步骤如下:
1)使用光子跟踪技术创建光子图,具体方法如下:
首先创建一个不包含任何光子记录的光子图PMap;使用光子跟踪技术从光源向三维场景发射NUM个光子,跟踪这NUM个光子在三维场景中传播时与几何对象发生碰撞而被散射的过程;对于每个光子A001,在跟踪光子A001在三维场景中传播时与几何对象发生碰撞而被散射的过程中,从光子A001第二次与三维场景几何对象发生碰撞开始,每发生一次碰撞就向光子图PMap中添加一个光子记录,每个光子记录包括光子与三维场景几何对象的碰撞位置PPos、光子在碰撞位置PPos处的归一化入射方向向量PVi、光子在碰撞位置PPos处的入射功率PW共三个分量;
2)综合利用光线跟踪和光子映射技术绘制三维场景左眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景左眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,用最终聚集技术计算三维场景左眼画面的所有漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组LIM,M表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素行数,N表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素列数;把数组LIM的每个元素赋值为背景色对应的光照值;数组LIM的元素和左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素一一对应;利用光线跟踪技术,从左眼视点发射穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的各个像素的光线A002,光线A002和虚拟像素平面LVCPP上的像素一一对应;对于每条光线A002,做如下操作:
步骤Step201-1:计算光线A002对应的虚拟像素平面LVCPP上的像素对应的数组LIM的元素的行号irow和列号jcol;判断光线A002与三维场景几何对象是否相交,如果相交,则转步骤Step201-2,否则转步骤Step201-5;
步骤Step201-2:计算光线A002与三维场景几何对象的离左眼视点最近的交点B001,交点B001是一个可视场景点LVSPOINT,光线A002与可视场景点LVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点B001的直接光照B002,同时进一步判断交点B001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step201-3,如果是镜面反射表面则转步骤Step201-4;
步骤Step201-3:根据光子图PMap,使用最终聚集技术计算交点B001的间接光照B003,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B003之和;转步骤Step201-5;
步骤Step201-4:使用光线跟踪技术计算交点B001的间接光照B004,把数组LIM的第irow行、第jcol列的元素赋值为直接光照B002与间接光照B004之和;
步骤Step201-5:对光线A002的操作结束;
步骤Step202:把数组LIM的每个元素的值转换成三维场景左眼画面图像像素颜色值,并把三维场景左眼画面图像保存到计算机磁盘文件之中;
3)综合利用光线跟踪和光子映射技术绘制三维场景右眼画面的全局光照效果,其中用光线跟踪技术绘制三维场景右眼画面的直接光照效果和所有镜面反射类型的可视场景点的间接光照效果,另外如果绘制右眼画面时计算得到的漫反射类型的可视场景点在左眼画面对应的空间区域中,则直接复用绘制左眼画面时聚集得到的间接光照结果,否则用最终聚集技术计算该漫反射类型的可视场景点的间接光照,具体步骤如下:
步骤Step301:创建一个包含M行、N列元素的数组RIM,M表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素行数,N表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素列数;把数组RIM的每个元素赋值为背景色对应的光照值;数组RIM的元素和右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素一一对应;利用光线跟踪技术,从右眼视点发射穿过右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的各个像素的光线C002,光线C002和虚拟像素平面RVCPP上的像素一一对应;对于每条光线C002,做如下操作:
步骤Step301-1:计算光线C002对应的虚拟像素平面RVCPP上的像素对应的数组RIM的元素的行号Irow和列号Jcol;判断光线C002与三维场景几何对象是否相交,如果相交,则转步骤Step301-2,否则转步骤Step301-8;
步骤Step301-2:计算光线C002与三维场景几何对象的离右眼视点最近的交点D001,交点D001是一个可视场景点RVSPOINT,光线C002与可视场景点RVSPOINT一一对应;根据光线跟踪技术使用的直接光照计算方法计算交点D001的直接光照D002,同时进一步判断交点D001所在的几何对象表面是漫反射表面还是镜面反射表面,如果是漫反射表面,则转步骤Step301-3,如果是镜面反射表面则转步骤Step301-7;
步骤Step301-3:计算交点D001在左眼画面对应的虚拟相机的相机坐标系CORSL中的坐标POSL,相机坐标系CORSL的原点在左眼视点位置,相机坐标系CORSL的W方向为左眼画面对应的虚拟相机的观察正前方向的反方向,相机坐标系CORSL的V方向为左眼画面对应的虚拟相机的观察向上方向,相机坐标系CORSL的U方向与相机坐标系CORSL的V方向和相机坐标系CORSL的W方向相互垂直,相机坐标系CORSL的U方向、V方向、W方向符合右手三维直角坐标系规范;令坐标POSL在U方向上的分量为u,坐标POSL在V方向上的分量为v,坐标POSL在W方向上的分量为w,左眼画面对应的虚拟相机在U方向上的视场角为α,左眼画面对应的虚拟相机在V方向上的视场角为β;如果|u/w|≤tan(α/2)且|v/w|≤tan(β/2)且w<0,则转步骤Step301-4,否则转步骤Step301-6;
步骤Step301-4:创建一条光线RAY,光线RAY的起点为左眼视点,光线RAY的方向为从左眼视点指向坐标POSL所在位置的方向,计算光线RAY穿过左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素的行号ir和列号jc;如果虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002与三维场景几何对象相交,且虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT所在的几何对象表面和交点D001所在的几何对象表面是同一个几何对象表面,则转步骤Step301-5,否则转步骤Step301-6;
步骤Step301-5:把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与虚拟像素平面LVCPP上的第ir行、第jc列像素对应的光线A002对应的可视场景点LVSPOINT的间接光照B003之和;转步骤Step301-8;
步骤Step301-6:根据光子图PMap,使用最终聚集技术计算交点D001的间接光照D003,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D003之和;转步骤Step301-8;
步骤Step301-7:使用光线跟踪技术计算交点D001的间接光照D004,把数组RIM的第Irow行、第Jcol列的元素赋值为直接光照D002与间接光照D004之和;
步骤Step301-8:对光线C002的操作结束;
步骤Step302:把数组RIM的每个元素的值转换成三维场景右眼画面图像像素颜色值,并把三维场景右眼画面图像保存到计算机磁盘文件之中;
左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素行数等于右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素行数,左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素列数等于右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素列数;因此,M既表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素行数,也表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素行数;N既表示左眼画面对应的虚拟相机的虚拟像素平面LVCPP上的像素列数,也表示右眼画面对应的虚拟相机的虚拟像素平面RVCPP上的像素列数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534108.2A CN107274474B (zh) | 2017-07-03 | 2017-07-03 | 三维场景立体画面绘制中的间接光照复用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534108.2A CN107274474B (zh) | 2017-07-03 | 2017-07-03 | 三维场景立体画面绘制中的间接光照复用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107274474A CN107274474A (zh) | 2017-10-20 |
CN107274474B true CN107274474B (zh) | 2020-06-23 |
Family
ID=60071281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710534108.2A Active CN107274474B (zh) | 2017-07-03 | 2017-07-03 | 三维场景立体画面绘制中的间接光照复用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107274474B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107909647B (zh) * | 2017-11-22 | 2020-09-15 | 长春理工大学 | 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法 |
CN107749078B (zh) * | 2017-11-22 | 2020-10-27 | 长春理工大学 | 超大规模三维场景的直接光照效果绘制方法 |
CN108229058A (zh) * | 2018-01-31 | 2018-06-29 | 南京邮电大学 | 一种可见光通信中含虚灯的设计方法 |
CN109493409B (zh) * | 2018-11-05 | 2022-08-23 | 长春理工大学 | 基于左右眼空间复用的虚拟三维场景立体画面绘制方法 |
CN110225332A (zh) * | 2019-05-31 | 2019-09-10 | 吉林大学 | 一种基于光子映射的立体元图像阵列生成方法 |
CN113724309A (zh) * | 2021-08-27 | 2021-11-30 | 杭州海康威视数字技术股份有限公司 | 图像生成方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243768A (zh) * | 2011-06-17 | 2011-11-16 | 长春理工大学 | 一种三维虚拟场景立体画面的绘制方法 |
CN102298792A (zh) * | 2011-08-08 | 2011-12-28 | 长春理工大学 | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 |
CN102306401A (zh) * | 2011-08-08 | 2012-01-04 | 长春理工大学 | 一种包含模糊反射效果的3d虚拟场景的左右眼立体画面绘制方法 |
US8200527B1 (en) * | 2007-04-25 | 2012-06-12 | Convergys Cmg Utah, Inc. | Method for prioritizing and presenting recommendations regarding organizaion's customer care capabilities |
CN105869205A (zh) * | 2016-04-20 | 2016-08-17 | 曹屹 | 一种实时渲染方法和移动终端 |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
-
2017
- 2017-07-03 CN CN201710534108.2A patent/CN107274474B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200527B1 (en) * | 2007-04-25 | 2012-06-12 | Convergys Cmg Utah, Inc. | Method for prioritizing and presenting recommendations regarding organizaion's customer care capabilities |
CN102243768A (zh) * | 2011-06-17 | 2011-11-16 | 长春理工大学 | 一种三维虚拟场景立体画面的绘制方法 |
CN102298792A (zh) * | 2011-08-08 | 2011-12-28 | 长春理工大学 | 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法 |
CN102306401A (zh) * | 2011-08-08 | 2012-01-04 | 长春理工大学 | 一种包含模糊反射效果的3d虚拟场景的左右眼立体画面绘制方法 |
CN105869205A (zh) * | 2016-04-20 | 2016-08-17 | 曹屹 | 一种实时渲染方法和移动终端 |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
Non-Patent Citations (2)
Title |
---|
反射、折射、焦散的全局光照加速绘制研究;李瑞瑞;《中国博士学位论文全文数据库信息科技辑》;20150915(第9期);I138-33 * |
基于点缓存全局光照技术的研究;王贝贝;《中国博士学位论文全文数据库信息科技辑》;20150415(第4期);A005-22 * |
Also Published As
Publication number | Publication date |
---|---|
CN107274474A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107274474B (zh) | 三维场景立体画面绘制中的间接光照复用方法 | |
US10560687B2 (en) | LED-based integral imaging display system as well as its control method and device | |
US8334893B2 (en) | Method and apparatus for combining range information with an optical image | |
CN108513123B (zh) | 一种集成成像光场显示的图像阵列生成方法 | |
CN107783305B (zh) | 一种时分复用的3d显示器及其应用 | |
KR102010396B1 (ko) | 영상 처리 장치 및 방법 | |
CN107909647B (zh) | 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法 | |
WO2019082797A1 (ja) | 再構成方法および再構成装置 | |
US11308682B2 (en) | Dynamic stereoscopic rendering method and processor | |
CN113238472B (zh) | 基于频域位移的高分辨率光场显示方法及装置 | |
CN109151447A (zh) | 一种新型的裸眼三维光场成像系统 | |
JP2015104107A (ja) | Ip立体映像推定装置及びそのプログラム | |
KR101399274B1 (ko) | 다중 패턴 빔을 이용하는 3차원 촬영 장치 및 방법 | |
CN102117007A (zh) | 获得3d信息的装置、驱动其光源的方法、和获得3d信息的系统 | |
EP2904774A1 (en) | Method and apparatus for generating a depth cue | |
RU2606875C2 (ru) | Способ и система отображения масштабных сцен в режиме реального времени | |
JP2006101224A (ja) | 画像生成装置、画像生成方法および画像生成プログラム | |
CN114746903B (zh) | 虚拟、增强和混合现实系统和方法 | |
JP7476511B2 (ja) | 画像処理システム、画像処理方法及びプログラム | |
KR101790720B1 (ko) | 실 영상의 지형 렌더링을 이용한 집적 영상 생성 방법 및 이를 기록한 기록 매체 | |
CN111447431A (zh) | 一种应用于车载环视摄像的裸眼3d显示方法及系统 | |
CN110727105A (zh) | 一种兼容2d图像显示的立体显示装置 | |
CN110908133A (zh) | 一种基于二面角反射镜阵列的集成成像3d显示装置 | |
KR101567002B1 (ko) | 컴퓨터 그래픽스 기반의 스테레오 플로팅 집적 영상생성시스템 | |
JP2017073710A (ja) | 要素画像群生成装置及びそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |