CN105051788B - 使用多个图元进行图形处理 - Google Patents

使用多个图元进行图形处理 Download PDF

Info

Publication number
CN105051788B
CN105051788B CN201480015395.0A CN201480015395A CN105051788B CN 105051788 B CN105051788 B CN 105051788B CN 201480015395 A CN201480015395 A CN 201480015395A CN 105051788 B CN105051788 B CN 105051788B
Authority
CN
China
Prior art keywords
pel
pixel coordinate
overlapping
coordinate region
pixel
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
Application number
CN201480015395.0A
Other languages
English (en)
Other versions
CN105051788A (zh
Inventor
B.D.佩尔顿
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105051788A publication Critical patent/CN105051788A/zh
Application granted granted Critical
Publication of CN105051788B publication Critical patent/CN105051788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

描述了使用多个图元进行图形处理的技术。通常,在计算设备上显示的图形元素可以从多个图元构造。在至少一些实施例中,技术可以组合多个图元用于处理。例如,可以检测到一个图元与另一图元的重叠。图元能够一起被处理用于例如作为单个图元在像素区域中显示。图元可以诸如通过混合图元、对图元应用视觉效果等等由图形处理器进行处理。处理后的图元可以被写入存储器,以使处理后的图元可以被显示设备访问和显示。

Description

使用多个图元进行图形处理
背景技术
典型地,当今的计算设备可以访问各种各样的视觉内容。然而,显示视觉内容可以是资源密集型的。例如,显示用于应用的用户接口可以涉及多个操作。这样的操作的示例包括:从存储器中读取用于用户接口的图形数据,处理图形数据,将中间处理结果存储于存储器中,并且将用于用户接口的最终处理了的图像存储到存储器中,以使它可以被 从存储器中读取并且显示。典型地,可以在逐帧的基础上执行这些操作,从而消耗宝贵的存储器和处理资源。对于在电池电力上操作的设备(例如,移动计算设备),这些操作额外地消耗电池电力,并且因此可能会缩短充电寿命。因此,控制图形操作对设备资源的影响是一个重要的考虑因素。
发明内容
提供本发明内容以便以简化的形式介绍概念的选择,该概念在如下具体实施方式中进一步描述。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
描述了用于使用多个图元(primitives)进行图形处理的技术。通常,在计算设备上显示的图形元素可以由多个图元构造。图元的示例包括直线、曲线、四边形等,图元其可以被组合以生成更大的图形元素。因此,图元可以经由显示器区域中的像素来涂色(paint)以生成图形元素,诸如应用的图形用户接口的部分。
在至少一些实施例中,技术可以组合多个图元用于处理。例如,可以检测到一个图元与另一图元的重叠。图元能够一起被处理用于例如作为单个图元在像素区域中显示。例如,图元可以由图形处理器从存储器中读取。图元可以诸如通过混合图元、对图元应用视觉效果等等由图形处理器进行处理。处理后的图元可以被写入存储器(例如,经由单个写操作),以使处理后的图元可以被显示设备访问和显示。
附图说明
参照附图,对具体实施方式进行描述。在附图中,附图标记的最左边的(一个或者多个)数字标识该附图标记首次出现的附图。本说明书和附图中在不同实例中使用的相同的附图标记可以指示相似或相同的项。
图1是可操作来采用本文中所讨论的技术的示例实施方式中的环境的图示。
图2是根据一个或多个实施例描述方法的步骤的流程图。
图3是根据一个或多个实施例描述方法的步骤的流程图。
图4是根据一个或多个实施例描述方法的步骤的流程图。
图5是根据一个或多个实施例描述方法的步骤的流程图。
图6是根据一个或多个实施例描述方法的步骤的流程图。
图7图示了根据一个或多个实施例的示例实施场景。
图8图示了如参照图1所描述的示例系统和计算设备,该示例系统和计算设备被配置成实施本文中所描述的技术的实施例。
具体实施方式
概述
描述了用于使用多个图元进行图形处理的技术。通常,在计算设备上显示的图形元素可以从多个图元构造。图元的示例包括直线、曲线、四边形等,图元其可以被组合以生成更大的图形元素。因此,图元可以经由显示器区域中的各个像素来涂色以生成图形元素,诸如应用的图形用户接口的部分。
在至少一些实施例中,技术可以组合多个图元用于处理。例如,可以检测到一个图元与另一图元的重叠。图元可以一起被处理用于例如作为单个图元在像素区域中显示。例如,图元可以由图形处理器从存储器中读取。图元可以诸如通过混合图元、对图元应用视觉效果等等由图形处理器进行处理。处理后的图元可以被写入存储器(例如,经由单个写操作),以使处理后的图元可以被显示设备访问和显示。下文对进一步的细节和变型进行讨论。
在下面的讨论中,首先描述了示例环境,该示例环境可操作来采用本文中所描述的技术。其次,标题为“示例过程”的章节描述了根据一个或多个实施例的一些示例方法。接下来,标题为“示例实施场景”的章节描述了根据一个或多个实施例的示例实施场景。最后,标题为“示例系统和设备”的章节描述了根据一个或多个实施例的示例系统和设备,该示例系统和设备可操作来采用本文中所讨论的技术。
已经提出了根据一个或多个实施例的示例实施方式的概述,现在,考虑可以采用示例实施方式的示例环境。
示例环境
图1是可操作来采用本文所描述的使用多个图元进行图形处理的技术的示例实施方式中的环境100的图示。该所图示的环境100包括计算设备102,该计算设备102可以以各种各样的方式进行配置。例如,如关于图8进一步所描述的,该计算设备102可以被配置为传统计算机(例如,台式个人计算机、膝上型计算机等等)、移动站、娱乐器具、通信地耦合到电视机的机顶盒、无线电话、上网本、游戏控制台、手持设备(例如,平板电脑)等。
计算设备102包括处理器104,其代表为计算设备102执行各种类型的数据处理的功能性。例如,处理器104能够代表计算设备102的中央处理单元(CPU)。下文参照图8对处理器104的实施方式的进一步示例进行讨论。
进一步图示出的是图形处理器106,其代表为计算设备102执行各种图形有关的任务的功能性。例如,图形处理器106能够代表计算设备102的图形处理单元(GPU)。
计算设备102还包括应用108和图形管理器模块110。应用108代表经由计算设备102执行各种任务的功能性。应用108的示例包括字处理器应用、电子邮件应用、内容编辑应用、web浏览应用等等。
图形管理器模块110代表对于本文中所讨论的使用多个图元进行图形处理的技术进一步执行各种任务的功能性。例如,图形管理器模块110可以被实施为用于计算设备102的操作系统的组件。然而,实施例可以采用图形管理器模块110的各种各样的不同配置和实施方式。下文对关于图形管理器模块110的实施方式的进一步细节进行讨论。
计算设备102还包括存储器112,其代表数据存储介质,该数据存储介质能够由计算设备102的各种功能性写入和读出。例如,存储器112能够代表计算设备102的主存储器。下文参照图8对存储器112的进一步细节和示例进行讨论。
还图示出了显示设备114,其被配置成输出用于计算设备102的图形。例如,考虑其中应用108之一当前正在运行并且提交了将经由显示设备114显示的应用108的图形元素的示例实施方式。利用处理器104,图形管理器模块110能够实施本文中所讨论的技术以检查图形元素并且对图形元素将如何由图形处理器106进行处理作出决定。如本文中所详述的,用于图形元素的处理决定可以基于图形元素的各种属性(诸如图元重叠、将应用到图形元素的视觉效果、图形元素的视觉复杂性等等)。
基于该处理决定,图形管理器模块110生成指定图形元素将如何被处理的用于图形元素的处理指令。如本文中所使用的,术语“指令”是指计算机可执行指令(诸如可以被处理器读取和处理的可执行代码)。图形管理器模块110向图形处理器106提交处理指令,该图形处理器106从存储器112中读取图形元素并且利用处理指令来处理图形元素。图形处理器106将处理后的图形元素写入存储器112。然后,显示设备114可以从存储器112中读取处理后的图形元素(例如,经由显示控制器),并且显示处理后的图形元素。
已经描述了可以操作本文中所描述的技术的示例环境,现在,考虑根据一个或多个实施例的一些示例过程。
示例过程
下面的讨论描述了根据一个或多个实施例的使用多个图元进行图形处理的一些示例过程。可以在图1的环境100、图8的系统800、和/或任何其他合适的环境中采用该示例过程。
图2是根据一个或多个实施例描述方法的步骤的流程图。该方法被图示为由图形管理器所执行的步骤、和由图形处理器所执行的步骤。然而,提出该步骤分配仅出于示例的目的,并且步骤可以由各种各样不同的功能性中的一个或多个功能性来执行。
在至少一些实施例中,该方法可以在逐帧的基础上执行,同时图形在设备上被处理和渲染。因此,该方法描述了合成和/或渲染图形用于在显示设备上显示的示例方式。
步骤200确定在特定像素区域处,第一图元重叠了第二图元。例如,对于特定显示区域,可以确定特定图元层叠在一个或多个其他图元之上。
可以利用各种各样的不同技术,以确定图元重叠、和图元之间的重叠量。例如,可以采用空间数据结构,以表征将在显示区的区域中显示的图元(诸如作为特定显示帧的一部分而被显示的图元中的一些或全部)。可以采用各种类型的空间数据结构(诸如四叉树、k维树、二进制空间分割(BSP)树等)。因此,可以检查表征用于一组图元的像素区域的空间数据结构,以确定哪些图元重叠、和/或重叠图元之间存在多少重叠。
步骤202生成指定图元将一起被处理的处理指令。例如,处理指令可以指定用于图元的图形数据将从存储器中读取。处理指令可以进一步指示该图元将被组合为单个图元以被处理并且写入存储器。例如,处理指令可以指定图元将被处理和写入存储器的最终处理结果,而中间处理结果不写入存储器。处理指令还可以指定将被应用到单个和/或组合的图元的视觉效果(诸如混合、裁剪、明暗(shading)等等)。在至少一些实施例中,处理指令可以指示图元被处理后,处理后的图元将经由单个写操作写入存储器。
步骤204向图形处理功能性提交处理指令。例如,处理指令可以被提交给图形处理器106。
步骤206接收处理指令。例如,图形处理器106可以接收该指令。
步骤208基于处理指令从存储器中读取用于第一图元和第二图元的数据。例如,相关联的应用可以将用于图元的数据写入存储器的区域,并且图形处理器可以从存储器的区域中读取数据。该数据可以指定用于图元的各种信息(诸如颜色、明暗、透明度、不透明度、显示区域信息等等)。
步骤210基于处理指令和用于图元的数据处理第一图元和第二图元。由处理指令指定的视觉处理(诸如各种类型的视觉效果)可以应用到图元。
步骤212将处理后的图元写入存储器。例如,用于处理后的图元的数据可以经由单个写操作写入存储器区域并且独立于处理期间对存储器的中间写入。例如,处理后的图元可以写入存储器的渲染目标部分,该渲染目标部分用来存储处理后的图元。该处理后的图元可以从存储器区域中读取并且诸如经由用于显示设备的显示控制器显示。
为了便于图示,上文所描述的过程将参照两个图元进行讨论。然而,应当理解,可以采用本文中所讨论的技术来处理若干个重叠图元(例如,多于两个)。例如,三个或更多个图元可以从存储器中读取、处理和写回到存储器用于显示,而无需在处理期间对存储器的中间写入。
图3是根据一个或多个实施例描述方法的步骤的流程图。在至少一些实施例中,方法描述了上文参照图2所讨论的步骤200的示例实施方式。
步骤300判定第一图元与第二图元重叠。例如,图形管理器可以确定对于特定帧,用于一个图元的像素区域至少部分地与用于另一图元的像素区域重叠。
步骤302确定用于第一图元的像素区域和用于第二图元的像素区域之间的差异。例如,差异可以对应于没有被用于第一图元的像素区域重叠的用于第二图元的像素区域的部分。下文参照图7对确定用于图元的像素区域之间的差异的图示进行讨论。可以采用用于计算用于图元的像素区域之间的差异的各种各样的技术,其中至少一些技术在上文和下文进行了讨论。
步骤304生成指定第一图元和第二图元的下层部分的组合将基于用于第一图元的像素区域进行处理的第一指令。例如,第一指令可以指定对于用于第一图元的像素区域,第一图元和位于第一图元下方的第二图元的部分将被一起处理。因此,第一指令可以将第一图元和第二图元的下层部分标识为将被处理的单个图元。
步骤306生成指定第二图元将基于用于第一图元的像素区域和用于第二图元的像素区域之间的差异进行处理的第二指令。例如,第二指令可以省略在第一指令中指定的第二图元的部分。因此,第二图元的其余部分(例如,在第一指令中没有指定的部分)可以被作为单个图元处理图元。在至少一些实施例中,省略在第一指令中指定的第二图元的部分可以节省将第二次用于处理所省略的部分(例如,它已经基于第一指令处理后)的存储器和/或处理资源。
如上文参照图2所讨论的,图元第一指令和第二指令可以被提交给图形处理器,作为用于一组图元的处理指令的一部分。
尽管该方法参照处理两个图元进行讨论,但是这并非旨在限制,并且根据一个或多个实施例,可以采用该方法,以生成用于多个重叠图元的处理指令。
根据各种实施例,确定用于图元的像素区域之间的差异可以以各种各样的方式执行。例如,图形功能性(例如,图形管理器模块110)可以利用计算设备的处理单元(例如,处理器104)来执行差异计算。可选地或另外地,图形功能性可以利用图形处理器的功能性(例如,图形处理器106)来执行差异计算。
例如,图元的像素数据可以采用计算用于图元的像素区域之间的差异的请求而图元被提交给图形处理器。图形处理器可以利用z缓存技术(例如,深度缓存)来处理像素数据(例如,像素坐标),并且确定用于图元的像素区域之间的差异。图形处理器可以利用像素区域之间的差异来例如基于从图形管理器接收到的处理指令做出关于图元如何被处理的决定。作为示例实施方式,考虑以下方法。
图4是根据一个或多个实施例描述方法的步骤的流程图。步骤400确定用于重叠图元的像素区域是否满足或超过阈值复杂度。例如,阈值复杂度可以指定重叠的图元的阈值数量。在另一示例中,阈值复杂度可以指定用于重叠图元的阈值像素面积(thresholdpixel area)。对于阈值复杂度,可以考虑广泛多样的其他参数。
如果用于重叠图元的像素区域不满足或超过阈值复杂度(“否”),则步骤402向本地处理设备提交请求以计算像素区域之间的差异。例如,图形管理器模块110可以向处理器104提交指令,其请求处理器计算用于图元的像素区域之间的差异。
步骤404接收用于图元的像素区域之间的差异的指示。例如,图形管理器模块110可以从处理器104和/或图形处理器106中接收差异计算。
返回到步骤400,如果用于重叠图元的像素区域满足或超过阈值复杂度(“是”),则步骤406向图形处理器提交请求以计算像素区域之间的差异。例如,图形管理器模块110可以向图形处理器106提交指令,其请求图形处理器计算用于图元的像素区域之间的差异。在至少一些实施例中,指令可以指定图形处理器的深度缓存将被采用来执行差异计算。
步骤408将像素区域之间的差异存储在图形处理器上。例如,差异可以存储在GPU的深度缓存中。
步骤410利用像素区域之间的差异的指示来做出用于图元的处理决定。例如,在差异在本地处理设备上计算的场景(例如,步骤402)中,该差异可以被提交到图形处理器以用于确定如何处理图元。在由图形处理器计算并且存储差异的场景中,图形处理器可以简单地本地访问差异信息以作出用于图元的处理决定。这样的决定的示例在上文和下文中讨论。
上文所提供的示例参照利用本地处理器或图形处理器提出了“要么/或”的场景。然而,这并非旨在是限制性的,并且至少一些实施例可以利用本地处理器和图形处理器这两者来执行差异计算的各个方面。例如,一组差异计算可以分为更复杂的计算和较不复杂的计算。较不复杂的计算可以提交给本地处理器来执行,并且更复杂的计算可以提交给图形处理器来执行。因此,本地处理器和图形处理器可以分别用来执行差异计算,和/或本地处理器和图形处理器的组合可以被采用来执行差异计算。
在至少一些实施例中,本文所讨论的技术可以指定重叠图元基于图元的视觉属性将如何被渲染。例如,考虑以下方法。
图5是根据一个或多个实施例描述方法的步骤的流程图。步骤500确定第一图元与第二图元重叠。例如,用于图元的z顺序可以指定对于特定帧,第一图元与第二图元中一些或全部重叠。
步骤502修改用于图元的处理指令以指定如果第一图元的像素不透明,则第二图元的重叠的像素将不被处理。例如,可以修改用于图元的处理指令,以指定第一图元将在逐像素的基础上被检查,来标识不透明像素。如果不透明像素被标识为与第二图元的像素重叠,则第二图元的重叠的像素(例如,第二图元中的一些或全部)将不被处理和/或写入存储器。
例如,考虑第一图元的重叠部分包括一些不透明像素和一些非不透明像素(例如,半透明像素、透明的像素等等)的场景。在这样的场景中,被第一图元的不透明像素重叠的第二图元的像素没有被处理和/或写入存储器。然而,根据本文中所讨论的技术,被非不透明像素重叠的第二图元的像素可以被处理,例如,与第一图元的重叠像素混合。
正如上文所讨论的技术,第一图元和第二图元可以(例如,由图形管理器模块110)组合在一起作为单个组合图元,用于由图形处理器(例如,图形处理器106)进行处理。例如,基于用于单个组合图元的处理指令,图形处理器可以处理来自存储器的第一图元和第二图元的任何非重叠部分。在第二图元完全被第一图元重叠的示例实施例中,用于第二图元的数据可以简单地不被处理和/或不写入存储器。因此,被另一图元的不透明像素重叠的图元的部分可以从合成操作中省略。
因此,当至少部分不透明的图元将遮蔽下层图元的像素,以使下层图元的像素将无助于所关联的显示区域的视觉表现时,技术可以通过指导图形处理器省略被重叠图元的不透明像素重叠的下层图元的像素来节约资源(例如,处理和/或存储器资源)。
在至少一些实施例中,本文中所讨论的技术可以被利用来执行对图元的各种类型的图形处理(诸如应用如上文所讨论的视觉效果)。例如,考虑以下方法。
图6是根据一个或多个实施例描述方法的步骤的流程图。步骤600生成将多个图元分组在一起作为单个组合图元的第一处理指令。例如,上文所讨论的组合图元的实施方式(例如,基于图元重叠)可以被利用来将两个或更多个重叠图元组合成单个组合图元。
步骤602生成指定将被应用到单个组合图元的视觉效果的第二处理指令。视觉效果的示例包括剪裁、明暗、灰度调整(gray scaling)、淡入淡出(fading)等等。
在至少一些实施例中,视觉效果可以包括将被应用到组合图元的抗混叠效果。通常,抗混叠是指用于诸如经由像素明暗和/或染色(tinting)来平滑图形边缘以避免像素图形中的锯齿边缘的技术。因此,用于视觉效果的指令可以包括用于抗混叠的像素覆盖值。例如,覆盖值可以包括作为抗混叠技术的一部分的将被应用到各个像素的颜色明暗和/或染色。
步骤604向图形处理器提交第一处理指令和第二处理指令。例如,处理指令可以由图形管理器模块110生成,并且提交给图形处理器106以被执行。
示例实施场景
以下讨论描述了用于本文中所描述的使用多个图元进行图形处理的技术的示例实施场景。该示例实施场景可以在图1的环境100、图8的系统800、和/或任何其他合适的环境中实施。该实施场景可以利用上文所描述的各种过程的各方面。
图7图示出了根据一个或多个实施例的示例实施场景700。场景700的上部包括图元702和图元704,它们代表用于将作为显示区域的一组像素的一部分被渲染和显示的图元的数据。例如,图元702、704可以是与应用108之一相关联的图形元素的一部分。图元702、704可以具有不同的大小、颜色、明暗、不透明度或透明度的水平等等。
进一步到场景700,图元702、704具有指定图元704与图元702重叠的相应的z顺序。因此,用于图元702的指令指定图元702将被显示的特定像素区域。用于图元704的指令指定图元704将被显示的特定像素区域的子区域。
继续到场景700的下个部分,计算图元702和图元704之间的区域差异706。例如,该区域差异706可以对应于图元702将被显示的像素区域(例如,像素组)与图元704将被显示的像素区域之间的差异。例如,可以从用于图元702的像素区域中减去用于图元704的像素区域以确定图元之间的区域差异706(例如,由图元702而非图元704覆盖的像素区域)。
进行到场景700的下个部分,生成指令以基于用于图元704的像素区域处理图元702的部分708和图元704。例如,该部分708对应于位于图元704下方的图元702的部分。因此,处理用于图元704的像素区域可以包括混合图元702和图元704两者的相应的部分。
进行到场景700的底部,生成指令以基于区域差异706处理图元702。因此,处理用于区域差异706的像素区域排除了处理图元704和图元702的部分708。
经由场景700生成的指令可以提交给图形处理器用于执行,以使图元702、704可以诸如利用本文中所讨论的技术被处理和显示。
已经讨论了示例实施场景,现在,根据一个或多个实施例考虑示例系统和设备的讨论。
示例系统和设备
图8通常在800处图示出示例系统,该示例系统包括代表一个或多个计算系统和/或设备的示例计算设备802,该计算系统和/或设备可以实施本文中所描述的各种技术。例如,上文参照图1所讨论的计算设备102可以被体现为计算设备802。例如,计算设备802可以是服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统、和/或任何其他合适的计算设备或计算系统。
所图示出的示例计算设备802包括处理系统804、一个或多个计算机可读介质806、和通信地彼此耦合的一个或多个输入/输出(I/O)接口808。尽管未示出,但计算设备802还可以包括系统总线或其他数据和命令传递系统,该数据和命令传递系统与各种组件彼此耦合。系统总线可以包括诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种各样总线体系结构中的任意一种的处理器或局部总线之类的不同总线结构的任何一种或组合。还设想各种各样的其他示例,诸如控制和数据线。
处理系统804代表使用硬件执行一个或多个操作的功能性。因此,处理系统804被图示为包括硬件元件180,该硬件元件180可以被配置为处理器、功能块等。这可以包括作为使用一个或多个半导体形成的专用集成电路或其他逻辑器件的硬件实施方式。硬件元件180并不局限于形成它们的材料或其中采用的处理机制。例如,处理器可以由(一个或者多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文下,处理器可执行指令可以是电子可执行指令。
计算机可读介质806被图示为包括存储器/存储装置812。存储器/存储装置812代表与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置812可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置812可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移除介质(例如,闪存、可移除硬盘驱动器、光盘等)。如下文进一步所描述的,计算机可读介质806可以以各种各样的其他方式进行配置。
(一个或者多个)输入/输出接口808代表允许用户向计算设备802输入命令和信息,并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能性。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音识别和/或话音输入)、扫描仪、触摸功能性(例如,被配置成检测物理接触的电容性传感器或其他传感器)、摄像机(例如,其可以采用可见或诸如红外频率之类的不可见波长来检测不涉及如姿势之类的触摸的移动)等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,如下文进一步所描述的,计算设备802可以以各种各样的方式进行配置以支持用户交互。
本文中,各种技术可以在软件、硬件元件或程序模块的一般上下文中进行描述。通常,这样的模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、元件、组件、数据结构等。本文中使用的术语“模块”、“功能性”、和“组件”通常表示软件、固件、硬件或其组合。本文中描述的技术的特征是独立于平台的,这意味着这些技术可以在具有各种各样的处理器的各种各样的商业计算平台上实施。
所描述的模块和技术的实施方式可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质进行传输。该计算机可读介质可以包括计算设备802可以访问的各种各样的介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”可以指相对于纯粹的信号传输、载波、或信号本身而言使得能够永久存储信息的介质和/或设备。因此,计算机可读存储介质不包括信号本身。该计算机可读存储介质包括诸如易失性介质和非易失性介质、可移除介质和不可移除介质之类的硬件和/或在适合存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据)的方法或技术中实施的存储设备。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储装置、硬盘、磁盒、磁带、磁盘存储装置或其他磁存储设备、或其他存储设备、有形介质、或适于存储所需信息并且可以由计算机访问的制品。
“计算机可读信号介质”可以指信号承载介质,该信号承载介质被配置成诸如经由网络向计算设备802的硬件传输指令。典型地,信号介质可以体现诸如载波、数据信号或其他传送机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据。信号介质还包括任何信息递送介质。术语“已调制数据信号”指的是以对该信号中的信息进行编码的方式设定或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质和诸如声学、射频(RF)、红外、和其他无线介质之类的无线介质。
如前所述,硬件元件810和计算机可读介质806代表以硬件形式实施的指令、模块、可编程设备逻辑和/或固定设备逻辑,其可以在一些实施例中用来实施本文中所描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、和硅或其他硬件设备中的其他实施方式。在这个上下文中,硬件元件可以操作为执行由指令、模块和/或由硬件元件体现的逻辑定义的程序任务的处理设备以及利用来存储用于执行的指令的硬件设备(例如,先前所描述的计算机可读存储介质)。
上述的组合也可以被采用来实施本文中所描述的各种技术和模块。因此,软件、硬件、或程序模块和其他程序模块可以被实施为一个或多个指令和/或在某种形式的计算机可读存储介质上体现的逻辑和/或由一个或多个硬件元件810所体现的逻辑。计算设备802可以被配置成实施对应于软件和/或硬件模块的特定指令和/或功能。因此,作为可由计算设备802执行为软件的模块的实施方式可以至少部分地在硬件中实现,例如通过使用计算机可读存储介质和/或处理系统的硬件元件810。这些指令和/或功能可以能够由一件或多件制品(例如,一个或多个计算设备802和/或处理系统804)执行/操作来实施本文中所描述的技术、模块和示例。
如图8中进一步所图示的,当在个人计算机(PC)、电视设备、和/或移动设备上运行应用时,示例系统800使得能够实现用于无缝用户体验的泛在环境。当在利用应用、玩视频游戏、观看视频等的同时从一个设备中转变到下一个设备时,服务和应用在用于通用用户体验的所有三个环境中大体上类似地运行。
在示例系统800中,多个设备通过中央计算设备互连。中央计算设备可以在多个设备的本地或者可以位于离多个设备远程的位置。在一个实施例中,中央计算设备可以是一个或多个服务器计算机的云,该服务器计算机通过网络、因特网或其他数据通信链路连接到多个设备。
在一个实施例中,该互连体系结构使功能性能够跨多个设备递送以向多个设备的用户提供通用和无缝的体验。多个设备中的每一个可以具有不同的物理需求和能力,并且中央计算设备使用平台来使体验能够递送到设备,该体验既针对该设备而定制,也通用于所有设备。在一个实施例中,创建目标设备的类别并且针对设备的泛型类别定制体验。一类设备可以由设备的物理特征、使用类型、或其他共同特性来限定。
在各种实施方式中,计算设备802可以假定有各种各样的不同配置,诸如用于计算机814、移动装置816、和电视818。这些配置中的每一个包括通常可以具有不同构造和能力的设备,并且因此计算设备802可以根据不同设备类中的一个或多个进行配置。例如,计算设备802可以被实施为设备的计算机814类,该计算机814类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备802还可以被实现为设备的移动装置816类,该移动装置816类包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备802还可以被实施为设备的电视818类,该电视818类包括具有或者连接到放松的观看环境中的通常更大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等。
本文中所描述的技术可以被计算设备802的这些各种配置支持,并且不限于本文中所描述的技术的具体示例。例如,如下文所描述的,诸如经由平台822在“云”820上使用分布式系统可以全部或部分实施参照图形管理器模块110所讨论的功能性。
云820包括和/或代表用于资源824的平台822。平台822抽象化云820的硬件(例如,服务器)和软件资源的基本功能性。资源824可以包括可以在远离计算设备802的服务器上执行计算机处理的同时利用的应用和/或数据。资源824还可以包括在因特网上提供的服务和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络提供的服务。
平台822可以抽象化资源和功能以将计算设备802与其他计算设备连接。该平台822还可以服务来抽象化资源比例以向经由平台822实施的资源824所遇到的需求提供相应的比例水平。因此,在互连设备实施例中,本文中所描述的功能性的实施方式可以遍及系统800分布。例如,该功能性可以在计算设备802上部分地实施以及经由抽象化云820的功能性的平台822部分地实施。
本文讨论了诸多个方法,这些方法可以被实施以执行本文中所讨论的技术。该方法的各方面可以以硬件、固件、或软件、或其组合来实施。该方法被示出为指定由一个或多个设备执行的操作的一组步骤,而不一定局限于所示出的由相应的框执行操作的顺序。进一步地,根据一个或多个实施方式,相对于特定方法所示出的操作可以与不同方法的操作组合和/或互换。可以经由上文参照环境100所讨论的各种实体之间的交互来实施方法的各方面。
结论
描述了使用多个图元进行图形处理的技术。尽管以特定于结构特征和或方法动作的语言描述了实施例,但应当理解,在所附权利要求书中限定的实施例并不一定限于所描述的特定特征或动作。相反,特定特征和动作是作为实施所要求保护的实施例的示例形式来公开的。

Claims (10)

1.一种计算设备执行的方法,该方法包括:
判定第一图元至少部分地与第二图元重叠;
确定用于所述第一图元的像素坐标区域与用于所述第二图元的像素坐标区域之间的像素坐标差异,所述像素坐标差异表示不与所述第一图元的像素坐标区域重叠的所述第二图元的像素坐标区域部分,所述确定所述像素坐标差异包括:
确定与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域是否满足或超过重叠图元的阈值复杂度;
如果与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域没有满足或超过所述重叠图元的阈值复杂度,则向所述计算设备的中央处理单元(CPU)提交请求以计算所述像素坐标差异;以及
如果与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域满足或超过所述重叠图元的阈值复杂度,则向图形处理单元(GPU)提交请求以计算所述像素坐标差异;
生成第一处理指令,该第一处理指令指定所述第一图元和所述第二图元的像素坐标区域的下层部分的组合将基于用于所述第一图元的所述像素坐标区域进行处理;
生成第二处理指令,该第二处理指令指定所述第二图元将基于用于所述第一图元的所述像素坐标区域与用于所述第二图元的所述像素坐标区域之间的所述像素坐标差异进行处理;以及
提交所述第一处理指令和所述第二处理指令用于由图形处理器执行。
2.根据权利要求1所述的方法,其中,所述判定采用空间数据结构来表征所述第一图元和所述第二图元以确定与所述第二图元的所述像素坐标区域的至少一部分重叠的所述第一图元的像素坐标区域的至少一部分。
3.根据权利要求1所述的方法,其中,所述方法还包括:修改所述第一处理指令以指定如果所述第一图元的一个或多个不透明像素与所述第二图元的一个或多个像素重叠,则所述第二图元的所述一个或多个像素将不被处理。
4.一种计算设备实现的系统,包括:
至少一个处理器;以及
一个或多个计算机可读存储介质,该一个或多个计算机可读存储介质包括存储在其上的指令,该指令响应于由所述至少一个处理器的执行,使所述系统执行操作,该操作包括:
判定第一图元至少部分地与第二图元重叠;
确定用于所述第一图元的像素坐标区域与用于所述第二图元的像素坐标区域之间的像素坐标差异,所述像素坐标差异表示不与所述第一图元的像素坐标区域重叠的所述第二图元的像素坐标区域部分,所述确定所述像素坐标差异包括:
确定与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域是否满足或超过重叠图元的阈值复杂度;
如果与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域没有满足或超过所述重叠图元的阈值复杂度,则向所述计算设备的中央处理单元(CPU)提交请求以计算所述像素坐标差异;以及
如果与所述第二图元的像素坐标区域重叠的用于所述第一图元的像素坐标区域满足或超过所述重叠图元的阈值复杂度,则向图形处理单元(GPU)提交请求以计算所述像素坐标差异;生成处理指令,该处理指令指定:
所述第一图元和所述第二图元的下层像素坐标区域将一起被处理,以使所述第一图元和所述第二图元的下层像素坐标区域被组合成用于显示的单个图元;
所述第二图元将基于用于所述第一图元的所述像素坐标区域与用于所述第二图元的所述像素坐标区域之间的所述像素坐标差异进行处理;以及
向与所述至少一个处理器分离的图形处理功能性提交所述处理指令。
5.根据权利要求4所述的系统,其中,所述判定采用空间数据结构来表征所述第一图元和所述第二图元以确定与所述第二图元的所述像素坐标区域的至少一部分重叠的所述第一图元的所述像素坐标区域的至少一部分。
6.根据权利要求4所述的系统,其中,所述生成包括:生成所述处理指令以指定所述单个图元将经由单个写操作而被写入存储器,并且独立于在处理期间对存储器的中间写入。
7.根据权利要求4所述的系统,其中,所述生成包括:生成所述处理指令以指定将被应用到所述单个图元的一个或多个视觉效果。
8.根据权利要求7所述的系统,其中所述一个或多个视觉效果包括裁剪、不透明度、明暗或抗混叠过程中的至少一个。
9.根据权利要求4所述的系统,其中,所述生成包括:生成所述处理指令以指定如果所述第一图元的一个或多个像素不透明,则与所述第一图元的所述一个或多个像素重叠的所述第二图元的一个或多个像素将不被处理。
10.一种其上存储计算机可执行指令的计算机可读存储介质,所述指令当由计算设备执行时,使得所述计算设备实现如权利要求1-3中的任一个所述的方法。
CN201480015395.0A 2013-03-14 2014-03-11 使用多个图元进行图形处理 Active CN105051788B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/804329 2013-03-14
US13/804,329 US20140267327A1 (en) 2013-03-14 2013-03-14 Graphics Processing using Multiple Primitives
PCT/US2014/022891 WO2014159299A1 (en) 2013-03-14 2014-03-11 Graphics processing using multiple primitives

Publications (2)

Publication Number Publication Date
CN105051788A CN105051788A (zh) 2015-11-11
CN105051788B true CN105051788B (zh) 2018-03-30

Family

ID=50625068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480015395.0A Active CN105051788B (zh) 2013-03-14 2014-03-11 使用多个图元进行图形处理

Country Status (6)

Country Link
US (2) US20140267327A1 (zh)
EP (1) EP2973413B1 (zh)
JP (1) JP6364066B2 (zh)
KR (1) KR102213727B1 (zh)
CN (1) CN105051788B (zh)
WO (1) WO2014159299A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
US10140268B2 (en) * 2015-08-27 2018-11-27 Qualcomm Innovation Center, Inc. Efficient browser composition for tiled-rendering graphics processing units
CN110751706B (zh) * 2019-10-29 2024-03-22 网易(杭州)网络有限公司 游戏中的图形处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6720964B1 (en) * 1998-08-27 2004-04-13 Ati International Srl Method and apparatus for processing portions of primitives that are being rendered
CN1551048A (zh) * 2003-04-28 2004-12-01 ��ʽ���綫֥ 图像再现装置和图像再现方法
US7168048B1 (en) * 1999-03-24 2007-01-23 Microsoft Corporation Method and structure for implementing a layered object windows
CN102929621A (zh) * 2011-11-30 2013-02-13 威盛电子股份有限公司 重迭物件的绘制方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149148A (ja) * 1996-11-21 1998-06-02 Fuji Xerox Co Ltd 画像処理装置
US6300956B1 (en) * 1998-03-17 2001-10-09 Pixar Animation Stochastic level of detail in computer animation
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US7362332B2 (en) 2002-06-20 2008-04-22 Nvidia Corporation System and method of simulating motion blur efficiently
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
ATE383627T1 (de) * 2004-11-19 2008-01-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur erzeugung dreidimensionaler bilder
JP4614389B2 (ja) * 2005-05-27 2011-01-19 キヤノン株式会社 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム
JP4764131B2 (ja) * 2005-10-19 2011-08-31 パナソニック株式会社 多重描画装置
US8081184B1 (en) 2006-05-05 2011-12-20 Nvidia Corporation Pixel shader program thread assembly
US8111260B2 (en) 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
US8212840B2 (en) * 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
US9058792B1 (en) * 2006-11-01 2015-06-16 Nvidia Corporation Coalescing to avoid read-modify-write during compressed data operations
US8537168B1 (en) * 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US20080284798A1 (en) * 2007-05-07 2008-11-20 Qualcomm Incorporated Post-render graphics overlays
US8004522B1 (en) * 2007-08-07 2011-08-23 Nvidia Corporation Using coverage information in computer graphics
CN102016916B (zh) 2008-04-04 2014-08-13 先进微装置公司 用于抗混叠的过滤方法和装置
JP5173578B2 (ja) * 2008-05-15 2013-04-03 キヤノン株式会社 画像処理方法及び印刷装置とその制御方法
US8259111B2 (en) 2008-05-30 2012-09-04 Advanced Micro Devices, Inc. Merged shader for primitive amplification
US8825660B2 (en) * 2009-03-17 2014-09-02 Ebay Inc. Image-based indexing in a network-based marketplace
US8339653B2 (en) 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on overlap characteristics
US8854381B2 (en) * 2009-09-03 2014-10-07 Advanced Micro Devices, Inc. Processing unit that enables asynchronous task dispatch
US8922555B2 (en) 2009-10-07 2014-12-30 Nvidia Corporation Pixel shader output map
US8561038B1 (en) * 2009-12-31 2013-10-15 Google Inc. High performance execution environment
US8861844B2 (en) * 2010-03-29 2014-10-14 Ebay Inc. Pre-computing digests for image similarity searching of image-based listings in a network-based publication system
US8949252B2 (en) * 2010-03-29 2015-02-03 Ebay Inc. Product category optimization for image similarity searching of image-based listings in a network-based publication system
US9405773B2 (en) * 2010-03-29 2016-08-02 Ebay Inc. Searching for more products like a specified product
US8773448B2 (en) * 2010-04-09 2014-07-08 Intel Corporation List texture
US8493404B2 (en) 2010-08-24 2013-07-23 Qualcomm Incorporated Pixel rendering on display
JP2012163621A (ja) * 2011-02-03 2012-08-30 Panasonic Corp 端末装置および画像処理方法
US8854383B2 (en) 2011-04-13 2014-10-07 Qualcomm Incorporated Pixel value compaction for graphics processing
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6720964B1 (en) * 1998-08-27 2004-04-13 Ati International Srl Method and apparatus for processing portions of primitives that are being rendered
US7168048B1 (en) * 1999-03-24 2007-01-23 Microsoft Corporation Method and structure for implementing a layered object windows
CN1551048A (zh) * 2003-04-28 2004-12-01 ��ʽ���綫֥ 图像再现装置和图像再现方法
CN102929621A (zh) * 2011-11-30 2013-02-13 威盛电子股份有限公司 重迭物件的绘制方法及装置

Also Published As

Publication number Publication date
WO2014159299A1 (en) 2014-10-02
US20180260930A1 (en) 2018-09-13
US11069020B2 (en) 2021-07-20
EP2973413B1 (en) 2017-04-19
US20140267327A1 (en) 2014-09-18
EP2973413A1 (en) 2016-01-20
KR102213727B1 (ko) 2021-02-05
CN105051788A (zh) 2015-11-11
JP6364066B2 (ja) 2018-07-25
JP2016517574A (ja) 2016-06-16
KR20150130307A (ko) 2015-11-23

Similar Documents

Publication Publication Date Title
CN109670558B (zh) 使用深度学习的数字图像完成
US20220262003A1 (en) Segmenting Objects in Vector Graphics Images
US11069020B2 (en) Graphics processing using multiple primitives
US9202299B2 (en) Hint based spot healing techniques
US10043233B1 (en) Digital media environment for processing vector objects of vector artwork
US10489938B2 (en) Digital paint generation feedback
US11314400B2 (en) Unified digital content selection system for vector and raster graphics
US11398065B2 (en) Graphic object modifications
CN106406693B (zh) 图像选中方法及装置
US10403040B2 (en) Vector graphics rendering techniques
US10846889B2 (en) Color handle generation for digital image color gradients using machine learning
US10496735B2 (en) Object interaction preservation from design to digital publication
CN105378798B (zh) 用于几何图形的抗混叠
CN108776959A (zh) 图像处理方法、装置及终端设备
US10290134B2 (en) Coverage based approach to image rendering using opacity values
US11288778B2 (en) Creation and rasterization of shapes using geometry, style settings, or location
US20170243022A1 (en) 3D Digital Content Interaction and Control
Marek et al. Possibilities for development and use of 3D applications on the android platform
CN115430144A (zh) 环境光遮蔽实现方法和装置、计算机存储介质、电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant