CN115205438A - 图像渲染方法和设备 - Google Patents
图像渲染方法和设备 Download PDFInfo
- Publication number
- CN115205438A CN115205438A CN202210298095.4A CN202210298095A CN115205438A CN 115205438 A CN115205438 A CN 115205438A CN 202210298095 A CN202210298095 A CN 202210298095A CN 115205438 A CN115205438 A CN 115205438A
- Authority
- CN
- China
- Prior art keywords
- image
- machine learning
- tiles
- scene
- elements
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000009877 rendering Methods 0.000 title claims abstract description 73
- 238000010801 machine learning Methods 0.000 claims abstract description 80
- 239000000463 material Substances 0.000 claims description 65
- 238000012549 training Methods 0.000 claims description 62
- 238000005315 distribution function Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 26
- 238000013528 artificial neural network Methods 0.000 claims description 21
- 230000003993 interaction Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 52
- 230000008569 process Effects 0.000 description 20
- 230000004913 activation Effects 0.000 description 15
- 238000005286 illumination Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000000670 limiting effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000000576 coating method Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 239000011248 coating agent Substances 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000002310 reflectometry Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000011365 complex material Substances 0.000 description 1
- 230000006837 decompression 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
- 230000003760 hair shine Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004298 light response Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/87—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using selection of the recognition techniques, e.g. of a classifier in a multiple classifier system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- 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/52—Parallel processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
用于虚拟场景的图像渲染方法包括,针对多个ID,生成识别与相应ID相关联的场景的元素的相应遮罩;针对得到的多个遮罩,将相应的遮罩分割成多个图块;以及丢弃不识别任何图像元素的图块;针对产生的多个剩余图块,从多个机器学习模型中选择相应的经过训练的机器学习模型,相应的机器学习模型经过训练以基于场景的元素生成有助于渲染图像的至少一部分的数据,场景的元素与从中分割出各个图块的遮罩中识别的元素的相同的相应ID相关联;以及使用相应的经过训练的机器学习模型,基于至少针对相应图块中的识别元素的输入数据,生成有助于渲染图像的至少一部分的数据。
Description
技术领域
本发明涉及一种图像渲染方法和设备。
背景技术
光线追踪是其中在虚拟场景内追踪光的路径的渲染过程。然后,模拟每条光线与场景内的对象或表面的交互。为了实现一定程度的真实性,通常这种模拟会考虑这些物体或表面的材质特性,诸如,它们的颜色和反射率。
因此,光线追踪是一个计算成本很高的处理。此外,不同的图像帧之间成本也不一样,这取决于什么场景被照亮、由什么光来照亮以及从什么视点来照亮。
这使得维持用于渲染此类图像的优选帧速率难以实现,对于与平均图像完成时间(即帧速率)对应的平均计算成本以及由光线追踪引起的在所述平均值附近给定的变化量,要么必须将平均图像质量设置得足够低,以使该变化量仅很少地影响帧速率,或者,如果将平均图像质量设置为接近对应于优选帧速率下的最大值,则当变化的光线追踪需求波动超过平均值时,必然牺牲帧速率的一致性。
这两种结果都不是所期望的,但是却难以避免,同时光线追踪过程的计算负担取决于数据并且不可预测。
本发明试图解决或缓解这个问题。
发明内容
本发明的各个方面和特征在所附权利要求书中和所附说明书的正文中定义,并且至少包括:
-第一实例中的根据权利要求1所述的图像渲染方法;和
-另一实例中的根据权利要求12所述的娱乐设备。
附图说明
当结合附图考虑时,通过参考以下详细描述,将容易获得对本公开及其许多伴随优点的更完整理解,并且本公开及其许多伴随优点变得更好理解,其中:
图1是根据本文描述的实施例的娱乐设备的示意图;
图2是根据本文描述的实施例的光线追踪对象的图示;
图3是根据本文描述的实施例的组成光线追踪对象的分量的示意图;
图4是根据本文描述的实施例的与各分量相关联的分布函数的示意图;
图5是根据本文描述的实施例的散射分布示意图;
图6是根据本文描述的实施例的机器学习系统的训练方案的示意图;
图7是根据本文描述的实施例的渲染图像的渲染路径的示意图;
图8是根据本文描述的实施例的机器学习系统的示意图;和
图9是根据本文描述的实施例的图像渲染方法的流程图。
图10是根据本文描述的实施例的图像渲染方法的流程图。
图11是根据本文描述的实施例的生成训练集的方法的示意图。
图12是根据本文描述的实施例的生成图块的方法的示意图。
具体实施方式
公开了一种图像渲染方法和设备。在下面的描述中,为了提供对本发明的实施例的透彻理解,呈现了一些特定的细节。然而,显而易见的是,对于本领域技术人员来说,不需要使用这些特定的细节来实施本发明。相反,在适当的情况下,为了清晰起见,省略本领域技术人员已知的特定细节。
本说明书的实施例寻求通过使用机器学习系统来解决或减轻上述问题,该机器学习系统学习给定对象或场景的像素表面特性与所渲染的像素之间的关系;通过使用这样的机器学习系统,则可以基于相对一致的计算预算(运行机器学习系统的计算预算)来近似对象或场景的光线追踪渲染。
如本文稍后所解释的,可以针对不同的场景、位置或其部分,或者针对在一个或多个场景内使用的不同的对象或材质来训练不同的机器学习系统。
机器学习系统相对较小(通常在100KB到1MB的量级),因此为了由GPU(30)运行,可以被拉入存储器中并随后像场景的纹理那样被丢弃。系统可以由GPU的着色器运行。还将理解的是,原则上机器学习系统可以可替代地或另外由CPU(20)或由通用或专用协处理器(诸如,神经网络处理器或ASIC)运行。
现在参考附图,其中在所有的几个示图中,相同的附图标记表示相同或对应的部分,图2-7图示了问题空间,在该问题空间内训练机器学习系统
图2是示例对象或场景的高质量光线追踪渲染200,在本例中是一辆停在平台上的汽车。
图3示出了该渲染背后的不同贡献分量。首先,漫射照明(diffuse lighting)分量200-D通常捕捉表面的亚光颜色以及由光和形状的相互作用引起的阴影,而其次,镜面照明(specular lighting)分量200-S捕捉表面的反射,从而产生闪烁和高光。可选地,可以包括一个或多个附加分量,例如光泽或“涂层”(coat)200-C,其是可以包括附加光泽或图案的第二外表面。这种涂层的变体可以允许以类似于例如,皮肤或织物的方式部分透明和/或部分漫射。可以使用相应的光线追踪过程来常规地生成这些分量中的每一者。
这些分量相加求和以形成先前在图2中看到的整幅图像。将理解的是,虽然通常2或3个这样的分量将有助于渲染,但是在一些情况下,可以有更少(例如,如果仅期望漫射分量)或更多(例如,当对象也是半透明的并且因此需要透射分量时)的分量。
图4下一步包括产生上述图像贡献分量的对象的材质特性。
材质特性表示为所谓的双向散射分布函数(BSDF)或双向反射分布函数(BRDF)。
BRDF定义光如何在不透明表面上反射,而类似地,BSDF定义光线将在特定方向上被反射或散射的概率。因此,BRDF或BSDF是描述表面的照明特性(不包括入射/出射辐照本身)的函数。也可以适当地使用其他函数,例如,双向透射率分布函数(BTDF),其定义光如何通过材质。
还参考图5,在典型的光线追踪应用中,对于一组光线(例如,来自紧凑光源),应用计算到模型上具有特定BSDF、BRDF和/或BTDF的点上的入射辐照(其本身直接或先前反射)。针对特定贡献分量响应,将传入辐照与BSDF、BRDF或BTDF组合(例如,相乘),并且将结果与模型上该点处的像素值相加。如图5所示,BSDF中光路ωi的典型散射图案将朝向镜面反射方向ωa偏置,但是可以在任何方向上散射。精准地对这种行为建模是光线追踪在计算上可能昂贵的一个原因。
使用模型在各个点处的颜色信息以及该点(即,对于由给定点表示的特定材质)的对应BSDF、BRDF和/或BTDF,可以由此计算对于给定最终视点的光线的行为,其中光线反射或散射例如确定车辆表面上的闪耀和高亮部分的实际分布。
可以为每个起作用的分量使用单独的BSDF、BRDF或BTDF;因此,作为非限制性的示例,BSDF可以用于漫射分量,BRDF用于镜面反射分量,在该示例中也用于涂层反射分量(尽管BTDF也可以用于这种涂层反射分量)。将理解的是,可以恰当地使用BSDF、BRDF或BTDF,因此除非另有说明,在下文中提及BSDF时包括提及BRDF或BTDF时也是恰当的
如图4所示,使用物体的颜色特性和BSDF(200-BSDF-D)的漫射材质特性执行光线追踪产生漫射图像分量200-D。类似地,使用BSDF(200-BSDF-S)的镜面反射或反射材质特性产生镜像图像分量200-S。同样,BSDF(200-BSDF-C)的材质特性在这种情况下通常也是镜面反射的,产生涂层图像分量200-C。组合这些分量产生最终的光线追踪图像200。
然而,如前所述,问题是当光线与具有不同BSDF的不同表面相交时计算反射和散射的光线路径,并且对特定视点处场景的每个像素的结果求和既在计算上昂贵,又可能高度可变。
因此,本文描述的实施例寻求用具有更可预测的计算负荷的其他方法来代替图4中的光线追踪步骤,以获得合适质量的最终图像。
现在还参考图6,在本文描述的实施例中,为图像的每个贡献分量(例如漫射、镜面反射和可选地涂层或任何其他贡献分量)提供相应的机器学习系统。
如本文稍后描述的,机器学习系统通常是神经网络,其被训练以学习对于场景中不同视点的多个图像的贡献分量的BSDF(例如,200-BSDF-D)和光线追踪的真实值(groundtruth)(例如,200-D)之间的变换。
换句话说,如果光线追踪图像(或其中一个贡献分量)是灯光如何在对象上进行照射以及描述该对象如何对光作出反应的BSDF的组合,则通过拍摄光线追踪图像并将其与BSDF解组合,结果是可以被称为‘辐照率’或‘阴影’的质量,但更一般地描述光线如何对对象作用(如通过光线追踪过程以合计计算的)。
如果机器学习系统或神经网络可以学习预测该质量,则它可以再次与BSDF组合以产生近似光线追踪图像的预测图像。因此,该网络可以被称为神经预计算的光模型或NPLM网络。
更具体地,对于对象的假想图像上的给定位置和视角方向,机器学习系统或神经网络必须学习输出一个值,当该值与用于该相同位置/像素的BSDF结合时,导致与在该像素处对图像进行光线追踪所产生的像素值相似的像素值。因此,在训练期间,它生成照明条件(例如,由于点光源或球幕光源(skydome))的内部表示和从训练图像暗示的表面照明性质。
因此,在示例实施例中,可以在给定视点处光栅化图像或以其他方式生成图像,这将利用随后要被照亮的像素填充图像。对于这些概念像素中的每一者,在场景中存在相应的3D位置,对于该位置,可以使用NPLM网络获得适当的“辐照度”或“阴影”。
图6示出了用于这种网络的训练环境,并且具体地仅作为示例,示出了用于漫射贡献分量的网络600-D。
漫射贡献分量对网络的输入是对象或场景上的(x,y,z)位置610(例如,对应于图像中的像素)和在该点处的对象/场景的法线620。使用法线N代替视点方向,因为对于漫射贡献分量,可以认为照度是与方向/视点无关的,因此可以为了一致性而使用作为已知值的法线。在本说明性示例中,在图6中使用汽车图像的每一者的代表值来概念性地图示这些输入。
可选地,可以提供附加输入(未示出),例如,可选地从相关BSDF导出的粗糙度或无光泽-光泽标量值。
NPLM网络的输出(如本文稍后解释的)是输入位置的学习到的光质量或照度630,其在与相同位置的相关漫射BSDF(200-BSDF-D)组合640时产生预测图像650中的(x,y)位置的预测像素值。
图6图示了目标光线追踪漫射分量200-D的预测像素和真实值像素之间的每像素差被用作用于训练网络的损失函数,但是这不是必需的;相反,真实值图像可以与BSDF分离(即,通过执行反函数)以产生光线追踪光如何累积地影响图像中的每个(x,y)像素的对象的代理,并且这是网络被训练进行学习的质量。
因此,网络的误差函数基于其单个像素(x,y)输出值与当从对应于该位置的BSDF分离时的真实值图像的对应单个(x,y)像素之间的差。
由于可以预先针对每个位置将实地真实图像的像素与对应的BSDF分离一次,因此可以训练网络而无需将其自身的输出与任何BSDF组合以生成实际预测图像像素。这减少了训练的计算负荷。
如上所述,经过训练的神经网络输出的学习质量捕获了环境中的光如何作为场景中表面位置的函数和视点的函数在对象或场景上进行作用。因此,它可以有效地为场景和表面响应模型生成光照图的内部表示。下文将更详细地讨论这种情况是如何发生的。
现在参考图7,概括地说,对于最终输出图像的每个贡献分量,机器学习系统被训练来执行变换,该变换被应用于针对该贡献分量局限于对象/场景上的位置的BSDF。该变换是一个经过训练的基于对象/场景上的点的(x、y、z)位置和方向值的函数。如前所述,根据最终图像的贡献分量的数量,可以使用任何数量或一个、两个、三个、四个或可能更多的机器学习系统。术语“训练函数”可在下文中用于指学习了这种变换的机器学习系统。
如关于漫射分量所提到的,由于漫射阴影被假定为方向不变的,所以可以假定方向值等于给定点处的法线。
同时,对于至少部分反射并因此将随视点变化的镜面反射分量,方向值是或基于图像视点处的当前像素的(x,y)位置(其将具有虚拟空间中的位置)与作为机器学习系统的输入的对象的(x,y,z)位置之间的视角,从而提供场景表面上的输入点与要输出学习量的当前像素之间的视点依赖关系。
在这种情况下,涂层反射分量也是镜面反射的,因此也使用类似的视点或基于视点的方向用于输入。
因此,方向相关分量的方向值可以是输出像素位置和对象表面位置之间的视角方向,或基于该方向的值,例如表面镜像的视点方向(即,给定输入位置处表面的法向时,视点方向将反射的主方向)。可以考虑包含关于视点方向信息的任何合适的方向值。
如本文前面所述,在每种情况下,经过训练的函数都封装了学习的质量。将适当的BSDF与每个位置的网络输出相结合,可以建立每个分量的着色图像。替代地或者另外组合来自每个分量的着色图像的像素值,生成最终输出。
应当理解,在图像的渲染期间,并非所有图像都可以进行光线追踪,并且类似地,并非所有图像都可以使用上述技术生成。例如,NPLM网络可以基于具有代表性照明的真实光线追踪图像来为特定对象或材质进行训练。
当这些对象或材质随后要使用由本文描述的经训练的函数提供的表观光线追踪来实时渲染时,相关的NPLM网络被加载到存储器中,并且在与适当的BSDF结合时,针对场景中的相关表面位置和观察方向运行,以产生它们对相关像素的贡献。可以使用任何其他合适的技术(包括光线追踪本身)来渲染其他像素。
通常,基于用于选择和加载对象或材质的纹理的相同资产识别方案,选择合适的机器学习系统并将其加载到GPU使用的内存中。因此,例如,如果对象具有用于访问相关纹理的ID“1234”,则该ID也可以与相关机器学习系统相关联。反过来,如果纹理具有与对象相关联的ID“5678”(例如,该纹理表示多个对象共有的材质),则该ID也可以与相关机器学习系统相关联。通过这种方式,娱乐设备可以使用与加载纹理类似的过程加载机器学习系统。应当理解,纹理和机器学习系统之间的实际存储和访问技术可能不同,尤其是如果使用有损压缩来存储纹理,这将影响解压缩机器学习系统的操作。因此,机器学习系统可以在没有压缩的情况下存储,或者使用无损压缩,或者在损失程度足够低的情况下使用有损压缩,以使解压后的机器学习系统仍然合格地工作:这可以通过比较机器学习系统的输出误差/代价函数来评估压缩损失的增量程度,直到误差达到绝对或相对(相对于未压缩的机器学习系统)的质量阈值。
现在转到图8,在本文描述的实施例中,机器学习系统或NPLM网络可以是任何合适的机器学习系统。因此,例如,可以使用位置和视点方向作为输入来训练单个神经网络,并生成学习特性的RGB值作为输出。
然而,特别有利的网络包括不同的分离式架构。
如图8所示,在非限制性的示例中,网络由两部分组成。第一部分可以被认为是位置网络,而第二部分可以被认为是方向网络。
这些网络中的每一个可以有3层或更多层,并使用任何合适的激活函数。
位置网络接收先前提到的对象/场景中的点的(x,y,z)位置作为输入,并且输出本文稍后讨论的中间表示。
方向网络接收该中间表示,以及例如,以(θ,Φ)格式或作为标准化(x,y,z)向量或类似格式的方向输入(例如,法线,或像素视点或表面点镜像像素视点方向或其他基于视点的方向值,视情况而定)。它输出对应于先前提到的从与对象/场景共享的空间中的虚拟相机位置渲染的图像中的当前像素的(x,y)位置(以及因此像素视点)的学习量的RGB值。
因此,在非限制性示例中,位置网络有3层,第一层有3个输入节点(例如,对于x、y、z位置),中间层有128个隐藏节点,最后一层有8个输出。
尽管可以为网络选择任何合适的激活函数,但修正线性单元(ReLU)函数已被评估为位置网络各层之间特别有效的激活函数。它可以很好地推广到未经训练的位置,并有助于避免过度拟合。
类似地,在该非限制性示例中,方向网络有4层,位置网络的8个输出和另外2个或3个方向值输入到第一层上的128个节点,然后输入到另外两层128个节点,最终在最后一层上得到3个输出,其对应于当前像素处的学习量的R,G,B值。然后,这可以与该位置的BSDF相结合(例如相乘),以从该训练函数(例如漫射、镜面反射等)获得最终像素贡献,尽管如前所述,这在训练期间也不是必需的。
尽管可以为方向网络选择任何合适的激活函数,但正弦函数已被评估为方向网络各层之间特别有效的激活函数。由于角度域中的光行为变化很大,包含许多角度频率下的细节,但基于低维输入(例如,归一化的x、y、z向量),所以已经发现正弦激活函数特别好。
因此,值得注意的是,网络的两个部分可以使用不同的激活函数。
然而,该网络被视为分离式结构网络,而不是两个独立的网络,因为训练方案只有一个代价函数:即与相应的BSDF解耦后,方向网络输出的RGB值与真实光线追踪图像的对应像素的目标值之间的误差。
该误差通过两个网络反向传播:位置网络没有单独的目标值或代价函数。因此,在实践中,位置网络的输出层实际上是组合网络的隐藏层,通过方向值的额外输入进行增强,并表示从第一激活函数到层内可能的第二和不同的激活函数的转换。
如前所述,神经网络为照亮的对象、材质或场景建立灯光模型。具体地,在上面的非限制性示例中,位置网络将(x、y、z)位置有效地分类为照明类型(例如,明亮或黑暗,和/或可能与光如何与各自的BSDF相互作用有关的其他类别,例如相对反射率或漫射):该部分输出的中间表示可以被认为是照明空间中的表征输入位置处的灯光类型的N维位置:如果场景中不同部分的位置以相同的方式被照亮,则会将它们投影到相同的N维位置。针对镜面反射分量训练的位置网络可以具有比针对漫射分量的输出更多的输出:例如,相比与漫射分量的8个输出,镜面反射分量有32个输出以考虑镜面反射分量中可能出现的照明类型的更大的变化。
然后,方向网络对灯光模型的光在输入位置的表面上以特定的输入角度观察被照明的对象、材质或场景时的行为进行建模,以生成图像中该位置的学习特性。
因此,总之,位置和方向网络作为一个整体进行训练,以预测表面特性的BSDF描述和该表面的所需渲染的图像之间的因子或变换。然后,可以使用网络代替光线追踪来渲染该表面。通常(但不是必须)仅在图像的一个贡献分量例如镜面反射分量的漫射上训练网络,多个网络用于产生最终图像或图像部分所需的分量,尽管这不是必需的(即,原则上,网络可以在完全组合的图像或两个或多个贡献分量的组合上进行训练,例如所有镜面反射或所有漫射贡献)。
训练
如本文别处所述,使用从多个不同视点拍摄的对象、场景或表面的多个光线追踪图像来训练网络。这使网络能够特别了解镜面反射如何随位置变化。视点可以是随机分布,和/或例如可以从用户在巡游被称为视体(view volume)的渲染环境时可用的视点范围内选择(或主要选择):即,视点能够出现的空间体积,因此需要包括在训练中。
在本文描述的实施例中,可以通过下面的方式生成训练数据。
可以理解的是,对于任何机器学习系统,用于训练系统的训练数据都是其性能的关键。因此,生成能够带来良好表现的训练数据是非常有益的。
如本文别处所述,本文所述的NPLM系统的训练数据是基于场景/对象/材质/表面(以下统称为场景)的一组高质量渲染图像,通常与一个或多个相关分布函数(例如,如本文别处所述的BSDF、BRDF等)解耦,以便使本文所指的学习质量可以直接作为训练目标,从而消除训练期间生成预测图像的计算负担,并且还确保了误差函数不是在一次去除时从NPLM本身的输出导出的。
不同的NPLM可能会处理与视角相关和与视角无关的着色效果(例如漫射、镜面反射等),因此如果对象具有与视角相关的着色(例如高光或镜面反射等),通常场景中对象的单一视角是不够的。
因此,训练数据图像的数量和位置不仅取决于场景的几何体(例如,如果对象在视体内可见),还可能取决于场景中对象的材质特性。
因此,在本文描述的实施例中,可以至少部分地根据场景中的材质(例如,诸如,漫射或镜面反射响应之类的光响应属性的材质属性,但也可能是诸如,表面复杂性之类的其他材质属性,例如,结构上和/或纹理上存在的窄或宽的空间频率分量)来生成以多个相机视点拍摄的场景的图像形式的NPLM训练数据。
值得注意的是,这些图像通常由第三方高质量渲染器生成,无法访问内部数据。因此,在图像中执行着色时,可能只有最终的完整图像可用,而没有关于特定投射光线或其方向的任何信息(或控制)。
因此,为了训练的目的,希望生成和使用有效地捕获场景的外观的一组图像,优选地,对于视体内的所有有效视图。
现在参考图11,为此,在步骤1110中,首先使用观察体积内的一组相机位置来渲染一组低分辨率图像。这些位置可以等距分布或随机分布在场景周围的球体上(如果可以从任何角度观看,例如作为可操作对象),或者在场景周围的半球上(如果它基于虚拟地面,因此无法从下方观看),或者在场景周围的圆环上(如果从一个基于地面的视点来观看,例如化身的第一人称视角)。这样的环可以位于对应于化身视点的固定高度处,或者可以占据一个高度范围,例如,作为包含化身视点的蹲伏高度和跳跃高度中的一个或多个的观看柱面。
步骤1110如图11所示,其中相机位置的轨道(环)围绕着示例汽车对象。
在这个初始集合中,相机位置的数量可能只有一个,但通常是三个或更多,更典型的是几十个或数百个。例如,每度轨道的一个相机将产生360个相机。在本示例中,作为非限制性数量,有200个相机。
每幅图像的分辨率较低:例如128x84像素。示出了步骤s1120的示例图像。
值得注意的是,对于每个图像的每个像素,在步骤s1130中,与之关联的元数据包括与像素对应的场景表面的3D位置、与像素对应的场景表面的法向,以及可选的材质ID或类似的材质表面标识符或描述符,例如纹理ID或对象ID。
在视点选择过程的第一个实例中,由一些或通常所有这些低分辨率图像中的像素渲染的场景表面的3D位置被核对,以识别场景中的哪些位置在第一组相机位置内可见。这些是NPLM将受益于训练的3D位置。
因此,可选地,对于被识别为在至少一个初始低分辨率图像中被渲染的每个3D位置,会计算一个沿表面法向相对于该位置发生偏移的3D空间中的新位置。这个相对于表面的偏移的距离是一个可以修改的变量。这个新位置是虚拟相机生成高质量(例如,高分辨率光线追踪)渲染的候选视点。
然而,这可能会导致大量潜在的高质量光线追踪渲染生成为训练图像,这将在计算上非常繁重,并且在用作NPLM的训练集时可能还包括大量冗余。
因此,在第一实例中,希望以某种与NPLM现场训练相关且有用的方式过滤或剔除这些候选视点位置。
特别是,相比于与视角无关的材质(例如漫射材质或亚光材质),对于场景中含有与视角相关的材质(例如镜面反射材质或光泽材质)的部分,拥有更多的训练示例是有益的。
因此,可以采取两种方法之一。
在第一种方法中,在步骤1140中,对于与表面位置处的法向对应的每个候选视点,核查该位置处的表面的对应材质特性。如上所述,尤其可以使用其漫射或镜面反射响应,或其半透明性等。
实际上,这可以通过使用将材质ID或类似物与指示材质表面如何漫射或镜面反射(例如,无光泽或有光泽)的值相关联的查找表来完成。更特别地,作为非限制性实例,该性质可以由从完全漫射的0到镜面反射的1的值来表示。这可以被看作概率函数的输入,使得镜面反射的或发光的(视角相关的)材质具有相对高的概率,并且漫射的或无光泽的(视角无关的)材质具有相对低的概率。
然后使用概率函数来保留候选相机位置;因此,与漫射表面相比,面向镜面反射表面的相机位置将保留更高比例。
相反,如果数值规约被颠倒(例如,低概率和高概率被颠倒),那么概率函数可以被用于挑选具有相同效果的候选相机位置。
在第二种方法中,可替代地或另外,在步骤s1140中,可评估对应于场景表面的如在低分辨率图像中观看的相同3D位置的像素值的可变性,以确定每一所捕获的3D位置的像素值方差。以此方式,视图不变(例如,漫射或严重阴影)表面位置将具有低方差(即,示出不同低分辨率图像中的该位置的像素将是相似的),而视图相关(例如,镜面反射的或发光的)表面位置将具有高方差(即,示出不同低分辨率图像中的该位置的像素将示出更宽范围的值,例如,作为光的一些捕获闪烁或反射)。该方差或其标准化后的版本可以再次用作概率函数的输入,使得镜面反射或发光(视角相关)材质具有相对高的概率,而漫射或无光泽(视角无关)材质具有相对低的概率。
因此,在任一情况下,在步骤s1140中,获得了在视体中的每个捕获的3D位置处的材质的光响应性的视角依赖性的估计(基于材质特性或像素可变性,或可能基于两者),并且这可以用作概率函数的输入。
然后在步骤s1150使用概率函数来决定是保留还是剔除相应候选视点,其中以与视角相关的表面为中心的视点比以与视角无关的表面为中心的视点更频繁地被保留。
可以调整该概率函数的输出范围,以根据可能的候选对象的原始数量和最终的期望数量,生成用于训练的大致期望的相机视点总数,或者,概率函数可以进行连续几轮的保留/剔除,直到剩余相机视点的数量在所需数量的阈值内。
在任何一种情况下,结果都是在所需的观察体积上随机分布的可控数量的相机视点,但具有响应于直接位于相机前面中心材质的材质特性(例如反光或其他)的可变的概率密度。这通过步骤s1150的图中的保留点的星座图来说明。实际上,相机的位置可以比图中所示的更远离对象/场景表面,但为了说明它们的分布,这些点已经被放置在靠近图中的表面。
可以基于多种因素来选择可控数量的相机视点的数量,诸如由此所得的NPLM的期望性能、生成高质量光线追踪图像并在其上训练NPLM的计算负担、内存或存储限制等。作为非限制性示例,用于训练目的的典型的可控数字可能在10到10000之间,典型数字为200到2000。
最后,在步骤s1160中,在保留视点处渲染图像。或者,如图11所示,这些渲染是使用比初始低分辨率图像所用的镜头或游戏中使用的镜头更宽角度的虚拟镜头生成的。
这往往会导致渲染过多场景(即从视体的点看不到的部分);这往往会使NPLM输出更加鲁棒,尤其是对于靠近视体边缘的视图位置,以及由于游戏中的对象剪辑或较小的设计修改而导致的视体意外扩展的情况。
虽然上述方法基于在初始低分辨率图像中捕获的场景表面法向生成候选相机视点,但这并不是唯一可能的方法。
上述方法的一个可能问题是,虽然场景中的不随视角变化的位置可以由沿该位置的法向指向它的相机成像,但它仅从附近位置的其他图像中的不同角度来渲染,反过来,这些角度由在那些位置的场景表面的法向决定。因此,虽然在场景的视角相关的部分上和其附近捕获的图像相对较多,但图像本身可能会受到场景本身的几何结构的不适当影响。
因此,返回到初始低分辨率图像,在视点选择过程的另一实例中,可以针对每个低分辨率图像的每个像素(或者至少表示场景中的表面的那些像素)考虑潜在视点位置。在128×84像素处的200个图像的上述示例中,这等于高达160万个候选。这些图像通常从不同的角度捕获场景上的给定位置的多个实例,而与场景本身的拓扑无关。结果,训练集可能更鲁棒。
同样,与低分辨率图像内的给定像素相对应的表面位置的表面材质(和/或像素方差)导出的视图依赖性,以及因此与候选视点相对应的表面材质导出的视图依赖性,可以用于驱动保留或剔除该视点的概率。以此方式,160万个候选视点可以再次被剔除到可管理的数量。
在这种情况下,由于场景中可能存在相同位置的多个视角,因此导致的相机视角的分布可能偏向于场景中最可见的那些位置,而不是与视角最相关的那些;例如,如果场景中的一个(漫射)位置在比一个(镜面反射)位置多20倍的图像中可见,则即使更可能会剔除观察漫射位置的视点,但因为它们的数量是20倍,所以最终的结果可能是漫射位置的图像比光泽位置的图像多。
因此,可选地,保留或剔除视点的概率可以基于多少视点集中在场景中的同一位置(尽管是从不同角度)来归一化。这种归一化可能是完全的(因此,在上述示例中,保留漫射位置图像的概率降低了20倍,因此消除了视图数量的影响)。或者,归一化可能是部分的;因此,例如,保留漫射位置图像的概率仅降低10倍,因此视点数量的影响显著减少,但并未完全消除;这意味着,用户可能经常看到的区域也会得到更多的训练示例,这与用户是否因为与视角相关(例如镜面反射/发亮)而得到更多训练示例无关。
原则上,在生成用于训练目的高质量光线追踪渲染之前,可以生成并剔除两组视点(基于表面法线的视点和基于低分辨率图像像素的视点)以创建组合视点集;实际上,在任何情况下,可能存在实际上与至少一些可见表面位置的法线一致的基于低分辨率图像像素的视点的子集。
变体训练技术
上述第二种方法可选地考虑了在剔除可用视点时补偿场景中相同位置的多个视图的问题。除了能够控制训练偏差外,它还通过减少场景中某些位置的重复来减少第二种方法的训练时间。
然而,可选地或附加地,训练时间可以(进一步)减少如下。
与前面一样,在视体内(或其表面上)选择一组初始视点。
现在可选地,为视体内的一组位置生成初始低分辨率图像。
现在可选地,如本文先前所述,然后基于在低分辨率图像中找到的场景中的位置的法向,和/或基于低分辨率图像的像素和场景中表示的位置之间的线,生成候选视点。
再次可选地,可以基于场景中的相应位置的镜面反射/漫射程度的概率来挑选这些视点。进一步可选地,在存在以相应位置为中心的多个图像的情况下,可以修改概率以至少部分地对此进行考虑。
因此,根据所采用的方法,结果是所生成的一系列视点-可选地用于生成低分辨率图像的原始分布,或者由上述生成和剔除技术之一产生的分布。
在任一种情况下,在本说明书的实施例中,一旦生成视点(并且视情况可选地确认为未被剔除),则视情况以如本文别处所述的广角形式将其提供给或排队用于光线追踪过程以生成高质量图像。
当相应图像完成时,开始对所生成的图像进行训练;因此,存在生成训练图像(由于是光线追踪图像,这会花费一些时间)和对那些图像进行训练(这也可能会花费一些时间)的并行过程。这避免了在训练开始之前必须等待生成完整训练集的问题。
可选地,在已经生成视点的情况下,或者在选择所生成的视点以确定是否要剔除它们的情况下,从可用的那些视点中选择视点可以是随机的,使得光线追踪图像的最终产生序列在正使用的最终视点集内也是随机的。
这降低了NPLM最初在场景的某个部分过度训练的可能性,也意味着,例如,如果由于时间限制而不得不减少训练,NPLM仍将面对场景的各种视图。
在另一种变体训练技术中,如果光线追踪应用程序的控制可用且允许,则可选地仅需要渲染来自给定视点的图像的像素子集;无论是基于原始视点集还是未剔除的视点,给定图像中的场景分量可能已在训练集中的其他图像中渲染多次。例如,如果场景中的某个位置已被渲染超过阈值次数,则可能会在当前渲染中跳过该位置,因为已经有足够多的训练示例。图像的未渲染的部分可以使用预留像素值作为遮罩值进行标记。因此,可以仅使用输入位置、方向信息和未屏蔽像素位置的目标值来执行训练。这可以显著减少训练集中的冗余,以及在光线追踪训练图像和训练NPLM时相关的计算负荷。
可以任选地应用例外情况。例如,可以总是渲染图像中心附近的像素,因为中心像素通常涉及场景中的被选择(或未剔除)的位置,可能作为其表面特性的函数,如本文别处所述,通常是图像的非中心部分中的像素可能捕获场景内的非预期且不想要的重复点。
网络配置
如上所述,位置网络(即本文所述的分离结构网络的第一部分)可具有不同数量的输出,这取决于其是否针对镜面反射类型的漫射图像分量进行训练。值得注意的是,这是一个更普遍方法的具体实例。
一般来说,NPLM的能力可能会根据其需要执行的建模任务的复杂性而有所不同,可以通过名义默认设置来增加或减少能力。在这样做的过程中,通常会改变网络的体系结构,以改变其能力。
在第一方面中,能力可基于NPLM的大小(例如层的数量、层的大小和/或NPLM的部分之间的层的分布)而变化,从而修改NPLM的架构以改变其能力。
因此,可选地,大小可以根据NPLM建模的贡献分量类型(例如漫射、镜面反射或半透明/透射)而变化。
具体地,对于镜面反射或半透明/透射分量而言,由于这些部分中固有的光响应的更大可变性,位置网络的大小可以有益地比漫射分量更大或者相等。出于类似的原因,由于可能涉及的部分反射、透射和内反射的组合,对于半透明/透射分量而言,位置网络的大小可能有益地比镜面部分更大或者相等。
可以通过改变隐藏层的数量或一个或多个这样的隐藏层内的节点的数量来改变大小。类似地,大小可根据输出层的数量而变化(例如位置网络的输出层,其也是整个NPLM网络的位置网络和方向网络之间的隐藏层或接口/中间层)。层数量的增加通常会增加网络能够应用于输入数据以分类或过滤不同类型信息的空间失真,而层中节点数量的增加通常会增加网络可以建模的训练集中特定条件的数量,从而提高了保真度。同时,增加输出节点的数量(如在位置网络的输出中,这些节点未被选择为映射到特定格式)可以通过对数据集的内部表示执行不太严格的降维来改善输出网络(以及对输出节点值进行操作的后续网络)的辨别能力。
作为替代或补充,方向网络的大小可以根据NPLM建模的贡献分量的类型而变化(例如,漫射、镜面反射或半透明/透射)。
如上所述,方向网络的输入层可以改变大小,以适应整个NPLM分离结构网络中位置网络的更高维度输出。
类似地,层的数量和/或层的大小可以改变,以达到与位置网络类似的效果,即增加辨别能力和模型保真度。
与位置网络一样,对于镜面反射或半透明/透射分量,由于这些部分中固有的光响应的更大可变性,与漫射贡献分量相比,方向网络的大小可以有利地变得更大或相等。出于类似的原因,对于半透明/透射分量而言,由于可能涉及的部分反射、透射和内反射的组合,方向网络的大小可能有益地比镜面部分更大或相等。因此,就像位置网络一样,它的结构也可以进行类似的改变,以改变它的能力。
因此,响应所需照明模型的需求,NPLM(例如位置网络、方向网络或两者)可能会改变它的能力(例如,其架构的变化,如增加层数、内部节点或输入或输出维度),例如,提高辨别能力(例如,由于更多隐藏层或输出维度)和/或提高模型保真度(例如,由于隐藏层中有更多节点);例如,漫射贡献分量的需求通常低于镜面反射分量。
相反,根据NPLM的理论标准或默认设置,可根据需要(例如,对于漫射分量)有利地改变NPLM,以降低其能力(例如,通过与上述增加能力的步骤相反的步骤)而不是增加能力。在这种情况下,好处通常在于减少的存储器占用和计算成本。
除了由不同贡献通道建模的材质的反射特性(或多个特性)的类型之外,可替代地或另外,NPLM的能力可响应于与照明模型/渲染过程的复杂性相关的其他因素而增加或减少。
例如,漫射光源(诸如,球幕)可以没有点光源那么复杂,因为在照射在对象/场景上的照明中存在更少的空间/角度可变性。相反,具有其自身的显著空间变化性(例如,示出日落)的球幕可能更复杂。可以基于其空间和颜色可变性来评估光源的复杂性,例如,基于其中没有对象/场景的照明空间的2D傅立叶变换的积分,通常不考虑DC分量;在这种情况下,均匀的球幕将具有接近零的积分,而一个或多个点光源将具有较大的积分,并且复杂的球幕(如城市景观或日落)可以具有更大的积分。可以基于这个或任何这样的光源复杂性分析,例如,基于性能的经验分析来设置NPLM的能力(例如,大小)。
类似地,移动、动态或可放置的灯光可能需要增加NPLM的复杂性,因为它们会造成不断变化的照明条件。在这种情况下,NPLM的输入可以包括一个或多个照明状态输入以及(x,y,z)对象位置,该对象/场景的特定部分被渲染为输出像素。因此,对于太阳横穿天空的场景的模型,可以包括与一天中的时间相关的输入,其与太阳的位置相关。用于识别光源当前状态的其他输入可以包括用于一个或多个灯光的(x、y、z)位置、用于灯光大小的(r)半径或类似输入、和/或用于灯光(主)颜色的RGB输入等。值得注意的是,训练数据(例如基于光线追踪真实值)也将包含这些变化条件的示例。更一般地说,如果训练NPLM来模拟环境的动态方面,训练数据将包括适当数量的代表性示例。
在太阳的情况下,可能需要通过连续的若干NPLM来模拟整天的行进(例如,模拟黎明、早晨、中午、下午和黄昏),例如,以避免NPLM的存储器占用或计算成本增长大于优选最大值,如本文别处所述。
类似地,如果要使用NPLM渲染场景中的移动、动态或可放置对象,可能需要增加NPLM的复杂性(可选地,NPLM可用于仅渲染静态场景分量和/或场景中与位置无关的部分)。因此,在这种情况下,输入例如可以包括对象位置和/或方向数据。
可替代地或另外,其他因素可简化NPLM的建模,并因此允许NPLM的能力降低(或为了模型的保真度相对提高,其他所有都是相等的)。例如,如果渲染的场景包括固定路径(例如,在赛道上、在防撞护栏内),则可以减少或完全避免从用户不可访问的视点进行训练。类似地,如果所渲染的场景包括有限的或优选的观看方向(例如,再次在赛道上,其中在驾驶方向上完成了大部分观看),则针对不同视点的训练可以反映这些视点对于最终使用情况的成比例的重要性。
类似地,在用户可能较不重视地观看场景的部分的情况下,因为它们是背景或远离游戏的焦点(根据有注视点渲染或根据诸如,主要人物的兴趣点),所以则可以使NPLM的能力相对较低。例如,可以针对到对象或纹理的不同绘制距离来训练不同的NPLM,其中,能力(例如,大小)在不同的绘制距离/细节水平(LOD)处减小。
作为替代或补充,如本文别处所述,可以针对特定场景、对象、材质或纹理训练NPLM。因此,NPLM的性能可以根据其所代表的照度的对象的复杂性而变化。大型或复杂场景可能需要更大的NPLM(和/或多个NPLM处理各自的部分,具体取决于场景的大小和生成的NPLM)。类似地,与简单对象(如球体)相比,复杂对象(如汽车)可能受益于功能更强大的NPLM。评估场景或对象复杂度的一种方法是计算多边形的数量,多边形越多,场景就越复杂。作为一种改进,多边形间平面角的方差也可以用来推断复杂性;例如,与汽车本身相比,具有与图中汽车模型相同数量多边形的球体的角度变化非常小,表明汽车的结构更复杂。结合多边形数和角度方差/分布,可以很好地反映NPLM为其模拟照度的场景/对象的复杂性。
类似地,与简单材质(如金属)和/或多个NPLM贡献者相比,复杂材质(如皮肤或毛皮)可能受益于更有能力的NPLM。此外,复杂纹理(例如,具有较宽的空间光谱)可能会比具有较窄或较精简的空间光谱的纹理受益于能力更强的NPLM。
虽然能力取决于大小(输入/输出的数量、层的数量、节点的数量等),但是可替代地或另外,可以通过在NPLM的不同层上的节点之间选择激活函数来改变能力。如本文别处所述,位置网络的优选激活函数是ReLU函数,而方向网络的优选激活函数是sin函数,但是可以选择其他函数来模拟其他场景。
例如,当NPLM的存储器占用达到阈值大小时,NPLM的能力可受限于上限。阈值大小可等于存储器的操作单元大小,诸如,存储器页或存储器页的部分或多个群组,通常如出于存取和加载场景/对象/材质的纹理的目的而选择。阈值大小可以等于GPU和/或游戏用于将图形图像数据加载到GPU中的纹理或mimmap大小。
如果NPLM的复杂性超过该阈值,则其建模的任务可能必须被简化,或者在NPLM之间共享,或者结果的准确性可能必须被接受为较低。
网络选择
这些网络在游戏或应用程序开发阶段接受训练。开发人员可以选择基于NPLM的渲染的什么时间或什么地点是最有优势的。例如,它可能仅用于一致发现导致帧率低于预定质量阈值的场景。在这种情况下,网络在这些场景或其中的部分场景上进行训练,并在遇到这些场景时使用。
在其他情况下,开发人员可以选择对某些对象或某些材质使用基于NPLM的渲染。在这种情况下,当这些对象或材质被标识为在要渲染的场景中时,将训练并使用这些网络。
类似地,开发人员可以选择在特定的绘制距离(z距离),或距离图像中心或用户注视点的角度/距离,或特定的照明条件下使用基于NPLM的渲染。在这种情况下,这些网络是针对这些情况进行训练和使用的。
同样,应了解,可选择这些标准的任何适当组合用于训练和使用。
同时,如上所述,在系统的使用期间,出于多种原因,可能存在与场景相关联的多个NPLM。例如,可以存在多个NPLM来对大型场景建模(使得NPLM在阈值大小和/或图像再现的阈值质量内充分地对每个部分建模)。类似地,由于不同的照明条件、细节水平/绘制距离等,可能存在多个NPLM。
可选择适用于该情况的合适的NPLM,并将其恢复到GPU的可访问工作内存中,并为渲染图像的至少一部分而运行。应了解,应用于预取和缓存纹理及其他图形资产的策略也可应用于NPLM。
图块化NPLM
要渲染图像,需要为图像(或以这种方式渲染的图像的部分,例如特定的对象或材质)中每个像素的每个贡献分量评估一个NPLM。通常至少有两个分量(例如,漫射和镜面反射,如本文别处所述),因此每个像素通常使用至少两个NPLM。
因此,快速渲染图像的一种方法是针对每个被考虑的像素分别运行组成NPLM的实例,并并行评估它们。然而,这在目前是不切实际的,因为内存需求将大于现有GPU上的可用内存。
然而,基于NPLM的渲染的高效并行化是可取的。
NPLM使用的位置信息由渲染了(例如,通过组装几何体和移除隐藏表面等)场景的3D几何体的输入缓冲区或类似物生成。然后,传统的渲染过程会将纹理和照明应用于该几何体。
如本文别处所述,NPLM生成学习量,该学习量与BSDF或在该位置处的场景的与照明有关的材质特性的类似描述相结合,以创建图像像素(如方向输入所指示)的渲染的贡献分量。
因此,通过将合适的数据与输入缓冲相关联,可以实现NPLM的高效并行化。
该数据包括集群ID和材质ID中的一个或两个。集群ID本身可以对应于场景的几何部件、对象和区域(例如,基于场景的体积分割,可以分成相等的长方体,也可以根据任何合适的分割方案),或者实际上对应于对象和/或场景中的材质。
如本文别处所讨论的,响应于图像的当前虚拟相机位置,该数据还包括将被输入到NPLM的场景表面的表面位置信息,可选地还包括方向信息。
对于图像的每个像素,对于相应的表面位置,使用集群ID或材质ID为该集群或材质选择适当的NPLM。
如果该表面位置的材质ID数据与输入缓冲区相关联(或可从集群ID派生,例如通过查找表),则可选地,也可以为该表面位置的材质计算BSDF(或本文其他地方描述的其他分布函数),并与所选NPLM的输出相乘以生成对当前像素的贡献分量。或者,可以从存储中检索BSDF。
因此,可以为该表面位置的给定集群ID或材质ID选择NPLM,并用于生成该表面位置的学习量,同时,BSDF或其他分布函数可以通过响应材质ID并行地生成,或者根据材质ID或表面位置进行检索。
NPLM可能特定于该集群ID或材质ID,也可能用于两个或多个集群ID或材质ID。
可能使用的不同NPLM的数量将根据集群ID或材质ID的粒度以及NPLM和集群ID或材质ID之间的一对一或一对多关系而有所不同。
在针对图像的不同元素可能运行多个NPLM的情况下,需要考虑一个完成这件事的高效的方法。
因此,现在参考图12,对于特定虚拟相机视点处的场景图像,这样的过程可以包括:
i.扫描输入缓冲区以查找唯一的ID的数字(例如,集群ID,如果不使用集群ID,则为材质ID;更一般地说,是与特定NPLM关联的场景的元素的任何合适ID)。在图12中,这通过示例汽车图像1210中特征的颜色或灰度差异来显示。
ii.为每个这样的ID创建遮罩,例如二进制遮罩,遮罩中每一个找到了特定ID(以下称为“ID像素”)的像素都被设置为1,其他地方的像素设置为0。在图12中,示例汽车图片为九个不同的集群ID生成了九个遮罩1220。
iii.将每个遮罩分割成一组2D图块。图块的大小可以根据GPU的内存容量进行调整(例如,为了实现高效的每线程或每着色器内存分配)。非限制性示例的大小可以是64x64像素,但可以考虑适合GPU的内存和处理能力的任何大小。空图块(例如全部为0的图块)将被丢弃或不再进一步处理。在图12中,图块的遮罩1230显示为空图块、高占用率图块和稀疏占用率图块的混合。
iv.对于每个剩余(非空)图块,为遮罩中每个ID像素创建位置和方向输入的图块(或等效数据集)。
这会产生针对NPLM指定位置和方向输入的图块(或等效数据集)列表,相关的NPLM通过ID(例如集群ID或材质ID)进行识别。
v.并行处理这些批量的图块。批量的大小可以根据可用资源进行调整,例如根据所需和当前可用的线程/着色器的数量进行调整。
对于给定的图块,NPLM可以选择性地处理整个图块。从数据和内存管理的角度来看,这可能更简单(例如,因为内存和计算需求对于图块是可预测的,从而使批处理能够同步完成),但对于ID像素很少的图块,它会通过NPLM创建冗余进程,这可能是不想要的开销。对于非ID像素,可以将零值或默认输入数据应用于NPLM。对于这种方法,遮罩可以被重新用来识别NPLM中与ID像素相关的有效输出。
或者,NPLM可以使用相关联的位置和方向数据来仅处理ID像素以生成输出。从数据和内存管理的角度来看,这更为复杂,因为它需要扫描图块中的ID像素,并且还使得内存和计算预算不清楚;与仅为一个完整的图块做预算不同,这种方式中每个图块的计算预算不同,而且还需要在图块的初始扫描后存储ID像素位置的可变记录,或者,如果扫描和NPLM过程按顺序进行(即,在找到ID像素时处理),则在图块结束前,计算预算仍然是未知的。因此,同样地,图块处理所需的时间可能是可变的,并且可能是未知的,这使得内存管理和并行化更加复杂。然而,对于更稀疏的图块来说,它避免了在非ID像素上不必要地使用NPLM。
可以采用其中一种或另一种方法,或者系统可以例如根据图块中ID像素的阈值占用率(数量或比例)在方法之间切换(在生成遮罩时可以执行计数)。可以选择该阈值占用率来反映系统中计算或内存资源的相对稀缺性。因此,如果计算资源相对来说比内存资源更稀缺,那么从整图块处理切换到ID像素处理的阈值占用率可能更高,因为它减少了冗余(未使用)NPLM进程的数量。
vi.然后,如本文别处所述,可以使用每个ID像素的NPLM输出来组成渲染图像。
当接收到每个NPLM的输出时,可以将其添加到图像的全局辐照缓冲区中,每个像素都会从相应的图块(以及遮罩,如果需要)进行更新。如本文别处所述,每个像素通常有两个或多个NPLM对其有贡献,因此缓冲器可以具有两个或多个通道(例如,漫射和镜面反射分量)。所得结果是渲染的辐照部分。
值得注意的是,这是在控制任何给定时间下使用的资源的同时实现的,方法是通过调整图块大小和批处理大小,以便并行处理的NPLM实例和图块的数量能够有效地利用当前可用的资源(例如在GPU上的资源)。
vii.可选地,BSDF或其他分布函数也可以通过与材质ID(如果使用)关联的材质信息与上述计算进行并行计算。或者,BSDF或其他分布函数可以从内存中检索(在运行中对材质ID完成了一次计算然后存储之后可以选择)。
viii.在任何情况下,然后将全局辐照缓冲区中的每个贡献分量与相关分布函数进行组合(例如相乘),所得结果被组合起来以生成图像(或使用该技术渲染的部分图像)。
因此,应当理解,上述技术将场景的图像分割成与场景中的相应ID相对应的多个遮罩,然后将这些遮罩中的每一个分解成一组图块。然后使用与给定图块的相应ID相应的NPLM并行处理批量的图块。该处理可以选择基于整个图块,或者基于给定图块或批量的图块的ID像素。
在这种技术中,可以调整以下任何一项,以充分利用可用的计算和/或内存资源:
ID的数量:这会影响要处理的遮罩的数量(从而间接影响图块的数量)。还可以考虑在生成的图块数量和NPLM的潜在精度之间进行权衡(ID越多,NPLM越专业;ID越少,NPLM越不专用,或者使用更大/更复杂的NPLM,以达到本文别处所述的同等精度)。
图块的大小:通常这可能由处理图块的线程/着色器的本地内存容量决定。
批量中图块的数目:通常这可能由当前可用(或保留)的线程/着色器的数量决定。
一个图块或批量的图块的ID像素阈值占用率被用于在基于整图块处理或基于ID像素处理之间转换:该阈值可根据GPU的使用情况进行调整;如果有足够的容量来执行整图块处理,那么这将在批处理同步方面带来好处,代价是会有一些不必要的NPLM处理(不必要的处理的比例是图块中有多少非ID像素的函数)。
应当理解的是,来自不同遮罩的图块可以在同批量中进行处理。还应了解,图块可按任何顺序进行处理。这就允许组装最可能的批量的图块,所有这些图块都满足使用整图块方法时的阈值ID像素占用率,从而增加了可以同步处理的批数。
此外,应当理解,在每帧渲染周期期间,其他处理可能需要更多或更少的计算资源,因此可选地,上述技术可以在渲染周期期间根据计算资源的波动的可用性选择整图块批量或每ID像素批量来处理,例如,通过相应地改变阈值。
总结
现在参考图9,在本描述的概要实施例中,对于在场景内的一个位置处具有预定表面的虚拟场景的第一元素,用于在视点处渲染像素的图像渲染方法包括以下步骤。
在第一步骤s910中,如本文别处所述,将基于视点的位置和方向提供给机器学习系统,该机器学习系统先前经过训练以预测这样的因子,当该因子与表征光与预定表面相互作用的分布函数结合时,生成与虚拟场景的第一元素在该位置被照亮时相对应的像素值。
在第二步骤s920中,如本文别处所述,将来自机器学习系统的预测因子与分布函数相结合,以生成与该位置处的虚拟场景的被照亮的第一元素相对应的像素值。
并且,在第三步骤s930中,如本文别处所述,将像素值合并到渲染图像中以供显示。随后可经由A/V端口(90)将图像输出到显示器。
对于本领域技术人员来说,显而易见的是,与本文描述和要求保护的方法和/或装置的各种实施例的操作相对应的上述方法的一种或多种变化被认为在本公开的范围内,包括但不限于:
-针对图像的多个贡献分量(例如,漫射、镜面反射、涂层等)中的每一个训练相应的机器学习系统,针对图像的多个贡献分量中的每一个使用相应的分布函数,并且,如本文别处所述,组合各自生成的像素值以创建并入渲染图像中用于显示的像素值;
-如本文别处所述,相应的分布函数是从由双向散射分布函数、双向反射分布函数和双向透射分布函数组成的列表中选择的一个或多个;
-如本文别处所述,机器学习系统是神经网络,该神经网络的第一部分的输入包括位置,该神经网络的第二部分的输入包括第一部分的输出和所述方向;
-在这种情况下,如本文别处所述,第一部分的激活函数不同于第二部分的激活函数;
-在本案中,如本文别处所述,第一部分的激活函数是ReLU函数,第二部分的激活函数是sin函数;
-在这种情况下,如本文别处所述,神经网络的代价函数基于第二部分的输出和从训练图像的像素的光线追踪版本导出的值之间的差,在该训练图像上已经执行了与分布函数的逆组合;
-在这种情况下,如本文别处所述,在训练期间,网络的代价函数通过第二和第一部分进行反向传播;
-在这种情况下,如本文别处所述,神经网络是完全连接的网络;
-如本文别处所述,机器学习系统的代价函数基于机器学习系统的输出和从训练图像的像素的光线追踪版本导出的值之间的差,在该训练图像上已经执行了与分布函数的逆组合;和
-基于用来选择和加载场景第一元素的纹理的相同的资产识别方案,选择机器学习系统并将其加载到图形处理单元使用的存储器中。
接下来,参考图10,在本说明书的另一个概要实施例中,虚拟场景的图像渲染方法(关注NPLM的并行化和对图像的不同方面进行图块化)包括以下步骤。
如本文别处所述,对于多个ID,第一步骤s1010包括生成识别与相应ID(例如集群ID或材质ID)相关联的场景中的元素的相应遮罩。
如本文别处所述,对于得到的多个遮罩,第二步骤s1020包括将相应遮罩分割成多个图块;以及丢弃不识别任何图像元素的图块(或等效地忽略此类图块,直到在后续步骤中处理了遮罩的所有其他图块,在那之后可以丢弃遮罩的所有图块)。
如本文别处所述,对于得到的多个剩余图块,第三步骤s1030包括从多个机器学习模型中选择相应的经过训练的机器学习模型。该相应的机器学习模型已被训练成基于场景的元素生成有助于渲染图像的至少一部分的数据,该场景的元素与从其分割出相应图块的遮罩中识别的元素的相同的相应ID相关联。
然后,如本文别处所述,第四步骤s1040包括使用相应的经过训练的机器学习模型,基于针对至少相应图块中识别出来的元素的输入数据生成有助于渲染图像的至少一部分的数据。
对于本领域技术人员来说,显而易见的是,与本文描述和要求保护的方法和/或装置的各种实施例的操作相对应的上述方法的一种或多种变化被认为在本公开的范围内,包括但不限于:
-如本文别处所述,根据处理硬件的能力选择图块的大小;
-如本文别处所述,批量的图块由多个相应的经过训练的机器学习模型并行处理;
-在这种情况下,如本文别处所述,可选地,根据处理硬件的能力选择批量的大小;
-如本文别处所述,相应训练过的机器学习模型基于从列表中选择的一个生成有助于渲染图像的至少一部分的数据,该列表包括仅用于相应图块中所识别元素的输入数据,以及用于整个相应图块的输入数据;
-如本文别处所述,相应的经过训练的机器学习模型生成有助于渲染图像的至少一部分的数据是基于仅针对相应图块中的被识别的元素的输入数据,还是基于针对整个相应的图块的输入数据,取决于相应图块中的已识别元素是否满足占用率标准;
-如本文别处所述,生成的数据包括因子,当该因子与表征光与虚拟环境的相应部分的相互作用的分布函数组合时,生成与包含虚拟环境的相应部分的渲染图像的像素对应的像素值;
-在这种情况下,可选地,为图像的多个贡献分量中的每一个训练相应的经过训练的机器学习系统,为图像的多个贡献分量中的每一个使用相应的分布函数,并且,如本文别处所述,各自生成的像素值被组合起来以创建并入渲染图像以供显示的最终组合像素值;
-类似地,如本文别处所述,在这种情况下,替代地或者另外可选地,可以参考相应的ID来获得元素的材质属性,并且通过从列表中选择的一个方法来获得与相应ID对应的至少第一个相应的分布函数,该列表包括从存储器中检索分布函数,和使用至少第一个相应的经过训练的机器学习模型来生成数据并行地计算分布函数;和
-如本文别处所述,相应的经过训练的机器学习系统是神经网络,神经网络的第一部分的输入包括虚拟环境中元素的位置,以及神经网络的第二部分的输入包括第一部分的输出和基于视点的方向,图像的至少一部分正在该视点被进行渲染。
应当理解的是,上述方法可以在通过软件指令或通过包含或可替代专用硬件而适当地适应为可应用的传统硬件上执行。
因此,对常规等效设备的现有部分的所需适配可以以计算机程序产品的形式来实现,该计算机程序产品包括存储在非暂时性机器可读介质上的处理器可实现指令,该非暂时性机器可读介质诸如,软盘、光盘、硬盘、固态盘、PROM、RAM、闪存或这些或其他存储介质的任何组合,或者该计算机程序产品可以在硬件中实现为ASIC(专用集成电路)或FPGA(现场可编程门阵列)或适于在适配常规等效设备时使用的其他可配置电路。单独地,这样的计算机程序可以经由数据信号在诸如,以太网、无线网络、因特网或这些或其他网络的任何组合之类的网络上传输。
娱乐系统10包括中央处理器20。这可以是单核或多核处理器,例如,包括PS5中的8个核。娱乐系统还包括图形处理单元或GPU 30。GPU可在物理上与CPU分离,或与CPU集成为如PS5中的片上系统(SoC)。
娱乐设备还包括RAM 40,并且可以具有用于CPU和GPU中的每一者的单独RAM,或者如在PS5中那样具有共享RAM。该RAM或每个RAM可以是物理上分离的,或者集成为PS5中的SOC的一部分。磁盘50提供进一步的存储,作为外部或内部硬盘驱动器,或作为外部固态驱动器,或作为如PS5中的内部固态驱动器。
娱乐设备可以经由一个或多个数据端口60发送或接收数据,该数据端口诸如,USB端口、以太网端口、端口或类似端口。它还可以可选地经由光学驱动器70接收数据。
与系统的交互通常使用一个或多个手持控制器80来提供,诸如,在PS5的情况下为控制器。
来自娱乐设备的音频/视频输出通常通过一个或多个A/V端口90,或者通过一个或多个有线或无线数据端口60来提供。
在组件未集成的情况下,它们可以通过专用数据链路或经由总线100适当地连接。
首先,图形处理单元(诸如,GPU 30,可选地与CPU 20结合)被配置(例如,通过合适的软件指令)以在虚拟场景的图像内的视点处渲染像素,该虚拟场景包括在该场景内的位置处具有预定表面的第一元素,如本文别处所述。
其次,机器学习处理器(诸如,GPU 30,可选地与CPU 20结合)被配置为(例如,通过合适的软件指令)基于视点向先前被训练成预测因子的机器学习系统提供位置和方向,该因子在与表征光与预定表面的交互的分布函数结合时生成与在位置处被照亮的虚拟场景的第一元素相对应的像素值,如本文别处所述。
图形处理单元被配置为(又例如,通过合适的软件指令)将来自机器学习系统的预测因子与分布函数组合以生成对应于该位置处的虚拟场景的被照亮的第一元素的像素值,如本文别处所述。
此外,图形处理单元还被配置为(再次例如,通过合适的软件指令)将像素值合并到渲染图像中用于显示,如本文别处所述。
应当理解的是,上述硬件可以类似地被配置为执行本文描述的方法和技术,诸如:
-该娱乐设备包括运行相应机器学习系统的多个机器学习处理器(例如,GPU和/或CPU的相应处理器、线程和/或着色器),每个机器学习系统针对图像的多个贡献分量(例如,漫射、镜面反射、涂层反射等)中的一者被训练,其中相应分布函数被用于图像的多个贡献分量中的每一者,并且图形处理单元被配置(再次例如,通过合适的软件指令)以组合相应生成的像素值以创建被并入到渲染图像中以用于显示的像素值,如本文别处所述;以及
-该机器学习系统或每个机器学习系统是神经网络,其中到神经网络的第一部分的输入包括位置,并且到神经网络的第二部分的输入包括第一部分的输出和方向。
首先,遮罩处理器(例如CPU 20和/或GPU 30)适于(例如通过适当的软件指令)针对多个ID生成识别与相应ID相关联的场景的元素的相应遮罩,如本文别处所述。
此外,如本文别处所述,图块处理器(例如CPU 20和/或GPU 30)适于(例如通过适当的软件指令)针对所产生的多个遮罩,将相应的遮罩划分为多个图块,并丢弃不识别任何图像元素的图块。
此外,选择处理器(例如,CPU 20和/或GPU 30)适于(例如通过适当的软件指令)从多个机器学习模型中选择相应的经过训练的机器学习模型以用于产生的多个剩余图块,如本文别处所述,该相应的机器学习模型已被训练成基于场景的元素生成有助于渲染图像的至少一部分的数据,该场景的元素与从其分割出相应图块的遮罩中识别的元素的相同的相应ID相关联。
此外,渲染处理器(例如GPU 30)还适于(例如通过适当的软件指令)使用相应的训练过的机器学习模型,以基于至少针对相应图块中的识别元素的输入数据生成有助于渲染图像的至少一部分的数据,如本文别处所述。
应当理解,上述硬件可以类似地配置为执行本文所述的方法和技术,例如:
-如本文别处所述,根据处理硬件的能力从列表中选择一个或多个,该列表包括图块的大小,以及由多个相应的经过训练的机器学习模型并行处理的批量的图块的大小;
-如本文别处所述,相应训练过的机器学习模型基于从列表中选择的一个生成有助于渲染图像至少一部分的数据,该列表包括仅用于相应图块中所识别元素的输入数据,以及用于整个相应图块的输入数据;和
-如本文别处所述,渲染处理器适于选择相应的经过训练的机器学习模型生成有助于渲染图像的至少一部分的数据,其是基于仅针对相应图块中的已识别元素的输入数据,还是基于针对整个相应图块的输入数据,取决于相应图块中的已识别元素是否符合占用率标准。
上述讨论仅公开和描述了本发明的示例性实施例。如本领域技术人员所理解的,在不脱离本发明的精神或基本特征的情况下,本发明可以以其他特定形式实现。因此,本发明的公开旨在说明而非限制本发明的范围以及其他权利要求。包括本文教导的任何容易辨别的变体的本公开部分地限定了前述权利要求术语的范围,以便没有发明主题贡献给公众。
Claims (15)
1.一种用于虚拟场景的图像渲染方法,包括以下步骤:
针对多个ID,
生成识别与相应ID相关联的场景的元素的相应遮罩;
针对得到的多个遮罩,
将相应的遮罩分割成多个图块;以及
丢弃不识别任何图像元素的图块;
针对产生的多个剩余图块,
从多个机器学习模型中选择相应的经过训练的机器学习模型,所述相应的机器学习模型已经经过训练以基于所述场景的元素生成有助于渲染图像的至少一部分的数据,所述场景的元素与从中分割出各个图块的所述遮罩中识别的所述元素的相同的相应ID相关联;以及
使用所述相应的经过训练的机器学习模型,基于至少针对所述各个图块中的识别元素的输入数据,生成有助于渲染所述图像的至少一部分的数据。
2.根据权利要求1所述的图像渲染方法,其中:
根据处理硬件的能力选择所述图块的大小。
3.根据权利要求1所述的图像渲染方法,其中:
由多个相应的经过训练的机器学习模型并行处理批量的图块。
4.根据权利要求3所述的图像渲染方法,其中:
根据处理硬件的能力选择所述批量的大小。
5.根据权利要求1所述的图像渲染方法,其中:
所述相应的经过训练的机器学习模型基于从列表中选择的一种输入数据生成有助于渲染所述图像的至少一部分的数据,所述列表包括:
i)仅针对所述各个图块中的识别元素的输入数据;和
ii)针对所有各个图块的输入数据。
6.根据权利要求1所述的图像渲染方法,其中:
所述相应的训练过的机器学习模型是基于仅针对所述各个图块中的识别元素的输入数据、还是基于针对所有各个图块的输入数据来生成有助于渲染所述图像的至少一部分的数据取决于所述各个图块中识别元素是否符合占用率标准。
7.根据权利要求1所述的图像渲染方法,其中:
所生成的数据包括因子,当所述因子与表征光与虚拟环境的相应部分的相互作用的分布函数组合时,生成与包含所述虚拟环境的所述相应部分的渲染图像的像素对应的像素值。
8.根据权利要求7所述的图像渲染方法,其中
针对所述图像的多个贡献分量中的每一个训练相应的经过训练的机器学习系统;
针对所述图像的多个贡献分量中的每一个使用相应的分布函数;和
相应生成的像素值被组合起来以创建合并到所述渲染图像中的最终组合像素值以供显示。
9.根据权利要求7或权利要求8所述的图像渲染方法,其中
能够参考相应ID获得所述元素的材质特性;和
通过从以下列表中选择的一个获得与所述相应ID对应的至少第一相应的分布函数,所述列表包括:
i)从存储器中检索所述分布函数;和
ii)与使用至少第一相应的经过训练的机器学习模型来生成数据并行地计算所述分布函数。
10.根据权利要求1所述的图像渲染方法,其中:
所述相应的经过训练的机器学习系统是神经网络;
所述神经网络的第一部分的输入包括在所述虚拟环境中元素的位置;和
所述神经网络的第二部分的输入包括所述第一部分的输出、以及基于所述被渲染图像的所述至少一部分的视点的方向。
11.一种计算机程序,其包括适于使计算机系统执行权利要求1所述的方法的计算机可执行指令。
12.一种可操作以渲染虚拟场景的图像的娱乐设备,包括:
遮罩处理器,其适于针对多个ID,生成识别与相应ID相关联的场景的元素的相应遮罩;
图块处理器,其适于针对得到的多个遮罩,将相应的遮罩分割成多个图块,并且丢弃不识别任何图像元素的图块;
选择处理器,其适于针对产生的多个剩余图块,从多个机器学习模型中选择相应的经过训练的机器学习模型,所述相应的机器学习模型经过训练以基于所述场景的元素生成有助于渲染图像的至少一部分的数据,所述场景的元素与从中分割出各个图块的所述遮罩中识别的所述元素的相同的相应ID相关联;以及
渲染处理器,其适于使用所述相应的经过训练的机器学习模型,基于至少针对所述各个图块中的识别元素的输入数据,生成有助于渲染所述图像的至少一部分的数据。
13.根据权利要求12所述的娱乐设备,其中:
根据处理硬件的能力从以下列表中选择一个或多个,所述列表包括:
i)所述图块的大小;和
ii)由多个相应的经过训练的机器学习模型并行处理的批量的图块的大小。
14.根据权利要求12所述的娱乐设备,其中
所述相应的经过训练的机器学习模型根据从以下列表中选择的一种输入数据生成有助于渲染所述图像的至少一部分的数据,所述列表包括:
i)仅针对所述各个图块中的识别元素的输入数据;和
ii)针对各个图块整体的输入数据。
15.根据权利要求12所述的娱乐设备,其中
所述渲染处理器适于取决于所述各个图块中识别元素是否符合占用率标准,选择所述相应的训练过的机器学习模型是基于仅针对所述各个图块中的识别元素的输入数据、还是基于针对整个对应图块的输入数据来生成有助于渲染所述图像的至少一部分的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2104113.2A GB2605157B (en) | 2021-03-24 | 2021-03-24 | Image rendering method and apparatus |
GB2104113.2 | 2021-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115205438A true CN115205438A (zh) | 2022-10-18 |
Family
ID=75689772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210298095.4A Pending CN115205438A (zh) | 2021-03-24 | 2022-03-24 | 图像渲染方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220309735A1 (zh) |
EP (1) | EP4095807A1 (zh) |
JP (1) | JP2022151742A (zh) |
CN (1) | CN115205438A (zh) |
GB (1) | GB2605157B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240005602A1 (en) * | 2022-06-30 | 2024-01-04 | Advanced Micro Devices, Inc. | Pipeline delay reduction for coarse visibility compression |
CN116051681B (zh) * | 2023-03-02 | 2023-06-09 | 深圳市光速时代科技有限公司 | 一种基于智能手表生成图像数据的处理方法及系统 |
WO2024182905A1 (en) * | 2023-03-07 | 2024-09-12 | Waabi Innovation Inc. | Real time image rendering for large scenes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255547B2 (en) * | 2014-12-04 | 2019-04-09 | Nvidia Corporation | Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system |
US10699465B1 (en) * | 2018-12-28 | 2020-06-30 | Intel Corporation | Cluster of scalar engines to accelerate intersection in leaf node |
US10970911B2 (en) * | 2019-02-21 | 2021-04-06 | Facebook Technologies, Llc | Graphics processing chip with machine-learning based shader |
-
2021
- 2021-03-24 GB GB2104113.2A patent/GB2605157B/en active Active
-
2022
- 2022-03-10 EP EP22161352.4A patent/EP4095807A1/en active Pending
- 2022-03-17 JP JP2022042215A patent/JP2022151742A/ja active Pending
- 2022-03-18 US US17/698,264 patent/US20220309735A1/en active Pending
- 2022-03-24 CN CN202210298095.4A patent/CN115205438A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2605157B (en) | 2023-08-23 |
GB2605157A (en) | 2022-09-28 |
JP2022151742A (ja) | 2022-10-07 |
US20220309735A1 (en) | 2022-09-29 |
EP4095807A1 (en) | 2022-11-30 |
GB202104113D0 (en) | 2021-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200184605A1 (en) | Denoising monte carlo renderings using progressive neural networks | |
US10565747B2 (en) | Differentiable rendering pipeline for inverse graphics | |
CN110728740B (zh) | 虚拟摄影测量 | |
EP4064131A1 (en) | Image rendering method and apparatus | |
CN115205438A (zh) | 图像渲染方法和设备 | |
US12020369B2 (en) | Image rendering method and apparatus | |
EP4080461A1 (en) | Image rendering method and apparatus | |
US10902670B1 (en) | Systems and methods for graphics rendering based on machine learning | |
Liu et al. | A general differentiable mesh renderer for image-based 3D reasoning | |
US12056807B2 (en) | Image rendering method and apparatus | |
US11615602B2 (en) | Appearance-driven automatic three-dimensional modeling | |
DE102022113244A1 (de) | Gemeinsame Form- und Erscheinungsbildoptimierung durch Topologieabtastung | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
US20240203030A1 (en) | 3d model rendering method and apparatus, electronic device, and storage medium | |
CN114529443A (zh) | 以目标采样率的自适应采样 | |
US11069095B1 (en) | Techniques for efficiently sampling an image | |
CN118262034A (zh) | 从图像重建可动画化的三维人类头部模型的系统和方法 | |
CN115205440A (zh) | 图像渲染方法和装置 | |
WO2022251619A1 (en) | Hybrid differentiable rendering for light transport simulation systems and applications | |
US20220309730A1 (en) | Image rendering method and apparatus | |
Schiavo | Real-time XR visualization of 3D Gaussian Splatting models | |
Fredriksson | Evaluation of 3D reconstructing based on visual hull algorithms |
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 |