CN117710563A - 用于半透明对象的基于光栅化的可微分绘制器的方法 - Google Patents

用于半透明对象的基于光栅化的可微分绘制器的方法 Download PDF

Info

Publication number
CN117710563A
CN117710563A CN202311116404.2A CN202311116404A CN117710563A CN 117710563 A CN117710563 A CN 117710563A CN 202311116404 A CN202311116404 A CN 202311116404A CN 117710563 A CN117710563 A CN 117710563A
Authority
CN
China
Prior art keywords
values
rendered
calculated
pixel
polygons
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
Application number
CN202311116404.2A
Other languages
English (en)
Inventor
智天成
桑燊
宋果鲜
黎振邦
刘晶
罗琳捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lemon Inc Cayman Island
Original Assignee
Lemon Inc Cayman Island
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lemon Inc Cayman Island filed Critical Lemon Inc Cayman Island
Publication of CN117710563A publication Critical patent/CN117710563A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

本公开实施例涉及半透明对象的基于光栅化的可微分绘制器的方法。提供了用于绘制半透明对象的系统和方法。在一个方面,该系统包括耦合到存储指令的存储介质的处理器,该指令在由处理器执行时使处理器接收表示至少一个半透明对象的至少一个网格。针对要绘制的每个像素,处理器使用至少一个网格对要绘制的像素执行基于光栅化的可微分绘制,并且基于该基于光栅化的可微分绘制来确定要绘制的像素的多个值。基于光栅化的可微分绘制可以包括执行概率光栅化过程以及聚合技术以计算要绘制的像素的多个值。多个值包括颜色通道值集合和不透明度通道值。一旦确定了所有像素的值,就可以绘制图像。

Description

用于半透明对象的基于光栅化的可微分绘制器的方法
背景技术
在计算机图形学中,绘制器是用于实现绘制过程的设计框架。绘制是从计算机模型生成图像的过程,通常使用光物理学和数学来提供有关要绘制的场景的信息。计算机模型将对象表示为虚拟多边形的网格,通常是三角形。在此虚拟网格中,每个多边形的角点称为顶点,而边界称为边。网格可以包括描述颜色、纹理、空间位置等的信息。绘制过程使用诸如几何图形、视点、纹理、照明和阴影等信息来将场景转换为像素,这些像素形成图像。可以从存储在多边形中的数据为每个像素分配初始颜色值。进一步的像素处理可以包括基于场景的照明信息来改变像素颜色。
取决于特定应用,可以预绘制或实时绘制图像。预绘制是缓慢并且计算密集的过程,其通常用于媒体创建,因为在典型用例中可以提前生成媒体。实时绘制通常是为视频游戏和必须动态创建场景的其他应用完成的。
已经开发了不同的绘制技术。这些技术的优点和缺点可能取决于特定应用。一种技术包括光栅化(rasterization)。在光栅化中,颜色、纹理和光照效果是在绘制过程中以像素为单位确定的。这种技术是有效的,并且可以适用于非照片级真实感应用。这项技术的一个缺点是,它很难准确追踪场景中的光线应该如何传播以及如何与场景中的其他元素交互。另一绘制技术包括光线追踪。光线追踪是一种速度慢并且占用大量资源的绘制技术,它基于虚拟光源以及该光源与要绘制的(多个)对象的交互方式来创建图像。光线追踪涉及将光的路径作为图像平面中的像素进行追踪,并且以相反方向重新生成每条光线从绘制相机返回其原点的路径。这将创建更逼真的绘制效果。
发明内容
提供了用于绘制半透明对象的系统和方法。在一个方面,该系统包括耦合到存储指令的存储介质的处理器,该指令在由处理器执行时,使处理器接收表示至少一个半透明对象的至少一个网格。针对要绘制的每个像素,处理器使用至少一个网格对要绘制的像素执行基于光栅化的可微分绘制,并且基于该基于光栅化的可微分绘制来确定要绘制的像素的多个值。基于光栅化的可微分绘制可以包括执行概率光栅化过程以及聚合技术,以计算要绘制的像素的多个值。多个值包括颜色通道值集合和不透明度通道值。一旦确定了针对所有像素的值,就可以绘制图像。
提供本发明内容是为了以简化形式介绍概念集合,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中所指出的任何或所有缺点的实现。
附图说明
图1示出了根据本公开的实现,被配置为对半透明对象执行可微分绘制过程的计算系统的示意图。
图2A示出了根据本公开的实现,概念性地示出使用透视相机的三维绘制场景的图示,其可以使用图1的系统或其他适当的硬件和软件来实现。
图2B示出了根据本公开的实现,概念性地示出在三角形网格上执行概率光栅化的图示。
图3示出了根据本公开的实现,概念性地示出用于绘制半透明对象的框架,其可以使用图1的系统或其他适当的硬件和软件来实现。
图4示出了根据本公开的实现,概念性地示出用于绘制半透明对象的方法的流程图,其可以使用图1的系统或其他适当的硬件和软件来实现。
图5示出了其中可以实施图1的计算系统的示例计算环境的示意图。
具体实施方式
利用基于光栅化的技术的标准图形绘制器通常以离散的方式在绘制过程中实现这样的步骤,从而防止绘制过程是可微分的。因此,该过程不能应用于某些应用,例如深度学习应用。一直在考虑可微分绘制器,但包括数个缺点。例如,已经考虑了利用光线追踪技术的可微分绘制器。光线追踪是模拟光的物理行为来绘制对象的技术。所产生的绘制细节度很高,并且通常用于照片级真实感应用。但是,光线追踪是缓慢并且资源密集型的过程。因此,在许多应用中,这不是一种理想或可行的方法。已经实现了基于光栅化的可微分绘制器,以使用概率方法来允许一个或多个网格中的多个多边形对所绘制的像素的颜色做出贡献。然而,这给半透明对象的绘制带来了不小的问题。
半透明对象具有半透明属性,这在绘制管道中增加了一定程度的复杂性。在计算机图形学中,对象或多边形的透明度等级可以格式化为属性,表示为不透明度通道或alpha通道。在典型的绘制中,绘制的像素是绘制相机可见的对象的表示。具体地,绘制的像素的颜色由距离绘制相机最近的对象的颜色确定。但是,对于半透明对象,被遮挡对象的颜色成为因素。导致遮挡的对象的透明度或不透明度值可以确定被遮挡对象的颜色在多大程度上影响所绘制的像素的颜色。
当前基于光栅化的可微分绘制技术利用概率方法,该方法提出网格内的所有多边形对每个所绘制的像素具有概率贡献。由于影响给定像素的多边形数目过包含,这些方法无法准确说明不透明度值对绘制像素的影响。由于混合公式的乘法性质,标准alpha混合规则不能处理大量层,即使按概率值加权也是如此。
鉴于以上观察,提出了用于半透明对象的基于光栅化的可微分绘制器的系统和方法。与通常是离散化过程的标准光栅化步骤相比,根据本公开的半透明对象的绘制器可以被配置为可微分绘制器。在许多实现中,绘制器被配置为利用概率过程和聚合机制来实现可微分框架。这种可微性实现了可以用于从二维图像推断物理和几何参数(例如,三维重建、照明估计、材料估计等)的“反向绘制”应用。例如,绘制器的可微性使得能够实现神经网络和非学习优化框架,其可以使用绘制函数的逆来从二维图像推断三维属性。
在根据本公开的许多实现中,使用基于光栅化的可微分绘制器来实现用于绘制半透明对象的绘制过程。绘制过程可以包括接收计算机模型。该计算机模型可以以各种格式配置。在一些实现中,计算机模型包括表示至少一个半透明对象的至少一个网格。该至少一个网格还可以表示至少一个实体对象。网格包括顶点集合和多边形集合,它们共同定义表示对象的三维几何形状。网格还可以包括诸如颜色、不透明度、纹理、位置等附加属性。计算机模型还可以包括描述要绘制的场景的信息。
绘制过程可以包括对要绘制的图像中的每个像素执行基于光栅化的像素的可微分绘制。使用接收到的计算机模型执行基于光栅化的可微分绘制。基于光栅化的可微分绘制过程可以包括与各种聚合技术相结合的概率光栅化步骤,以确定描述可以用于绘制像素的颜色和其他信息的值。绘制过程可以迭代重复,直到要绘制的图像的所有像素都被绘制。这些和其他基于光栅化的可微分绘制框架将在下面的部分中进一步详细描述。
图1示出了根据本公开的实现的具有计算设备102的计算系统100的示意图,该计算设备102被配置为对半透明对象执行可微分绘制过程。如图所示,计算设备102包括彼此可操作地耦合的处理器104(例如,中央处理单元,或称“CPU”)和存储器106(例如,易失性和非易失性存储器)。存储器106存储可微分绘制器程序108,该可微分绘制器程序108包含用于本文描述的用于由处理器104执行的各种软件模块的指令。存储器106还存储由可微分绘制器程序108及其软件模块使用的数据110。
在由处理器104执行时,存储在可微分绘制器程序108中的指令使处理器104从存储在存储器106中的数据110中取回计算机模型112以供可微分绘制器程序108使用。计算机模型112可以包括用于绘制过程的不同类型的数据。在图1所示的系统100中,计算机模型112数据包括一个或多个网格114和场景信息116。网格114可以用不同的方式表示。通常,网格114是由顶点、边和多边形表示的多边形网格。可以使用各种几何形状的多边形(例如,三角形、四边形和其他多边形等)。在许多实现中,多边形网格包括凸面多边形。网格114还可以包括描述要绘制的对象的信息,例如颜色、不透明度、纹理、位置等。网格114可以包括与每个多边形相关联的颜色和不透明度信息。例如,每个多边形可以包括多边形集合颜色通道值和多边形不透明度通道值。在一些实现中,颜色信息由指示红、绿和蓝(RGB)通道的值来表示。在其他实现中,颜色信息由指示青色、洋红色、黄色和黑色(CMYK)通道的值表示。在一些实现中,透明度信息由指示不透明度通道的值来表示,其中较高的值表示较高的不透明度。场景信息116可以包括关于执行绘制的环境的信息。示例场景信息可以包括照明信息和相机信息。
在许多实现中,网格114描述具有半透明属性的对象。例如,网格114可以包括描述给定多边形的不透明度等级的信息。正如上面简要讨论的,半透明对象的绘制不是简单的问题。在用于绘制实体对象的典型光栅化过程中,基于绘制相机的视图来绘制对象。给定像素的颜色由距离该给定像素位置的绘制相机最近的多边形的颜色确定。因此,被遮挡的对象不会影响绘制像素的颜色。针对半透明对象,被遮挡对象的颜色应影响绘制像素的颜色,这与实际情况类似。用于处理半透明的基本技术包括对遮挡对象的颜色赋予权重,以便在计算要绘制的像素的颜色时使用。权重通常基于导致遮挡的对象的不透明度等级。然而,当应用柔和光栅化过程时,这些技术中涉及的数学不再适用。
可微分绘制器程序108包括接收取回的计算机模型112的、基于光栅化的绘制器118。可微分绘制器程序108的基于光栅化的绘制器118可以被配置成绘制半透明对象。基于光栅化的绘制器118可以被配置为使用接收到的计算机模型112来执行像素的绘制过程。该过程可以针对要绘制的图像的每个像素迭代地重复。因此,可微分绘制器程序108可以包括像素计数器120,以确定要在给定迭代中绘制的像素。针对要绘制的给定像素,基于光栅化的绘制器118可以首先使用概率光栅化模块122来使用计算机模型112的至少一个网格114来执行概率光栅化。概率光栅化过程首先确定(多个)网格114内的多边形集合。可以使用各种过程来确定多边形集合。在一些实现中,基于距离阈值来确定多边形集合。例如,针对给定的多边形,如果要绘制的像素的中心的位置在跨给定多边形的边的两个维度的距离阈值内,则确定过程可以选择给定的多边形。在这种情况下,省略深度维度。距离阈值可以取决于特定应用。在某些实现中,使用模糊半径来模糊多边形。在这种情况下,如果其模糊边界框覆盖了要绘制的像素,则选择多边形。根据不同的应用,可以使用不同的模糊半径。
概率光栅化过程还可以包括基于要绘制的像素将概率值分配给每个确定的多边形。可以使用各种不同的计算和函数来计算概率值。在一些实现中,使用sigmoid函数计算概率值P。在一些实现中,概率值P被限定为:其中d是要绘制的像素的中心与多边形边界之间的欧几里德距离,当像素在多边形内时δ=1,否则δ=-1,并且σ是控制光栅化的柔和度的参数。根据应用的不同,可以使用其他距离度量。
在计算了概率值之后,给定的像素将被具有非零概率的多边形集合所“覆盖”。然后使用多边形分组模块124将多边形集合分成多个组。可以使用不同的标准对多边形进行分组。在一些实现中,如果多边形之间的深度差小于预定阈值,则对它们进行分组。在进一步的实现中,除了满足深度差阈值之外,如果这些多边形在相同网格上,则对它们进行分组。可以计算相对于绘制相机的深度差。
基于光栅化的绘制器118还可以包括分组聚合模块126,用于对每组多边形执行聚合技术。每组多边形被聚合成一个片段。该片段可以包括从多边形导出的信息。例如,片段可以包括片段颜色通道值集合和片段不透明度通道值。在一些实现中,片段颜色通道值集合包括片段红色通道值、片段绿色通道值和片段蓝色通道值。在其他实现中,片段颜色通道值集合包括片段青色通道值、片段洋红颜色通道值、片段黄色通道值和片段黑色通道值。可以通过使用加权平均来计算片段颜色通道值集合和片段不透明度通道值。可以基于来自分组多边形子集中的每个多边形的对应多边形颜色通道值的加权平均来计算片段颜色通道值。例如,可以使用多边形集合内每个多边形的红色多边形颜色通道值的加权平均来计算红色片段颜色通道值。可以实现不同的权重函数。在一些实现中,每个多边形值的权重是其相关联的概率值P。在一些实现中,针对每个多边形的多边形颜色通道值的权重是其相关联的概率值P。在一些实现中,针对多边形不透明度通道值的权重由以下函数给出:min(2P,1)。在进一步的实现中,针对多边形不透明度通道值的权重由以下函数给出:min(max(2P,0),1)。
基于光栅化的绘制器118还可以包括片段聚合模块128,其根据alpha混合规则聚合片段以确定要绘制的像素的多个值130。在图1所示的系统100中,多个值130包括颜色通道值132和不透明度通道值134。片段聚合过程可以包括基于片段相对于绘制相机的深度值对片段进行排序。针对要绘制的给定像素,n个片段的颜色和不透明度通道可以分别表示为colori和alphai(i=1,2,...,n),其中i的值越高,指示深度值越大。如上所述,可以使用多个颜色通道。可以应用不同的alpha混合规则来聚合片段。在一些实现中,使用以下alpha混合规则来聚合片段,以计算要绘制的像素的多个值130:
其中,alpha是不透明度通道值134,并且color是颜色通道值132中的一个值。
在像素被绘制之后,像素计数器120可以被更新到要被绘制的下一像素,并且基于光栅化的绘制器118再次开始该过程。一旦迭代循环完成,就可以输出所绘制的图像。
图1的系统100示出了能够绘制半透明对象的基于光栅化的可微分绘制器的一般框架。可以容易地理解,该框架可以被配置、调整和应用于不同的应用。不同的应用可以有不同的要求。例如,要绘制的计算机模型可以以不同的格式绘制。可以使用不同的多边形网格。在许多实现中,网格是三角形网格,尽管可以利用其他形状的多边形。
图2A示出了根据本公开的实现,概念性地示出使用透视相机202的三维绘制场景200的图示。图2B示出了根据本公开的实现,概念性地示出在三角形网格上执行概率光栅化的图示。场景200是包括四个对象204至210的计算机模型。对象204至210可以以各种方式表示,包括多边形网格。如图2B所示,对象204至208可以被表示为三角形网格。除了透视相机202之外,场景200还包括光源212。光源212的位置和强度提供了详细描述对象204至210的阴影的信息。阴影可以用于调整所绘制像素中对象的颜色。相机202的位置和设置确定可以从中绘制二维图像的图像平面214。在图2A描绘的场景200中,相机202的位置捕捉到三个对象206至210,而省略了第四个对象204。在所描绘的视点处,两个对象208、210被第三对象206部分遮挡。如果正面对象是半透明的,则应该调整该位置处的(多个)所绘制像素的颜色以反映在真实世界中如何查看半透明对象。例如,可以基于该位置处的被遮挡对象208、210的颜色以及前面对象206和/或被遮挡对象208、210的(多个)不透明度值来调整该位置处的(多个)所绘制像素的颜色。图2B示出了示例绘制像素位置216。如图所示,对象206至210与要绘制的像素的位置216相关联。在所描绘的图示中,至少对象206和208是半透明的。如上所述,概率光栅化过程可以包括基于跨两个维度的距离阈值来确定与要绘制的像素相关联的多边形集合。在图2B中,三个对象206至210中的每个对象都包括满足距离阈值并且因此与像素216的位置相关联的两个或三个三角形。例如,对象206包括针对概率光栅化过程选择的三角形218和220。
图3示出了根据本公开的实现,概念性地示出用于绘制半透明对象的框架300的图示。在说明性框架300中,绘制过程被应用于三角形网格。该过程以概率光栅化过程开始,其中基于到要绘制的像素的位置304的距离阈值来选择三角形302。要绘制的像素的中心304与三角形302的边缘或边界之间的距离d可以用于与距离阈值进行比较。距离可以基于二维平面,而相对于绘制相机省略了深度维度。
一旦确定了三角形302,就可以基于距离d来计算针对每个三角形302的概率值P。可以使用上述部分中描述的任何过程来计算概率值。例如,概率值P可以被计算为其中d是要绘制的像素的中心与三角形的边界之间的欧几里德距离,当像素在三角形内时δ=1,否则δ=-1,并且σ是控制光栅化的柔和度的参数。
然后,绘制过程可以基于深度差阈值将所确定的三角形302分组为组。例如,如果三角形302之间的深度差满足深度差阈值,则可以将它们分组在一起。在一些实现中,除了满足深度差阈值之外,如果三角形302在相同网格上,则将它们分组在一起。在图3的图中,三角形302被分组为三个组306至310。
一旦将三角形分组,每组三角形306至310就可以被聚合成片段。如图所示,组306被聚合成片段312,组308被聚合成片段314,并且组310被聚合成片段316。片段312至316可以包括从其相应组内的三角形302中导出的信息。例如,每个片段312至316可以包括片段颜色通道值集合和片段不透明度通道值。每个三角形302可以包括多边形集合颜色通道值和多边形不透明度通道值。可以使用三角形组中的每个三角形302的对应多边形颜色通道值的加权平均来计算片段颜色通道值集合。可以实现不同的权重函数。在一些实现中,针对每个三角形302的多边形颜色通道值的权重是它们的关联概率值P。在一些实现中,针对多边形不透明度通道值的权重由以下函数给出:min(2P,1)。在进一步的实现中,针对多边形不透明度通道值的权重由以下函数给出:min(max(2P,0),1)。
片段312至316可以被聚合以确定可以用于绘制像素318的多个值。多个值可以包括颜色通道值集合和不透明度通道值。例如,多个值可以包括RGB通道值和不透明度通道值。片段312至316可以使用以上各节中描述的任何过程来聚合。例如,可以根据标准的alpha混合规则来聚合片段312至316。
图4示出了根据本公开的实现,概念地示出用于绘制半透明对象的方法400的流程图,其可以使用图1的系统或其他适当的硬件和软件来实现。
在步骤402,方法400包括接收表示至少一个半透明对象的至少一个网格。该至少一个网格还可以表示至少一个实体对象。该网格包括顶点集合和多边形集合。可以使用不同的多边形。在一些实现中,网格是三角形网格。网格可以包括附加属性,诸如颜色、不透明度、纹理、位置等。网格可以包括与每个多边形相关联的颜色和不透明度信息。例如,每个多边形可以包括多边形集合颜色通道值和多边形不透明度通道值。在一些实现中,颜色信息由指示RGB通道的值表示。在其他实现中,颜色信息由指示CMYK通道的值来表示。在一些实现中,透明度信息由指示不透明度通道的值来表示,其中较高的值表示较高的不透明度。
在步骤404处,方法400包括使用至少一个网格对要绘制的像素执行基于光栅化的可微分绘制。执行基于光栅化的可微分绘制可以用许多不同的方式来实现。如下文各节中所讨论的,步骤404A至404D描述了用于执行基于光栅化的可微分绘制的一个过程。
在步骤404A处,方法400包括使用至少一个网格执行概率光栅化。执行概率光栅化可以包括基于要绘制的像素从至少一个网格确定多边形集合。可以使用各种过程来确定多边形集合。在一些实现中,基于距离阈值来确定多边形集合。例如,针对给定的多边形,如果要绘制的像素的中心的位置在跨给定多边形的边的两个维度的距离阈值内,则确定过程可以选择给定的多边形。在某些实现中,使用模糊半径来模糊多边形,并且如果其模糊的边界框覆盖要绘制的像素,则选择多边形。概率光栅化过程还可以包括计算概率值P的集合。该集合可以包括基于要绘制的像素的确定的多边形的中的每个多边形概率值P。概率值P可以基于要绘制的像素的位置和所确定的多边形集合内的多边形边的距离d来计算。例如,概率值P可以基于要绘制的像素的中心和所确定的多边形集合内的多边形的边缘的距离d来计算。在一些实现中,使用sigmoid函数计算概率值P。在一些实现中,概率值P被限定为:,其中d是要绘制的像素的中心与多边形边界之间的欧几里德距离,当像素在多边形内时δ=1,否则δ=-1,并且σ是控制光栅化的柔和度的参数。
在步骤404B处,方法400包括基于深度差阈值将多边形集合分组为所分组的多边形的子集。在一些实现中,如果多边形之间的深度差小于预定阈值,则对它们进行分组。在进一步的实现中,如果这些多边形除了在相同网格上之外还满足深度差阈值,则对它们进行分组。可以计算相对于绘制相机的深度差。
在步骤404C处,方法400包括计算多个片段,其中通过聚合所分组的多边形的子集来计算每个片段。每个片段可以包括片段颜色通道值集合和片段不透明度通道值。在一些实现中,片段颜色通道值集合包括片段RGB颜色通道值。在其他实现中,片段颜色通道值集合包括片段CMYK颜色通道值。可以通过使用加权平均来计算片段颜色通道值集合和片段不透明度通道值。例如,可以基于来自所分组的多边形的子集内的多边形中的每个多边形的对应多边形颜色通道值的加权平均来计算片段颜色通道值。在一些实现中,每个多边形的权重是其相关联的概率值P。在一些实现中,每个多边形的多边形颜色通道值的权重是其相关联的概率值P。在一些实现中,多边形不透明度通道值的权重由以下函数给出:min(2P,1)。在进一步的实现中,多边形不透明度通道值的权重由以下函数给出:min(max(2P,0),1)。
在步骤404D处,方法400包括通过聚合多个片段来计算要绘制的像素的多个值。多个值可以包括颜色通道值集合和不透明度通道值。在一些实现中,颜色通道值集合包括RGB颜色通道值。在一些实现中,颜色通道值集合包括CMYK颜色通道值。片段聚合过程可以包括基于片段相对于绘制相机的深度值对片段进行排序。要绘制的像素的不透明度通道值可以计算为:其中alpha是所计算的不透明度通道值,n是多个片段中的片段数目,alphai是片段不透明度通道值。要被绘制的像素的颜色通道值的集合可以被计算为:/>其中color是要计算的颜色通道值,colori是片段颜色通道值,并且alphaj是片段不透明度通道值。
在步骤406处,方法400包括基于该基于光栅化的可微分绘制来确定要绘制的像素的多个值。可以通过各种不同的方式来确定要绘制的像素的多个值。在一些实现中,通过聚合片段来确定要绘制的像素的多个值,例如在步骤404D中描述的示例过程。
在步骤408处,方法400包括基于所确定的多个值来输出所绘制的图像。所绘制的图像可以是由至少一个网格表示的三维对象的二维表示。在一些实现中,对象中的至少一个对象是半透明的。在一些实现中,对象中的至少一个对象是不透明的。
在一些实施例中,本文描述的方法和过程可以绑定到一个或多个计算设备的计算系统。具体地,这样的方法和过程可以被实现为计算机应用或服务、应用编程接口(API)、库和/或其他计算机程序产品。
图5示意性地示出了可以执行上述方法和过程中的一个或多个的计算系统500的非限制性实施例。计算系统500以简化形式示出。计算系统500可以采用一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备、以及诸如智能手表和头盔增强现实设备的可穿戴计算设备的形式。
计算系统500包括逻辑处理器502、易失性存储器504和非易失性存储设备506。计算系统500可以可选地包括显示子系统508、输入子系统510、通信子系统512和/或图5中未示出的其他组件。
逻辑处理器502包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器502可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的部分的指令。可以实现这样的指令以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果或以其他方式达到期望的结果。
逻辑处理器502可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器502可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器502的处理器可以是单核或多核的,并且在其上执行的指令可以被配置为用于顺序、并行和/或分布式处理。逻辑处理器的各个组件可以任选地分布在两个或更多个单独的设备中,其可以位于远程和/或被配置用于协调处理。逻辑处理器502的各方面可以由配置在云计算配置中的可远程访问的联网计算设备来虚拟化和执行。在这种情况下,可以理解,这些虚拟方面运行在各种不同机器的不同物理逻辑处理器上。
非易失性存储设备506包括一个或多个物理设备,该一个或多个物理设备被配置成保存可由逻辑处理器执行的指令,以实现本文描述的方法和过程。当实现这样的方法和过程时,非易失性存储设备506的状态可以被转换-例如,以保存不同的数据。
非易失性存储设备506可以包括可移除和/或内置的物理设备。非易失性存储设备506可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)或其他大容量存储设备技术。非易失性存储设备506可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。应当理解,非易失性存储设备506被配置为即使在非易失性存储设备506断电时也保存指令。
易失性存储器504可以包括包含随机存取存储器的物理设备。易失性存储器504通常由逻辑处理器502用来在软件指令的处理期间临时存储信息。应当理解,当易失性存储器504的电源被切断时,易失性存储器504通常不继续存储指令。
逻辑处理器502、易失性存储器504和非易失性存储设备506的各方面可以一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以用于描述计算机系统500的方面,该方面通常由处理器以软件实现,以使用易失性存储器的部分来执行特定功能,该功能涉及专门配置处理器以执行该功能的转换处理。因此,模块、程序或引擎可以通过逻辑处理器502来实例化,逻辑处理器502使用易失性存储器504的部分来执行由非易失性存储设备506保存的指令。应当理解,不同的模块、程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、函数等实例化。同样,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等实例化。术语“模块”、“程序”和“引擎”可以包括可执行文件、数据文件、库、驱动器、脚本、数据库记录等的单项或组。
当被包括时,显示子系统508可以用于呈现由非易失性存储设备506保存的数据的视觉表示。视觉表示可以采用图形用户界面(GUI)的形式。由于本文描述的方法和过程改变了由非易失性存储设备506保存的数据,并且因此改变了非易失性存储设备506的状态,所以显示子系统508的状态同样可以被转换为可视地表示底层数据的改变。显示子系统508可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以与逻辑处理器502、易失性存储器504和/或非易失性存储设备506组合在共享外壳中,或者这样的显示设备可以是外围显示设备。
当被包括时,输入子系统510可以包括诸如键盘、鼠标、触摸屏或游戏控制器的一个或多个用户输入设备或与之交互。在一些实施例中,输入子系统510可以包括选定的自然用户输入(NUI)组件或与之交互。这样的组件可以是集成的或外围的,并且可以在板上或板外处理输入动作的转换和/或处理。示例NUI组件可以包括用于话语和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部追踪器、眼睛追踪器、加速计和/或陀螺仪;以及用于评估大脑活动的电场传感组件;和/或任何其他适当的传感器。
当被包括时,通信子系统512可以被配置为通信地将本文描述的各种计算设备彼此耦合,并与其他设备通信耦合。通信子系统512可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统512可以被配置为经由无线电话网络或有线或无线局域网或广域网络(例如,Wi-Fi连接上的HDMI)进行通信。在一些实施例中,通信子系统512可以允许计算系统500经由诸如互联网的网络向其他设备发送消息和/或从其他设备接收消息。
本公开的一个方面提供了用于绘制半透明对象的计算机系统,该计算机系统包括耦合到存储介质的处理器,该处理器存储指令,该指令在由处理器执行时,使处理器接收表示至少一个半透明对象的至少一个网格,针对要绘制的每个像素使用至少一个网格对要绘制的像素执行基于光栅化的可微分绘制,并且基于该基于光栅化的可微分绘制来确定要绘制的像素的多个值,其中多个值包括颜色通道值集合和不透明度通道值,并基于所确定的多个值输出所绘制的图像。在此方面,附加地或备选地,执行基于光栅化的可微分绘制包括通过基于要绘制的像素从至少一个网格确定多边形集合来执行概率光栅化,并计算与所确定的多边形集合相关联的概率值集合,其中每个概率值基于要绘制的像素的位置和所确定的多边形集合内的多边形边来计算。在此方面,附加地或备选地,使用sigmoid函数计算每个概率值。在此方面,附加地或备选地,执行基于光栅化的可微分绘制还包括基于深度差阈值将所确定的多边形集合分组为所分组的多边形的子集。在此方面,附加地或备选地,执行基于光栅化的可微分绘制还包括计算多个片段,其中每个片段包括片段颜色通道值集合和通过聚合所分组的多边形的子集计算的片段不透明度通道值。在此方面,附加地或备选地,所确定的多边形集合中的每个多边形包括多边形颜色通道值集合和多边形不透明度通道值,每个片段颜色通道值是基于来自每个相应所分组的多边形的对应的多边形颜色通道值的加权平均来计算的,并且每个片段不透明度通道值是基于来自每个相应的所分组的多边形的对应多边形不透明度值的加权平均来计算的。在此方面,附加地或备选地,使用权重P来计算对应的多边形颜色通道值的加权平均,并且使用权重min(2P,1)来计算对应的多边形不透明度值的加权平均,其中P是与相应的多边形相关联的概率值。在此方面,附加地或备选地,通过聚合多个片段来计算要绘制的像素的多个值。在此方面,附加地或备选地,要绘制的像素的多个值中的不透明度通道值被计算为:其中alpha是所计算的不透明度通道值,n是多个片段中的片段的数量,并且alphai是片段不透明度通道值,并且要绘制的像素的多个值中的颜色通道值的集合被计算为:其中color是要计算的颜色通道值,colori是片段颜色通道值,并且alphaj是片段不透明度通道值。在此方面,附加地或备选地,颜色通道值集合包括红色通道值、绿色通道值和蓝色通道值。
另一方面提供了用于绘制半透明对象的方法,该方法包括接收表示至少一个半透明对象的至少一个网格,针对要绘制的每个像素使用至少一个网格对要绘制的像素执行基于光栅化的可微分绘制,并且基于该基于光栅化的可微分绘制来确定要绘制的像素的多个值,其中多个值包括颜色通道值集合和不透明度通道值,并且基于所确定的多个值输出所绘制的图像。在此方面,附加地或备选地,执行基于光栅化的可微分绘制包括通过基于要绘制的像素从至少一个网格确定多边形集合来执行概率光栅化,并且计算与所确定的多边形集合相关联的概率值集合,其中每个概率值基于要绘制的像素的位置和所确定的多边形集合内的多边形边来计算。在此方面,附加地或备选地,使用sigmoid函数计算每个概率值。在此方面,附加地或备选地,执行基于光栅化的可微分绘制还包括基于深度差阈值将所确定的多边形集合分组为所分组的多边形的子集。在此方面,另外地或备选地,执行基于光栅化的可微分绘制还包括使用所计算的概率值集合计算多个片段,其中每个片段包括片段颜色通道值集合和通过聚合所分组的多边形的子集计算的片段不透明度通道值。在此方面,附加地或备选地,所确定的多边形集合中的每个多边形包括多边形颜色通道值集合和多边形不透明度通道值,每个片段颜色通道值是基于来自每个相应所分组的多边形的对应的多边形颜色通道值的加权平均来计算的,并且每个片段不透明度通道值基于来自每个相应的所分组的多边形的对应多边形不透明度值的加权平均来计的。在此方面,附加地或备选地,使用权重P来计算对应的多边形颜色通道值的加权平均,并且使用权重min(2P,1)来计算对应的多边形不透明度值的加权平均,其中P是与相应的多边形相关联的概率值。在此方面,附加地或备选地,通过聚合多个片段来计算要绘制的像素的多个值。在此方面,附加地或备选地,要绘制的像素的多个值中的不透明度通道值被计算为:其中alpha是所计算的不透明度通道值,n是多个片段中的片段的数目,并且alphai是片段不透明度通道值,并且要绘制的像素的多个值中的颜色通道值的集合被计算为:其中color是要计算的颜色通道值,colori是片段颜色通道值,并且alphaj是片段不透明度通道值。
另一方面提供了一种用于绘制半透明对象的方法,该方法包括:接收表示至少一个半透明对象的至少一个网格,确定要绘制的像素,基于要绘制的像素从至少一个网格确定三角形集合,通过计算多个概率值来执行对要绘制的像素的概率光栅化,其中每个概率值基于要绘制的像素的位置和三角形在所确定的三角形集合内的边缘来计算,基于深度差阈值将所确定的三角形集合分组为所分组的三角形的子集,使用所计算的概率值集合计算多个片段,其中每个片断包括片断颜色通道值集合和片断不透明度通道值,片断不透明度通道值是通过聚合所分组的三角形的子集并且计算要通过聚合多个片断来绘制的像素的颜色通道值集合和不透明度通道值来计算。
应当理解,本文描述的配置和/或方法本质上是示例的,并且这些特定实施例或示例不以限制意义来考虑,因为可能有许多变化。本文描述的特定例程或方法可以表示任何数目的处理策略中的一个或多个。因此,所示和/或描述的各种动作可以按照所示和/或描述的顺序、以其他序列、并行地或省略地执行。同样,可以改变上述过程的顺序。
本公开的主题包括各种过程、系统和配置、以及本文公开的其他特征、功能、动作和/或属性以及它们的任何和所有等同形式的所有新颖和非明显的组合和子组合。

Claims (20)

1.一种用于绘制半透明对象的计算机系统,所述计算机系统包括:
处理器,耦合到存储指令的存储介质,所述指令在由所述处理器执行时使所述处理器:
接收表示至少一个半透明对象的至少一个网格;
针对要绘制的每个像素:
使用所述至少一个网格对所述要绘制的像素执行基于光栅化的可微分绘制;以及
基于所述基于光栅化的可微分绘制来确定所述要绘制的像素的多个值,其中所述多个值包括颜色通道值集合和不透明度通道值;以及
基于所确定的所述多个值来输出所绘制的图像。
2.根据权利要求1所述的系统,其中执行所述基于光栅化的可微分绘制包括通过以下步骤来执行概率光栅化:
基于所述要绘制的像素从所述至少一个网格确定多边形集合;以及
计算与所确定的所述多边形集合相关联的概率值集合,其中每个概率值基于所述要绘制的像素的位置和所确定的所述多边形集合内的多边形的边而被计算。
3.根据权利要求2所述的系统,其中所述概率值中的每个概率值使用sigmoid函数而被计算。
4.根据权利要求2所述的系统,其中执行所述基于光栅化的可微分绘制还包括:基于深度差阈值将所确定的所述多边形集合分组为具有所分组的多边形的子集。
5.根据权利要求4所述的系统,其中执行所述基于光栅化的可微分绘制还包括:计算多个片段,其中每个片段包括片段颜色通道值集合和通过聚合具有所分组的多边形的子集而被计算的片段不透明度通道值。
6.根据权利要求5所述的系统,其中:
所确定的所述多边形集合中的每个多边形包括多边形颜色通道值集合和多边形不透明度通道值;
每个片段颜色通道值基于来自相应所述所分组的多边形中的每个多边形的对应多边形颜色通道值的加权平均而被计算;以及
每个片段不透明度通道值基于来自相应所述所分组的多边形中的每个多边形的对应多边形不透明度值的加权平均来而被计算。
7.根据权利要求6所述的系统,其中:
权重P被用于计算所述对应多边形颜色通道值的所述加权平均;以及
权重min(2P,1)被用于计算所述对应多边形不透明度值的所述加权平均,其中P是与相应的所述多边形相关联的所述概率值。
8.根据权利要求5所述的系统,其中通过聚合所述多个片段来计算所述要绘制的像素的所述多个值。
9.根据权利要求8所述的系统,其中:
所述要绘制的像素的所述多个值中的所述不透明度通道值被计算为:
其中,alpha是所计算的所述不透明度通道值,n是所述多个片段中的所述片段数目,并且alphai是片段不透明度通道值;以及
所述要绘制的像素的所述多个值中的所述颜色通道值集合被计算为:
其中color是要计算的所述颜色通道值,colori是片段颜色通道值,并且alphaj是片段不透明度通道值。
10.根据权利要求1所述的系统,其中所述颜色通道值集合包括红色通道值、绿色通道值和蓝色通道值。
11.一种用于绘制半透明对象的方法,所述方法包括:
接收表示至少一个半透明对象的至少一个网格;
针对要绘制的每个像素:
使用所述至少一个网格对所述要绘制的像素执行基于光栅化的可微分绘制;以及
基于所述基于光栅化的可微分绘制来确定所述要绘制的像素的多个值,其中所述多个值包括颜色通道值集合和不透明度通道值;以及
基于所确定的所述多个值来输出所绘制的图像。
12.根据权利要求11所述的方法,其中执行所述基于光栅化的可微分绘制包括通过以下步骤来执行概率光栅化:
基于所述要绘制的像素从所述至少一个网格确定多边形集合;以及
计算与所确定的所述多边形集合相关联的概率值集合,其中每个概率值基于所述要绘制的像素的位置和所确定的所述多边形集合内的多边形的边而被计算。
13.根据权利要求12所述的方法,其中所述概率值中的每个概率值使用sigmoid函数而被计算。
14.根据权利要求12所述的方法,其中执行所述基于光栅化的可微分绘制还包括:基于深度差阈值将所确定的所述多边形集合分组为具有所分组的多边形的子集。
15.根据权利要求14所述的方法,其中执行所述基于光栅化的可微分绘制还包括:使用所计算的所述概率值集合来计算多个片段,其中每个片段包括片段颜色通道值集合和通过聚合具有所分组的多边形的子集计算的片段不透明度通道值。
16.根据权利要求15所述的方法,其中:
所述所确定的多边形集合中的每个多边形包括多边形颜色通道值集合和多边形不透明度通道值;
每个片段颜色通道值基于来自相应所分组的多边形中的每个多边形的对应多边形颜色通道值的加权平均而被计算;以及
每个片段不透明度通道值基于来自相应所述所分组的多边形中的每个多边形的对应多边形不透明度值的加权平均而被计算。
17.根据权利要求16所述的方法,其中:
权重P被用于计算所述对应多边形颜色通道值的所述加权平均;以及
权重min(2P,1)被用于计算所述对应多边形不透明度值的所述加权平均,其中P是与所述多边形相关联的所述概率值。
18.根据权利要求15所述的方法,其中通过聚合所述多个片段来计算所述要绘制的像素的所述多个值。
19.根据权利要求18所述的方法,其中:
所述要绘制的像素的所述多个值中的所述不透明度通道值被计算为:
其中,alpha是所计算的所述不透明度通道值,n是所述多个片段中的所述片段数目,并且alphai是片段不透明度通道值;以及
所述要绘制的像素的所述多个值中的所述颜色通道值集合被计算为:
其中color是要计算的所述颜色通道值,colori是片段颜色通道值,并且alphaj是片段不透明度通道值。
20.一种用于绘制半透明对象的方法,所述方法包括:
接收表示至少一个半透明对象的至少一个网格;
确定要绘制的像素;
基于所述要绘制的像素从所述至少一个网格确定三角形集合;
通过计算多个概率值来执行对所述要绘制的像素的概率光栅化,其中每个概率值基于所述要绘制的像素的位置和所确定的所述三角形集合内的三角形的边而被计算;
基于深度差阈值将所确定的所述三角形集合分组为具有所分组的三角形的子集;
使用所计算的所述概率值集合来计算多个片段,其中每个片段包括片段颜色通道值集合和通过聚合具有所分组的三角形的子集计算的片段不透明度通道值;以及
通过聚合所述多个片段来计算所述要绘制的像素的颜色通道值集合和不透明度通道值。
CN202311116404.2A 2022-09-15 2023-08-31 用于半透明对象的基于光栅化的可微分绘制器的方法 Pending CN117710563A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/932,640 2022-09-15
US17/932,640 US20240096018A1 (en) 2022-09-15 2022-09-15 Methods for a rasterization-based differentiable renderer for translucent objects

Publications (1)

Publication Number Publication Date
CN117710563A true CN117710563A (zh) 2024-03-15

Family

ID=90159458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311116404.2A Pending CN117710563A (zh) 2022-09-15 2023-08-31 用于半透明对象的基于光栅化的可微分绘制器的方法

Country Status (2)

Country Link
US (1) US20240096018A1 (zh)
CN (1) CN117710563A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001239926A1 (en) * 2000-02-25 2001-09-03 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
US10417787B2 (en) * 2017-02-15 2019-09-17 Microsoft Technology Licensing, Llc Index buffer block compression
US11145105B2 (en) * 2019-03-15 2021-10-12 Intel Corporation Multi-tile graphics processor rendering
US10963985B2 (en) * 2019-06-28 2021-03-30 Intel Corporation Mesh shader output management technology

Also Published As

Publication number Publication date
US20240096018A1 (en) 2024-03-21

Similar Documents

Publication Publication Date Title
US9569885B2 (en) Technique for pre-computing ambient obscurance
US11734879B2 (en) Graphics processing using directional representations of lighting at probe positions within a scene
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
US7289119B2 (en) Statistical rendering acceleration
CA2795739C (en) File format for representing a scene
US8619078B2 (en) Parallelized ray tracing
US10970920B2 (en) Systems and methods for ray-traced shadows of transparent objects
GB2537972A (en) Systems and methods for soft shadowing in 3-D rendering
US9189883B1 (en) Rendering of multiple volumes
CN106558090B (zh) 3d渲染和阴影信息存储方法和设备
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
JP2015515059A (ja) シーンにおける不透明度レベルを推定する方法とそれに対応する装置
CN111788608A (zh) 用于建模光反射的混合射线跟踪方法
US10089796B1 (en) High quality layered depth image texture rasterization
US9311737B1 (en) Temporal voxel data structure
US11120611B2 (en) Using bounding volume representations for raytracing dynamic units within a virtual space
Kelly et al. Interactive dimensioning of parametric models
US9665955B1 (en) Pose-space shape fitting
EP2827302B1 (en) Image processing apparatus and method
CN117710563A (zh) 用于半透明对象的基于光栅化的可微分绘制器的方法
US10636210B2 (en) Dynamic contour volume deformation
WO2007130018A1 (en) Image-based occlusion culling
WO2024037116A1 (zh) 三维模型的渲染方法、装置、电子设备及存储介质
JP2019046080A (ja) 情報処理装置、方法及びプログラム
Lukasiewicz Scientific visualization using Pixar's RenderMan

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