利用向量交错的部分深度排序的制作方法

未命名 10-26 阅读:119 评论:0

利用向量交错的部分深度排序


背景技术:

1.在数字图像编辑中,交错(“interlace”)向量对象为平面向量增加了视觉深度。向平面向量添加深度是向量图形最具挑战性的方面中的一个方面。当一个物体位于另一物体的下方或上方时,会出现进一步的挑战。对于丰富的向量设计,诸如一个对象围绕另一对象,使用传统技术,不可能保持两个对象都完好无损。一个对象可以完全位于另一对象下方或完全位于另一对象上方,但不能交错以使该对象部分位于另一对象之上或部分位于另一对象下方。为了使传统技术交错部分上方/下方对象,对象必须被分割成更小的碎片。上方对象的任何重叠部分都需要从下方的对象中移除,以便交错这两个对象。底部对象基于重叠部分被分割成碎片,这将创建多个较小的对象,其中一些对象位于重叠部分中。在交错期间,重叠部分中的较小对象被移除以容纳上方对象。在交错过程中移除的较小对象不可用于任何后续处理,也无法恢复到其原始几何图形。


技术实现要素:

2.这里介绍了与向量交错和保留原始对象几何图形相关的技术/科技。向量交错系统生成定制绘制命令,该定制绘制命令容纳图像中各种向量对象的深度定位。深度定位表示每个向量对象相对于其他向量对象的位置。向量交错系统使用每个向量对象的深度定位来生成绘制命令,使得仅对于没有绘制具有上部深度定位(例如,上方)的对象的像素来绘制具有下部深度定位(例如,下方)的对象。使用用户对顶部对象和底部对象的选择来分配深度定位。生成绘制命令集并且将其传送到耦合到帧缓冲器的处理器。处理器使用模版(“stencil”)纹理将第一向量对象和第二向量对象写入帧缓冲器。模版纹理的使用为处理器提供了在交错期间保留第一向量对象和第二向量对象的原始几何图形的能力,因为第一向量对象仅在第二向量对象不具有模版纹理值的地方被写入。
3.本公开的示例性实施例的附加特征和优点将在下面的描述中阐述,并且部分地将从描述中清楚,或者可以从这些示例性实施例的实践中获知。
附图说明
4.详细描述参考附图进行描述,其中:
5.图1示出了根据一个或多个实施例的向量交错过程的图示;
6.图2示出了具有几何图形分割的向量交错的示例;
7.图3示出了根据一个或多个实施例的确定部分深度顺序的示例;
8.图4描绘了根据一些实施例的gpu绘制命令集的示例;
9.图5示出了根据一个或多个实施例的第一向量对象的部分深度对象操纵的示例;
10.图6示出了根据一个或多个实施例的第二向量对象的部分深度对象操纵的示例;
11.图7示出了根据一个或多个实施例的向量交错的示例;
12.图8示出了根据一个或多个实施例的向量交错系统的示意图;
13.图9示出了根据一个或多个实施例的向量交错方法中的一系列动作的流程图;
14.图10示出了根据一个或多个实施例的其中向量交错系统可以操作的示例性环境的示意图;以及
15.图11示出了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
16.本公开的一个或多个实施例包括使用处理器交错向量对象的向量交错系统。向量交错系统为处理器生成绘图命令以写入帧缓冲器。处理器通过控制绘制命令并且基于每个向量对象的深度定位将向量对象写入一个或多个纹理来执行交错。控制绘制命令包括将设置组应用于帧缓冲器,并且基于向量对象的深度定位来写入一个或多个纹理。通过控制绘制命令,向量交错系统能够在呈现设备上执行视觉交错的同时,保留向量对象的原始几何图形。
17.传统技术缺乏保留原始形状的原始几何图形的能力。因此,传统的系统将原始形状划分为较小的形状,并且损害原始几何图形。这导致了不可逆的交错,该交错不能灵活地重新排序对象的深度。
18.为了解决传统系统中的这些和其他缺陷,各实施例通过向处理器的帧缓冲器的一个或多个纹理生成绘制命令集来执行向量图形的交错。通过在绘制命令中包括多于一个纹理,向量交错系统可以追踪被交错的对象的深度定位,并且基于深度定位绘制重叠的对象。例如,重叠区域中位于另一对象“下方”的对象将仅在重叠区域以外的位置绘制。这提供了保留原始对象的几何图形的能力,以调整深度定位、对象缩放以及在交错过程中拆分几何图形而降级的其他操纵。
19.根据本公开的涉及向量交错的一些技术/科技包括提供改变任何重叠区域的深度排序,同时保留向量对象的原始几何图形的能力。本公开的向量交错提供几何图形操纵到重叠区域的自动映射,以在操纵一个向量对象之后提供有效的重新排序。本公开的向量交错提供了一种稳健的解决方案,其与梯度一起工作,而不会破坏跨不同深度顺序的区域的梯度的连续性。
20.各实施例生成用于图形处理器以深度顺序绘制对象的特定绘制命令集,其缓解了如传统技术所需的对象被分解成较小对象的情况。取而代之的是,通过利用绘制命令集来执行交错,所有对象的原始几何图形被保留,从而提供了通过基于相应对象的深度定位的改变而重新绘制对象,来实时执行对象的重新排序的灵活能力。此外,保留原始几何图形允许在编辑对象的大小或尺度时执行向量交错。向量交错系统通过调整绘制命令的参数来在编辑期间高效地执行交错。
21.例如,用户可以选择部分重叠的对象。为了交错这些对象,对象中的一个对象被标识为前景对象,而另一对象被标识为背景对象。向量交错系统分析对象以使用对象的位置、对象的任何重叠部分以及来自用户的与预期对象深度顺序相关的选择来确定对象的每个像素的深度顺序(例如,哪个对象在上方/下方)。基于深度顺序,两个对象通过使用具有上部深度定位的对象的位置信息(例如,存储在缓冲器的模版纹理中的值)来绘制具有下部深度定位的对象来交错。然后,具有下部深度定位的(多个)对象仅在未被具有上部深度定位的(多个)对象所占据的位置处绘制(例如使用模版测试)。向量交错系统使用多个纹理为处理器生成定制绘制命令,以使用处理器的帧缓冲器来交错各层。
22.图1示出了根据一个或多个实施例的向量交错过程的图示。如图1所示,计算环境100包括向量交错系统106,其包括深度渲染引擎108,该深度渲染引擎108包括光栅化器110,以及处理器,诸如图形处理单元(gpu)112,其包括片段着色器114和帧缓冲器116。在一些实施例中,向量交错系统106被实现为向量图形处理应用或另一计算应用中的模块。
23.在标号1处,向量交错系统106获得第一向量对象102和第二向量对象104作为用户输入120。在示例中,第一向量对象102和第二向量对象104是不同的向量对象。第一向量对象102和第二向量对象104由用户从在用户界面中呈现并且包括多个对象的数字画布中选择以供交错。向量交错系统还被配置为从其他计算系统或软件应用接收对象。向量交错系统106可以通过各种对象检测、过滤或搜索方法来确定前景或背景对象,从而将索引分配给第一向量对象102或第二向量对象104。
24.在一些实施例中,向量交错系统106可以选择向量对象的一个或多个区域。例如,区域表示第一向量对象或第二向量对象的区域,其中区域的深度排序不同于第二向量对象或第一向量对象的其他部分的深度定位。在一个示例中,向量交错系统106可以交错包括多个字母的单词。每个字母可以具有用于交错的局部区域,其中交错的顺序(例如,基于字母、间距等)可能不同于较大对象的整体交错(例如,通常在设计前面的字母)。向量交错系统106可以通过接收用户输入或提供以贝奇尔(bezier)曲线为边界的自由形式区域来交互地获得区域。
25.向量交错系统106可配置为以多种模式检测对象或区域。在第一模式中,向量交错系统106使用由用户选择的自由形式区域或基于与交互点(例如,点击、触摸、软件定义的位置)的接近程度生成的预定义平面区域来检测区域或对象。在一些实施例中,向量交错系统106具有第二模式,该第二模式标识在交互点附近的位置中的多个预定义平面区域。向量交错系统标识在该交互点附近的一个或多个附加区域(例如,附加第一向量对象区域或附加第二向量对象区域)。
26.在标号2处,深度渲染引擎108确定针对第一向量对象102和第二向量对象104的深度定位。深度渲染引擎108检测到第一向量对象102和第二向量对象104具有包括第一向量对象102的部分和第二向量对象104的部分的重叠区域。例如,当第一向量对象102在第二向量对象104的上方/下方时,发生这样的重叠。深度渲染引擎108生成定制绘制命令,该定制绘制命令指示重叠区域存在并且发生交错的一个或多个位置。例如,定制绘制命令可以是包括限定用于gpu的一个或多个帧缓冲器设置的设置组的处理器命令。该组设置包括用于控制对帧缓冲器的一个或多个纹理的写入的纹理设置、纹理测试值或帧缓冲器的另一控制值。光栅化器110将向量图像转换为包括可经由显示设备呈现的像素、点或线的集合的光栅图像。定制绘制命令调整该设置组以控制所考虑的每个区域的深度定位,例如多个向量对象的组、诸如第一向量对象或第二向量对象的向量对象、或向量对象的子区域。
27.在一些实施例中,gpu将原图的渲染分成三个渲染过程。每个渲染过程共享相同的帧缓冲器,并且负责绘制向量图像的三个不同组件,即第一向量对象、第二向量对象和重叠区域。根据为绘制掩蔽的颜色附件以及深度、模版测试功能和帧缓冲器状态的设置,每个渲染过程可能会有所不同。
28.在标号3处,gpu 112从深度渲染引擎108接收绘制命令以写入帧缓冲器。gpu 112包括片段着色器114和帧缓冲器116。gpu 112将图形数据写入包括多个纹理的帧缓冲器
116。gpu 112基于定制绘制命令而将第一向量对象102写入渲染纹理和深度纹理。gpu 112将重叠区域写入渲染纹理、深度纹理和模版纹理。基于包括在定制绘制命令中的该设置组,基于第一向量对象102在第二向量对象104上方来写入模版纹理。在模版纹理不具有由定制绘制命令的该设置组中的模版测试值确定的先前值(例如,其中第一向量对象不在第二向量对象上方)的情况下,gpu 112将第二向量对象104写入渲染纹理。gpu112将片段着色器114应用于帧缓冲器以生成针对第一向量对象102和第二向量对象104的颜色。片段着色器的输出是要写入帧缓冲器116的深度值和颜色值。
29.在标号4处,gpu 112将帧缓冲器116传送到呈现设备118。呈现设备118可以是监控器、vr头戴式耳机、用户设备或其他视觉显示设备。在一些实施例中,在帧缓冲器116被传送到呈现设备之后,用户可以选择第一向量对象102或第二向量对象104的不同的深度定位。该过程将重复标号2至4以生成更新的帧缓冲器116,该更新的帧缓冲器116使用指示不同深度定位的定制绘制命令在不同深度定位处交错第一对象102和第二向量对象104。当接收到对第一对象102、第二向量对象104或数字画布的大小的任何编辑时,该过程将重复。编辑的示例包括请求不同的深度顺序、移动、或对第一向量对象102或第二向量对象104应用比例因子。该过程将在数字画布的所有像素被渲染之后暂停,直到接收到后续编辑。
30.与本公开的实施例相比,图2示出了使用典型几何图形分割方法的向量交错的示例。如图2所示,向量图像200的向量交错包括单词向量对象和笔划向量对象。向量图像200包括多个重叠区域,并且一些重叠区域包括错误交错。例如,向量图像200具有各自包括交错误差的第一重叠区域202、第二重叠区域204和第三重叠区域206。如图2所示,第一重叠区域202、第二重叠区域204和第三重叠区域206中的每个重叠区域包括由于单词向量对象和笔划向量对象的形状的几何图形分割而产生的错误交错。错误交错使对象的部分不能适当地位于其他对象的上方/下方,因为形状被拆分,并且原始几何图形受到损害。作为示例,在第一重叠区域202处,因为单词或字母向量对象具有多个分量(较浅阴影和较暗阴影),所以笔划向量对象通过较浅阴影半途交错,因为当拆分单词向量对象时,包括较浅阴影和较暗阴影两者的几何图形丢失。相反,如果适当地交错,笔划向量对象将完全位于第一重叠区域202的单词向量对象的上方或下方(例如,在较亮和较暗图案填充区域两者之下)。虽然关于第一重叠区域202、第二重叠区域204和第三重叠区域206描述了图2,但是可能存在附加的重叠区域和交错误差。
31.图3示出了根据一个或多个实施例的确定部分深度顺序的示例。向量交错系统接收第一向量对象302(正方形)和第二向量对象304(三角形)。可以基于用户对放置在绘图区域上的对象或对象序列的选择来获得第一向量对象302和第二向量对象304。
32.深度渲染引擎包括将向量图像转换为光栅图像以供显示的光栅化器。深度渲染引擎可以使用由用户选择的自由形式区域或基于诸如点击位置的交互点生成的预定义平面区域来确定重叠区域306。重叠区域306由圆形指示,该圆形至少部分地由第一向量对象302和第二向量对象304的原始几何图形的部分限定。重叠的视觉示例由第一图案填充对象310与第二图案填充对象320之间的关系示出。第一图案填充对象310与第二图案填充对象320分别描绘第一向量对象302和第二向量对象304的图案填充版本。
33.如图3所示,重叠区域306包括第一向量对象302的部分和第二向量对象304的部分。在该示例中,重叠区域306可以是以如上所述从用户交互接收的点为中心的预定义平面
圆形,但是重叠区域306可以包括更多或更少的区域。该配置确保重叠区域306包括其中对象占据相同像素并且需要交错的并置区域325。为了执行交错,深度渲染引擎生成绘制命令集以将第一向量对象302、第二向量对象304和重叠区域306写入gpu的帧缓冲器的一个或多个纹理。
34.深度渲染引擎诸如基于用户对对象的深度顺序的选择来标识第一向量对象302和第二向量对象304的深度定位。在确定深度顺序之后,深度渲染引擎生成针对帧缓冲器纹理的三个纹理的写入命令。在该示例中,帧缓冲器包括渲染纹理、深度纹理和模版纹理。在一些实施例中,渲染纹理存储要显示的输出内容。深度纹理用于存储针对第二向量对象的覆盖范围。模版纹理用于存储针对重叠区域的覆盖范围,但仅用于包括第一向量对象302和第二向量对象304两者的像素的像素。
35.通过将额外的纹理作为颜色附件附接到帧缓冲器,可以获得类似的效果,然而,使用深度纹理和模版纹理不需要跨帧的任何交叉依赖关系。这提供了更好的性能,并且还避免了对纹理障碍的依赖,以便一个渲染过程能够读取以前的渲染过程的输出。深度纹理和模版纹理可以存储感兴趣的区域,可用于在不同的渲染过程期间结合深度和模版测试来生成附加感兴趣的区域。在一些实施例中,绘制任何帧的开始是可以设置一个或多个纹理的所有值的初始条件。
36.在下面的示例中,可以使用porter-duff合成来渲染所有向量区域。向每个向量对象分配深度值,并且修改图形渲染流水线以选择性地将向量对象写入gpu的当前绑定的帧缓冲器的渲染纹理和/或深度纹理。
37.例如,深度渲染引擎向第一向量对象302分配第一深度定位,并且向第二向量对象304分配第二深度定位。在图3所示的示例中,第一向量对象302交错在第二向量对象304上方。深度渲染引擎将第一向量对象302写入渲染纹理和深度纹理。深度渲染引擎如上所述标识重叠区域306。深度渲染引擎将重叠区域306写入模版纹理以指示第一向量对象302和第二向量对象304应该在两个对象具有并置像素的像素处交错。在一些实施例中,深度渲染引擎使用替换的模版操作和关闭的模版测试设置来写入重叠区域。在写入重叠区域306之后,深度渲染引擎将第二向量对象304写入帧缓冲器,其中模版测试被设置为“不等于”,以防止对于深度纹理中存在对应于第一向量对象302的值的像素,将第二向量对象写入帧缓冲器。具体写入命令和gpu设置的其他详细信息如下所述。
38.图4描绘了根据一些实施例的gpu绘制命令集的示例。深度渲染引擎向gpu发出绘制命令集,以将图形信息写入帧缓冲器以显示给用户。在该示例中,描绘了帧缓冲器状态402a至402e,统称为“帧缓冲器状态402”。帧缓冲器状态402中的每个帧缓冲器状态表示当前图像帧中的所有像素。对于每个帧缓冲器状态,帧缓冲器具有多个纹理。如图4所示,每个帧缓冲器状态402包括渲染纹理404a至404e、深度纹理406a至406e和模版纹理408a至408e。
39.帧缓冲器状态402各自是如上所述生成的绘制命令(光栅化后)的结果。基于多个gpu设置来确定帧缓冲器状态402,包括但不限于:颜色写入、深度写入、深度值、深度测试、模版写入、模版测试、模版操作、模版参考等。
40.在帧缓冲器状态402a处,绘制纹理404a、深度纹理406a和模版纹理408a的值被清除。帧缓冲器状态402可以是绘制第一对象或第二对象的图形信息之前的初始状态。
41.在帧缓冲器状态402b处,gpu将第一对象写入帧缓冲器,其中渲染纹理404b中的图
形信息和深度纹理406b中指示第一对象存在于特定位置的值。深度测试用“e”表示相等,并且模版写入为关闭。
42.在帧缓冲器状态402c处,gpu将重叠区域写入帧缓冲器,其中渲染纹理404c中没有图形信息,并且深度写入为“关闭”。gpu通过模版操作“替换”写入模版纹理,并且写入模版参考值,该值指示第一对象出现在特定位置。
43.在渲染第一向量对象之后,渲染重叠区域。添加重叠区域作为第二向量对象中的向量区域和第一向量对象中的向量区域重叠的附加区域。在第一向量对象之后但在第二向量对象之前渲染重叠区域。对于重叠区域,为所有子区域指定与第一向量对象相同的深度值,并且将深度测试设置为“相等”,使得重叠区域仅存储在已经渲染第一向量对象的像素处的信息。此外,由于重叠区域不是第二向量对象或第一向量对象的部分,因此在针对重叠区域的渲染过程期间禁用对渲染纹理的写入(即,导致帧缓冲器状态402c)。将重叠区域渲染为模版纹理以保留针对第一向量对象和重叠区域的覆盖范围的分开的信息。例如,设置预定义模版参考值,比方说二进制值1,并且将其写入模版缓冲器,其中

替换’作为模版操作。
44.在帧缓冲器状态402d处,gpu利用渲染纹理404d中的图形信息将第二对象写入帧缓冲器,并且深度写入为关闭。模版写入为由“s”表示的“关闭”,并且测试被设置为“不相等”。通过以这种方式指定模版测试,gpu仅在不具有对应于第一对象的图形信息的位置将第二对象写入渲染纹理404d。
45.在帧缓冲器状态402e,gpu保留具有第一对象和第二对象两者的渲染纹理404e,并且清除深度纹理406e和模版纹理408e以准备下一图形帧。
46.图5示出了根据一个或多个实施例的部分深度对象(环境)操纵的示例。通常,可以在第二向量对象或第一向量对象中进行两种不同类型的修改。重叠区域是第二向量对象中与第一向量对象中的向量区域位于相同位置的向量区域的交集。在修改第二向量对象或第一向量对象之后,重叠区域会有相应的变化。在图5所示的示例中,第一向量对象502是圆形,第二向量对象504是环形。在一些实施例中,向量交错系统接收修改第一向量对象502的大小和形状的请求。例如,向量交错系统经由用户界面接收来自用户的输入。在该示例中,第一向量对象502被操纵以减小水平宽度且并产生被操纵对象508。向量交错系统基于被操纵对象508绘制不再与第一向量对象502重叠的第二向量对象504的部分。在该示例中,将先前重叠区域与关联于第二向量对象504和被操纵对象508的新重叠区域进行比较。向量交错系统可以在具有自由形式重叠区域的第一模式或具有预定义平面区域的第二模式下操作,以基于新的重叠区域来生成调整区域。调整区域506可由向量交错系统基于第一向量对象502与被操纵对象508之间的差异来标识。调整区域506表示在操纵第一向量对象502之后不再低于被操纵对象508的第二向量对象504的部分。如以上参考图1至图4所描述的,向量交错系统生成绘制命令,其指示通过使用模版纹理作为从帧缓冲器中丢弃低于第一向量对象的第二向量对象的像素的测试来交错。向量交错系统生成包括被操纵的第一向量对象508和第二向量对象504的输出图像510。如前所述,向量交错系统提供这种实时交错,因为在第一向量对象502和第二向量对象504的交错期间,第二向量对象504的原始几何图形被保留。
47.图6示出了根据一个或多个实施例的部分深度对象操纵的示例。具体地,图6描绘了操纵第二向量对象604(即,环形)而不是第一向量对象602(即,圆形)的过程。在该示例
中,向量交错系统接收修改第二向量对象的请求604。在该示例中,所请求的对第二向量对象604的修改是从第二向量对象的顶部到底部降低高度。可以在最左侧图像上的环形形状(第二向量对象604)与中心图像中的环形形状(第二向量对象604)之间可视化地标识所请求的修改。类似于上面关于图5所描述的,向量交错系统响应于诸如用户交互的请求来操纵第二向量对象604。向量交错系统生成所操纵对象608并确定调整区域606。调整区域606表示第一向量对象602下方的操纵对象608的一部分。该过程如参考图1至图5所描述的那样通过交错第一向量对象602和操纵对象608来进行。向量交错系统在执行交错之后生成输出图像610。在一些示例中,在重叠区域和新的重叠区域之间存在一些并置。
48.图7示出了根据一个或多个实施例的向量交错的示例。如图7所示,呈现了交错限定单词700的各种向量对象的输出。单词700是诸如字母和设计图案的交错向量对象的集合。单词700的每个字母可以作为分离的向量对象交错。参考图1至图6描述的过程提供了确定单词700的每个字母的深度定位的能力。如上所述,单词700的每个字母可以具有由用户选择或由向量交错系统确定的不同深度定位。例如,花卉图案702和字母704正在交错。如上所述,向量交错系统在交错期间保留花卉图案702和字母704的几何图形。向量交错系统产生第一交错706或第二交错708。向量交错系统在字母704上方交错花卉图案702以产生第一交错706。通过对字母706下方的花卉图案702重新排序,向量交错系统产生第二交错708。
49.图8示出了根据一个或多个实施例的向量交错系统的示意图。如图所示,向量交错系统800可以包括但不限于用户界面管理器802、深度渲染引擎804、gpu 806和存储管理器808。深度渲染引擎804包括光栅化器810。gpu 806包括片段着色器812和帧缓冲器814。存储管理器808包括向量对象818、深度参数820和输出图像822。
50.如图8所示,向量交错系统800包括用户界面管理器802。例如,用户界面管理器802允许用户向向量交错系统800输入向量对象、选择向量对象的深度顺序。在一些实施例中,用户界面管理器802提供用户界面,用户通过该用户界面与向量对象交互,诸如选择深度顺序(例如,重新排序深度定位)、操纵向量对象、查看输出图像或其任意组合。备选地或附加地,用户界面可以使用户能够通过提供与远程文件相关联的地址(例如,url或其他端点)或连接到包括向量对象的远程存储(例如,云存储),来使用户能够选择向量对象用于导入。
51.如图8所示,向量交错系统800包括深度渲染引擎804。深度渲染引擎804检测到具有重叠区域的第一向量对象和第二向量对象。深度渲染引擎804确定第一向量对象的部分在第二向量对象的上方/下方。深度渲染引擎804生成指示发生交错的一个或多个位置的定制绘制命令。深度渲染引擎804确定针对第一向量对象的第一深度定位和针对第二向量对象的第二深度定位。深度渲染引擎804基于第一深度定位和第二深度定位来定制绘制命令。深度渲染引擎804包括将向量图像转换成用于显示的光栅图像的光栅化器810。
52.如图8所示,向量交错系统800还包括gpu 806。gpu 806包括片段着色器812和帧缓冲器814。gpu 806是用于呈现用于在呈现设备上显示的图形的电子电路。gpu 806可以是高度并行的,以高效地呈现向量对象。gpu 806应用片段着色器来生成第一向量对象和第二向量对象的颜色。片段着色器的输出是要写入帧缓冲器814的深度值和颜色值。
53.如图8所示,向量交错系统800还包括帧缓冲器814。帧缓冲器814是包含表示图像中的所有像素的电子数据的存储器结构。帧缓冲器814的大小被调整为显示器可呈现的图像的最大尺寸。帧缓冲器814表示图像帧中的所有像素。gpu 806利用帧缓冲器814与呈现设
备通信。
54.如图8所示,向量交错系统800还包括存储管理器808。如图8所示,存储管理器808包括向量对象818。向量对象818包括可用于向量交错的一个或多个向量对象。例如,向量对象可以包括可选对象库,其可以被添加到图像以进行交错。向量对象的示例包括参考图7描述的字母和单词或字母和设计。
55.如图8进一步所示,存储管理器808还包括深度参数820。深度参数820是设置组,包括但不限于:gpu设置、纹理设置或对应于特定深度定位的其他绘制设置。例如,与第一向量对象相关联的深度参数820可以不同于与第二向量对象相关联的深度参数820。在一些示例中,深度参数820可以基于可配置为提供任何数量的向量对象或向量对象组的任何数目的深度定位来索引。
56.如图8进一步所示,存储管理器808还可以包括输出图像822。输出图像822表示向量交错系统800的输出,该输出可以在向量交错系统800的操作期间由显示设备存储或呈现给用户。
57.向量交错系统800的组件802至808中的每个组件及其对应的元素(如图8所示)可以使用任何适合的通信技术彼此通信。将认识到,尽管组件802至808及其对应元素在图8中示为分开,但是任何组件802至808及其对应元素可以被组合成较少的组件,诸如组合成单个设施或模块、划分成更多组件、或配置成可服务于特定实施例的不同组件。
58.组件802至808及其对应的元素可以包括软件、硬件或两者。例如,组件802至808及其对应的元素包括存储在计算机可读存储介质上并且可由一个或多个计算设备的处理器执行的一个或多个指令。当由一个或多个处理器执行时,向量交错系统800的计算机可执行指令使客户端设备和/或服务器设备执行本文描述的方法。备选地,组件802至808及其对应的元素可以包括硬件,诸如执行特定功能或功能组的专用处理设备。此外,组件802至808及其对应的元素可以包括计算机可执行指令和硬件的组合。
59.此外,向量交错系统800的组件802-808可以例如被实现为一个或多个独立应用、应用的一个或多个模块、一个或多个插件、一个或多个库函数或可由其他应用调用的函数、和/或云计算模型。因此,向量交错系统800的组件802至808可以被实现为独立应用,诸如桌面或移动应用。此外,向量交错系统800的组件802至808可以被实现为在远程服务器上托管的一个或多个基于网络的应用。备选地或附加地,向量交错系统800的组件可以在一套移动设备应用或“app”中实现。
60.图1至图8、对应的文本和示例提供了执行向量交错的多个不同的系统和设备。除前述之外,还根据流程图描述实施例,该流程图包括用于实现特定结果的方法中的动作和步骤。例如,图9示出了根据一个或多个实施例的示例性方法的流程图。可以用更少或更多的步骤/动作来执行参考图9描述的方法,或者可以以不同的顺序来执行这些步骤/动作。此外,本文描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地重复或执行。
61.图9示出了根据一个或多个实施例的向量交错方法中的一系列动作的流程图900。在一个或多个实施例中,方法900在包括向量交错系统800的数字媒体环境中执行。方法900旨在说明根据本公开的一个或多个方法,而不旨在限制潜在实施例。备选实施例可以包括比图9中阐明的步骤更多、更少或不同的步骤。
62.如图9所示,方法900包括接收对图像的第一向量对象的选择的动作902。如上所述,对第一向量对象的选择可以通过用户界面、交互点或其他过程来接收。第一向量对象可以基于用户对放置在诸如由用户界面提供的数字画布的绘图区域中的对象的选择来获得。
63.如图9所示,方法900包括检测图像的第二向量对象的动作904,其中第二向量对象不同于第一向量对象。向量交错系统基于自由形式区域或预定义平面区域来确定图像的第二向量对象,该区域包括第一向量对象的至少一部分和另一对象的至少一部分,其至包括共同的一个或多个像素位置。
64.如图9所示,方法900包括确定针对第一向量对象的第一深度定位和针对第二向量对象的第二深度定位的动作906。向量交错系统基于第一向量对象与第二向量对象之间的重叠区域来确定深度定位。重叠区域是基于用户选择的初始位置的平面区域,并且包括第一向量对象和第二向量对象具有重叠位置并且要执行像素的交错的一个或多个区域。向量交错系统为第一向量对象和第二向量对象分配指示写入帧缓冲器的深度顺序的深度定位。在一些实施例中,确定第一向量对象的第一深度定位和第二向量对象的第二深度定位包括通过利用定制绘制命令来保留针对第一向量对象和第二向量对象两者的像素和形状数据,而不是分割第一向量对象或第二向量对象的原始几何图形。在一些实施例中,确定针对第一向量对象的第一深度定位和针对第二向量对象的第二深度定位包括确定图像中对应于第一向量对象的一个或多个区域,其中一个或多个区域在距选择的阈值距离内;以及确定图像中不对应于第一向量对象的附加区域,其中附加区域被添加到第二向量对象。
65.如图9所示,方法900包括交错第二向量对象和第一向量对象的动作908,包括基于第一深度定位来绘制第一向量对象和基于第二深度定位来绘制第二向量对象。向量交错系统生成定制绘制命令和指示多个帧缓冲器设置的设置组。定制绘制命令包括限定各种纹理设置的设置组,用于控制对帧缓冲器的一个或多个纹理的写入、纹理测试值或帧缓冲器的另一控制值。光栅化器110将向量图像转换为包括可经由显示设备呈现的像素、点或线的集合的光栅图像。定制绘制命令调整该设置组以控制所考虑的每个区域的深度定位,例如多个向量对象组、诸如第一向量对象或第二向量对象的向量对象、或向量对象的子区域。
66.在一些实施例中,gpu将原图的渲染分成三个渲染过程。每个渲染过程共享相同的帧缓冲器,并且负责绘制向量图像的三个不同分量,即第一向量对象、第二向量对象和重叠区域。取决于为绘制遮罩的颜色附件以及深度、模版测试功能和帧缓冲器状态的设置,每个渲染过程可能会有所不同。
67.在一些实施例中,基于第一深度定位绘制第一向量对象并且基于第二深度定位绘制第二向量对象包括:生成包括渲染纹理、深度纹理和模版纹理的帧缓冲器;将第二向量对象写入渲染纹理和深度纹理;将与第二向量对象相关联的模版参考值写入模版纹理;丢弃第一向量对象的一个或多个像素,其中第一向量对象的一个或多个像素具有对应于具有与第二向量对象相关联的模版参考值的像素的位置;以及将第一向量对象写入渲染纹理。
68.在一些实施例中,基于第一深度定位绘制第一向量对象并且基于第二深度定位绘制第二向量对象包括:生成包括渲染纹理、深度纹理和模版纹理的帧缓冲器;将第一向量对象写入渲染纹理和深度纹理;将与第一向量对象相关联的模版参考值写入模版纹理;丢弃第二向量对象的一个或多个像素,其中第二向量对象的一个或多个像素具有对应于具有与第一向量对象相关联的模版参考值的像素的位置;以及将第二向量对象写入渲染纹理。
69.在一些实施例中,方法900还包括在绘制之后接收修改第二向量对象或第一向量对象的请求的动作;映射针对第一向量对象的第三深度定位和针对第二向量对象的第四深度定位,其中该映射基于该请求;以及基于第三深度定位来绘制第一向量对象和基于第四深度定位来绘制第二向量对象。
70.图10示出了根据一个或多个实施例的其中向量交错系统800可以操作的示例性环境1000的示意图。在一个或多个实施例中,环境1000包括服务提供方1002,服务提供方1002可以包括经由一个或多个网络1008连接到多个客户端设备1006a至1006n的一个或多个服务器1004。客户端设备1006a至1006n、一个或多个网络1008、服务提供方1002和一个或多个服务器1004可以使用适合于传输数据和/或通信信号的任何通信平台和技术,包括支持远程数据通信的任何已知通信技术、设备、介质和协议,彼此通信或与其他组件通信,其示例将在下面参考图11更详细地描述。
71.尽管图10示出了客户端设备1006a至1006n、一个或多个网络1008、服务提供方1002以及一个或多个服务器1004的特定布置,但是各种附加布置也是可能的。例如,客户端设备1006a至1006n可以绕过网络1008直接与一个或多个服务器1004通信。或者备选地,客户端设备1006a至1006n可以直接彼此通信。服务提供方1002可以是公共云服务提供方,其在一个或多个数据中心拥有并且操作他们自己的基础设施,并且按需向客户和终端用户提供该基础设施以在一个或多个服务器1004上托管应用。服务器可以包括一个或多个硬件服务器(例如,主机),每个硬件服务器具有其自己的计算资源(例如,处理器、存储器、盘空间、联网带宽等),其可以在多个客户之间安全地划分,每个客户可以在一个或多个服务器1004上托管它们自己的应用。在一些实施例中,服务提供方可以是维护单个组织的云基础设施的私有云提供方。一个或多个服务器1004可以类似地包括一个或多个硬件服务器,各自都具有它自己的计算资源,可以类似地包括一个或多个硬件服务器在由一个或多个服务器托管的应用之间划分,以供组织的成员或其客户使用。
72.类似地,尽管图10的环境1000被描绘为具有各种组件,但是环境1000可以具有附加的或备选的组件。例如,环境1000可以在具有向量交错系统800的单个计算设备上实现。具体地,向量交错系统800可以全部或部分地在客户端设备1002a上实现。
73.如图10所示,环境1000可以包括客户端设备1006a至1006n。客户端设备1006a至1006n可以包括任何计算设备。例如,客户端设备1006a至1006n可以包括一个或多个个人计算机、膝上型计算机、移动设备、移动电话、平板计算机、专用计算机、tv或其他计算设备,包括下面参考图11描述的计算设备。尽管图10中示出了三个客户端设备,但是可以理解,客户端设备1006a至1006n可以包括任意数目的客户端设备(大于或少于所示)。
74.此外,如图10所示,客户端设备1006a至1006n和一个或多个服务器1004可以经由一个或多个网络1008进行通信。一个或多个网络1008可以表示单个网络或网络的集合(诸如,互联网、企业内联网、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、蜂窝网络、广域网(wan)、城域网(man)或两个或更多个这样的网络的组合)。因此,一个或多个网络1008可以是客户端设备1006a至1006n可以通过其访问服务提供方1002和服务器1004(反之亦然)的任何适合的网络。下面将参考图11更详细地讨论一个或多个网络1008。
75.此外,环境1000还可以包括一个或多个服务器1004。一个或多个服务器1004可以生成、存储、接收和发送任何类型的数据,包括向量对象818、深度参数820、输出图像822或
其他信息。例如,服务器1004可以从诸如客户端设备1006a的客户端设备接收数据,并且将数据发送到诸如客户端设备1002b和/或1002n的另一客户端设备。服务器1004还可以在环境1000的一个或多个用户之间传输电子消息。在一个示例实施例中,服务器1004是数据服务器。服务器1004还可以包括通信服务器或网络托管服务器。下面将参考图11讨论关于服务器1004的附加细节。
76.如上所述,在一个或多个实施例中,一个或多个服务器1004可以包括或实现向量交错系统800的至少部分。具体地,向量交错系统800可以包括在一个或多个服务器1004上运行的应用,或者可以从一个或多个服务器1004下载向量交错系统800的部分。例如,向量交错系统800可以包括允许客户端设备1006a至1006n与在一个或多个服务器1004处托管的内容交互的web托管应用。为了说明,在环境1000的一个或多个实施例中,一个或多个客户端设备1006a至1006n可以访问由一个或多个服务器1004支持的网页。具体地,客户端设备1006a可以运行web应用(例如,web浏览器)以允许用户访问、查看和/或与在一个或多个服务器1004处托管的网页或网站交互。
77.在一个或多个实施例中,当客户端设备1006a访问托管在一个或多个服务器1004处的网页或其他web应用时,一个或多个服务器1004可以提供对存储在一个或多个服务器1004处的一个或多个电子文档1020的访问。此外,客户端设备1006a可以接收使用绘图工具在画布材料上绘制的请求(即,经由用户输入),并且将该请求提供给一个或多个服务器1004。在接收到请求时,一个或多个服务器1004可以自动执行上述方法和过程,以生成表示绘图工具、画布材料和实时原始绘图参数的输出音频。一个或多个服务器1004可以将所有或部分输出图像822提供给客户端设备1006a以呈现给用户。
78.如上所述,向量交错系统800可以全部或部分地由环境1000的各个元素1002至1008实现。应当理解,尽管关于环境1000的特定元素在前面的示例中描述了向量交错系统800的某些组件,但是各种备选实现是可能的。例如,在一个或多个实施例中,向量交错系统800在任何客户端设备1006a至1006n上实现。类似地,在一个或多个实施例中,向量交错系统800可以在一个或多个服务器1004上实现。此外,向量交错系统800的不同组件和功能可以在客户端设备1006a至1006n、一个或多个服务器1004以及网络1008之间分离实现。
79.本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,例如一个或多个处理器和系统存储器,如下面更详细地讨论的。本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。具体地,本文描述的一个或多个过程可以至少部分地实现为包含在非瞬态计算机可读介质中并且可由一个或多个计算设备(例如,本文描述的任何媒体内容访问设备)执行的指令。一般而言,处理器(例如,微处理器)从非瞬态计算机可读介质(例如,存储器等)接收指令,并且执行那些指令,从而执行一个或多个过程,包括本文描述的一个或多个过程。
80.计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种截然不同的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。
81.非瞬态计算机可读存储介质(设备)包括ram、rom、eeprom、cd-rom、固态驱动器(“ssd”)(例如,基于ram)、闪存、相变存储器(“pcm”)、其他类型的存储器、其他光盘存储、磁
盘存储或其他磁存储设备、或可用于以计算机可执行指令或数据结构的形式存储期望程序代码装置并且可由通用或专用计算机访问的任何其他介质。
[0082]“网络”被限定为能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机适当地将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其可以用于携带计算机可执行指令或数据结构形式的期望程序代码装置,并且可以由通用或专用计算机访问。上述各项的组合也应包括在计算机可读介质的范围内。
[0083]
此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传送到非瞬态计算机可读存储介质(设备)(反之亦然)。例如,可以将通过网络或数据链路接收的计算机可执行指令或数据结构缓存在网络接口模块(例如,“nic”)内的ram中,然后最终将其传送到计算机系统ram和/或计算机系统处的较不易失性的计算机存储介质(设备)。因此,应当理解,非瞬态计算机可读存储介质(设备)可以包括在也(或甚至主要)利用传输介质的计算机系统组件中。
[0084]
计算机可执行指令包括例如当在处理器处执行时使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。在一些实施例中,在通用计算机上执行计算机可执行指令,以将通用计算机转变为实现本公开的元素的专用计算机。计算机可执行指令可以是例如二进制指令、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经以特定于结构特征和/或方法动作的语言描述了该主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
[0085]
本领域技术人员将理解,本公开可以在具有许多类型的计算机系统配置的网络计算环境中实施,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板计算机、寻呼机、路由器、交换机等。本公开还可以在分布式系统环境中实施,其中本地和远程计算机系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合),两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
[0086]
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被限定为用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中采用云计算来提供对可配置计算资源的共享池的无处不在并且方便的按需访问。可配置计算资源的共享池可以经由虚拟化快速供应,并且只需很少的管理工作或服务提供方交互即可释放,然后进行相应的缩放。
[0087]
云计算模型可以由各种特性组成,例如按需自助服务、广泛的网络接入、资源池、快速弹性、测量服务等。云计算模型还可以公开各种服务模型,例如软件即服务(“saas”)、平台即服务(“paas”)和基础设施即服务(“iaas”)。云计算模型也可以使用不同的部署模型进行部署,例如私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。
[0088]
图11以框图形式示出了可以被配置为执行上述一个或多个过程的示例性计算设
备1100。可以理解,诸如计算设备1100的一个或多个计算设备可以实现电子绘图系统。如图11所示,计算设备1100可以包括处理器1102、存储器1104、一个或多个通信接口1106、存储设备1108和一个或多个i/o设备/接口1110。在某些实施例中,计算设备1100可以包括比图11中所示的组件更少或更多的组件。现在将更详细地描述图11中所示的计算设备1100的组件。
[0089]
在特定实施例中,(多个)处理器1102包括用于执行指令的硬件,诸如构成计算机程序的那些指令。作为示例而非限制,为了执行指令,(多个)处理器1102可以从内部寄存器、内部高速缓存、存储器1104或存储设备1108取回(或获取)指令,并且对它们进行解码和执行。在各种实施例中,(多个)处理器1102可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)、现场可编程门阵列(fpga)、片上系统(soc)、或其他(多个)处理器或处理器组合。
[0090]
计算设备1100包括耦合到(多个)处理器1102的存储器1104。存储器1104可用于存储由(多个)处理器执行的数据、元数据和程序。存储器1104可以包括易失性和非易失性存储器中的一个或多个存储器,诸如随机存取存储器(“ram”)、只读存储器(“rom”)、固态盘(“ssd”)、闪存、相变存储器(“pcm”)或其他类型的数据存储。存储器1104可以是内部或分布式存储器。
[0091]
计算设备1100还可以包括一个或多个通信接口1106。通信接口1106可以包括硬件、软件或两者。通信接口1106可以提供用于计算设备与一个或多个其他计算设备1100或一个或多个网络之间的通信(例如,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口1106可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(nic)或网络适配器,或者用于与诸如wi-fi的无线网络进行通信的无线nic(wnic)或无线适配器。计算设备1100还可以包括总线1112。总线1112可以包括将计算设备1100的组件彼此耦合的硬件、软件或两者。
[0092]
计算设备1100包括存储设备1108,存储设备1108包括用于存储数据或指令的存储设备。作为示例而非限制,存储设备1108可以包括上述非瞬态存储介质。存储设备1108可以包括硬盘驱动器(hdd)、闪存、通用串行总线(usb)驱动器或这些或其他存储设备的组合。计算设备1100还包括一个或多个输入或输出(“i/o”)设备/接口1110,其被提供以允许用户向计算设备1100提供输入(例如,用户笔划)、从计算设备1100接收输出、以及以其他方式向和从计算设备1100传输数据。这些i/o设备/接口1110可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描仪、网络接口、调制解调器、其他已知的i/o设备或这些i/o设备/接口1110的组合。触摸屏可以用触笔或手指激活。
[0093]
i/o设备/接口1110可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,i/o设备/接口1110被配置为向显示器提供图形数据以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。
[0094]
在前述说明书中,参考其特定示例性实施例描述了实施例。参考本文讨论的细节来描述各种实施例,并且附图说明了各种实施例。以上描述和附图说明一个或多个实施例,并且不应被解释为限制。描述了许多具体细节以提供对各种实施例的透彻理解。
[0095]
实施例可以包括其他特定形式,而不偏离其精神或基本特性。所描述的实施例在所有方面仅被认为是说明性的而不是限制性的。例如,可以用更少或更多的步骤/动作来执行本文描述的方法,或者可以以不同的顺序来执行步骤/动作。此外,本文描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地重复或执行。因此,本发明的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的所有变更均应落入其范围内。
[0096]
在上述各种实施例中,除非另有特别说明,否则诸如短语“a、b或c中的至少一个”的析取语言旨在理解为a、b或c或其任意组合(例如,a、b和/或c)。因此,析取语言不旨在也不应被理解为暗示给定实施例要求至少一个a、至少一个b或至少一个c每个都存在。

技术特征:
1.一种方法,包括:由计算机系统的处理器接收对图像的第一向量对象的选择;由计算机系统的所述处理器检测所述图像的第二向量对象,其中所述第二向量对象不同于所述第一向量对象;由计算机系统的所述处理器确定针对所述第一向量对象的第一深度定位和针对所述第二向量对象的第二深度定位;以及由计算机系统的所述处理器交错所述第二向量对象和所述第一向量对象,其中交错包括:基于所述第一深度定位来绘制所述第一向量对象,并且基于所述第二深度定位来绘制所述第二向量对象。2.根据权利要求1所述的方法,其中基于所述深度定位来绘制所述第一向量对象和所述第二向量对象包括:生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第二向量对象写入所述渲染纹理和所述深度纹理;将与所述第二向量对象相关联的模版参考值写入所述模版纹理;丢弃所述第一向量对象的一个或多个像素,其中所述第一向量对象的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第二向量对象相关联的模版参考值;以及将所述第一向量对象写入所述渲染纹理。3.根据权利要求1所述的方法,其中基于所述深度定位来绘制所述第一向量对象和所述第二向量对象包括:生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第一向量对象写入所述渲染纹理和所述深度纹理;将与所述第一向量对象相关联的模版参考值写入所述模版纹理;丢弃所述第二向量对象的一个或多个像素,其中所述第二向量对象的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第一向量对象相关联的模版参考值;以及将所述第二向量对象写入所述渲染纹理。4.根据权利要求1所述的方法,还包括:在绘制之后,接收修改所述第二向量对象或所述第一向量对象的请求;映射针对所述第一向量对象的第三深度定位和针对所述第二向量对象的第四深度定位,其中所述映射基于所述请求;以及基于所述第三深度定位来绘制所述第一向量对象,并且基于所述第四深度定位来绘制所述第二向量对象。5.根据权利要求1所述的方法,其中确定针对所述第一向量对象的第一深度定位和针对所述第二向量对象的第二深度定位包括:保留针对所述第一向量对象和所述第二向量对象两者的像素和形状数据。6.根据权利要求1所述的方法,其中检测所述图像的第二向量对象包括:确定对应于所述第一向量对象的所述图像的一个或多个区域,其中所述一个或多个区域在距所述选择的阈值距离内;以及
确定不对应于所述第一向量对象的所述图像的附加区域,其中所述附加区域被添加到所述第二向量对象。7.根据权利要求6所述的方法,其中交错所述第二向量对象和所述第一向量对象包括:利用不对应于所述第一向量对象的所述图像的所述附加区域来绘制对应于所述第一向量对象的所述图像的所述一个或多个区域。8.根据权利要求1所述的方法,其中所述处理器是图形处理单元gpu。9.一种非瞬态计算机可读存储介质,包括被存储在其上的指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:接收对图像的第一向量对象的选择;检测所述图像的第二向量对象,其中所述第二向量对象不同于所述第一向量对象;确定针对所述第一向量对象的第一深度定位和针对所述第二向量对象的第二深度定位;以及交错所述第二向量对象和所述第一向量对象,其中交错包括:基于所述第一深度定位来绘制所述第一向量对象,并且基于所述第二深度定位来绘制所述第二向量对象。10.根据权利要求9所述的非瞬态计算机可读存储介质,其中基于所述深度定位来绘制所述第一向量对象和所述第二向量对象的操作包括指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第二向量对象写入所述渲染纹理和所述深度纹理;将与所述第二向量对象相关联的模版参考值写入所述模版纹理;丢弃所述第一向量对象的一个或多个像素,其中所述第一向量对象的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第二向量对象相关联的模版参考值;以及将所述第一向量对象写入所述渲染纹理。11.根据权利要求9所述的非瞬态计算机可读存储介质,其中基于所述深度定位来绘制所述第一向量对象和所述第二向量对象的操作包括指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第一向量对象写入所述渲染纹理和所述深度纹理;将与所述第一向量对象相关联的模版参考值写入所述模版纹理;丢弃所述第二向量对象的一个或多个像素,其中所述第二向量对象的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第一向量对象相关联的模版参考值;以及将所述第二向量对象写入所述渲染纹理。12.根据权利要求9所述的非瞬态计算机可读存储介质,还包括指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:在绘制之后,接收修改所述第二向量对象或所述第一向量对象的请求;映射针对所述第一向量对象的第三深度定位和针对所述第二向量对象的第四深度定位,其中所述映射基于所述请求;以及
基于所述第三深度定位来绘制所述第一向量对象,并且基于所述第四深度定位来绘制所述第二向量对象。13.根据权利要求9所述的非瞬态计算机可读存储介质,其中确定针对所述第一向量对象的第一深度定位和针对所述第二向量对象的第二深度定位的操作包括指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:保留针对所述第一向量对象和所述第二向量对象两者的像素和形状数据。14.根据权利要求9所述的非瞬态计算机可读存储介质,其中检测所述图像的第二向量对象的操作包括指令,所述指令当由至少一个处理器执行时,使所述至少一个处理器执行操作,所述操作包括:确定对应于所述第一向量对象的所述图像的一个或多个区域,其中所述一个或多个区域在距所述选择的阈值距离内;以及确定不对应于所述第一向量对象的所述图像的附加区域,其中所述附加区域被添加到所述第二向量对象。15.根据权利要求14所述的非瞬态计算机可读存储介质,其中交错所述第二向量对象和所述第一向量对象的操作包括指令,所述指令当由至少一个处理器执行时,使所述处理器利用不对应于所述第一向量对象的所述图像的所述附加区域来绘制对应于所述第一向量对象的所述图像的所述一个或多个区域。16.一种系统,包括:存储器组件;以及处理设备,被耦合到所述存储器组件,所述处理设备用以执行操作,所述操作包括:接收对图像的第一向量对象的第一区域的选择;检测所述图像的第二向量对象的第二区域,其中所述第二向量对象不同于所述第一向量对象;标识在所述第一区域的阈值距离内的附加区域;确定针对所述第一区域的第一深度定位和针对所述第二区域的第二深度定位;将所述第一深度定位分配给所述附加区域;以及交错所述第二区域、所述第一区域和所述附加区域,其中交错包括:基于所述第一深度定位来绘制所述第一区域和所述附加区域,并且基于所述第二深度定位来绘制所述第二区域。17.根据权利要求16所述的系统,其中基于所述深度定位来绘制所述第一区域和所述第二区域的操作还包括指令,所述指令还使所述处理设备执行操作,所述操作包括:生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第二区域写入所述渲染纹理和所述深度纹理;将与所述第二区域相关联的模版参考值写入所述模版纹理;丢弃所述第一区域的一个或多个像素,其中所述第一区域的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第二区域相关联的模版参考值;以及将所述第一区域写入所述渲染纹理。18.根据权利要求16所述的系统,其中基于所述深度定位来绘制所述第一区域和所述第二区域的操作还包括指令,所述指令还使所述处理设备执行操作,所述操作包括:
生成帧缓冲器,所述帧缓冲器包括渲染纹理、深度纹理和模版纹理;将所述第一区域写入所述渲染纹理和所述深度纹理;将与所述第一区域相关联的模版参考值写入所述模版纹理;丢弃所述第二区域的一个或多个像素,其中所述第二区域的所述一个或多个像素具有对应于像素的位置,所述像素具有与所述第一区域相关联的模版参考值;以及将所述第二区域写入所述渲染纹理。19.根据权利要求16所述的系统,所述操作还包括:在绘制之后,接收修改所述第二区域或所述第一区域的请求;映射针对所述第一区域的第三深度定位和针对所述第二区域的第四深度定位,其中所述映射基于所述请求;以及基于所述第三深度定位来绘制所述第一区域,并且基于所述第四深度定位来绘制所述第二区域。20.根据权利要求16所述的系统,其中确定针对所述第一区域的第一深度定位和针对所述第二区域的第二深度定位的操作还包括指令,所述指令还使所述处理设备执行操作,所述操作包括保留针对所述第一区域和所述第二区域两者的像素和形状数据。

技术总结
本公开实施例涉及利用向量交错的部分深度排序。公开了用于交错向量对象的实施例。一种交错向量对象的方法可以包括接收对图像的第一向量对象的选择。该方法还可以包括检测图像的第二向量对象,其中第二向量对象不同于第一向量对象。该方法还可以包括确定第一向量对象的第一深度定位和第二向量对象的第二深度定位。该方法还可以包括交错第二向量对象和第一向量对象,其中交错包括基于第一深度定位绘制第一向量对象和基于第二深度定位绘制第二向量对象。向量对象。向量对象。


技术研发人员:P
受保护的技术使用者:奥多比公司
技术研发日:2023.01.29
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐