CN107392990B - 渲染3d场景的全局照明 - Google Patents
渲染3d场景的全局照明 Download PDFInfo
- Publication number
- CN107392990B CN107392990B CN201710320868.3A CN201710320868A CN107392990B CN 107392990 B CN107392990 B CN 107392990B CN 201710320868 A CN201710320868 A CN 201710320868A CN 107392990 B CN107392990 B CN 107392990B
- Authority
- CN
- China
- Prior art keywords
- triangle
- triangles
- computer
- subset
- implemented method
- 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
- 238000005286 illumination Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000009877 rendering Methods 0.000 claims abstract description 41
- 238000001914 filtration Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 48
- 230000005855 radiation Effects 0.000 claims description 28
- 238000005192 partition Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 7
- 230000004927 fusion Effects 0.000 claims description 6
- 238000002310 reflectometry Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 description 11
- 238000011960 computer-aided design Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000135 prohibitive effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241000287196 Asthenes Species 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 241001069836 Childrena Species 0.000 description 1
- 235000014548 Rubus moluccanus Nutrition 0.000 description 1
- 244000191761 Sida cordifolia Species 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
该发明尤其涉及一种用于渲染三维场景的全局照明的计算机实现的方法。所述方法包括:提供包括三角形的集合以及一个或多个直接光源的3D场景、确定所述集合中的每个三角形具有低于阈值的面积、使用概率定律向所述集合中的每个三角形分配影响的半径、通过根据它们的影响的半径过滤出三角形来获得三角形的子集,所述三角形的子集中的三角形根据他们的影响的半径而被用作间接光源。
Description
技术领域
本发明涉及计算机程序和系统的领域,并且更具体地,涉及用于在大模型的上下文中渲染三维场景的全局照明的方法、系统和程序,所述场景例如通常在CAD应用场景中遇到的复杂场景。
背景技术
市场上提供了用于对象的设计、工程、和制造的许多系统和程序。CAD是计算机辅助设计的首字母缩写,例如,其涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩写,例如,其涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩写,例如,其涉及用于定义制造过程和操作的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面在该技术的效率方面扮演重要角色。可以将这些技术嵌入到产品生命周期管理(PLM)系统内。PLM是指一种商业策略,其帮助公司跨越经扩展的企业的概念地针对从概念到其寿命结束的产品的开发而共享产品数据、应用通用流程、利用企业知识。由Dassault Systèmes(在CATIA、ENOVIA、和DELMIA的商标下)所提供的PLM解决方案提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心、以及使能企业集成和连接到工程中心和制造中心两者中的企业中心。所有这些系统提供了将产品、过程、资源联系起来的开放的对象模型以实现动态的、基于知识的产品创建和决策支持,其驱动了经优化的产品定义、制造准备、生产、和服务。
光传输模拟是现实图像合成的重要组成部分。与该现象相关的研究成果的主体被称为“全局照明”,并且尽管其众所周知的物理定律,由于其高昂的计算成本而仍然是具有挑战性的问题,其对实时场景甚至具有更关键的结果。隐藏在如在KAJIYA J,T.1986.Therendering equation,ACM Siggraph Computer Graphics,vol.20,ACM,143-150中所讨论的渲染方程的递归性质之后,全局照明模拟已经在大量方法中得到解决,这是因为其带给特殊效果、预可视化、动画电影制作、和视频游戏的高度真实性。
当前,可以区分两个研究路线。第一个是“交互式渲染”,其目的是快速提供全局照明的视觉上可信的近似。第二个是“离线渲染”,其将尽可能接近物理的解决方案作为目标。
在可以用于实现用于“交互式渲染”的实时性能的各种策略中,利用远程入射辐射(radiance)的低频行为已被证明是有效的。例如,在WALTER,B.,FERNANDS,S.,ARBREE,A.,BALA,K.,DONIKIAN,M.和GREENBERG,D.P.2005.Lightcuts:a scalable approach toillumination.ACM Transactions on Graphics(TOG),vol.24,ACM,1098-1107中所讨论的分级辐射缓存方法通过计算场景的几何形状上的树来利用该属性,所述场景的几何形状存储多尺度辐射函数。假设间接光照是由位于场景表面上的虚拟点光(VPL)建模的,则该树的每个内部节点提供其相关子树的代表性辐射响应,并且一从远程的位置评估了辐射就用作其替代品。用于在给定的点(例如,未投影的图像像素)处评估入射辐射的节点的集合被称为光切割,这是因为聚集节点引起丢弃其子节点。
已经提出了光切割聚集过程的多个高性能实现,但其中大部分依赖对树进行预先计算和保存,这可能具有显著的存储器和计算成本。
Mittring等人(MITTRING,M.2007.Finding next gen:Cryengfne 2.ACMSIGGRAPH 2007 courses,ACM,97-121)引入了环境光遮蔽近似方法,该方法使用深度缓冲作为对场景的实际(有可能大的)几何形状的经济的、可随机访问的替代物,并且在屏幕空间中将光高速缓存参数化。很多种其他方法利用屏幕空间近似来降低某些光照效果的计算复杂度。然而,无论它们的实时和动态性能如何,这样的方法依赖于深度剥离和多视图渲染来考虑到场景的完整几何形状(即,超出第一深度层并且在视锥体之外),这迅速负面地影响它们的本机速度。
与屏幕空间方法相比,解决对象空间中的间接照明避免了这样的视点相关的伪像(artifacts),而以较少的GPU友好的光高速缓存为代价。例如,如在KELLER,A.1997.Instant radiosity.Proceedings of the 24th annual conference onComputer graphics and interactive techniques,ACM Press/Addison-WesleyPublishing Co.,49-56中所讨论的即时辐射度(IR)方法对在由主要源所照明的几何形状上直接生成的次级点光源(被称为虚拟点光(或VPL))的集合有效。因此,VPL集合充当场景的间接光照的离散表示,并且允许在近似光反射时极大地减少计算。然而,扩展到海量数据需要大量的VPL。这是具有挑战性的,因为这么多VPL的生成和着色成本两者在动态场景中是禁止的。
最后,在NALBACH,O.,RITSCHEL,T.和SEIDEL,H.-P.2014.Deep screenspace.Proceedings of 18th meeting of the ACM SIGGRAPH Symposium onInteractive 3D Graphics and Games,ACM,79-86.2014中所讨论的深屏幕空间(DSS)方法提出利用屏幕空间辐射高速缓存和对象空间辐射高速缓存两者的优点。与对象空间策略相同的方式,该方法生成表面上VPL,甚至在可以仍然影响图像的遮蔽的几何形状上;并且与屏幕空间方法类似,其受益于本机GPU支持,其中,分割单元而不是光栅化器被用作表面采样器来生成VPL。然而,尽管DSS可以成功地用于渲染小到中等大小的场景,但是其不能处理较大的场景,其中实时约束施加对几何形状的抽取而不是对其进行细化。
在该上下文内,仍然需要一种渲染三维场景的全局照明的经改进的方法。
发明内容
因此提供一种用于渲染三维场景的全局照明的计算机实现的方法。该方法包括:
-提供包括三角形的集以及一个或多个直接光源的三维场景;
-确定所述集合中的每个三角形ti具有低于阈值S0的面积;
-使用概率定律向所述集合中的每个三角形分配影响的半径;
-通过根据所述三角形的影响的半径过滤出三角形来获得三角形的子
-通过对所述三维场景的三角形的集合进行光照来渲染所述三维场景,所述三角形的子中的三角形根据它们的影响的半径而被用作间接光源。
该方法可以包括以下中的一个或多个:
确定所述集合中的每个三角形具有低于所述阈值的面积包括:将所述三角形的集划分为:三角形的第一集合,其中,所述第一集合中的每个三角形具有低于所述阈值的面积;三角形的第二集合,其中,所述第二集合中的每个三角形具有高于所述阈值的面积;以及将所述第二集合中的每个三角形分割为三角形的第三集合,其中,所述第三集合中的每个三角形作为分割的结果而具有低于所述阈值的面积;并且其中使用概率定律向所述集合中的每个三角形分配影响的半径包括:使用概率定律来向所述第一集合和所述第三集合中的每个三角形分配影响的半径;以及获得三角形的子集包括:通过根据所述集合中的三角形的影响的半径而过滤出所述第一集合和所述第三集合中的三角形来获得三角形的子集;
-包括:在确定了所述集合中的每个三角形具有低于阈值的面积之后:根据所述概率定律将所述三角形的集合随机划分为三角形的N+2个子集;丢弃包括被确定为对所述三维场景的渲染具有低贡献的三角形的所述三角形的N+2个子集中的一个子集,剩余的N+1个子包括未丢弃的三角形;
-所述三角形的N+2个子集中的剩余子包括所述集合中的三角形ti,以使得
其中,A(ti)是三角形ti的表面面积,而S0是所述阈值。
-所述剩余子中的每个三角形根据三角形处于子中的概率而被分发(S520)在剩余子中的一个中,所述概率由下式定义:
其中,当k增加时Sk的值增加。
-设置Sk以使得Sk=S0μk,其中μ>1,并且μ的值是包括在[1;5]之间的实数。
-设置Sk以使得Sk=S0μk,其中μ的值是由所定义的,其中Rscene是所述三维场景的半径。
-在已经分发了所述剩余子中的每个三角形之后:计算针对所述剩余的子中的每个三角形的单个虚拟点光;并且其中,使用概率定律向所述集合中的每个三角形分配影响的半径还包括:计算针对所述剩余子中的每个三角形的虚拟点光的出射辐射,所述计算是根据已经在其中分配了所述三角形的所述子集来执行的;
-计算针对所述每个三角形的虚拟点光的出射辐射包括:计算表示所述三维场景中的所述虚拟点光对其贡献显著的点的集合的嵌套球的
-针对所述N+2个子集中的每个剩余子集来计算支持函数fk(ti,x),以使得在所述剩余子集上的所述支持函数的集合(fk)k形成在所述嵌套球的的边界上恒定的统一的分区;
-所述支持函数的集合(fk)k的基函数是B样条;
是由定义的,其中,x是具有法线的所述三维场景的点,yi是所述虚拟点光在三角形ti上在其上集中的点,ρx是在点x处的反射率,ρx是在点yi处的反射率,E(ti)是落到所述三角形ti的直接辐射度;
-在渲染步骤处,支持函数的集合(fk)k用于在渲染嵌套球的的球体时实行融合操作;
-所述阈值S0是由定义的,其中,Navg是虚拟点光的平均数;Dnear是所述3D场景的像素与VPL之间的最小距离;
-在确定所述集合中的每个三角形ti具有低于阈值S0的面积之前:针对所述集合中的三角形ti的每个顶点而生成(S20)单个随机整数;
-其中,针对三角形的每个顶点计算单个随机整数还包括:针对所述第三集合中的三角形的每个子顶点,确定所述子顶点的重心坐标;使用所述重心坐标来提取(S210)噪声纹理中的随机值;使用所提取的随机值来生成(S220)所述第三集合中的三角形的所述每个子顶点的所述单个随机整数;
还提供一种包括用于执行该方法的指令的计算机程序。还提供一种包括用于执行该方法的指令的图形库计算机程序。
还提供一种其上记录有图形库计算机程序的计算机可读存储介质。
还提供一种系统,其包括耦合至存储器的处理器以及具有图形处理单元的图形卡,所述存储器在其上记录有计算机程序。
系统的图形卡可以包括:几何形状着色器单元,其用于确定集合中的每个三角形ti具有低于阈值S0的面积;以及分割单元,其用于分割所述集合中的三角形ti;并且其中,记录在所述存储器上的计算机程序适用于配置所述分割单元以用于执行对单个随机整数的生成。
附图说明
现在将作为非限制性示例并且参考附图来描述本发明的实施例,其中:
-图1和图2示出了所述方法的示例的流程图;
-图3示出了所述方法的示例;
-图4示出了本发明的间接照明着色器管线的示例;
-图5示出了本发明的间接照明管线的示例;
-图6示出了在点x处的虚拟点光的照明的示例;
-图7示出了关于平面部分的支持函数的可视化的示例,其中值的范围从0(黑色)到1(白色);
-图8示出了一维的统一分区的示例;
-图9示出了每三角形均匀随机值的生成的示例;
-图10和11是示出没有和具有本发明的发散(divergent)管线的同一场景的照明的示例的屏幕截图;
-图12示出了用于执行所述方法的系统的示例。
具体实施方式
参考图1和图2的流程图,提出一种用于渲染三维场景的全局照明的计算机实现的方法。该方法包括提供包括三角形的集和一个或多个直接光源的三维场景。接着,确定集合中的每个三角形ti具有低于阈值S0的面积。接下来,使用概率定律向集合中的每个三角形分配影响的半径。接着,通过根据它们的影响的半径而过滤出三角形来获得三角的子集。接下来,通过照亮其三角形的集合来渲染三维场景,所述三角的子集中的三角形根据其影响的半径而被用作间接光源。
这样的方法改进了三维场景的全局照明的实时渲染。实际上,生成了照明的多尺度表示——VPL是基于输入三角形集合的随机抽取过程而生成的——以及向前(即,从源到传感器来利用光空间)——计算它们中的每个的有界影响区域就如同它们是在切口(cut)中被选择的。本发明利用图形卡的几何形状着色器和分割器单元两者来以每帧为基础建立近似于间接照明的虚拟点光(VPL)的集合。本发明提出了一种用于照明的散射图形管线,其可以以双趟次(two-pass)策略来既细化又简化几何形状驱动的VPL的集合。利用分割器单元和几何形状着色器两者来在具有海量三角形的场景的上下文中调整对象空间辐射高速缓存的分辨率。本发明不暗示任何复杂的预处理,也不需要在帧上携带复杂的数据结构。实时性能是通过使用光场的多尺度表示来达到的,并且是完全动态的,并且不诉诸于任何树结构,也不强制将任何数据结构保存在帧中。其与包括光、视点、和几何形状动画的完全动态场景兼容。最后但同样重要的,在集成方面,本发明自然地适合于标准现代图形管线,并且不对由主机应用所采用的补充渲染技术进行任何强假设。
该方法是计算机实现的。这意味着该方法的步骤(或大体上所有步骤)是由至少一个计算机或任何类似的系统来执行的。因此,该方法的步骤是有可能全自动地或者半自动地由计算机执行的。在示例中,所述方法的步骤中的至少一些步骤的触发可以通过用户-计算机交互来执行。所需的用户-计算机交互的等级可以取决于预见的自动化的等级,并且与实现用户的愿望的需求相平衡。在示例中,该等级可以是用户定义的和/或是预先定义的。
该方法的计算机实现的典型示例是利用适用于该目的的系统来执行该方法。所述系统可以包括耦合至存储器的处理器以及具有图形处理单元的图形卡,所述存储器具有记录在其上的计算机程序,所述计算机程序包括用于执行该方法的指令。所述存储器还可以存储数据库。所述存储器是适用于这样的存储的任何硬件,有可能包括几个区别的物理部件(例如,一个用于程序,而有可能一个用于数据库)。所述数据库可以存储待渲染的3D场景,例如,数据库存储场景的三角形的集合。
图12示出了系统的示例,其中所述系统是客户端计算机系统,例如用户的工作站。
所述示例的客户端计算机包括:连接至内部通信总线1000的中央处理单元(CPU)1010,也连接至总线的随机存取存储器(RAM)1070。所述客户端计算机还提供有图形处理单元(GPU)1110,所述图形处理单元(GPU)1110与连接至总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030之类的大容量存储器设备的访问。适合于有形地实施计算机程序指令和数据的大容量存储器设备包括所有形式非易失性存储器,作为示例而包括诸如EPROM、EEPROM、和闪速存储器设备之类的半导体存储设备;诸如内置硬盘和可移动盘之类的磁盘;磁光盘;以及CD-ROM盘1040。前述内容中的任何内容可以由专门设计的ASIC(专用集成电路)补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。光标控制设备在客户端计算机中被使用以允许用户选择性地将光标定位在显示器1080上的任何期望的位置处。另外,光标控制设备允许用户选择各种命令和输入控制信号。光标控制设备包括用于向系统输入控制信号的多个信号生成设备。通常而言,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。可替代地或额外地,客户端计算机系统可以包括感应垫和/或感应屏幕。
计算机程序可以包括可以由计算机执行的指令,所述指令包括用于使得以上系统执行方法的单元。所述程序可以被记录在包括系统的存储器的任何数据存储介质上。所述程序例如可以被实现在数字电子电路中,或者被实现在计算机硬件、固件、软件中或其组合中。所述程序可被实现为装置,例如有形地实施在用于由可编程处理器执行的机器可读存储设备中的产品。方法步骤可以是由可编程处理器执行的,所述可编程处理器执行指令的程序以通过对输入数据进行操作并产生输出来执行所述方法的功能。因此,所述处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备、和至少一个输出设备发送数据和指令。应用程序可以以高级过程式或面向对象的编程语言来实现,或者如果需要的话,以汇编或机器语言来实现。在任何情况下,所述语言可以是经编译或经解译的语言。程序可以是完全安装程序或更新程序。系统上的程序的应用在任何情况下都得出执行该方法的指令。
如将在下文中更加详细地讨论的,本发明使用虚拟点光照(VPL),即,某一光照针对其高速缓存的点的集合。经缓存的光照可以是直接光照。VPL用于对间接光反射进行近似估计。图5示出了如在本领域中已知的基于VPL的管线的示例。VPL管线通常由三个主要阶段组成,即(a)VPL生成,(b)间接光高速缓存和(c)利用VPL的光照。
本发明尤其关注(a)VPL生成以及(c)它们在光照期间的使用。图1示出了针对其生成VPL的三角形的生成的示例:
-在预处理时间时,对单个每顶点随机整数的计算将在渲染时间时被使用以一致地生成每三角形随机数,甚至在动态几何形状变换下;
-讨论了从原始几何形状创建三角形的子集的示例。尤其是呈现了规则管线和发散管线的使用;在本发明中被称为“发散”的大三角形不由前述策略很好地采样,并且可能在最终图像中引入重要的光照伪像;因此,发散三角形通过分割单元而被路由,其中,它们被细分直到达到合适的分辨率为止;
-丢弃原始数据的三角形的示例,例如,为了在优化采样信息量的同时大大减少被管理的三角形的数量,完全丢弃主要由小三角形组成的特殊集合。
图2示出了VPL的生成的示例,其中从原始数据(图1)所生成的三角形的完整集合根据概率定律而被随机分区。针对每个三角形,生成VPL并且仅仅基于其相关分区来计算其出射辐射。最后,间接照明在典型的延迟着色过程中被融合(splatt),其中经融合的功能支持取决于VPL分区,以保留强大的VPL来使用新月形支持继续远程光照。
参考回图1,现在讨论本发明的第一方面,其是从VPL针对其生成的原始数据的三角形的生成。在步骤S10处,提供了3D场景。3D场景包括三角形的集和一个或多个直接光源。提供意味着原始数据(3D场景的三角形的集)可以由实现本发明的方法的系统和/或程序来访问。通常而言,3D场景可以被加载在渲染引擎中,所述渲染引擎是在应用的请求之后生成待显示的图像的框架,如在本领域中已知的。例如,CAD系统的CAD应用作为输入而向渲染引擎提供3D建模对象的3D场景,并且所述渲染引擎使用CAD系统的一个或多个图形卡而将3D场景绘制到屏幕。3D场景的三角形形成网格,例如3D场景的建模对象是由互连的三角形表示的,如在本领域中已知的。
接着,在步骤S20处,针对集中的每个三角形的每个顶点而生成单个随机整数。作为结果,添加每顶点unit32的属性-v_rand。当用在0和232之间但不限于该范围,甚至在0和264之间均匀地选择的随机值来加载网格时,将该属性初始化。应当理解的是,该步骤可以如在本领域中已知的那样执行。
步骤S10和S20在图3上被标注(a)。
接着,在步骤S30处,确定集合的每个三角形ti具有低于阈值S0的面积。取决于确定器的结果,原始数据被分成或不被分成集合的规则三角形和发散三角形,其中,发散三角形是具有大于阈值S0的面积的三角形,所述三角形被细分以使得每个新三角形可被认为是规则的,如由图3上的(d)和(e)所图示;规则三角形是具有小于或等于阈值S0的面积的三角形。步骤S310-S312讨论规则三角形的规则管线,而步骤S320-S322讨论发散管线。
将规则三角形与发散三角形区分开,即具有大于某一阈值S0的面的三角形ti的集合。该阈值可以被设置以使得(等式1)
其是针对具有距它们至少Dnear远的Navg个VPL的近似光照像素的启发法。Dnear是提供像素与VPL之间的最小距离的变量。Navg是3D场景上的VPL的数量。令Rscene是场景半径,则设置Dnear可以是设置Dnear=0.2×Rscene,并且Navg优选地取决于期望的质量/速度权衡而被设置在64与1024之间。应当理解的是,Navg的值的范围可以改变,并且VPL的数量可以更高,这取决于执行渲染的系统的计算资源。场景的直径被设置为Diamscene=2×Rscene,并且Diamscene是场景中的两个点之间的最大距离。
因此,在步骤S300处,将三角形ti的集合划分成具有小于或等于S0的面积的三角形的第一集合(S310),以及三角形(S320)的第二集合,其中所述第二集合中的每个三角形具有大于S0的面积。应当理解的是,第一集合可以包括小于S0的三角形,并且第二集合可能包括等于或大于S0的三角形。
在步骤S312处,存储第一集合中的三角形,例如在高速缓存存储器上。
在步骤S322处,将第二集合中的三角形分割成三角形的第三集合。所述分割是如在本领域中已知的那样执行的。经分割的三角形具有小于或等于S0的面积:第三集合中的每个三角形具有低于阈值的面积以作为所述分割的结果。
现在,原始数据包括三角形的两个集合。这两个集合中的三角形具有小于或等于S0的面积:两个集合之间的差异是第一集合中的每个三角形的每个顶点与单个随机整数相关联,而对于第二集合中的三角形不是这种情况,这是因为分割创建一个或多个顶点不具有先前针对其生成的单个随机整数的新的三角形。在图1的示例中,已经生成了单个随机整数并且关联至原始数据。应当理解的是,可以在稍后阶段生成和关联单个随机整数,例如当正在确定第一集合和第二集合时;或者甚至在已经执行了对原始数据的分区之后。例如,一旦已经存储了第一集合,就可以针对第一集合中的三角形的顶点而生成单个随机整数。
步骤S200-S220提供了用于针对第二集合中的每个三角形的每个顶点而生成单个随机整数的示例。优选地,这些步骤是在分割第二集合中的三角形时执行的:针对第二集合中的每个新分割的三角形(S320),执行步骤S200至S220。可替代地,所述步骤可以在已经建立了第三集合之后而被执行。在这里,在每次第二集合中的三角形被分割时执行生成的情况下讨论步骤S200-S220。
在步骤S200处,确定第三集合中的三角形的每个子顶点。如在图9-(a)上所示出的,第二集合中的三角形的每个顶点包括unit32属性-v_rand。在图9-(b)中,获得三角形90的子顶点90a、90b、90c,应当理解的是,三角形90是从图9-(a)的三角形中获得的新的十个三角形中的一个三角形。
接着,在步骤S210处,识别第三集合中的三角形的所述每个子顶点的重心坐标tess_coord[i]。所述重心坐标是在从其获得第三集合中的三角形的所述每个子顶点的第二集合中的三角形的分割期间计算的。接着,通过使用重心坐标tess_coord[i]来提取噪声纹理中的随机值。更精确地,针对每个tess_coord[i]而提取随机值。如在本领域中已知的那样执行提取:纹理可以被预期为二维表格,其中所述表格的每个单元存储值,例如所述值是32位整数。当提取随机值时,读取单元中的一个单元,通过使用坐标tess_coord[i]而在表中到达该单元。噪声纹理通常是预先计算的,例如,在请求对3D场景的渲染时。噪声纹理是给定大小的表,例如1024×1024。
接下来,在步骤S220处,使用所提取的随机值来生成第三集合中的三角形的所述每个子顶点的单个随机整数。如在图9-(c)上所示出的,三角形90的每个顶点与从经分割的三角形上的该顶点的重心坐标tess_coord[i]所生成的随机值v_rand_tess[1]相关联。
第三集合中的一些三角形已经与在步骤S20处所生成的随机值相关联。保留这些随机值,并且步骤S200至S220仅仅关心没有随机值的子顶点。因此,确定没有单个随机整数的第三集合中的三角形的子顶点。这允许保留计算资源。
现在,第一集合和第三集合具有这样的三角形,其具有小于或等于S0的面积并且具有与单个随机值相关联的顶点。第一集合和第三集合可以随着发散管线将发散三角形变换成规则三角形而被合并(S40)。
现在参考图2,讨论根据概率定律以及随机分区经合并的第一集合和第三集合的方式的VPL的生成。
在步骤S50处,根据概率定律而将三角形的集合(S40)划分成N+2个三角形子集,并且丢弃这些N+2个子集中的一个子集(S510),即,确定性地移除三角形。
在实践中,可以在分区之前执行在步骤S510处的三角形的抽取,以使得需要更少的计算资源以用于创建分区,这是因为在分区时较少的三角形必须被分析。
三角形抽取旨在移除3D场景的小三角形,这是因为它们对散射间接照明的最终渲染贡献不大。直接的解决方案将是移除面积阈值以下的小三角形。然而,小三角形的分组可以在光传输中共同具有重要影响。使用随机抽取方法,其中通过针对第一集合和第三集合中的每个三角形而计算位于0与1之间的均匀随机值uti来留存重度分割的几何形状的贡献。规则如下:如则保留三角形(即,不丢弃),并且如则将三角形添加至待丢弃的三角形的集合(应当理解的是,所述三角形可以被立即丢弃)。
如果假设每个三角形可以被假设为规则的,则针对待保持的三角形ti的概率归结为(等式2):
其中表示保留的第一集合和第三集合(S40)中的三角形ti,表示第一集合和第三集合中的三角形。直观地,这意味着三角形越小,其被丢弃的可能性变得越大。同时,该分区转化成样本均匀分布在整个场景表面上,以使得所保留的三角形计数期望是其中是总场景面积。
一旦三角形已经被丢弃或者至少与待丢弃的分区相关联,就根据三角形处于子中的概率而将剩余的三角形(即,所保留的三角形)分发(步骤S520)在N+1个剩余的子中的一个中。所述分发使得:包含几个三角形,并且当k越来越接近0被越来越多地填充。通过这样做,代表性场景三角形的多尺度分区从抽取策略中出现(步骤S510),其中三角形处于子中的概率为(等式3):
以及(等式4)
Sk=Soμk
其中,μ>1是用户定义的实数。利用Sk=Soμk,每子的VPL的数量呈指数演进,这模拟本领域的一些现有技术(例如,基于树结构的那些技术)的行为。
μ的值取决于场景以及分区的数量。μ的值通常被包括在1、4、和5之间。稍后将在关于方法的实现的示例的讨论中来讨论μ的可接受的值的要求。实际上,Sk=Soμk是实现选择,并且可以被理解为处于分区(或子集)中的三角形的平均表面。在实践中,选择Sk以使得其值在k增加时增加。利用前述公式(等式4),分区引入了具有几何地降低的大小期望的子集,以模仿与光场一起使用的传统的分级表示。然而,没有一种明确的层次结构被保存、生成、或管理,这是因为三角形受到独立于针对任何其他子集而进行选择的某个子集的影响。特别地,这意味着位于给定的子集中的给定的三角形不捕获由较精细的三角形所携带的任何粗粒度的信息。
以下的算法1示出了诸如从等式3定义的分区的生成的示例,其中概率定律uti保持不变。
为了针对每个三角形来评估算法1,针对变量uti而使用伪随机值。在示例中,该值的生成依赖于额外的每顶点unit32属性-v rand。如所讨论的,当用例如在0和232之间均匀选择的随机值来加载网格(原始数据)时,将该属性初始化。在规则管线中,在几何着色阶段,uti被计算为三角形ti的三个顶点的随机属性之间的异或(xor)。对异或运算符的选择允许避免两个或三个三角形之间的相关性。此外,可以通过使用u_rand而在任何时间生成新的随机值,u_rand是可以在渲染时间每帧最多更新一次的全局均匀随机值。与原始的每个顶点值求异或,允许获得在网格上的全新的随机分布。这在以下的算法2中是显而易见的。
针对发散管线(针对不规则的三角形),uti的结构更加微妙。实际上,即使在相机运动或网格变形下(即,只要网格拓扑保持相同),该值就保持不变。为了保留这些属性,在模型空间中执行分割,并且利用分割模式仅仅取决于输入三角形形状的事实。实际上,如在关于步骤S200-S220的讨论中所解释的,分割参数仅仅是由原始三角形面积确定的。因此,为了针对从细分弹出的三角形而生成uti,在三个v_rand_tess、三个基本三角形v_rand、以及最终在全局均匀随机值u rand之间计算异或,如在算法2中所示:
图3-(b)和(c)示出了分区的生成,即,存活的三角形(在丢弃“小”三角形(b)之后剩余的那些三角形)是根据等式3的概率定律而在子集之间分类的,其中,针对变量uti而使用伪随机值。
回到图2,在步骤S60处,针对剩余子中的每个三角形而计算单个虚拟点光。优选地,为了适当地处理硬件约束,每个三角形计算不超过一个VPL;应当理解的是,一些三角形可能具有多于一个VPL,例如,可以根据它们的来执行决策。针对每个剩余的三角形的VPL的计算是如在本领域中已知的那样执行的。
VPL的计算实际上涉及针对每个VPL而计算出射辐射,以便用利用VPL来执行光照。如利用在下文中阐述的数学讨论将显而易见的,根据已经在其中分发了三角形的子集来执行对出射辐射的计算(步骤S70)。因此,使用概率定律将影响的半径(即,出射辐射)分配至第一集合和第三集合中的每个三角形,方程3中的一个用于获得子因此,概率定律可以被预期为被执行以使得获得影响的半径的降低的密度的影响的半径的分布:实际上,分区引起具有几何地减小的大小期望的子集,以模仿与光场一起使用的传统的分级表示。人们理解,丢弃对3D场景的渲染具有低贡献的三角形相当于通过根据它们的影响的半径而过滤出三角形来获得三角形的初始集合(原始数据)的子集。
步骤S700至710示出了用于根据已经在其中分配了三角形的子而计算针对中的每个三角形的虚拟点光的出射辐射的示例。计算嵌套的嵌套球的族表示三维场景中的虚拟点光对其贡献显著的点的集合(S700)。在步骤S710处,针对每个剩余的N+1个子集而计算支持函数fk(ti,x)。剩余子集上的支持函数的集合(fk)k形成在嵌套球的的边界上恒定的统一分区。出于解释的目的,现在讨论在该示例中所使用的出射辐射的模型,并且对步骤S700和S710的计算将相应地执行。图3(f)示出了具有不同大小的影响的半径的示例;针对三角形的虚拟点光所计算的出射辐射取决于所述三角形所属的子集。
具有正常nx的点x的间接出射辐射由等式5定义为:
其中表示场景中所有三角形的集合(即原始数据),并且代表从ti开始朝着由定向的接收者x的入射辐射转移函数。图6示出了具有由定向的点x的像素60(接收者),并且ρx是在点x处的反射率。针对具有反射率ρx的散射接收者,该传递函数被定义为(等式6):
其中:
是朝着方向离开在yi∈ti处集中的VPL的辐射,并且是yi和x之间的距离,其固定到用户参数∈以避免奇点。通常而言,∈具有包括在范围[10-3;10-6]中的值。
可以利用以下VPL出射辐射表达式(等式7)来对光的第一散射反射进行建模:
其中E(ti)是落至三角形ti的直接辐射度。应当注意的是:由于项反射器不能再被认为是完美的朗博(Lambertian)反射了。尽管光因此优选地在几何法线的方向上被反射,但是实验示出了没有明显的变化出现,而这大大减轻了如将在下文中所讨论的即将到来的计算。
为了应对硬件限制,可以通过对VPL的子集的贡献求和来对的计算进行近似,即通过对子的三角形的VPL的贡献求和来进行近似。因此,标注的的估计值可以被定义为(等式8):
其中Fk(ti,x)是位置x、发射者ti、和指数k的未知函数。以下导出其等式。
通过计算每个可能的分区的集合上的的期望,获得以下等式9:
其中是指示符函数,如果ti∈Lk则其等于1,否则等于0。
如果想要来表示入射辐射的无偏估计值,则有必要验证关于函数Fk的以下函数等式(等式10),
根据如在等式3中所建立的VPL分区策略,Fk被定义为(等式11):
等式11允许将等式10的无偏条件重写为统一分区的问题。统一分区是从集合X到单元间隔[0,1]的函数的集合,以使得针对X中的每个点x,在x处的所有函数值的和为1。这得出寻找函数(fk)k的集合,以使得(等式12):
因此,已经使用将三角形划分成子而对利用VPL的光照进行了近似,即,已经通过使用用于将三角形分发至N+1个子集中的概率定律来进行近似。该近似还引起找到函数(fk)k的集合,所述集合中的每个函数是支持子集的VPL的入射辐射的函数。函数的支持是其中函数不是零值的点的集合。因此,对于每个子对支持函数进行计算,这取决于其所属的支持。例如,函数fk的支持是如等式17-18中所示。这意味着fk的支持是函中的一个,针对特定的h以使得h=Dk+1。
受到在CHRISTENSEN,P.2008.Point-based approximate color bleeding.PixarTechnical Notes 2,5,6中所讨论的PBGI树切割策略的启发,引入了嵌套球的族函数的特征在于h>0,并且针对给定的h,表示VPL对其贡献显著的点的集合。换句话说,嵌套球的形成了3D空间中的体积的集合,并且针对每个h>0,存在单个体的几何形状是其中心被约束(并通过)线(yi,ni)并且具有直径D(h)的球体。h的参数。针外部的每个点x,传递函数(参考等式6、8、和9所讨论的)小于h,而无论接收者的朝向是什么。这被表达在公式13中:
此外,传递函(参考等式6、8、和9所讨论的)在接收者正面面对发射者时为最大,否则因此,利用VPL辐射分布模型,函数可以被写成(等式14):
其中D(h)(的球体的直径)表示属于给定子集的VPL的直接出射辐射的贡献的最大距离。因为D(h)不取决于x,所以是嵌套球的族,其边界拥有yi并且中心位于线(yi,ni)上。
3D的统一分区(fk)k在以为边界的球体上可以是恒定的。函数是支持函数的等值线。接着,通过定义从到的以下映射(等式15):
通过以下等式(等式16)定义了所获得的1D统一分区的1D分区:
如在本领域中已知的,统一分区(fk)k将用于执行融合操作。因此,当针对每个像素而计算VPL的照明时,实行对每个像素的评估以用于在每个像素上将纹理混合在一起。在渲染期间,可以使统一分区(fk)k尽可能平滑,同时保持它们易于计算,并且将它们定义为(等式17):
另外,有可能定义(等式18):
从而获得具有紧凑支撑的连续分段仿射函数的集合。只有当DN大于场景的直径时,这样定义的函数才很好地适应,否则它们可能在场景中存在不能够对光传输进行贡献的一对点。这意味着DN>Rsense。这转换成关于μ的以下条件(等式4):
现在参考图7,支的支持函数(fk)k的可视化的示例在平面部分上运行。函数是支持函数的等值线,并定义支持函数的轮廓。有趣地,在其支持函数上的的球体的贡献的距离(D0,D1,D3)取决于子集以使得VPL的功率取决于其所属的子集。因此,当k接近0时,越来越多地由具有越来越少的功率的三角形(并且因此VPL)填充,而当k接近N时,包含具有越来越多的功率的越来越少的三角形(并且因此VPL)。如在图3(f)上所示,低功率VPL用于捕获本地光照,而高功率VPL用于捕获具有新月形支持函数的模型远程照明。
图8示出了用于在用于渲的球体的渲染时间执行融合操作的一维的统一分区的示例。函数越平滑,计算结果越好。图8的的示例具有良好的结果,这是因为存在有限数量的重叠(在横坐标上存在最多两个不是零值的函数),函数是连续的和凹的。由具有星的曲线表示,具有三角形,具有点,而具有在其上的菱形。可以使用几类功能。特别地,支持函数(fk)k的集合的好的基函数是B样条。
最终,在步骤S80处,通过对其三角形的集合进行光照来渲染三维场景,三角形的子的三角形根据它们的影响的半径而被用作间接光源。如所提及的,支持函数(fk)k用于实行用于渲染嵌套球的族的函数的球体的融合函数。所述渲染是如本领域中已知的那样执行的,并且使用提供有用于利用经计算的VPL的3D场景的一个或多个直接光源。
图10和图11是利用全局照明渲染的3D场景的图片(屏幕截图)。图10示出了没有发散管线而渲染的场景:只有重度分割的几何形状投射间接照明。图11示出了通过使用发散管线而渲染的同一3D场景;地面(由4个三角形组成)光反弹揭示很多场景。因此,最大的三角形是在更靠的子集中所使用的以及用于对远程照明进行建模的那些三角形。
为了完整性的目的,参考图4讨论了实现细节。管线仅仅包含整个场景的两个几何形状绘制趟次:一个用于生成GBuffer,而一个用于生成和融合VPL。这些是规则管线。原始几何形状的该适度使用是针对需要大量多边形的应用的重要度量,所述应用例如计算机辅助设计(CAD)和类似的软件应用。典型的CAD场景包括数千个3D建模的对象,其中每个对象包括数百或数千个三角形,甚至更多。实际上,第三几何形状绘制趟次发生,但仅涉及场景的一小部分:由发散管线处理的发散三角形。由于设置发散标准以使得发散三角形保持小数量,因此该最后的趟次不是计算上禁止的。实际上,规则管线密集地利用几何形状着色器阶段根据每三角形的基础而不是每片段或每顶点的基础来执行计算。有趣地,针对最近的GPU架构,几何形状着色器阶段的正式禁止的开销已经大大减少,以使得能够针对大流而进行多边形计算。
发散管线利用不被设计为管理作为输入的海量三角形集合的硬件分割单元,以在处理三角形时引入明显的开销,即使该三角形不需要任何细分。同时,在丢弃或允许通过多边形时(即,当没有几何形状放大是强制的时),这些架构的几何形状阶段极其有效。在规则管线的第一趟次中,整个场景几何形状(原始数据)被处理器,但禁用分割阶段。发散三角形(S320)是在几何形状阶段被检测到的,并且被存储在分离的缓冲器中,同时规则的三角形被随机采样(S520)。为了管理具有许多材料和纹理的场景,可以存储每三角形材料索引,以在以下的趟次中被使用以从材料或纹理图集提取信息。
图形库提供允许优化渲染计算的特征。例如,使用OpenGL“glDrawArrayIndirect”特征,其上存储非规则三角形的发散缓冲器随后直接被用作针对第二趟次的输入几何形状,而没有任何CPU同步。分割阶段是针对该特定趟次而单独激活的并且用于细分(S322)三角形,以使得它们的面积变得足够小以由我们的规则管线来处理。一般而言,与总三角形计数相比,大三角形的数量相对小。因此,由发散缓冲器填充和顶点处理所引起的开销是可忽略的。
可以使得VPL支持函数(fk)k尽可能平滑;这允许在每帧处产生视觉上可信的渲染而没有高频伪像。然而,利用前述全局均匀变量u_rand,直接生成对同一场景的许多独立的渲染。另外,针对每个三角形,可以容易地从u_rand导出两个新的独立随机值。这些值用于在三角形ti上抖动在等式6中所定义的VPL中心yi。
接着,通过对所有这些经抖动的VPL的渲染求平均,公式9提供允许对表面上的第一反弹出射辐射的计算的结果,所述表面由散射反射物组成并且忽略间接可见性。尽管这意味着间接光照是通过在每个场景三角形上积分来计算的,但本方法的该进展版本能够管理任何种类的受扰动的几何形状(例如,法向映射、alpha测试),并且也可以被扩展以管理发射纹理化的几何形状。
VPL贡献的方式经相加以模拟间接照明与先前的讨论正交。因此,为了保持简单的管线,可以使用类似于在SAITO,T.和TAKAHASHI,T.1990.Comprehensible rendering of3-d shapes.In ACM SIGGRAPH Computer Graphics,vol.24,ACM,197-206中所讨论的延迟光照。特别地,这允许管理单个着色器程序中的几何形状抽取、VPL生成和光照。实际上,除了确定三角形是否是发散的以及哪个是生成的VPL的等级,几何着色器可以用于变换在调节尺寸的点基元中的输入三角形,其包括底层VPL屏幕空间函数支持。对所得出的信号进行欠采样可以是好的优化。为此,观察口在4Ntiling level瓦片中被分区并给观察口中的每个像素分配在同一相对位置处的唯一的瓦片像素——该技术常常被称为交织采样(KELLER,A.和HEIDRICH,W.2001.Interleaved sampling.Springer)。接下来,在融合时间,针对每个VPL随机地选择瓦片,因此将接触的像素的数量除以4Ntiling level。通过平铺缓冲器并将其模糊以移除所生成的噪声来对图像进行重组。
Claims (17)
1.一种用于渲染三维场景的全局照明的计算机实现的方法,包括:
-提供(S10)包括三角形的集合以及一个或多个直接光源的三维场景;
-确定(S30)所述集合中的每个三角形ti具有低于阈值S0的面积,其中,确定所述集合中的每个三角形具有低于所述阈值的面积包括:
-将所述三角形的集合划分为:
-三角形的第一集合(S310),其中,所述第一集合中的每个三角形具有低于所述阈值的面积;
-三角形的第二集合(S320),其中,所述第二集合中的每个三角形具有高于所述阈值的面积;以及
-将所述第二集合中的每个三角形分割(S322)为三角形的第三集合,其中,所述第三集合中的每个三角形作为分割的结果而具有低于所述阈值的面积;
-使用概率定律向所述集合中的每个三角形分配(S50)影响的半径,其中,使用概率定律向所述集合中的每个三角形分配影响的半径包括:使用概率定律来向所述第一集合和所述第三集合中的每个三角形分配影响的半径;
-通过根据所述三角形的影响的半径过滤出(S510)三角形来获得三角形的子集其中,获得三角形的子集包括:通过根据所述集合中的三角形的影响的半径而过滤出所述第一集合和所述第三集合中的三角形来获得三角形的子集;
-通过对所述三维场景的三角形的集合进行光照来渲染(S80)所述三维场景,所述三角形的子集中的三角形根据它们的影响的半径而被用作间接光源。
2.根据权利要求1所述的计算机实现的方法,还包括:在确定了所述集合中的每个三角形具有低于阈值的面积之后:
-根据所述概率定律将所述三角形的集合随机划分(S50)为三角形的N+2个子集;
-丢弃(S510)包括被确定为对所述三维场景的渲染具有低贡献的三角形的所述三角形的N+2个子集中的一个子集,剩余的N+1个子集包括未丢弃的三角形。
3.根据权利要求2所述的计算机实现的方法,其中,所述三角形的N+2个子集中的剩余子集包括所述集合中的三角形ti,以使得
其中,A(ti)是三角形ti的表面面积,而S0是所述阈值。
4.根据权利要求3所述的计算机实现的方法,其中,所述剩余子集中的每个三角形根据三角形处于子集中的概率而被分发(S520)在剩余子集中的一个中,所述概率由下式定义:
其中,当k增加时Sk的值增加。
5.根据权利要求4所述的计算机实现的方法,其中,设置Sk以使得Sk=S0μk,其中μ>1,并且μ的值是包括在[1;5]之间的实数。
6.根据权利要求4所述的计算机实现的方法,其中,设置Sk以使得Sk=S0μk,其中μ的值是由所定义的,其中Rscene是所述三维场景的半径。
7.根据权利要求4至6中的一项所述的计算机实现的方法,还包括:在已经分发了所述剩余子集中的每个三角形之后:
-计算(S60)针对所述剩余的子集中的每个三角形的单个虚拟点光;
并且其中,使用概率定律向所述集合中的每个三角形分配影响的半径还包括:
-计算针对所述剩余子集中的每个三角形的虚拟点光的出射辐射(S70),所述计算是根据已经在其中分配了所述三角形的所述子集来执行的。
8.根据权利要求7所述的计算机实现的方法,其中,计算针对所述每个三角形的虚拟点光的出射辐射包括:
-计算表示所述三维场景中的所述虚拟点光对其贡献显著的点的集合的嵌套球的族
-针对所述N+2个子集中的每个剩余子集来计算支持函数fk(ti,x),以使得在所述剩余子集上的所述支持函数的集合(fk)k形成在所述嵌套球的族的边界上恒定的统一的分区。
9.根据权利要求8所述的计算机实现的方法,其中,所述支持函数的集合(fk)k的基函数是B样条。
10.根据权利要求8所述的计算机实现的方法,其中,是由 定义的,
其中,x是具有法线的所述三维场景的点,
yi是所述虚拟点光在三角形ti上在其上集中的点,
ρx是在点x处的反射率,
ρi是在点yi处的反射率,
E(ti)是落到所述三角形ti的直接辐射度。
11.根据权利要求8所述的计算机实现的方法,其中,在渲染步骤处,支持函数的集合(fk)k用于在渲染嵌套球的族的球体时实行融合操作。
12.根据权利要求1所述的计算机实现的方法,其中,所述阈值S0是由 定义的,
其中,Navg是虚拟点光的平均数;
Dnear是所述三维场景的像素与VPL之间的最小距离。
13.根据权利要求1所述的计算机实现的方法,还包括:在确定所述集合中的每个三角形ti具有低于阈值S0的面积之前:
-针对所述集合中的三角形ti的每个顶点而生成(S20)单个随机整数。
14.根据权利要求13所述的计算机实现的方法,其中,针对三角形的每个顶点计算单个随机整数还包括:
-针对所述第三集合中的三角形的每个子顶点,确定所述子顶点的重心坐标;
-使用所述重心坐标来提取(S210)噪声纹理中的随机值;
-使用所提取的随机值来生成(S220)所述第三集合中的三角形的所述每个子顶点的所述单个随机整数。
15.一种计算机可读存储介质,其上存储有图形库计算机程序,所述图形库计算机程序在计算机上执行时,使得所述计算机执行根据权利要求1-14中的任何一项所述的方法。
16.一种计算机系统,其包括耦合至存储器的处理器以及具有图形处理单元的图形卡,所述存储器具有记录在其上的计算机程序,所述计算机程序在所述计算机系统上执行时,使得所述计算机系统执行根据权利要求1-14中的任何一项所述的方法。
17.根据权利要求16所述的计算机系统,其中,所述图形卡包括:
-几何形状着色器单元,其用于确定集合中的每个三角形ti具有低于阈值S0的面积;以及
-分割单元,其用于分割所述集合中的三角形ti。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16305221.0 | 2016-02-25 | ||
EP16305221.0A EP3211601B1 (en) | 2016-02-25 | 2016-02-25 | Rendering the global illumination of a 3d scene |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107392990A CN107392990A (zh) | 2017-11-24 |
CN107392990B true CN107392990B (zh) | 2023-11-17 |
Family
ID=55524271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710320868.3A Active CN107392990B (zh) | 2016-02-25 | 2017-02-24 | 渲染3d场景的全局照明 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10249077B2 (zh) |
EP (1) | EP3211601B1 (zh) |
JP (1) | JP6864495B2 (zh) |
CN (1) | CN107392990B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11103778B1 (en) * | 2017-03-28 | 2021-08-31 | Kabam, Inc. | Multi-level lighting system |
EP3503037A1 (en) | 2017-12-24 | 2019-06-26 | Dassault Systèmes | Visibility function of a three-dimensional scene |
WO2020005291A1 (en) * | 2018-06-29 | 2020-01-02 | Leia Inc. | Multiview display and method with dynamically reconfigurable multiview pixels |
KR20210030147A (ko) * | 2019-09-09 | 2021-03-17 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
CN110866313B (zh) * | 2019-10-22 | 2023-05-16 | 温州大学 | 一种实现断路器自动化检测流水线的数字孪生建模的方法 |
CN113012273B (zh) * | 2021-03-24 | 2022-07-12 | 网易(杭州)网络有限公司 | 基于目标模型的光照渲染方法、装置、介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049931A (ja) * | 2001-06-05 | 2002-02-15 | Matsushita Electric Ind Co Ltd | 画像生成方法 |
CN103700134A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6747659B2 (en) * | 2001-10-23 | 2004-06-08 | Sun Microsystems, Inc. | Relative coordinates for triangle rendering |
JP2003346177A (ja) * | 2002-05-24 | 2003-12-05 | Telecommunication Advancement Organization Of Japan | 3角形パッチを用いたラジオシティ幾何処理方法 |
JP2015228186A (ja) * | 2014-06-02 | 2015-12-17 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置および画像処理方法 |
-
2016
- 2016-02-25 EP EP16305221.0A patent/EP3211601B1/en active Active
-
2017
- 2017-02-23 JP JP2017032388A patent/JP6864495B2/ja active Active
- 2017-02-24 US US15/442,180 patent/US10249077B2/en active Active
- 2017-02-24 CN CN201710320868.3A patent/CN107392990B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049931A (ja) * | 2001-06-05 | 2002-02-15 | Matsushita Electric Ind Co Ltd | 画像生成方法 |
CN103700134A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 |
Non-Patent Citations (1)
Title |
---|
采用重要性面片采样的实时全局光照;柴学梁等;《计算机工程与应用》;20100111(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3211601A1 (en) | 2017-08-30 |
JP2017199354A (ja) | 2017-11-02 |
EP3211601B1 (en) | 2018-10-31 |
CN107392990A (zh) | 2017-11-24 |
US20170249778A1 (en) | 2017-08-31 |
US10249077B2 (en) | 2019-04-02 |
JP6864495B2 (ja) | 2021-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12067669B2 (en) | Watertight ray triangle intersection | |
US11790595B2 (en) | Method for handling of out-of-order opaque and alpha ray/primitive intersections | |
CN107392990B (zh) | 渲染3d场景的全局照明 | |
US11804000B2 (en) | Query-specific behavioral modification of tree traversal | |
US11645810B2 (en) | Method for continued bounding volume hierarchy traversal on intersection without shader intervention | |
CN109509138B (zh) | 针对射线跟踪系统的减小的加速结构 | |
US10062199B2 (en) | Efficient rendering based on ray intersections with virtual objects | |
Ritschel et al. | The state of the art in interactive global illumination | |
EP3217361B1 (en) | Importance sampling for determining a light map | |
US9208610B2 (en) | Alternate scene representations for optimizing rendering of computer graphics | |
CN113034656B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US20100060640A1 (en) | Interactive atmosphere - active environmental rendering | |
US9189883B1 (en) | Rendering of multiple volumes | |
EP4062310A1 (en) | Dual mode post processing | |
Kivi et al. | Real-time rendering of point clouds with photorealistic effects: a survey | |
WILLCOCKS | Sparse volumetric deformation | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 | |
Farias | Point cloud rendering using jump flooding | |
Vyatkin et al. | Comparison of Volume Rendering Methods Using GPU and Specialized Volumetric Accelerator | |
Xue | Volume Visualization Using Advanced Graphics Hardware Shaders | |
Chang et al. | Ray tracing-based interactive diffuse indirect illumination | |
Monette | Particle based participating media rendering using density Octrees | |
Olsson | Real-Time Shading and Accurate Shadows Using GPGPU Techniques |
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 |