CN1825353A - 硬件加速混合模式 - Google Patents
硬件加速混合模式 Download PDFInfo
- Publication number
- CN1825353A CN1825353A CNA2006100043568A CN200610004356A CN1825353A CN 1825353 A CN1825353 A CN 1825353A CN A2006100043568 A CNA2006100043568 A CN A2006100043568A CN 200610004356 A CN200610004356 A CN 200610004356A CN 1825353 A CN1825353 A CN 1825353A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- pixel
- information
- pel
- color
- 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.)
- Granted
Links
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/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
揭示了图形处理单元对源图元和目的图元的颜色的混合。图形处理单元执行混合这些图元的混合程序。图形处理单元从中央处理单元或图形应用程序接收混合程序。例如,图形处理单元在源纹理图中绘制源图元,在目的纹理图中绘制目的图元。混合程序(例如,像素着色器)被设置成应用于这些图元,并且,图形处理单元将混合模式应用于这些图元的每个像素,从而在目的呈现目标中呈现合成图元。
Description
技术领域
本发明一般涉及计算机图形领域,尤其涉及图形信息的计算机硬件呈现。
背景技术
混合模式是一种公式,用于将源图元的颜色与目的图元的颜色组合,以便在所呈现的图元中产生新的颜色。图元是典型的图形处理单元绘制的最简单对象,并且图元可以被组合,以形成更具健壮性的图像、形状、背景、图形等。源图元可以是在现有图元的顶上呈现的图元,而目的图元可以是该现有图元。当使用特定混合模式将源图元变为目的图元时,可以将混合模式应用于该源图元和目的图元的每个像素。利用这个方法,可以将混合模式应用于源图元和目的图元的每个像素,以计算关于所呈现的图元的每个像素的新颜色。
可以用四个成分的组合来描述像素的颜色。这些成分中的三个成分可以表示颜色中的红色R、绿色G和蓝色B的数量。这些成分可以被标注为R、G和B,其中的每个成分可以是范围从0到1的浮点数。第四个成分可以是阿尔法A值,并可以表示像素的不透明度。0的阿尔法A值可以将像素描述为透明,1的阿尔法A值可以将像素描述为不透明,分数阿尔法A值可以描述像素的半透明程度。这样,R、G、B和A的四个值可以定义像素的颜色和不透明度。
关于混合模式的公式可以用各种方法来写。图形处理单元可以提供关于公式的内置支持,该公式从源颜色S和目的颜色D的成分中计算新颜色N的成分。这些公式可以包括参数P和Q,参数P和Q可以确定混合模式的工作方式。可以从集合{0,1,DA,1-DA,DC,1-DC}中选择被称作“源混合因子”的参数P。同样,可以从集合{0,1,SA,1-SA,SC,1-SC}中选择被称作“目的混合因子”的参数Q。可以被内置到图形处理单元来产生关于每个像素的新颜色或不透明度N的混合模式可以包括:
NR=P·SR+Q·DR
NG=P·SG+Q·DG
NB=P·SB+Q·DB
NA=P·SA+Q·DA
可以使用P和Q参数来实现混合模式,如以下表格,即表1中所列出的:
混合模式 | P | Q |
清晰 | 0 | 0 |
源 | 1 | 0 |
目的 | 0 | 1 |
源上 | 1 | 1-SA |
目的上 | 1-DA | 1 |
源入 | DA | 0 |
目的入 | 0 | SA |
源出 | 1-DA | 0 |
目的出 | 0 | 1-SA |
源顶上 | DA | 1-SA |
目的顶上 | 1-DA | SA |
异或 | 1-DA | 1-SA |
加 | 1 | 1 |
屏幕 | 1-DC | 1 |
表1:参数P和Q的示例值
除P和Q以外还有参数可以被加入混合模式,以提供关于混合模式的额外的变更。例如,参数X、Y和Z可以被加以使用,并可以是具有0或1的值的常数。当将不透明的源图元与不透明的目的图元合成时,X可以确定源和目标的交集是否出现在合成图元中,Y可以确定目的图元以外的源图元的一部分是否会出现,并且,Z可以确定源图元以外的目的图元的一部分是否会出现。函数f可以是源颜色和目的颜色的函数。以下方程式可以提供混合模式的更一般的公式化,从而再次从每个像素的给定源颜色S和目的颜色D中计算新的颜色或不透明度N:
NR=f(SR,SA,DR,DA)+Y·SR·(1-DA)+Z·DR·(1-SA)
NG=f(SG,SA,DG,DA)+Y·SG·(1-DA)+Z·DG·(1-SA)
NB=f(SB,SA,DB,DA)+Y·SB·(1-DA)+Z·DB·(1-SA)
NA=X·SA·DA+Y·SA·(1-DA)+Z·DA·(1-SA)
一些混合模式可以包括在例如图形处理单元的驱动程序中,并且,其他混合模式可以由图形应用程序来提供。关于这类混合模式的示例参数值在以下表格,即表2中列出:
混合模式 | f(SC,SA,DC,DA) | |||
清晰 | 0 | |||
源 | SC·DA | |||
目的 | DC·SA | |||
源上 | SC·DA | |||
目的上 | DC·SA | |||
源入 | SC·DA | |||
目的入 | DC·SA | |||
源出 | 0 | |||
目的出 | 0 | |||
源顶上 | SC·DA | |||
目的顶上 | DC·SA | |||
异或 | 0 | |||
加 | SC·DA+DC·SA | |||
屏幕 | SC·DA+DC·SA-SC·DC | |||
乘 | SC·DC | |||
覆盖 | 2·SC·DC,如果2·DC<DA;SC·DC-2·(DA-DC)·(SA-SC),其它 | |||
变亮 | max(SC·DA,DC·SA) | |||
变暗 | min(SC·DA,DC·SA) | |||
漂白混色 | SA·DA,如果SC·DA+DC·SA≥SA·DA;DC·SA/(1-SC/SA),其它 | |||
颜色加深 | 0,如果SC·DA+DC·SA≤SA·DA;SA·(SC·DA+DC·SA-SA·DA)/SC,其它 | |||
强光 | 2·SC·DC,如果2·SC<SA;SA·DA-2·(DA-DC)·(SA-SC),其它 |
混合模式 | f(SC,SA,DC,DA) | |||
柔光 | DC·(SA-(1-DC/DA)·(2·SC-SA)),如果2·SC<SA;DC·(SA-(1-DC/DA)·(2·SC-SA)·(3-8·DC/DA)),如果8·DC≤DA;DC·SA+(DA·(DC/DA)0.5-DC)·(2·SC-SA),其它 | |||
差异 | abs(SC·DA-DC·SA) | |||
异 | SC·DA+DC·SA-2·SC·DC |
表格2:关于一般混合公式的范例参数
通常,图形处理单元应用一些混合模式。关于更复杂或更多变的混合模式,图形应用程序可以通过中央处理单元上的软件来执行其部分或全部的呈现计算。即,该中央处理单元可以执行两个图元的混合,然后将位图发送到图形处理单元用于呈现。所以,图形应用程序的执行速度可能会受限于中央处理单元可以呈现合成图元的像素的呈现速度。中央处理单元的呈现速度可能比图形处理单元的呈现速度慢。
例如,图形应用程序可以规定:当在其他图元顶上被绘制时,特定图元应该使其他图元的颜色变暗。应用于现有图元的暗色化数量可以根据混合模式由新近绘制的图元的亮度来加以控制。通常,中央处理单元可以为合成呈现中的新图元所覆盖的每个像素应用混合模式。
当完成呈现进程时,通过使用中央处理单元来逐个像素地应用混合模式,可以减缓应用程序执行。此外,可以从完成其他工作中拉出中央处理单元,以应用混合模式,从而潜在地减缓其他任务的执行。在客户机-服务器情形中,服务器中央处理单元可以应用混合模式,然后将合成图元的所有像素从服务器传送到客户机,从而消耗颇有价值的带宽。
所以,需要用于在利用图形处理单元的速度的同时更有效率地呈现混合模式的方法和装置。此外,这些方法和装置应该最小化对中央处理单元要求的计算量和呈现进程中所要求的带宽。
发明内容
本发明允许在图形处理单元上而不是在中央处理单元上计算图形应用程序混合模式。本发明可以利用当前图形硬件的管道化并行操作,释放中央处理单元来执行其他功能,并减少合成图元的像素从服务器到客户机的传输。要求两个或更多图元的混合的图形应用程序代码可以向中央处理单元发送程序,当被执行时,该程序可以应用用于混合的混合模式。中央处理单元可以将该程序发送到图形处理单元用于执行。
图形处理单元可以执行该程序,并且,例如,在源纹理图中绘制源图元,并在目的纹理图中绘制目的图元。用于将混合模式应用于图元的该程序可以被设置成应用于源纹理图和目的纹理图。然后,图形处理单元可以将混合模式应用于这些图元的每个像素,并在目的呈现目标中呈现复合图元。
附图说明
当结合附图来阅读时,可更好地理解本发明的以上概述和以下详细说明。在附图中示出本发明的实施例,但是,可理解:本发明不限于其中所描绘的具体方法和手段。在这些附图中:
图1是示出其中可实施本发明的各个方面的示例计算环境的框图;
图2是用于根据本发明来提供硬件加速混合模式的示例系统的框图;
图3是用于根据本发明来提供硬件加速混合模式的示例方法的框图;以及,
图4是用于根据本发明来提供硬件加速混合模式的替换示例方法的框图。
具体实施方式
示例计算环境
图1和下文意在简要、概括地描述其中可以实施本发明的示例实施例的合适的计算环境100。如这里所使用的,术语“计算系统”、“计算机系统”和“计算机”指包括能够执行或处理程序代码和/或数据的处理器的任何机器、系统或设备。计算系统的例子包括(无任何有意的限制)个人计算机(PC)、小型计算机、大型计算机、瘦客户机、网络PC、服务器、工作站、膝上型计算机、手持式计算机、可编程消费者电子设备、多媒体控制台、游戏控制台、卫星接收器、机顶盒、自动提款机、游戏控制台、移动电话、个人数字助理(PDA)、以及基于任何其他处理器的系统或机器。术语“程序代码”和“代码”指处理器所执行或处理的任何指令集。以下描述通用计算机,但这只是一个例子。本发明也可以在具有网络服务器互操作性和交互作用的瘦客户机上操作。这样,本发明的示例实施例可以在其中牵涉非常少或最少客户机资源的网络化主存服务的环境(例如,其中客户机设备仅仅用作与万维网的浏览器或接口的网络化环境)中实施。
虽然未作要求,但是,本发明可以经由应用程序编程接口(API)来实施,供开发者或测试者使用,/或被包括在网络浏览软件内,该网络浏览软件将在正由一台或多台计算机(例如,客户工作站、服务器或其他设备)执行的计算机可执行指令(例如,程序模块)的一般上下文中描述。通常,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。通常,可以按需要在各种环境中组合或分布这些程序模块的功能。也可以在分布式计算环境中实践本发明的实施例,在这些分布式计算环境中,由通过通信网络或其他数据传输介质连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括记忆存储设备的本地和远程计算机存储介质中。
图1展示了其中可以实现本发明的合适的计算系统环境100的例子,虽然以上已解释清楚,但计算系统环境100只是合适的计算环境的一个例子,它并不意在对本发明的使用范围或功能提出任何限制。也不应该将计算环境100解释为具有涉及示例性操作环境100中所展示的任何一个组件或组件组合的任何依赖或要求。
参照图1,用于实现本发明的示例系统包括采取计算机110的形式的通用计算设备。计算机110的组件可以包括(但不局限于)中央处理单元120、图形处理单元125、系统存储器130和系统总线121,系统总线121将包括该系统存储器的各种系统组件耦合到处理单元120。系统总线121可以是几种类型的总线结构中的任一种,包括存储总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。举例来讲(不作限制),这类体系结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称作Mezzanine总线)。此外,计算机110可以包括加速图形总线,通过该加速图形总线,图形处理单元125和视频接口190可以与监视器191进行通信。
通过例如将图形点从图元变换到各自的缓冲器、计算每个像素处的照明、计算表面上的纹理并呈现图元,图形处理单元125可以在监视器191上呈现图元和图元的组合(例如,图像、形状、背景、图形等)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110存取的任何可用介质,它包括易失性和非易失性、可移动和不可移动介质。举例来讲(不作限制),计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性的可移动和不可移动介质,该介质用关于例如计算机可读指令、数据结构、程序模块或其他数据等信息的存储的任何方法或技术来实现。计算机存储介质包括(但不局限于)随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储技术、光盘只读存储器(CDROM)、数字多功能盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可以被用来存储所需信息并可以由计算机110存取的其他任何介质。通信介质通常具体化为例如载波或其他传送机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,它包括任何信息传递介质。术语“已调制数据信号”意味着一种信号,其一个或多个特征按为该信号中的信息编码的这样一种方式来加以设置或更改。举例来讲(不作限制),通信介质包括有线介质(例如,有线网络或直线连接)和无线介质(例如,声音、射频(RF)、红外线和其他无线介质)。以上任何内容的组合也被包括在计算机可读介质的范围以内。
系统存储器130包括采取易失性和/或非易失性存储器形式的计算机存储介质,例如,ROM 131和RAM 132。基本输入/输出系统133(BIOS)通常被存储在ROM 131中,该基本输入/输出系统包含有助于在计算机110内的各个元件之间传送信息(例如,在启动期间)的基本例程。RAM 132通常包含可立即由处理单元120存取和/或目前正由处理单元120进行操作的数据和/或程序模块。举例来讲(不作限制),图1展示了操作系统134、应用程序135、其他程序模块136和程序数据137。RAM 132可以包含其他数据和/或程序模块。
计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。只举例来讲,图1展示了从不可移动的非易失性磁介质读取或对其写入的硬盘驱动器141、从可移动的非易失性磁盘152读取或对其写入的磁盘驱动器151、以及从可移动的非易失性光盘156(例如,CD ROM或其他光学介质)读取或对其写入的光盘驱动器155。可以用于该示例操作环境的其他可移动/不可移动、易失性/非易失性计算机存储介质包括(但不局限于)盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常通过不可移动的存储接口(例如,接口140)而被连接到系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动的存储接口(例如,接口150)连接到系统总线121。
以上所讨论的和图1中所展示的这些驱动器及其关联的计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,硬盘驱动器141被展示为存储操作系统144、应用程序145、其他程序模块146和程序数据147。注意,这些组件可以等同于或不同于操作系统134、应用程序135、其他程序模块136和程序数据137。这里为操作系统144、应用程序145、其他程序模块146和程序数据147提供不同的标号,以展示它们至少是不同的副本。用户可以通过输入设备,例如,键盘162和通常被称作鼠标、跟踪球或触垫的定点设备161,来将命令和信息输入计算机110。其他输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的输入设备。这些和其他输入设备经常通过被耦合到系统总线121的用户输入接口160而被连接到处理单元120,但也可以由其他接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))来连接。
监视器191或其他类型的显示设备也经由接口(例如,视频接口190)而被连接到系统总线121。除监视器191以外,计算机也可以包括其他外围输出设备(例如,扬声器197和打印机196),这些外围输出设备可以通过输出外围接口195来连接。
计算机110可以使用与一台或多台远程计算机(例如,远程计算机180)的逻辑连接而在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,它通常包括以上相对于计算机110而描述的许多或所有这些元件,尽管图1中只展示了记忆存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其他网络。这类网络环境在办公室、企业范围的计算机网络、内联网和因特网中很常见。
当用于LAN网络环境中时,计算机110通过网络接口或适配器170连接到LAN 171。当用于WAN网络环境中时,计算机110通常包括调制解调器172或用于通过WAN 173(例如,因特网)建立通信的其他装置。调制解调器172(可以是内置的,也可能以外置的)可以经由用户输入接口160或其他适当的机制连接到系统总线121。在网络化环境中,相对于计算机110或其各个部分而描绘的程序模块可以被存储在远程记忆存储设备中。举例来讲(不作限制),图1将远程应用程序185展示为驻留在存储设备181上。将会理解,所示的这些网络连接起示例的作用,可以使用在这些计算机之间建立通信链路的其他手段。
计算机110或其他客户机设备可以被部署为计算机网络的一部分。在这方面,本发明关于具有任何数量的记忆或存储单元的任何计算机系统、以及跨任何数量的存储单元或卷而发生的任何数量的应用程序和进程。本发明的实施例可以应用于具有被部署在网络环境中的服务器计算机和客户计算机的环境,从而拥有远程或本地存储。本发明也可以应用于独立计算设备,从而具有编程语言功能、解释和执行性能。
示例实施例
图2是用于根据本发明来提供硬件加速混合模式的示例系统200的框图。系统200可以包括与服务器计算机250进行通信的客户计算机210。将会理解:本发明的实施例可以在客户计算机210或服务器计算机250上单独实施,并且,系统200描绘了本发明的许多示例实现之一。
客户计算机210和服务器计算机250的每一个可以是根据图1描述的计算机110。客户计算机210可以包括中央处理单元220、图形应用程序235和可编程图形处理单元225,并可以为监视器291提供显示器。服务器计算机250可以包括中央处理单元260和图形应用程序265。当然,客户计算机210和服务器计算机250可以包括其他组件,并可以与其他设备(例如,根据图1描述的设备)进行通信。
可编程图形处理单元225可以是在监视器291上呈现图元和图元的组合(例如,图像、形状、背景、图形等)的硬件设备。通过例如将图形点从图元变换到各自的缓冲器、计算每个像素处的照明、计算表面上的纹理等并在监视器291上呈现图元,可编程图形处理单元225可以呈现图元。可编程图形处理单元225可以与客户计算机210的中央处理单元220进行通信。作为选择或除此之外,可编程图形处理单元225可以通过客户计算机210来与服务器计算机250的中央处理单元260进行通信。
图形应用程序235、265的每一个可以是规定呈现诸如图元等图形信息的任何应用程序。这类图元可以是被呈现在缓冲器中或被显示在监视器上的任何事物。图元可以被组合和呈现为例如图片、视频、图像、文本、图形或形状。图形应用程序235、265可以通过图形处理单元来实现用于将源图元与目的图元混合的混合模式。混合模式可以通过执行通常被称作“像素着色器”的单独的功能、程序、模块、或类似物来实现或被应用于图元。如这里所使用的,术语“像素着色器”的意思是应用混合模式的程序代码。图形应用程序235、265可以规定在像素着色器中应用混合模式,并且,每个像素着色器可以是用于执行混合模式的功能或程序。
图形应用程序235、265可以与各自的中央处理单元220、260进行通信或由各自的中央处理单元220、260来执行。在图形应用程序235的执行期间,可以调用源图元,以便根据混合模式与目的图元相混合。图形应用程序235可以将像素阴影着色器发送到中央处理单元220。根据本发明,图形应用程序235可以指示中央处理单元220将像素着色器发送到可编程图形处理单元225,而不是在中央处理单元上执行像素着色器。中央处理单元220可以指示可编程图形处理单元225执行像素着色器。这样,像素着色器可以便于将混合模式应用于源图元和目的图元的每个像素,并呈现合成图元。即,可以指示可编程图形处理单元225根据混合模式来混合源图元和目的图元。可编程图形处理单元225可以执行像素着色器,以便将混合模式应用于源图元和目的图元的每个像素,并例如在监视器291上呈现合成图元。作为选择,图形应用程序235可以与用作图形应用程序235与图形处理单元225之间的中介的应用程序进行通信。这种中介应用程序可以是包括像素着色器的图形处理单元驱动程序或图形库。图形应用程序235可以指示该中介应用程序将适当的像素着色器提供给可编程图形处理单元225,用于混合操作。然后,中介应用程序可以选择适当的像素着色器,以便提供适当的混合并将像素着色器发送到图形处理单元用于执行。
在一个替换实施例中,运行于服务器计算机250上的图形应用程序265可以将像素着色器发送到中央处理单元260,从而指示中央处理单元260将它发送到客户计算机210,用于在可编程图形处理单元225上执行。中央处理单元260可以指示可编程图形处理单元225执行像素着色器并呈现合成图元。
图3是用于根据本发明来提供硬件加速混合模式的示例方法300的流程图。该方法可以在步骤310开始,其中图形应用程序(例如,要求将要被呈现在显示器上的图元的应用程序)在计算机上执行。该计算机可以是图2中的客户计算机210或服务器计算机250、或某台其他的计算机。在步骤320中,图形应用程序可以规定或要求源图元与目的图元混合,用于缓冲器(例如,显示器)中的呈现。在步骤330中,图形应用程序可以向中央处理单元发送程序代码,该程序代码在被执行时应用混合模式。这种程序代码可以包括像素着色器。
在步骤340中,中央处理单元可以将程序代码发送到可编程图形处理单元用于执行。在步骤350中,可编程图形处理单元可以执行程序代码,以便将混合模式应用于源图元和目的图元的每个像素。然后,在步骤360中,可以在显示缓冲器上呈现合成图元。
图4是用于根据本发明来提供硬件加速混合模式的替换示例方法400的流程图。该方法可以在步骤410开始,其中指示可编程图形处理单元使用例如供应的像素着色器来将源图元与目的图元混合。像素着色器可以由例如图形应用程序、驱动程序、图形库或操作系统来供应。在步骤420中,源图元可以被接收并被呈现到临时纹理图,该临时纹理图在下文中被称作“源纹理图”。可以从中央处理单元接收源图元,该中央处理单元从图形应用程序接收该图元。
在步骤430中,可以制作来自呈现目标的目的图元的副本,并将其放置在临时纹理图中。该临时纹理图在下文中被称作“目的纹理图”。将会理解:如果所使用的可编程图形处理单元不规定像素着色器直接从目的呈现目标读取像素颜色,那么,可以执行步骤430。如果关于可编程图形处理单元的体系结构启用或允许从相同的呈现目标读取并对其写入,那么,可以从方法400中排除步骤430。
在步骤440中,像素着色器可以被设置成在其执行期间使用源纹理图和目的纹理图。可编程图形处理单元可以在步骤450中执行像素着色器,从而将混合模式应用于源纹理图和目的纹理图的每个像素,并将填充的矩形绘制到目的呈现目标中。即,可编程图形处理单元可以组合源像素颜色和目的像素颜色,以产生将被放置在关于每个像素的目的呈现目标中的结果颜色。将会理解:像素着色器可以被开发成使用例如像素着色器汇编语言或更高级着色语言来处理混合模式(例如,这里所描述的混合模式和其他混合模式)。如果在步骤450中,将要呈现更多图元,那么,过程可以从步骤420开始重复。如果在步骤450中,没有更多图元将要被呈现,那么,可以显示目的呈现目标。
这里所描述的各种技术可以结合硬件或软件或者在适当时结合两者的组合来实现。这样,本发明的方法和装置、或其某些方面或部分可以采取包含在诸如软盘、CD-ROM、硬盘驱动器、或任何其他机器可读存储介质等有形介质中的程序代码(即指令)的形式,其中,当程序代码被载入机器(例如,计算机)并由其执行时,该机器变成用于实现本发明的装置。在可编程计算机上的程序代码执行的情况中,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序较佳地用高级过程语言或面向对象的编程语言来实现,以便与计算机系统进行通信。但是,如果需要的话,可以用汇编或机器语言来实现程序。无论如何,该语言可以是编译或解释语言,并可以与硬件实现结合。
尽管已连同各图并结合具体示例描述了本发明,但将会理解:可以使用其他实施例,并可以对所描述的实施例进行修改和添加,以在不脱离本发明的前提下执行本发明的相同的功能。提供这些例子来解释本发明,而决不意在限制如权利要求书中所定义的本发明的范围。总之,本发明不局限于这里所提供和描述的例子。所以,本发明不应该局限于任何单一实施例,而应该根据所附权利要求书在广度和范围上加以分析。
Claims (20)
1.一种用于代表在第一处理单元上执行的应用程序来执行混合模式操作的方法,包括:
接收表示第一像素的颜色的第一信息;
接收表示第二像素的颜色的第二信息;
接收表示用于将所述第一像素的颜色与所述第二像素的颜色混合的公式的信息;以及,
将所述公式应用于所述第一信息和所述第二信息,以产生表示第三像素的颜色的第三信息,其中,应用所述公式是由第二处理单元执行的。
2.如权利要求1所述的方法,其特征在于,接收表示公式的信息包括从所述第一处理单元接收表示所述公式的信息。
3.如权利要求1所述的方法,其特征在于,接收表示公式的信息包括接收程序代码,当在所述第二处理单元上执行时,所述程序代码使所述第二处理单元应用所述公式,以将所述第一像素的颜色与所述第二像素的颜色混合。
4.如权利要求3所述的方法,其特征在于,所述程序代码包括像素着色器的至少一部分。
5.如权利要求3所述的方法,其特征在于,所述第一像素是源图元的一部分,所述第二像素是目的图元的一部分,并且其中,所述方法还包括:
在所述第二处理单元处接收所述目的图元;
在所述第二处理单元处接收所述源图元;
将所述程序代码设置成使用所述源图元和目的图元;
执行所述程序代码;以及,
将所述第三像素绘制到目的呈现目标中。
6.如权利要求5所述的方法,其特征在于,所述第二处理单元:
复制来自所述目的呈现目标的目的图元,以产生所述目的图元的副本,以及,
将所述目的图元的副本放置在目的纹理图中。
7.如权利要求1所述的方法,其特征在于,所述第一处理单元位于计算机上,所述第二处理单元位于该计算机上。
8.如权利要求1所述的方法,其特征在于,所述第一处理单元位于第一计算机上,所述第二处理单元位于第二计算机上。
9.如权利要求8所述的方法,其特征在于,所述第一计算机是服务器计算机,所述第二计算机是所述服务器计算机的客户机。
10.如权利要求1所述的方法,其特征在于,所述第一信息包括值R、G、B和A的集合。
11.如权利要求1所述的方法,其特征在于,所述公式是混合模式。
12.一种用于代表在第一处理单元上执行的应用程序执行混合模式操作的方法,包括:
向第二处理单元发送表示公式的信息,所述公式用于将第一像素的颜色与第二像素的颜色混合,以创建第三像素的颜色;以及,
指示所述第二处理单元将所述公式应用于表示所述第一像素的颜色的第一信息和表示所述第二像素的颜色的第二信息,以创建表示所述第三像素的颜色的第三信息。
13.如权利要求12所述的方法,其特征在于,向所述第二处理单元发送表示公式的信息包括发送程序代码,当在所述第二处理单元上执行时,所述程序代码使所述第二处理单元应用所述公式,用于将所述第一像素的颜色与所述第二像素的颜色混合。
14.如权利要求13所述的方法,其特征在于,所述程序代码包括像素着色器的至少一部分。
15.如权利要求12所述的方法,其特征在于,向所述第二处理单元发送表示所述公式的信息包括从所述第一处理单元发送表示所述公式的信息。
16.如权利要求12所述的方法,其特征在于,向所述第二处理单元发送表示所述公式的信息包括从与所述第二处理单元相关联的驱动程序发送表示所述公式的信息。
17.如权利要求12所述的方法,其特征在于,所述第一处理单元位于第一计算机上,所述第二处理单元位于第二计算机上。
18.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行以下步骤:
接收表示第一像素的颜色的第一信息;
接收表示第二像素的颜色的第二信息;
接收表示用于将所述第一像素的颜色与所述第二像素的颜色混合的公式的信息;以及,
将所述公式应用于所述第一信息和所述第二信息,以产生表示第三像素的颜色的第三信息,其中,应用所述公式是由第二处理单元代表在第一处理单元上执行的应用程序来执行的。
19.如权利要求18所述的计算机可读介质,其特征在于,还具有计算机可执行指令,用于执行以下步骤:
在所述第二处理单元处接收目的图元;
在所述第二处理单元处接收源图元;
将用于将所述公式应用于所述第一信息和所述第二信息的程序代码设置成使用所述源图元和目的图元;
执行所述程序代码;以及,
将所述第三像素绘制到目的呈现目标中。
20.如权利要求19所述的计算机可读介质,其特征在于,还具有计算机可执行指令,用于执行以下步骤:
复制来自所述目的呈现目标的目的图元,从而产生所述目的图元的副本;以及,
将所述目的图元的副本放置在目的纹理图中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/065,854 US7312801B2 (en) | 2005-02-25 | 2005-02-25 | Hardware accelerated blend modes |
US11/065,854 | 2005-02-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1825353A true CN1825353A (zh) | 2006-08-30 |
CN1825353B CN1825353B (zh) | 2012-07-11 |
Family
ID=36201439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100043568A Active CN1825353B (zh) | 2005-02-25 | 2006-01-25 | 硬件加速混合模式 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7312801B2 (zh) |
EP (1) | EP1696387A3 (zh) |
JP (2) | JP2006238429A (zh) |
KR (1) | KR101213872B1 (zh) |
CN (1) | CN1825353B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261729B (zh) * | 2007-02-08 | 2010-06-16 | 威盛电子股份有限公司 | 在分布式图形处理单元内管理多重执行绪的系统与方法 |
WO2012151995A1 (zh) | 2011-09-05 | 2012-11-15 | 中兴通讯股份有限公司 | 一种基于透明度的图像处理方法、装置及终端 |
CN102937892A (zh) * | 2011-09-12 | 2013-02-20 | 微软公司 | 用于使用基于图块的再现器分层的系统和方法 |
CN104952030A (zh) * | 2015-06-08 | 2015-09-30 | 广东小天才科技有限公司 | 图像处理方法和装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7973797B2 (en) * | 2006-10-19 | 2011-07-05 | Qualcomm Incorporated | Programmable blending in a graphics processing unit |
KR101349171B1 (ko) * | 2007-01-17 | 2014-01-09 | 삼성전자주식회사 | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 |
US8638341B2 (en) * | 2007-10-23 | 2014-01-28 | Qualcomm Incorporated | Antialiasing of two-dimensional vector images |
US20110115792A1 (en) * | 2008-07-24 | 2011-05-19 | Nobumasa Tamaoki | Image processing device, method and system |
EP2306403A1 (en) * | 2009-09-02 | 2011-04-06 | Alcatel Lucent | Method for drawing a composite image at a set top box STB of a telecommunication system |
EA023320B1 (ru) * | 2010-05-27 | 2016-05-31 | Лэндмарк Графикс Корпорейшн | Способ и система для визуализации значений каротажной диаграммы скважины |
US9202308B2 (en) | 2011-12-28 | 2015-12-01 | Think Silicon Sa | Methods of and apparatus for assigning vertex and fragment shading operations to a multi-threaded multi-format blending device |
US9058680B2 (en) | 2011-12-28 | 2015-06-16 | Think Silicon Ltd | Multi-threaded multi-format blending device for computer graphics operations |
US11328457B2 (en) | 2019-09-11 | 2022-05-10 | Microsoft Technology Licensing, Llc | System and method for tinting of computer-generated object(s) |
US12020349B2 (en) * | 2020-05-01 | 2024-06-25 | Samsung Electronics Co., Ltd. | Methods and apparatus for efficient blending in a graphics pipeline |
CN111882635B (zh) * | 2020-07-24 | 2024-09-13 | 上海米哈游天命科技有限公司 | 一种画面渲染方法、装置、设备和介质 |
US20240054695A1 (en) * | 2022-08-15 | 2024-02-15 | Adobe Inc. | Generating Blend Objects from Objects with Pattern Fills |
CN117710502B (zh) * | 2023-12-12 | 2024-07-23 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、装置及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5704025A (en) * | 1995-06-08 | 1997-12-30 | Hewlett-Packard Company | Computer graphics system having per pixel depth cueing |
FR2735253B1 (fr) * | 1995-06-08 | 1999-10-22 | Hewlett Packard Co | Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees |
JPH09270024A (ja) * | 1996-02-02 | 1997-10-14 | Toshiba Corp | 情報処理装置 |
US6437781B1 (en) * | 1997-05-30 | 2002-08-20 | Hewlett-Packard Company | Computer graphics system having per pixel fog blending |
WO2000011603A2 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
GB0109720D0 (en) * | 2001-04-20 | 2001-06-13 | Koninkl Philips Electronics Nv | Display apparatus and image encoded for display by such an apparatus |
US20030158886A1 (en) * | 2001-10-09 | 2003-08-21 | Walls Jeffrey J. | System and method for configuring a plurality of computers that collectively render a display |
US7065651B2 (en) * | 2002-01-16 | 2006-06-20 | Microsoft Corporation | Secure video card methods and systems |
EP1483741A2 (en) * | 2002-03-01 | 2004-12-08 | t5 Labs Ltd | Centralised interactive graphical application server |
US7081892B2 (en) * | 2002-04-09 | 2006-07-25 | Sony Computer Entertainment America Inc. | Image with depth of field using z-buffer image data and alpha blending |
GB2392072B (en) * | 2002-08-14 | 2005-10-19 | Autodesk Canada Inc | Generating Image Data |
GB0220138D0 (en) * | 2002-08-30 | 2002-10-09 | Kaydara Inc | Matte extraction using fragment processors |
US6933947B2 (en) * | 2002-12-03 | 2005-08-23 | Microsoft Corporation | Alpha correction to compensate for lack of gamma correction |
US8274517B2 (en) * | 2003-11-14 | 2012-09-25 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
-
2005
- 2005-02-25 US US11/065,854 patent/US7312801B2/en active Active
-
2006
- 2006-01-06 KR KR1020060001658A patent/KR101213872B1/ko active IP Right Grant
- 2006-01-18 EP EP06100514A patent/EP1696387A3/en not_active Ceased
- 2006-01-25 CN CN2006100043568A patent/CN1825353B/zh active Active
- 2006-01-25 JP JP2006016559A patent/JP2006238429A/ja active Pending
-
2012
- 2012-07-24 JP JP2012163459A patent/JP5575846B2/ja active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261729B (zh) * | 2007-02-08 | 2010-06-16 | 威盛电子股份有限公司 | 在分布式图形处理单元内管理多重执行绪的系统与方法 |
WO2012151995A1 (zh) | 2011-09-05 | 2012-11-15 | 中兴通讯股份有限公司 | 一种基于透明度的图像处理方法、装置及终端 |
US9230347B2 (en) | 2011-09-05 | 2016-01-05 | Zte Corporation | Transparency-based image processing method, device, and terminal |
CN102937892A (zh) * | 2011-09-12 | 2013-02-20 | 微软公司 | 用于使用基于图块的再现器分层的系统和方法 |
US9342322B2 (en) | 2011-09-12 | 2016-05-17 | Microsoft Technology Licensing, Llc | System and method for layering using tile-based renderers |
CN102937892B (zh) * | 2011-09-12 | 2016-08-24 | 微软技术许可有限责任公司 | 用于使用基于图块的再现器分层的系统和方法 |
US9715750B2 (en) | 2011-09-12 | 2017-07-25 | Microsoft Technology Licensing, Llc | System and method for layering using tile-based renderers |
CN104952030A (zh) * | 2015-06-08 | 2015-09-30 | 广东小天才科技有限公司 | 图像处理方法和装置 |
CN104952030B (zh) * | 2015-06-08 | 2019-04-19 | 广东小天才科技有限公司 | 图像处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006238429A (ja) | 2006-09-07 |
EP1696387A3 (en) | 2011-09-07 |
JP2012198943A (ja) | 2012-10-18 |
KR101213872B1 (ko) | 2012-12-18 |
US7312801B2 (en) | 2007-12-25 |
EP1696387A2 (en) | 2006-08-30 |
CN1825353B (zh) | 2012-07-11 |
US20060192788A1 (en) | 2006-08-31 |
JP5575846B2 (ja) | 2014-08-20 |
KR20060094850A (ko) | 2006-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1825353A (zh) | 硬件加速混合模式 | |
CN107209923B (zh) | 图形处理中的混合渲染 | |
CN100342403C (zh) | 使用图案阴影来产生阴影效果的方法与装置 | |
US8659589B2 (en) | Leveraging graphics processors to optimize rendering 2-D objects | |
JP3462211B2 (ja) | 多態グラフィック・デバイス | |
US8350868B2 (en) | Method of compositing variable alpha fills supporting group opacity | |
US7532222B2 (en) | Anti-aliasing content using opacity blending | |
US9495722B2 (en) | Developer controlled layout | |
JP6185211B1 (ja) | 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減 | |
US7847798B1 (en) | Clipping and culling artwork using a graphics processing unit | |
CN1704883A (zh) | 显示利用多重混合的图象的系统和方法 | |
CN1856819A (zh) | 通过分布式应用程序的图形数据的网络传输的系统和方法 | |
CN1469240A (zh) | 在图形系统内提供中间目标的系统和方法 | |
JP2008165760A (ja) | グラフィックスを処理する方法および装置 | |
CN1770205A (zh) | 基于纹理的像素打包 | |
KR20180060198A (ko) | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 | |
US20140146064A1 (en) | Graphics memory load mask for graphics processing | |
KR20170040698A (ko) | 그래픽스 파이프라인을 수행하는 방법 및 장치 | |
US7050071B2 (en) | Layered rotational graphics driver | |
US8436864B2 (en) | Method and user interface for enhanced graphical operation organization | |
CN101790749B (zh) | 多点采样绘制二维矢量图像 | |
US7400330B2 (en) | Magnification of indirection textures | |
CN1661632A (zh) | 在绘图系统中执行除以w 运算的装置与方法 | |
US8232994B2 (en) | Viewing multi-dimensional data in two dimensions | |
CN1231041A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150507 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150507 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |