CN102113303B - Gpu场景构成和动画 - Google Patents
Gpu场景构成和动画 Download PDFInfo
- Publication number
- CN102113303B CN102113303B CN200980130981.9A CN200980130981A CN102113303B CN 102113303 B CN102113303 B CN 102113303B CN 200980130981 A CN200980130981 A CN 200980130981A CN 102113303 B CN102113303 B CN 102113303B
- Authority
- CN
- China
- Prior art keywords
- information
- texture
- animation
- conversion
- pixel coloring
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 49
- 238000004040 coloring Methods 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000011156 evaluation Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 21
- 210000003462 vein Anatomy 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 4
- 230000000717 retained effect Effects 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 27
- 238000003860 storage Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000011157 data evaluation Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0252—Improving the response speed
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
描述了以可完全在图形处理单元(GPU)上运行的形式表达场景构成和动画的体系结构。该体系结构将保留图形信息(例如,场景图形和动画信息)存储为纹理信息,并且使用着色器(例如,顶点和像素着色器)来对时间信息求值、对动画求值、对变换求值,以及光栅化路径。另外,体系结构提供了计算动画位置并且完全在GPU上重新绘制而无需每一图元的CPU干预的能力。
Description
背景技术
随着应用程序和数据变得更多样,计算设备和***的中央处理单元(CPU)处理更多复杂的处理器正处于越来越大的压力之下。作为响应,供应商为诸如信号处理、图形处理、工业控制***之类的特定应用程序设计并且提供专用处理器。
利用计算机图形的许多应用程序可对CPU的图形处理有非常的要求。在大多数图形应用程序中处理被共享,其中某些工作使用CPU来执行,而某些工作被传递给图形处理单元(GPU)。传统地,机器图形在CPU上实现。现在供应商正设计CPU上越来越多的存储器和处理能力。与此同时,计算供应商正通过实现多核CPU部分地解决这一问题。
在现代用户界面情形中,场景中可视元素的数量正在增加。具有产生10000到50000个可视元素的应用程序并不少见。针对这样的情形来产生快速显示和动画是有挑战性的。GPU计算将基于CPU的图形计算改进成具有更显著的并行性、更好的存储器带宽、以及图形操作的专用硬件。然而,传统GPU被限制为图形处理组件。
概述
下面提供了简化的概述,以便提供对此处所描述的一些新颖实施例的基本理解。本概述不是详尽的概述,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更详细描述的序言。
所公开的体系结构以可完全在图形处理单元(GPU)上运行的形式表达了场景构成和动画。体系结构将场景图形和动画信息存储为纹理信息,并且使用着色器(例如,顶点和像素着色器)来对时间信息求值、对动画求值、对变换求值,以及光栅化路径。换言之,所公开的是在纹理中存储动画信息和分层场景图形信息的能力。另外,体系结构提供了计算动画位置并且完全在GPU上重新绘制而无需每一图元的CPU干预的能力。
为了为实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将变得显而易见。
附图简述
图1示出了用于在GPU上处理场景和动画信息的图形处理***。
图2示出了用于经由GPU处理场景和动画信息的图形处理***的更详细的示例。
图3示出了用于在GPU上提供场景构成和动画的流程/框图。
图4示出了处理图形的方法。
图5示出了在GPU上处理场景构成和动画的方法。
图6示出了为图5的方法中的每一帧进行附加处理的方法。
图7示出了根据所公开的体系结构的可用于在GPU上执行保留图形信息的计算***的框图。
详细描述
所公开的体系结构采用通用场景图形API***,并且把经由图形处理单元(GPU)所执行的工作在栈中向上移动更高,以便使场景图形本身存储在视频存储器中并且由GPU来求值,并且也使动画***存储在纹理存储器中并且由GPU来求值。这减少了每一元素的CPU成本。例如,对于每一元素的CPU成本,考虑一百万个元素。在传统方法中,存在对一百万个元素中的每一个进行重申以及执行渲染处理的某些CPU工作。随后,GPU执行该渲染过程的某一其他部分。
尽管此处描述的实现使用基于较常见的着色器的计算模块,但该体系结构还可使用通用计算模块来实现,该通用计算模块针对GPU,并且不是基于经典图形管道着色器模块,并且采用合适的API。
在所公开的体系结构中,场景图形中的元素数量从CPU工作的观点来看是不重要的。可以存在CPU完成调用驱动程序以作出一定数量的绘制调用。然而,配置了场景图之后,场景处理不利用每一元素的CPU工作。每一图元的工作由GPU来执行,这导致可缩放性高的若干数量级。对实时动画的传统限制可以是涉及CPU工作的1,000或10,000个元素。在将该工作卸载到GPU时,例如可涉及100,000至500,000个元素。因此,基于GPU中的并行处理能力来实现若干数量级的可缩放性改进。通过卸载场景图形和动画***,可从GPU的并行性能力中获得好处,由此按照每一帧可绘制的图元数量来实现高得多的缩放。
现在将参考附图,全部附图中相同的附图标记用于表示相同的元件。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其它情况下,以框图形式示出了公知的结构和设备以便于描述它们。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
图1示出了用于在GPU上处理场景和动画信息的图形处理***100。***100包括用于将保留图形信息104转换成保留图形纹理信息106的纹理组件102,以及用于完全经由GPU来对保留图形纹理信息106求值的着色器组件108。
着色器组件108可包括例如用于对场景图形变换和光栅化路径求值的一个或多个像素着色器、一个或多个顶点着色器、一个或多个几何着色器、和/或一个或多个流处理器。保留图形纹理信息106可包括存储为纹理信息的定时信息、存储为纹理信息的位置信息、和/或存储为纹理信息的动画信息。着色器组件108包括用于组成变换分层的多级的像素着色器、以及用于将变换应用于几何的顶点着色器。
图2示出了用于经由GPU 202处理场景和动画信息的图形处理***200(例如,到主板的子卡,集成在主板上,等等)的更详细的示例。图形处理***200可进一步与存储器子***204相关联,该存储器子***用于存储与图形处理相关联的程序和数据。存储器子***204可表示仅供GPU使用的分立存储器、或还与CPU相关联的存储器。例如,存储器子***204可包括保留图形信息104作为到纹理组件102的输入以创建(存储)保留图形纹理信息106。如图所示,保留图形纹理信息106包括时间信息206、动画信息208、以及变换信息210。纹理组件102将保留图形信息104存储(或创建)在纹理数据中作为保留图形纹理信息106,从而导致时间纹理信息212、动画纹理信息214、以及变换纹理信息216。
GPU 202还可包括用于对保留图形纹理信息106进行着色器处理以便输出所需效果的着色器组件108。着色器组件108被示为当用户可能需要使用合适的协议和指令时,为一个或多个像素着色器218、一个或多个顶点着色器220、一个或多个几何着色器222、以及其他着色器提供着色器处理。采用一个或多个像素着色器218、一个或多个顶点着色器220、一个或多个几何着色器222等来处理时间纹理信息212、动画纹理信息214和变换纹理信息216。这将在下文中详细地描述。
注意到图形处理***200还包括用于向其中实现GPU体系结构的主板处理(例如,CPU)、其他客户机器或设备提供输入和输入处理等的其他组件和功能224。
换言之,图形处理***200可包括用于将保留图形信息104转换成保留图形纹理信息106的GPU 202中的纹理组件102,以及用于将时间信息求值为时间纹理信息的GPU 202的像素着色器218中的一个,以及用于将变换构成求值为变换纹理信息的GPU 202的顶点着色器220中的一个或多个和像素着色器。
保留图形纹理信息106包括时间纹理信息212、动画纹理信息214、以及变换纹理信息216,所有这些信息都完全在GPU 202上求值。可采用像素着色器218中的一个来对动画纹理信息214和进度纹理信息(以下描述)求值。换言之,像素着色器对变换的分层求值,以及顶点着色器将所得的变换应用于路径顶点数据。***200进一步包括用于光栅化路径226的着色器。顶点着色器220进一步对变换分层和路径顶点数据求值。这在以下描述。
图3示出了用于在GPU上提供场景构成和动画的流程/框图300。圆形框表示存储在纹理存储器中的对应纹理数据。有角的框表示可利用的在GPU上可用的着色器(例如,像素着色器、顶点着色器、几何着色器)。
图300以将定时信息存储为定时纹理信息212开始。可将定时信息表示为定时树,转换成定时纹理信息212,并且输入到一个或多个像素着色器302。像素着色器302(类似于图2中的像素着色器218)的输出包括存储为进度纹理信息304的进度信息。随后将进度纹理信息304传递给一个或多个像素着色器306,以及将动画信息存储为动画纹理信息214。
输入动画信息可以是具有定时信息(例如,父信息)的元素的图形,该定时信息指示了例如在五点的时间开始并且持续五秒。基于父定时信息的子定时描述可相对于该父定时信息在零点时间开始且持续一秒,并且随后不断地重复。在定时或变换是树的情况下,在普通情况下可执行多个传递。着色器在单个传递中仅可对常数深度求值。在最普通的情况下,可存在每k等级一个着色器传递,其中k是一常数。
时间描述的输出可以是基于给定时间点处的进度的递增输出。例如,如果动画在五秒处开始并且持续一秒,则在5.5秒处输出是0.5,这指示了进度在动画的一半处。
定时树作为到一个或多个像素着色器302的输入本质上将时间映射到沿动画过程的进度。定时纹理信息212关于对定时树的求值以便确定进度。一旦对进度求值,就存在指示对进度纹理数据304要做什么的动画描述。例如,可存在指示动画从红色变为蓝色的颜色动画,并且如果进度是0.5(一半),则紫色之间的值可被输出为当前属性值。其他示例包括与从0到1的动画透明度相关的值。进度0.5映射到半透明度。另一动画是点动画,其中随着对象沿坐标(0,0)定义的路径移动到(100,100)而在该对象的位置上执行动画,并且进度0.5是指位置移动到坐标(50,50)。更多详细描述的示例包括样条关键帧的描述,其中样条求值包括对样条求值以便确定如何将进度映射到位置等。样条还可用于不同动画模式的诸如元组或颜色等的简单的值。
使用一个或多个像素着色器306(类似于图2中的像素着色器218)的动画求值的下一阶段包括得到进度结果(这表明与动画有关的进度),接收用于动画的函数的描述(是否有颜色内插、点内插、双内插等),并且基于该进度来执行内插。换言之,动画求值像素着色器306得到进度值和内插描述(作为动画纹理信息),并且内插到所计算的值。如图所示,每一步骤得到输入纹理信息,并且为后续阶段输出纹理信息。
动画求值阶段(像素着色器306)的输出是GPU所生成的视频存储器中的纹理(例如,图2的存储器子***204的某个或所有),该纹理包括所计算的变换信息、透明度信息、颜色信息、位置信息308等等,且用于下一阶段—变换构成,使用一个或多个顶点着色器310(类似于图2的顶点着色器220)。由此,定时纹理信息212使用像素着色器302来生成进度纹理信息304,并且随后像素着色器306对纹理进行采样来生成动画变换透明度和颜色纹理308。目前为止,这都是使用像素着色器来执行的。下一阶段将这应用于图元。顶点着色器310还接收输入变换分层求值结果312作为纹理信息,并且接收路径顶点数据314作为纹理信息。
顶点着色器的输出310被变换成顶点数据316。顶点着色器310用于应用来自前一阶段的所计算的动画数据和场景图形数据。如果存在颜色改变,则顶点着色器310改变顶点颜色数据的颜色,或者顶点着色器310通过将透明度乘以每一顶点数据的颜色来改变透明度。另选地,顶点着色器310通过将每一顶点数据的位置组件乘以从先前阶段的结果接收的输入来改变位置。一旦获得了经变换的顶点数据316,就使用像素着色器318来执行路径光栅化以便输出最终场景光栅化320(类似于图2的路径光栅化226)。
以下是表示用于执行所公开的体系结构的各新颖方面的示例性方法的一系列流程图。尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多个方法被示出并描述为一系列动作,但是可以理解和明白,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事件,诸如以状态图的形式。此外,并非在一方法中示出的所有动作都是新颖实现所必需的。
图4示出了处理图形的方法。在400处,将保留图形信息转换成保留图形纹理信息。在402处,使用像素着色器和顶点着色器来在GPU上对保留图形纹理信息求值。
该方法可进一步包括将动画和分层场景图形信息存储为保留图形纹理信息的一部分,并且使用像素着色器来处理进度纹理信息和动画纹理信息。
该方法可进一步包括使用像素着色器来执行路径光栅化,并且对变换分层、路径顶点数据、以及所计算的动画变换、位置、透明度和颜色纹理信息求值。该方法可进一步包括使用像素着色器来处理定时纹理信息以便输出进度纹理信息。该方法可进一步包括将定时节点信息存储在第一纹理中,将动画节点信息存储在第二纹理中,以及将场景图形变换的描述存储在第三纹理中,并且处理定时节点信息、动画节点信息、以及场景图形变换的描述以便执行最终场景光栅化。
图5示出了在GPU上处理场景构成和动画的方法。在500处,将定时节点的描述存储在纹理T中。在502处,将动画节点的描述存储在纹理A中。在504处,将场景图形变换的描述存储在纹理X中。为了表示分层结构,纹理可具有将纹理单元包括到父元素的父点。在506处,使用诸如镶嵌等表示将表示形状的顶点数据存储在顶点缓冲器中。只要表示可完全在GPU上变换,就可使用任何表示。在508处,为每一帧执行附加处理。
图6示出了为图5的方法中的每一帧进行附加处理的方法。为每一帧执行以下步骤。在600处,将顶点着色器常量设置成等于当前时间。在602处,用定时节点像素着色器来执行绘制以便从纹理T中拉取定时节点信息。在604处,计算定时进度。在606处,输出新的渲染目标纹理。在608处,使用先前所计算的信息作为下一级的父输入来对定时树的每一级重复步骤602、604和606。在610处,用从纹理T拉取定时信息并且从纹理A拉取动画描述的动画节点像素着色器来执行绘制,以便输出变换、颜色、位置、以及透明度值。在612处,对于分层变换,为变换分层的每一级重复步骤610。在614处,绘制包含要用顶点着色器来绘制的所有图元的顶点缓冲器,该顶点着色器从动画结果渲染目标纹理中拉取所计算的变换、透明度、位置、以及颜色值。
如在本申请中所使用的,术语“组件”和“***”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用程序和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一台计算机上和/或分布在两台或更多的计算机之间。词语“示例性”此处可用于表示用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。
现在参考图7,示出了根据所公开的体系结构的可用于在GPU中执行保留图形信息的计算***700的框图。为了提供用于其各方面的附加上下文,图7及以下讨论旨在提供对其中可实现该各方面的合适的计算***700的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识到,新颖实施例也可结合其他程序模块和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其他计算机***配置来实施,包括单处理器或多处理器计算机***、小型计算机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个或多个相关联的设备。
所示各方面也可以在其中某些任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字视频盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来存储所需信息并可由计算机访问的任一其它介质。
再次参考图7,用于实现各方面的示例性计算***700包括具有处理单元704、***存储器706和***总线708的计算机702。***总线708向包括但不限于***存储器706的各***组件提供到处理单元704的接口。处理单元704可以是市场上可购买到的各种处理器中的任意一种。双微处理器和其它多处理器体系结构也可用作处理单元704。
***总线708可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、***总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。***存储器706可包括非易失性存储器710和/或易失性存储器712(例如,随机存取存储器(RAM))。基本输入/输出***(BIOS)可被存储在非易失性存储器710(例如,ROM、EPROM、EEPROM等)中,其中BIOS是帮助诸如在启动期间在计算机702内的元件之间传输信息的基本例程。易失性存储器712还可包括诸如静态RAM等高速RAM来用于高速缓存数据。
计算机702还包括内置硬盘驱动器(HDD)714(例如,EIDE、SATA),该内置HDD 714还可被配置成在合适的机壳中外部使用;磁软盘驱动器(FDD)716(例如,从可移动磁盘718中读取或向其写入);以及光盘驱动器720(例如,从CD-ROM盘722中读取,或从诸如DVD等其他高容量光学介质中读取或向其写入)。HDD 714、FDD 716、以及光盘驱动器720可分别由HDD接口724、FDD接口726和光盘驱动器接口728连接到***总线708。用于外置驱动器实现的HDD接口724可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机702,驱动器和介质容纳适当的数字格式的任何数据的存储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘(例如FDD)以及诸如CD或DVD等可移动光学介质,但是本领域的技术人员应当理解,示例性操作环境中也可使用可由计算机读取的任何其他类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任何这样的介质可包含用于执行所公开的体系结构的新颖方法的计算机可执行指令。
多个程序模块可被存储在驱动器和易失性存储器712中,包括操作***730、一个或多个应用程序732、其他程序模块734和程序数据736。操作***、应用程序、模块和/或数据的全部或部分也可被高速缓存在易失性存储器712中。应该明白,所公开的体系结构可以用市场上可购得的各种操作***或操作***的组合来实现。
用户可以通过一个或多个有线/无线输入设备,例如键盘738和诸如鼠标740等定点设备将命令和信息输入到计算机702中。其他输入设备(未示出)可包括话筒、IR遥控器、操纵杆、游戏手柄、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到***总线708的输入设备接口742连接到处理单元704,但也可通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其他接口连接。
监视器744或其他类型的显示设备也经由诸如视频适配器746等接口连接到***总线708。
视频适配器746可包括***100、***200、参考流程/框图300所描述的能力和功能、以及在图4-6中所描述的方法。或者,或与之组合,计算机702包括在其上制造图形处理能力的主板(也被称为母板),并且在该情况下可包括***100、***200、参考流程/框图300所描述的能力和功能、以及在图4-6中所描述的方法。
除了监视器744之外,计算机通常包括诸如扬声器、打印机等其他***输出设备(未示出)。
计算机702可使用经由有线和/或无线通信至诸如远程计算机748等的一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机748可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机702描述的许多或所有元件,尽管为简明起见仅示出了存储器/存储设备750。所描绘的逻辑连接包括到局域网(LAN)752和/或例如广域网(WAN)754等更大的网络的有线/无线连接。这一LAN和WAN连网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN连网环境中使用时,计算机702通过有线和/或无线通信网络接口或适配器756连接到LAN 752。适配器756可以方便到LAN 752的有线和/或无线通信,并且还可包括其上设置的用于使用适配器756的无线功能进行通信的无线接入点。
当在WAN连网环境中使用时,计算机702可包括调制解调器758,或连接到WAN 754上的通信服务器,或具有用于诸如通过因特网等通过WAN 754建立通信的其他装置。或为内置或为外置以及有线和/或无线设备的调制解调器758经由输入设备接口742连接到***总线708。在联网环境中,相对于计算机702所描绘的程序模块或其部分可以存储在远程存储器/存储设备750中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机702可操作来使用IEEE 802标准家族来与有线和无线设备或实体进行通信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话进行无线通信(例如,IEEE 802.11空中调制技术)的无线设备。这至少包括Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为IEEE 802.11x(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关介质和功能)。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。此外,就在说明书或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。
Claims (9)
1.一种图形处理***(100),包括:
纹理组件(102),所述纹理组件用于将保留图形信息转换成保留图形纹理信息,所述保留图形纹理信息包括被存储为时间纹理信息的时间信息以及被存储为动画纹理信息的动画信息;以及
着色器组件(108),所述着色器组件用于完全在图形处理单元(GPU)上对所述保留图形纹理信息求值,所述着色器组件包括:
第一像素着色器,用于对所述时间纹理信息求值并基于所述时间纹理信息输出进度纹理信息;
第二像素着色器,用于接收所述进度纹理信息和所述动画纹理信息,基于所述进度纹理信息对所述动画纹理信息进行内插,并且基于所述进度纹理信息和所述动画纹理信息输出纹理信息,所述第二像素着色器输出的纹理信息包括动画变换纹理信息、颜色纹理信息、位置纹理信息、以及透明度纹理信息;以及
顶点着色器,用于接收至少变换分层求值结果、路径顶点数据和由所述第二像素着色器输出的纹理信息,并且基于所述变换分层求值结果、所述路径顶点数据和由所述第二像素着色器输出的纹理信息输出经变换的顶点数据。
2.如权利要求1所述的***,其特征在于,所述着色器组件的所述第一和第二像素着色器构成变换分层的多级。
3.如权利要求1所述的***,其特征在于,所述保留图形纹理信息包括被存储为变换纹理信息的变换信息。
4.如权利要求1所述的***,其特征在于,所述保留图形纹理信息还包括分层场景图形信息并且所述着色器组件对场景图形变换求值。
5.如权利要求1所述的***,其特征在于,所述着色器组件光栅化路径。
6.一种处理图形的方法,包括:
将包括定时信息和动画信息的保留图形信息转换成包括定时纹理信息和动画纹理信息的保留图形纹理信息(400);
使用一个或多个像素着色器和一个或多个顶点着色器来在GPU上对所述保留图形纹理信息求值(402);
使用所述一个或多个像素着色器来处理所述定时纹理信息以便输出进度纹理信息以及使用所述像素着色器来处理所述进度纹理信息和所述动画纹理信息以生成动画变换、位置、透明度、以及颜色纹理信息;
将定时节点信息存储在第一纹理中,将动画节点信息存储在第二纹理中,以及将场景图形变换的描述存储在第三纹理中,以及
处理所述定时节点信息、动画节点信息、以及场景图形变换的描述以便执行最终场景光栅化。
7.如权利要求6所述的方法,其特征在于,进一步包括将分层场景图形信息存储为所述保留图形纹理信息的一部分。
8.如权利要求6所述的方法,其特征在于,还包括使用所述一个或多个像素着色器来执行路径光栅化。
9.如权利要求6所述的方法,其特征在于,还包括对变换分层、路径顶点数据、以及所计算的动画变换、位置、透明度和颜色纹理信息求值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/185,114 US8274516B2 (en) | 2008-08-04 | 2008-08-04 | GPU scene composition and animation |
US12/185,114 | 2008-08-04 | ||
PCT/US2009/052508 WO2010017113A2 (en) | 2008-08-04 | 2009-07-31 | Gpu scene composition and animation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102113303A CN102113303A (zh) | 2011-06-29 |
CN102113303B true CN102113303B (zh) | 2015-06-03 |
Family
ID=41607867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980130981.9A Active CN102113303B (zh) | 2008-08-04 | 2009-07-31 | Gpu场景构成和动画 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8274516B2 (zh) |
EP (1) | EP2308224B1 (zh) |
JP (1) | JP5384636B2 (zh) |
KR (1) | KR101618389B1 (zh) |
CN (1) | CN102113303B (zh) |
WO (1) | WO2010017113A2 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2109304A1 (en) * | 2008-04-07 | 2009-10-14 | Océ-Technologies B.V. | Color management method, module, and program product, and printer ussing said method |
US9058675B2 (en) | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
US20130063460A1 (en) * | 2011-09-08 | 2013-03-14 | Microsoft Corporation | Visual shader designer |
US8872838B2 (en) * | 2011-09-09 | 2014-10-28 | Microsoft Corporation | Primitive composition |
US9530245B2 (en) | 2011-12-29 | 2016-12-27 | Qualcomm Incorporated | Packing multiple shader programs onto a graphics processor |
TWI606418B (zh) * | 2012-09-28 | 2017-11-21 | 輝達公司 | 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法 |
CN104517309B (zh) * | 2013-10-08 | 2018-08-24 | 博雅网络游戏开发(深圳)有限公司 | 帧循环中的动画处理方法和装置 |
CN104244087B (zh) * | 2014-09-19 | 2018-05-01 | 青岛海信移动通信技术股份有限公司 | 一种视频渲染的方法及设备 |
CN107077754B (zh) | 2014-11-07 | 2020-10-16 | 三星电子株式会社 | 显示装置和控制显示装置的方法 |
CN104820497B (zh) * | 2015-05-08 | 2017-12-22 | 东华大学 | 一种基于增强现实的3d交互显示*** |
CN107644446B (zh) * | 2016-07-21 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 一种动画纹理实现方法及图形处理设备 |
CN108198236B (zh) * | 2017-11-29 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 数据显示方法和装置、存储介质及电子装置 |
CN109814970B (zh) * | 2019-01-22 | 2021-09-10 | 西安电子科技大学 | 一种基于OpenGL-ES的动态进度条绘制方法 |
CN114090101A (zh) * | 2020-08-05 | 2022-02-25 | 宝能汽车集团有限公司 | 开机动画的处理方法、装置、车辆、设备和存储介质 |
CN112489183A (zh) * | 2020-11-26 | 2021-03-12 | 北京邮电大学 | 基于Unity3D的骨骼动画渲染方法及*** |
CN112767518B (zh) * | 2020-12-22 | 2023-06-06 | 北京淳中科技股份有限公司 | 虚拟动画特效制作方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627251A (zh) * | 2003-12-09 | 2005-06-15 | 微软公司 | 使用图形处理单元加速并优化机器学习技术的处理 |
CN101004833A (zh) * | 2006-07-27 | 2007-07-25 | 威盛电子股份有限公司 | 用于纹理视讯处理的纹理引擎、图形处理器及方法 |
CN101051382A (zh) * | 2006-08-24 | 2007-10-10 | 威盛电子股份有限公司 | 于图形处理单元中提供共享属性计算电路的***及方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
US6243856B1 (en) * | 1998-02-03 | 2001-06-05 | Amazing Media, Inc. | System and method for encoding a scene graph |
US6266053B1 (en) * | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
US6487565B1 (en) * | 1998-12-29 | 2002-11-26 | Microsoft Corporation | Updating animated images represented by scene graphs |
US6512522B1 (en) * | 1999-04-15 | 2003-01-28 | Avid Technology, Inc. | Animation of three-dimensional characters along a path for motion video sequences |
US6707456B1 (en) * | 1999-08-03 | 2004-03-16 | Sony Corporation | Declarative markup for scoring multiple time-based assets and events within a scene composition system |
JP4038434B2 (ja) * | 2001-05-14 | 2008-01-23 | 株式会社ネットディメンション | 情報配信システム及び情報配信方法 |
JP2002369076A (ja) * | 2001-06-11 | 2002-12-20 | Matsushita Electric Ind Co Ltd | 3次元特殊効果装置 |
US6919891B2 (en) * | 2001-10-18 | 2005-07-19 | Microsoft Corporation | Generic parameterization for a scene graph |
US7126606B2 (en) * | 2003-03-27 | 2006-10-24 | Microsoft Corporation | Visual and scene graph interfaces |
US7088374B2 (en) * | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
KR20050036722A (ko) * | 2003-10-14 | 2005-04-20 | 삼성전자주식회사 | 3차원 객체 그래픽 처리장치 및 3차원 신 그래프 처리장치 |
US20070070077A1 (en) * | 2005-09-26 | 2007-03-29 | Silicon Integrated Systems Corp. | Instruction removing mechanism and method using the same |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
JP4594892B2 (ja) * | 2006-03-29 | 2010-12-08 | 株式会社東芝 | テクスチャマッピング装置、方法およびプログラム |
US7836087B1 (en) * | 2006-06-09 | 2010-11-16 | Pixar | Graphs of components for digital productions |
-
2008
- 2008-08-04 US US12/185,114 patent/US8274516B2/en active Active
-
2009
- 2009-07-31 KR KR1020117002305A patent/KR101618389B1/ko active IP Right Grant
- 2009-07-31 CN CN200980130981.9A patent/CN102113303B/zh active Active
- 2009-07-31 EP EP09805385.3A patent/EP2308224B1/en active Active
- 2009-07-31 WO PCT/US2009/052508 patent/WO2010017113A2/en active Application Filing
- 2009-07-31 JP JP2011522134A patent/JP5384636B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627251A (zh) * | 2003-12-09 | 2005-06-15 | 微软公司 | 使用图形处理单元加速并优化机器学习技术的处理 |
CN101004833A (zh) * | 2006-07-27 | 2007-07-25 | 威盛电子股份有限公司 | 用于纹理视讯处理的纹理引擎、图形处理器及方法 |
CN101051382A (zh) * | 2006-08-24 | 2007-10-10 | 威盛电子股份有限公司 | 于图形处理单元中提供共享属性计算电路的***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102113303A (zh) | 2011-06-29 |
WO2010017113A3 (en) | 2010-05-06 |
WO2010017113A2 (en) | 2010-02-11 |
JP5384636B2 (ja) | 2014-01-08 |
US8274516B2 (en) | 2012-09-25 |
EP2308224B1 (en) | 2019-03-06 |
EP2308224A2 (en) | 2011-04-13 |
EP2308224A4 (en) | 2013-06-05 |
KR20110050630A (ko) | 2011-05-16 |
KR101618389B1 (ko) | 2016-05-04 |
JP2011530136A (ja) | 2011-12-15 |
US20100026700A1 (en) | 2010-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102113303B (zh) | Gpu场景构成和动画 | |
US10115230B2 (en) | Run-time optimized shader programs | |
US10437541B2 (en) | Graphics engine and environment for efficient real time rendering of graphics that are not pre-known | |
CN105556571B (zh) | 使用计算着色器作为顶点着色器的前端 | |
CN106575442B (zh) | 使用通过自适应着色的纹理查找的带宽缩减 | |
CN102099832B (zh) | Gpu贝塞尔路径光栅化 | |
US10102603B2 (en) | Scheme for compressing vertex shader output parameters | |
US11631218B2 (en) | Efficient compression of data representing triangular mesh attributes | |
US8872838B2 (en) | Primitive composition | |
US10643384B2 (en) | Machine learning-based geometric mesh simplification | |
US20150188973A1 (en) | Remote desktop video streaming alpha-channel | |
US20130120391A1 (en) | Triangulation for Accelerated Multi-Resolution Rendering of Stroked Paths | |
CN108027957A (zh) | 用于上下文切换的上下文信息的高效保存和恢复 | |
US11941780B2 (en) | Machine learning techniques to create higher resolution compressed data structures representing textures from lower resolution compressed data structures | |
CN105144243A (zh) | 数据可视化 | |
US8400447B1 (en) | Space partitioning trees using planes selected from a discrete set of orientations | |
US9858708B2 (en) | Convex polygon clipping during rendering | |
CN109690626A (zh) | 用于对表面的几何表示的法线进行编码和/或解码的方法和装置 | |
Noguera et al. | Volume rendering strategies on mobile devices | |
CN107657580A (zh) | 图像处理单元及图像处理单元执行的方法 | |
CN109448123A (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
US8203567B2 (en) | Graphics processing method and apparatus implementing window system | |
CN101127124A (zh) | 在显示用图形对象绘制期间变换对象顶点的方法及设备 | |
US11417058B2 (en) | Anti-aliasing two-dimensional vector graphics using a multi-vertex buffer |
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: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150727 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |