通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法技术

技术编号:10497740 阅读:198 留言:0更新日期:2014-10-04 14:59
本发明专利技术公开一种通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法。本方法首先将动态三维场景的几何对象分成静态几何对象和动态几何对象。所有静态几何对象用一个场景图进行组织和管理,所有动态几何对象用另一个场景图进行组织和管理。本方法首先针对静态三维子场景,生成光源采样光线的传输路径。在绘制动态三维场景时,在帧间重用未失效的光源采样光线的传输路径,能显著地减小动态三维场景的画面闪烁。

【技术实现步骤摘要】
通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法
本专利技术属于三维图形绘制
,涉及一种通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法。
技术介绍
全局光照效果的生成是真实感三维场景绘制中的关键。在理论上,可以将全局光照分解成直接光照和间接光照两部分。现有很多绘制三维场景的全局光照效果的方法,例如光线跟踪、路径跟踪、光子映射等。对于动态三维场景来说,三维场景中的几何对象在不同帧之间可能发生运动变化。对于路径跟踪、光子映射等方法,如果相邻帧的光照传输路径采样变化很大,则绘制出的三维场景画面会在时间上出现明显的闪烁现象,从而影响动态画面的视觉效果。如果能在帧间重复使用一部分光照传输路径采样,则可减小相邻帧间的光照传输路径采样差异,进而减小动态画面闪烁。在实际动态三维场景中,往往只有少数几何对象会发生运动变化,多数几何对象都是静止不动的。因此,可以将动态三维场景中的几何对象分为动态几何对象和静态几何对象,并分别进行管理。在许多实际动态三维场景中,很多时候光源都静止不动,只有几何对象或者视点发生运动变化,例如一个表现人在办公室内来回走动的动态三维场景,光源往往就是固定不变的。对于光源不发生变化的动态三维场景,可以通过重用光源采样光线的传输路径来达到重用帧间光照传输路径采样的目的。注意,对于存在视点运动变化的动态三维场景,不同帧的视点采样光线的传输路径在理论上是完全不同的。对于使用双向路径跟踪绘制全局光照的情形来说,将视点采样光线的传输路径包含的线段数限制为1,同时重复使用一部分光源采样光线的传输路径,可最大限度地减小帧间光照传输路径采样的差异。实际上,现有的基于虚拟点光源的全局光照效果绘制方法就可看作是将视点采样光线的传输路径包含的线段数限制为1。
技术实现思路
本方法的目的在于,提供一种通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法。本方法的技术解决方案:将动态三维场景中的几何对象分为静态几何对象和动态几何对象,所有静态几何对象用一个场景图SSG来组织和管理,所有动态几何对象用一个场景图DSG来组织和管理;如图1所示,基于路径跟踪思想,从光源发射一系列光源采样光线A001,跟踪光源采样光线A001在场景图SSG对应的静态三维子场景中的传输路径,记录光源采样光线A001的传输路径;如图2所示,在绘制动态三维场景的每帧画面时,检测哪些光源采样光线A001的传输路径因场景图DSG中的动态几何对象的阻挡而失效,重新生成所有失效的光源采样光线A001在动态三维场景中的传输路径,同时重用那些仍然有效的光源采样光线A001的传输路径;基于路径跟踪思想,从视点发射穿过屏幕像素的视点采样光线A002,跟踪视点采样光线A002在动态三维场景中的传输路径,在视点采样光线A002第一次与动态三维场景的几何对象相交后,就结束跟踪操作,即视点采样光线A002的传输路径只包含一条线段;根据所有光源采样光线A001的传输路径和视点采样光线A002的传输路径,利用双向路径跟踪的光照计算方法,计算所有可视场景点的光照数据;最后,根据所有可视场景点的光照数据,生成动态三维场景画面图像。本方法提供一种数据结构POINT,用于存储光线传输路径的线段端点信息;数据结构POINT包括端点位置、指向数据结构POINT类型的变量的指针共2个成员变量。本方法提供一种数据结构PATH;数据结构PATH包括指向数据结构POINT类型的变量的指针P1、指向数据结构POINT类型的变量的指针P2共2个成员变量。本方法的第一部分针对场景图SSG对应的静态三维子场景,生成一系列光源采样光线的传输路径,具体步骤如下:Step101:设置光源采样光线的数目SN;Step102:在计算机系统的内存中,创建一个包含SN个数据结构PATH类型的变量的数组PARR;Step103:基于路径跟踪思想,从光源发射SN条光源采样光线,跟踪这SN条光源采样光线在场景图SSG对应的静态三维子场景中的传输路径,记录这SN条光源采样光线的传输路径的各条线段的端点信息;具体地说,对于这SN条光源采样光线中的第j条光源采样光线A101,j=1,…,SN,首先在计算机系统的内存中,创建一个数据结构POINT类型的变量A102,将光源采样光线A101的起点位置赋值给变量A102的端点位置成员变量,将变量A102的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P1成员变量赋值为变量A102的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A102的内存地址;在对光源采样光线A101的传输路径进行跟踪的过程中,除了基本的路径跟踪计算外,再额外做如下操作:对于光源采样光线A101的传输路径与场景图SSG的几何对象的每个交点A103,在计算机系统的内存中创建一个数据结构POINT类型的变量A104,将交点A103的位置赋值给变量A104的端点位置成员变量,将变量A104的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量所指向的变量的指向数据结构POINT类型的变量的指针成员变量赋值为变量A104的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A104的内存地址。本方法的第二部分完成动态三维场景的帧画面的绘制,具体步骤如下:Step201:令变量IDF=1;Step202:根据动作指令,使场景图DSG中的几何对象变换到第1DF帧对应的状态;在计算机系统的内存中,创建本方法的第一部分得到的数组PARR的一个副本数组PARRT,同时创建与数组PARR相关联的所有数据的副本数据CR,根据与数组PARR相关联的数据和数组PARR之间的关系,将数据CR与数组PARRT相关联。Step203:对场景图DSG中的每个几何对象B001,做如下操作:Step203-1:令变量m=1;Step203-2:将数组PARRT的第m个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P1成员变量的值赋给指针变量pTemp;Step203-3:如果变量pTemp所指向的变量的指向数据结构POINT类型的变量的指针成员变量的值为nil,则转子步骤Step203-7;Step203-4:将变量pTemp所指向的变量的指向数据结构POINT类型的变量的指针成员变量的值赋给指针变量pTemp2;根据变量pTemp所指向的变量的端点位置成员变量的值和变量pTemp2所指向的变量的端点位置成员变量的值,创建一条线段B002;判断线段B002与几何对象B001是否相交,如果相交,则转子步骤Step203-6;Step203-5:将变量pTemp2的值赋给变量pTemp,转子步骤Step203-3;Step203-6:将数组PARRT的第m个元素对应的数据结构PATH类型的变量的指向数据本文档来自技高网
...
通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法

【技术保护点】
通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法,其特征在于,所需的数据结构以及实现步骤如下:本方法的技术解决方案:将动态三维场景中的几何对象分为静态几何对象和动态几何对象,所有静态几何对象用一个场景图SSG来组织和管理,所有动态几何对象用一个场景图DSG来组织和管理;基于路径跟踪思想,从光源发射一系列光源采样光线A001,跟踪光源采样光线A001在场景图SSG对应的静态三维子场景中的传输路径,记录光源采样光线A001的传输路径;在绘制动态三维场景的每帧画面时,检测哪些光源采样光线A001的传输路径因场景图DSG中的动态几何对象的阻挡而失效,重新生成所有失效的光源采样光线A001在动态三维场景中的传输路径,同时重用那些仍然有效的光源采样光线A001的传输路径;基于路径跟踪思想,从视点发射穿过屏幕像素的视点采样光线A002,跟踪视点采样光线A002在动态三维场景中的传输路径,在视点采样光线A002第一次与动态三维场景的几何对象相交后,就结束跟踪操作,即视点采样光线A002的传输路径只包含一条线段;根据所有光源采样光线A001的传输路径和视点采样光线A002的传输路径,利用双向路径跟踪的光照计算方法,计算所有可视场景点的光照数据;最后,根据所有可视场景点的光照数据,生成动态三维场景画面图像;本方法提供一种数据结构POINT,用于存储光线传输路径的线段端点信息;数据结构POINT包括端点位置、指向数据结构POINT类型的变量的指针共2个成员变量;本方法提供一种数据结构PATH;数据结构PATH包括指向数据结构POINT类型的变量的指针P1、指向数据结构POINT类型的变量的指针P2共2个成员变量;本方法的第一部分针对场景图SSG对应的静态三维子场景,生成一系列光源采样光线的传输路径,具体步骤如下:Step101:设置光源采样光线的数目SN;Step102:在计算机系统的内存中,创建一个包含SN个数据结构PATH类型的变量的数组PARR;Step103:基于路径跟踪思想,从光源发射SN条光源采样光线,跟踪这SN条光源采样光线在场景图SSG对应的静态三维子场景中的传输路径,记录这SN条光源采样光线的传输路径的各条线段的端点信息;具体地说,对于这SN条光源采样光线中的第j条光源采样光线A101,j=1,…,SN,首先在计算机系统的内存中,创建一个数据结构POINT类型的变量A102,将光源采样光线A101的起点位置赋值给变量A102的端点位置成员变量,将变量A102的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P1成员变量赋值为变量A102的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A102的内存地址;在对光源采样光线A101的传输路径进行跟踪的过程中,除了基本的路径跟踪计算外,再额外做如下操作:对于光源采样光线A101的传输路径与场景图SSG的几何对象的每个交点A103,在计算机系统的内存中创建一个数据结构POINT类型的变量A104,将交点A103的位置赋值给变量A104的端点位置成员变量,将变量A104的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量所指向的变量的指向数据结构POINT类型的变量的指针成员变量赋值为变量A104的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A104的内存地址;本方法的第二部分完成动态三维场景的帧画面的绘制,具体步骤如下:Step201:令变量IDF=1;Step202:根据动作指令,使场景图DSG中的几何对象变换到第IDF帧对应的状态;在计算机系统的内存中,创建本方法的第一部分得到的数组PARR的一个副本数组PARRT,同时创建与数组PARR相关联的所有数据的副本数据CR,根据与数组PARR相关联的数据和数组PARR之间的关系,将数据CR与数组PARRT相关联;Step203:对场景图DSG中的每个几何对象B001,做如下操作:Step203‑1:令变量m=1;Step203‑2:将数组PARRT的第m个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P1成员变量的值赋给指针变量pTemp;Step203‑3:如果变量pTemp所指向的变量的指向数据结构POINT类型的变量的指针成员变量的值为nil,则转子步骤Step203‑7;Step203‑4:将变量p...

【技术特征摘要】
1.通过重用动态三维场景帧间光照传输路径采样来减小画面闪烁的方法,其特征在于,所需的数据结构以及实现步骤如下:将动态三维场景中的几何对象分为静态几何对象和动态几何对象,所有静态几何对象用一个场景图SSG来组织和管理,所有动态几何对象用一个场景图DSG来组织和管理;基于路径跟踪思想,从光源发射一系列光源采样光线A001,跟踪光源采样光线A001在场景图SSG对应的静态三维子场景中的传输路径,记录光源采样光线A001的传输路径;在绘制动态三维场景的每帧画面时,检测哪些光源采样光线A001的传输路径因场景图DSG中的动态几何对象的阻挡而失效,重新生成所有失效的光源采样光线A001在动态三维场景中的传输路径,同时重用那些仍然有效的光源采样光线A001的传输路径;基于路径跟踪思想,从视点发射穿过屏幕像素的视点采样光线A002,跟踪视点采样光线A002在动态三维场景中的传输路径,在视点采样光线A002第一次与动态三维场景的几何对象相交后,就结束跟踪操作,即视点采样光线A002的传输路径只包含一条线段;根据所有光源采样光线A001的传输路径和视点采样光线A002的传输路径,利用双向路径跟踪的光照计算方法,计算所有可视场景点的光照数据;最后,根据所有可视场景点的光照数据,生成动态三维场景画面图像;提供一种数据结构POINT,用于存储光线传输路径的线段端点信息;数据结构POINT包括端点位置、指向数据结构POINT类型的变量的指针共2个成员变量;提供一种数据结构PATH;数据结构PATH包括指向数据结构POINT类型的变量的指针P1、指向数据结构POINT类型的变量的指针P2共2个成员变量;第一部分针对场景图SSG对应的静态三维子场景,生成一系列光源采样光线的传输路径,具体步骤如下:Step101:设置光源采样光线的数目SN;Step102:在计算机系统的内存中,创建一个包含SN个数据结构PATH类型的变量的数组PARR;Step103:基于路径跟踪思想,从光源发射SN条光源采样光线,跟踪这SN条光源采样光线在场景图SSG对应的静态三维子场景中的传输路径,记录这SN条光源采样光线的传输路径的各条线段的端点信息;具体地说,对于这SN条光源采样光线中的第j条光源采样光线A101,j=1,...,SN,首先在计算机系统的内存中,创建一个数据结构POINT类型的变量A102,将光源采样光线A101的起点位置赋值给变量A102的端点位置成员变量,将变量A102的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P1成员变量赋值为变量A102的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A102的内存地址;在对光源采样光线A101的传输路径进行跟踪的过程中,除了基本的路径跟踪计算外,再额外做如下操作:对于光源采样光线A101的传输路径与场景图SSG的几何对象的每个交点A103,在计算机系统的内存中创建一个数据结构POINT类型的变量A104,将交点A103的位置赋值给变量A104的端点位置成员变量,将变量A104的指向数据结构POINT类型的变量的指针成员变量赋值为nil;将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量所指向的变量的指向数据结构POINT类型的变量的指针成员变量赋值为变量A104的内存地址,将数组PARR的第j个元素对应的数据结构PATH类型的变量的指向数据结构POINT类型的变量的指针P2成员变量赋值为变量A104的内存地址;第二部分完成动态三维场景的帧画面的绘制,具体步骤如下:Step201:令变量IDF=1;Step202:根据动作指令,使场景图DSG中的几何对象变换到第IDF帧对应的状态;在计算机系统的内存中,...

【专利技术属性】
技术研发人员:陈纯毅杨华民蒋振刚李华曲福恒李岩芳
申请(专利权)人:长春理工大学
类型:发明
国别省市:吉林;22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1