CN104823215B - 子画面图形渲染系统 - Google Patents
子画面图形渲染系统 Download PDFInfo
- Publication number
- CN104823215B CN104823215B CN201380062222.XA CN201380062222A CN104823215B CN 104823215 B CN104823215 B CN 104823215B CN 201380062222 A CN201380062222 A CN 201380062222A CN 104823215 B CN104823215 B CN 104823215B
- Authority
- CN
- China
- Prior art keywords
- texture
- cached
- memory
- automatically
- search
- 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
Classifications
-
- 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
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
Abstract
本发明提供了图形渲染系统的软件开发者工具包(SDK)形式的一组工具以改善总体图形操作。一般来讲,该工具涉及分析场景树并将其呈现优化为一个或多个图形处理单元(GPU),以便改善渲染操作。这一总体目标是通过若干不同功能提供的,通过新的应用编程接口(API)向软件开发者呈现每种功能。
Description
背景技术
本公开整体涉及计算机图形领域。更具体地,但并非作为限制,本公开涉及在与图形处理单元(GPU)一起使用的渲染系统中用于操控子画面(sprite)的技术。
子画面是一种集成到更大场景中的二维(2D)图像或动画。可将子画面映射到三维(3D)场景中。可从任何来源创建子画面,该任何来源包括预先渲染的图像、动态3D图形、矢量图并且甚至文本。由于图形处理单元(GPU)已变得可用,因此已开发出子画面库和图形处理例程以提供一种渲染系统,该渲染系统允许使用GPU的能力以用于更快地渲染图形,而不是完全依赖于普通中央处理单元(CPU)的处理能力。通常,CPU和GPU两者均在由这些库提供的图形处理操作中涉及到,其中大部分图形处理是由GPU进行的。
这些渲染系统通常在场景树中表示图形操作。场景图是一种布置图形场景的逻辑和常见(但未必一定)空间表示的结构。场景图是图或树结构中的节点的集合。节点可有很多子节点,但常常仅有单一父节点,其中父节点的效果适用于所有其子节点。在一个组上执行的操作将其效果自动传播到其所有成员。常见的特征是能够将相关形状/对象分组成复合对象,然后可如单个对象那样容易地移动、变换、选择等。
发明内容
本发明提供了图形渲染系统的软件开发者工具包(SDK)形式的一组工具以改善总体图形操作。一般来讲,该工具涉及分析场景树并将其呈现优化为一个或多个图形处理单元(GPU),以便改善渲染操作。这一总体目标是通过若干不同功能提供的,通过新的应用编程接口(API)向软件开发者呈现每种功能。
附图说明
图1是示出了图形渲染系统的一个实施例的框图。
图2是示出了具有多个并行操作以同时执行多个线程的计算处理器(例如计算单元)的计算设备的实例的框图。
图3是表示简单场景图的树图。
图4是示出了根据一个实施例的自动批处理技术的流程图。
图5是示出了根据一个实施例的用于使用索引缓冲区和顶点缓冲区的技术的流程图。
图6是示出了根据一个实施例的由效果节点代替子树的简单场景图的图示。
图7是示出了根据一个实施例的用于生成效果节点的技术的流程图。
图8是示出了根据一个实施例的用于自动生成纹理图集的技术的流程图。
图9是示出了根据一个实施例的实例场景图和掩蔽场景图的子树的两种方式的图示。
图10是示出了根据一个实施例的用于渲染系统的视锥(view frustrum)的框图。
图11是示出了根据一个实施例的用于使用模板缓冲区进行掩蔽的技术的流程图。
图12是根据一个实施例的与渲染系统一起使用的计算机系统的框图。
具体实施方式
在以下描述中,出于解释的目的阐述了许多具体细节以便提供对本发明的彻底理解。然而,对本领域的技术人员而言将显而易见的是,可在不存在这些具体的情况下实践本发明。在其他情况下,以框图的形式示出了结构和设备,以便避免模糊本发明。提到没有下标或后缀的数字将被理解为参考与所提到数字对应的下标和后缀的所有情况。此外,本公开中所使用的语言主要被选择用于可读性和指导性目的,并且可能没有被选择为划定或限定该发明性主题,诉诸于所必需的权利要求以确定此类发明性主题。在说明书中提到“一个实施例”或“一种实施例”意指包括在本发明的至少一个实施例中的结合该实施例进行描述的特定特征、结构或特性, 并且多次提到“一个实施例”或“一种实施例”不应被理解为全部必然地参考相同的实施例。
下图中示出的过程由处理逻辑部件执行,该处理逻辑部件包括硬件(例如电路、专用逻辑部件等)、软件(诸如在通用计算机或专用机器上运行的软件)、或两者的组合。尽管下文根据一些顺序操作描述了各过程,但可按照不同的次序执行所述的一些操作,并可并行而非顺序地执行一些操作。
图形处理单元(GPU)可以是实施非常高效的图形操作诸如2D、3D图形操作和/或数字视频相关功能的专用图形处理器。GPU可包括专用(可编程)硬件以执行图形操作,例如,位块传输器操作、纹理映射、多边形渲染、像素着色和顶点着色。已知GPU会从帧缓冲区获取数据并将像素混合到一起以将图像返回到帧缓冲区中以用于进行显示。GPU还可控制帧缓冲区,并允许使用帧缓冲区来刷新显示器,诸如CRT或LCD显示器。常规上,GPU可从与GPU耦接的一个或多个中央处理单元(CPU)获取图形处理任务,以通过显示控制器向显示设备输出光栅图形图像。
典型的GPU通常是单指令多数据(SIMD)设备,其中每条指令可以并行操作多条数据。正如CPU从单个处理单元发展到能够在每个核中独立执行指令的多核处理器那样,更新近的GPU提供矢量计算的“通道”,可以将每个通道理解为独立的线程。单一硬件序列发生器通常并行操作一组此类线程。如果全部执行同一指令,它们就可以说是相干的。单一指令取出被广播到所有单个处理元件。如果线程在不同方向上出现分支,则它们被称为分叉的。单一指令序列发生器跟踪哪些线程已分叉。在它的每个周期获取单个指令并将其分配到掩码启用的所有那些处理元件。
图1是示出了图形渲染系统100的一个实施例的框图,图形渲染系统100使用包括CPU和/或GPU的计算设备来为应用程序执行并行计算。系统100可实施并行计算架构。在一个实施例中,系统100可以是包括通过数据总线190与一个或多个CPU 170和一个或多个GPU180耦接的一个或多个主机处理器的图形系统。可在主机系统110中将多个主机处理器联网在一起。多个CPU 170可包括来自不同供应商的多核CPU。计算处理器或计算单元诸如CPU或GPU可与一组功能相关联。例如,GPU可具有专用 的纹理渲染硬件。另一个媒体处理器可以是支持专用纹理渲染硬件和双精度浮点运算两者的GPU。多个GPU可连接在一起。
在一个实施例中,主机系统110可支持软件堆栈。软件堆栈可包括软件堆栈部件诸如应用程序120、计算应用程序库130、计算平台层140,例如OpenCL平台、计算运行时层150和计算编译器160。应用程序120可通过API调用与其他堆栈部件进行交互。一个或多个处理元件或线程可针对主机系统110中的应用程序120同时运行。计算平台层140可维护数据结构或计算设备数据结构,为每个附接的物理计算设备存储处理能力。在一个实施例中,应用程序可通过计算平台层140检索关于主机系统110的可用处理资源的信息。应用程序可通过计算平台层140选择和指定用于执行处理任务的能力要求。因此,计算平台层140可为物理计算设备确定配置,以分配和初始化来自附接的CPU 170和/或GPU 180的处理资源以用于处理任务。
计算运行时层150可例如基于一个或多个逻辑计算设备根据应用程序120的配置的处理资源来管理处理任务的执行。在一个实施例中,执行处理任务可包括创建表示处理任务的计算程序对象以及分配存储器资源,例如,用于保持可执行文件、输入/输出数据等。为计算程序对象加载的可执行文件可以是计算程序可执行文件。计算程序可执行文件可包括在要在计算处理器或计算单元诸如CPU或GPU中执行的计算程序对象中。计算运行时层150可与分配的物理设备进行交互以实现处理任务的实际执行。在一个实施例中,计算运行时层150可根据每个处理器诸如针对处理任务配置的CPU或GPU的运行时间状态来协调执行来自不同应用程序的多个处理任务。计算运行时层150可基于运行时间状态从被配置为执行处理任务的物理计算设备选择一个或多个处理器。执行处理任务可包括同时在多个物理计算设备中执行一个或多个可执行文件的多个线程。在一个实施例中,计算运行时层150可通过监测每个处理器的运行时间执行状态来跟踪每个被执行处理任务的状态。
运行时层可加载一个或多个可执行文件作为与来自应用程序120的处理任务对应的计算程序可执行文件。在一个实施例中,计算运行时层150从计算应用程序库130自动加载执行处理任务所需的附加的可执行文件。计算运行时层150可从应用程序120或计算应用程序库130加载用于计算程序对象的可执行文件及其对应的源程序两者。用于计算程序对象的源程序可以是计算程序源。可根据被配置为包括多种类型和/或不同版本的物理计算设备的逻辑计算设备加载基于单个计算程序源的多个可执行文件。在一个实施例中,计算运行时层150可激活计算编译器160以将加载的源程序在线编译到针对被配置为执行可执行文件的目标处理器例如CPU或GPU优化的可执行文件中。
除了根据对应源程序的现有可执行文件之外,可存储在线编译的可执行文件以用于未来调用。此外,可离线编译可执行文件并使用API调用被加载到计算运行时150。计算应用程序库130和/或应用程序120可响应于来自应用程序的库API请求来加载相关联的可执行文件。可针对计算应用程序库130或针对应用程序120动态更新新编译的可执行文件。在一个实施例中,计算运行时150可由针对计算设备的新升级的版本通过计算编译器160在线编译的新可执行文件来代替应用程序中的现有计算程序可执行文件。计算运行时150可插入在线编译的新可执行文件以更新计算应用程序库130。在一个实施例中,计算运行时150可当为处理任务加载可执行文件时调用计算编译器160。在另一个实施例中,可离线调用计算编译器160以为计算应用程序库130构建可执行文件。计算编译器160可编译并链接计算内核程序以生成计算程序可执行文件。在一个实施例中,计算应用程序库130可包括多个函数,以支持例如开发工具箱和/或图像处理。每个库函数可对应于用于多个物理计算设备的计算应用程序库130中存储的计算程序源和一个或多个计算程序可执行文件。
本文所述的各种实施例提供用于操控场景图的多种有用特征。可将这些实施例提供为用于图形渲染系统的API,通常以软件开发者工具包(SDK)的形式,但可通过任何期望方式进行封装。在一个实施例中,针对将用于处理图形的硬件(CPU和GPU)来定制渲染系统,从而允许更有效地使用该硬件。
可对由各种实施例处理的子画面进行旋转、设定尺寸、平移、缩放、移动、渐隐和着色。在子画面中涉及声音的情况下,可播放子画面的声音。可将特定动作限定为在动作开始之前等待事件。
自动批处理
相对于慢帧速,通常更希望有更快的帧速,尤其是在诸如游戏的应用程序中。以10帧每秒(fps)运行的游戏和以60fps运行的游戏之间的差异通常从视觉上是明显的,并且使得游戏更加令人愉快并适合玩。实现更高帧速的一种方式是以更大的块向GPU提供用于渲染的数据。
尽管一些API已允许手动批处理模式,其中由程序员手动将绘制调用分组到一起,但还没有允许自动批处理,其中软件使用场景图结构告诉图形API要渲染什么,API后方的渲染系统自动将每个内容分组在一起并分批馈送到GPU。
自动批处理允许向GPU馈送更大块的数据,这通常提高了处理速度,从而使得所渲染的图形中的帧速增大(例如,60fps对10fps)。API还允许基于要使用的GPU自动确定批处理,程序员无需不得不了解GPU或对该GPU执行定制。因为API和下面的图形库准确地了解哪些硬件可用。例如,了解了哪些一个或多个GPU和一个或多个CPU可用,自动批处理API就能够比常规手动批处理更容易地对事物进行分批。
在操作中,程序员以任何期望的方式生成场景图,然后图形API基于对使用中的一个或多个GPU的了解来分析表示场景图的树。该分析允许API对GPU绘制调用排序以自动产生期望的结果,这可能与用户在树中指定的次序不同。
图2是示出了具有并行操作以同时执行多个线程的多个计算处理器(例如计算单元)的计算设备的实例的框图。每个计算处理器可并行(或同时)执行多个线程。可在计算处理器或计算单元中并行执行的线程可以称为线程组。计算处理器可具有可并行执行的多个线程组。例如,示出了M个线程作为线程组在计算处理器220中执行。多个线程组例如计算处理器1220的线程1和计算处理器N 230的线程N可跨一个计算设备210上的独立计算处理器或跨多个计算设备210并行执行。跨多个计算处理器的多个线程组可并行执行计算程序可执行文件。多于一个计算处理器可基于单个芯片,诸如ASIC(专用集成电路)设备。在一个实施例中,可跨多个芯片在多于一个计算处理器中同时执行来自应用程序的多个线程。
计算设备210可包括一个或多个计算处理器或计算单元,诸如CPU220和CPU 230,它们可以是CPU和GPU的任意组合。本地存储器240可与计算处理器耦接并在计算处理器中运行的单个线程组中的线程之间进行 共享。来自不同线程组的多个线程诸如线程1224和线程N 234可共享耦接到计算设备210的计算设备存储器270中存储的计算存储器对象诸如流。计算设备存储器270可包括全局存储器280和常量存储器290。全局存储器280可用于分配计算存储器对象诸如流。计算存储器对象可包括能够由计算程序可执行文件操作的数据元的集合。计算存储器对象可表示图像、纹理、帧缓冲区、标量数据类型阵列、用户定义结构阵列、或变量等。常量存储器290可以是存储计算程序可执行文件频繁使用的恒定变量的只读存储器。
在一个实施例中,用于计算处理器或计算单元的本地存储器可用于分配由线程组中所有线程共享的变量。可将本地存储器实现为专用本地存储装置诸如CPU 220的本地共享存储器240以及GPU 230的本地共享存储器250。在另一个实施例中,可将计算处理器的本地存储器实现为针对计算设备的一个或多个计算处理器的用于计算设备存储器的读写高速缓存,诸如计算设备210中的计算处理器220和230的数据高速缓存260。专用本地存储装置可不被跨不同线程组的线程所共享。如果计算处理器的本地存储器诸如CPU 220被实现为读写高速缓存,例如数据高速缓存260,则可从计算设备存储器270分配声明处于本地存储器中的变量并高速缓存于实现本地存储器的读写高速缓存例如数据高速缓存260中。当例如读写高速缓存260或专用本地存储装置240,250均不能用于对应的计算处理器220,230时,线程组内的线程可共享计算设备存储器270中分配的本地变量。在一个实施例中,每个线程可与专用存储器相关联以存储由线程中调用的函数使用的线程专用变量。例如,专用存储器N 232可能不被除线程N 234之外的线程看到。
图3是表示简单场景图的树的图300,其涉及第一子画面(在图3中识别为“A”)的三次渲染,以及第二子画面(在图3中识别为“B”)的三次渲染。图300隐式限定了用于GPU绘制调用310、320、330、340、350和360的次序,从而使得渲染A、B、B、B、A和A。在API接收到信息时,将生成六个GPU绘制调用。程序员可能认识到,可将B的三次连续渲染合并成单个绘制调用,并且可将A的最后两次渲染分批或合并成单个绘制调用,从而获取三个绘制调用。但是本文所公开的API的自动批处理技术可能能够基于对可用GPU硬件的了解来改善手动批处理。某些GPU可 允许比其他GPU更多的合并,并且手动批处理将需要程序员针对期望的GPU定制软件或编写定制代码以说明各种GPU。通过将该活动移动到API中,将程序员从该定制解放出来,可相应地降低应用程序的复杂性。
在一种应用程序中,使用第一GPU,自动批处理可能能够将绘制调用310、350和360合并为单个绘制调用以渲染A,将绘制调用320、330和340合并为单个绘制调用以渲染B,从而使得仅2个实际绘制调用发往GPU。在另一种应用程序中,其中GPU能够从树的并集生成单个纹理,API可能能够将GPU绘制调用的数目减少到单个绘制调用,即A和B的并集,从而得到并集的单个纹理加上偏移。例如,绘制调用310在场景中的与绘制调用350不同的位置处渲染A。因此,由渲染系统计算偏移,其允许在两个位置处均显示渲染的子画面A而无需重新渲染子画面A。因此,通过自动批处理绘制调用,可以将相同的所得场景显示为一个帧,但具有减少的GPU活动,从而可能允许增大的帧速。
图4的流程图中示出了自动批处理技术。在框410中,从应用程序接收场景图。在框420中分析场景图,考虑到要使用的GPU的特征和性能。在框430中,通过基于分析对每帧的场景图进行分类来尽可能多地合并图的隐式排序的绘制调用。最后,在框440中,渲染场景图。
该技术涉及使用索引缓冲区和顶点缓冲区以用于GPU存储器中的数据管理,如图5的流程图中所示的。在加载生成图形帧的应用程序时,API在框510中预生成最大长度的索引缓冲区,从而利用静态索引来对其进行填充。在框520中一次性将索引缓冲区上载到GPU,并且然后重新使用缓冲区的子组以绘制每个帧。在一个实施例中,所有图片均是由两个具有共享顶点的三角形构成的四边形形状。在框530中生成顶点缓冲区以基于场景图的状态来匹配每帧的索引。在更新顶点时,也可以更新顶点缓冲区,使得索引缓冲区条目继续标引正确的顶点结构。
在一个实施例中,将绘制调用表达为
绘制调用(纹理、顶点列表)
每个顶点都是具有(x、y、z、颜色、纹理_位置)的结构。一次性将顶点存储在顶点缓冲区中的GPU存储器中。然而,“顶点列表”向顶点缓冲区中发送索引,而不是发送绘制调用中的顶点。向GPU供应索引缓冲区,使得索引缓冲区条目为进入顶点缓冲区的索引。
在一个实施例中,索引缓冲区条目偏移到顶点缓冲区中。或者,索引缓冲区条目可以仅仅是数字。因此,索引缓冲区条目2将指示进入顶点缓冲区中的第二条目,并且具有顶点列表“1,3,2”的绘制调用将标引顶点缓冲区中的第一顶点、第三顶点和第二顶点。在这样的实施例中,索引缓冲区条目可以是小值诸如16比特的整数,其通常小于顶点缓冲区中的顶点条目的大小。
纹理效应,自动光栅化。
在一个实施例中,API允许将会导致非常昂贵的效果的高速缓存,然后重新使用那些经高速缓存的效果,从而减少处理时间并加快渲染过程。此类经高速缓存的纹理效果可能对于处理内核图像效果非常有用,否则这在时间和处理资源方面非常昂贵。
可将“效果节点”放在场景图中的任何地方。效果节点将其所有子节点扁平化为经高速缓存的纹理。效果节点自动检测任何其子节点何时变化并重新生成光栅化纹理。如果没有任何变化,可使用经高速缓存的纹理自动重新绘制效果节点,而无需花费任何时间重新绘制子节点。实际上,该效果节点代替了场景图中的以该点为根的整个子树。
也可将纹理效应或“CI过滤器”应用于效果节点。这包括复合效应,如散晕、高斯虚化、翘曲和涂污。这些操作计算每个帧常常非常昂贵,因此渲染系统对应用于效果节点的效果输出进行高速缓存,并且然后在效果节点下方没有任何改变时使用它执行极快的渲染。在一个实施例中,可对多个效果节点进行高速缓存,其中向下面的纹理应用不同效果。
图6是示出了简单场景图的图示600。可生成效果节点610A以替换源自场景图的节点610处的整个子树。效果节点610A结合了从子树生成的纹理(由图6中的虚线勾勒示出),使得可将效果节点610A作为单元进行操控。效果节点是扁平化的特殊场景图节点,并将场景图中其下方的每个内容高速缓存为固定纹理。如果节点620或子树中其下方的任何其他节点变化,则可重新计算效果节点610A。这允许使用昂贵的CI过滤器,因为可将CI过滤器的输出作为效果节点的一部分进行高速缓存。
图7是示出了根据一个实施例用于生成效果节点的技术的流程图700。在框710中,识别要转换成效果节点的场景图的子树,诸如源自图6的框610的子树。在框720中,将子树扁平化为扁平化纹理。通常将扁平 化纹理高速缓存在GPU存储器中,但可存储于应用程序存储器中。如果将效果或过滤器应用于效果节点,则在框730中应用效果并在框740中对结果进行高速缓存。在一个实施例中,还高速缓存扁平化纹理,使得如果希望将不同效果应用于效果节点,则可使用经高速缓存的效果节点来应用该效果,而不是必须要再次对整个子树进行扁平化。
在框750中,如果在子树中发生任何变化诸如变为图6中所示的节点620,则可在框720中重复开始该过程。否则,在框760中,可在需要时重新使用经高速缓存的过滤的节点,而不是必须要渲染子树并应用过滤器。
纹理重新使用和预加载
纹理占据GPU上的宝贵的存储器,并且开发者将常常在不同地方使用相同的纹理。在常规的渲染系统中,如果第一次从文件加载纹理,稍后再重新加载,则纹理的两个副本被存储于GPU存储器中,从而占用宝贵的空间。
在一个实施例中,渲染系统管理GPU存储器中的纹理。这可能涉及纹理重新使用。在程序员指出要使用的图像时,系统在GPU存储器中对其进行管理。程序员还可指出不再使用纹理,从而允许系统从GPU存储器移除纹理。通过管理GPU存储器中的纹理,系统可保证在GPU存储器中仅有任何图像的单个副本。
渲染系统可保持驻留在GPU存储器中的纹理的单个经高速缓存的副本,并自动将所有未来的使用重定向到单个共享实例。在一个实施例中,该系统还可检测何时未在预定时间(或多个绘制调用)使用资源并释放存储器。
也可将经高速缓存的纹理存储到磁盘驱动器上的文件。如果经高速缓存的纹理从高速缓存中被移除但后续被使用,则渲染系统能够自动从磁盘重新加载资源,对用户而言这是完全透明的。
尽管上文描述为管理GPU存储器中的纹理,但可如上所述管理GPU存储器中存储的任何资源并对该GPU存储器中存储的任何资源进行高速缓存。
本发明所公开的技术预先处理或分析场景图树。可在需要资源之前对其进行预先获取,并对预先获取的资源进行高速缓存。也可使用上述自动 批处理技术向GPU发送最佳序列以用于渲染场景,可能还减少必须从GPU存储器高速缓存冲洗纹理的次数。
如图3中所示,在一个实施例中,分析屏幕图300以识别图中的从属性,诸如节点380之前需要渲染节点370。渲染系统然后可优化向GPU传递场景,以减少高速缓存冲洗和其他降低效率的情况。
自动纹理图集
存在允许开发者通过名称来参考纹理的工具,从而创建将名称映射到纹理的纹理图集。然而,那些工具不是自动的,并且不提供上述存储器管理功能。在一个实施例中,自动纹理图集能力透明地创建纹理图集。
在一个实施例中,开发者可运行图8中通过流程图800示出的单一自动工具,其在框810中取得纹理文件(PNG、JPG、TIFF等)的目录,在框820中对每个个体纹理进行分析,并在框830中生成纹理图集(通常作为单个JPG或PNG,但以任何期望形式),连同XML格式的清单文件,其记录纹理图集中的纹理坐标和尺寸。稍后,当渲染系统在框840中接收由开发者指定的纹理名称时,在框850中进行查找以发现期望的纹理,并且最后在框860中提供具有期望纹理的图集的子矩形。
开发者然后可通过在框840中接收的名称来请求图像。图形系统定位图集文件,将其加载到GPU中,在框850中在图集中查找纹理,然后在框860中提供表示图集中的包含原始图像数据的子矩形的对象。
使用阵列内部的阵列表示按序排列的组等。
动画包括如缩放、移动、渐隐、超时等待、旋转等动作。此外,可以将这些构建块的每个构建块置于“组”动画(并行)或“序列”动画(顺序)中。也可将组和序列自身置于其他组/序列内以创建复合动画。
在一个实施例中,使用Objective C语法以用于限定阵列提供一种解释由用户提供的嵌套式动画的智能方式。在限定动作序列时,如果元素中的一者自身为动作的另一个阵列,则将该子阵列作为序列内的组(并行)进行处理。类似地,如果一组动作的元素中的一者自身为动作的另一个阵列,则将该子阵列作为该组内的序列进行处理。
例如,如果将动画限定为三个动作的阵列:
动画=[移动,缩放,移除]
将标量动作限定为三个动作的阵列:
缩放=[缩放,弹开]
则可将动画解释为
其中并行执行缩放和弹开动作。
任何时间点处场景图的串行化
渲染系统的实施例的独特特征是可在任何时间点处将整个场景图串行化到存储器或数据文件的独特特征。这包括场景中所有节点和可能已应用于它们的任何动画的准确状态。然后可在稍后时间加载这个文件作为调试具体问题的手段,或甚至作为部署机制以提供游戏内容并与单行代码共享游戏内容。还可将串行化用于存储器保存:在串行化到文件之后,可从存储器移除场景图,直到需要时,那时从文件重新加载串行化的场景图。
缩图处理、缩放以配合准确像素渲染,从而避免伪影。
在一个实施例中,渲染系统自动检测将在其上渲染图形的显示器的像素密度和长宽比。使用该信息,渲染系统可在图形版本之间进行选择以提供对于该显示器可用的可能最好的图形。渲染系统还可缩放图形以使用缩图拟合、缩图填充或调整尺寸算法匹配屏幕的分辨率。
使用场景图作为输入来进行掩蔽
在渲染系统的一个实施例中,掩蔽是极其灵活的。可将场景图的任何子树用作要掩蔽的项目,并且可将场景图的任何其他子树用于掩码。图9是示出了实例场景图和掩蔽子树910的两种方式的图示900。常规地,经由单个输入图像作为掩码诸如起始元件930来进行掩蔽。但是此外,可将场景图900中的任何内容用作掩码,包括游戏特征、颗粒系统如火、视频、几何形状等。在图9的实例中,也可由子树920来掩蔽子树910。
使用裁剪、挑选和掩蔽技术
图10是示出了具有由平面1010和视口1030限定的视锥1020的查看系统1000的框图。视锥1020外部的任何内容都不能从视口1030看到。在 向GPU传递渲染几何结构之前,渲染系统的实施例可执行高水平的挑选,以挑选不会在当前的视锥1020中看到的渲染对象或渲染对象的部分。如果渲染对象不在当前视锥1020诸如渲染对象1040内部,则该挑选将从绘制调用移除任何渲染对象。在渲染对象仅部分在视锥1020诸如渲染对象1050内的情况下,将由渲染系统在发送到GPU的绘制调用中仅保持渲染对象的该部分。在一个实施例中,渲染系统分析场景图树并且还移除背面或遮挡的几何结构,诸如不透明元件1060的背面或从视口1030的角度看被渲染对象1060遮挡的元件1070的至少一部分。
在一个实施例中,使用模板缓冲区进行掩蔽,这比传统α掩蔽技术要快得多。模板缓冲区通常不用于2D游戏中。渲染系统使用深度缓冲区、颜色缓冲区和模板缓冲区。颜色缓冲区是在显示渲染的对象时所看到的内容,并且可能是每像素8、16、24或任何其他数量的比特。
图11是示出了根据一个实施例的用于使用模板缓冲区进行掩蔽的技术的流程图1100。在框1110中,由渲染系统识别掩码,诸如在Z方向上更接近视口1030的对象。在框1120中,关闭颜色缓冲区。然后在框1130中将掩码写入模板缓冲区中。在一个实施例中,使用8比特缓冲区元素的单个比特来表示掩蔽。然后在框1140中再次打开颜色缓冲区,并开始渲染树。渲染系统发出GPU绘制调用,其指示渲染系统仅在未设置模板缓冲区中的对应比特时才渲染颜色缓冲区。
场景图分级结构映射到物理接合点
该渲染系统将渲染对象和物理对象组合到一起。对于最终用户而言,存在单个对象表示屏幕渲染子画面和物理刚体。物理刚体信息允许向个体子画面应用重力、质量、加速度和速度。
渲染系统映射渲染坐标和物理世界坐标并将它们关联到一起。一旦更新了物理学,还自动更新子画面的新位置。在添加对象的子对象时,渲染系统在子对象及其父对象之间自动创建物理接合点,从而在分级结构中保持父对象和子对象物理特性。
电子设备中的具体实施
图12示出了能够与一个实施例一起使用的计算机系统1200的一个实例。例如,可将系统1200实现为图1中所示系统的一部分。虽然图12示出了计算机系统的各种部件,但它并不旨在表示使这些部件互连的任何特 定架构或方式,因此这些细节与本发明并无密切关系。也可使用具有更少部件,或者可能具有更多部件的网络计算机和其他数据处理系统(例如,手持式计算机、个人数字助理(PDA)、蜂窝电话、娱乐系统、消费电子设备等)来实现一个或多个实施例。
如图12中所示,以数据处理系统形式的计算机系统1200包括总线1222、存储器1212以及非易失性存储设备1214,该总线耦接到一个或多个微处理器1216,该微处理器可以是CPU和/或GPU,该存储器可包括易失性读/写随机存取存储器(RAM)和只读存储器(ROM)中的一者或两者。一个或多个微处理器1216可从存储器1212和存储设备1214检索指令并使用高速缓存1218执行指令,从而执行上述操作。总线1222与这些各种部件互连在一起,并且还将这些部件1216,1218,1212和1214互连至显示控制器1206和显示设备1220,以及互连至外围设备诸如输入/输出(I/O)设备1204,该输入/输出(I/O)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备1204通过输入/输出控制器1202耦接到系统。在易失性RAM包含在存储器1212中的情况下,RAM通常被实现为动态RAM(DRAM),该DRAM需要连续供电以刷新或维持存储器中的数据。显示控制器1206和显示设备1220可任选地包括一个或多个GPU以处理显示数据。任选地,可提供GPU存储器1208以支持显示控制器1206或显示设备1220中包括的GPU。
存储设备1214通常是磁性硬盘驱动器、光驱、非易失性固态存储器设备,或在即使从系统移除电力后还能维持数据(例如,大量数据)的其他类型存储器系统。虽然图12示出存储设备1214为直接耦接到数据处理系统中的其余部件的本地设备,但实施例可利用远离系统的非易失性存储器诸如网络存储设备,其通过可是有线或无线网络接口的网络接口1210耦接到数据处理系统。总线1222可包括一条或多条总线,其通过本领域熟知的各种桥接器、控制器和/或适配器相互连接。尽管图12中为了清晰仅示出了每种类型的单个元件,但如果需要,可使用任何或所有各种元件类型的多个元件。
应当理解,以上描述旨在是例示性的,而非限制性的。例如,可彼此结合地使用上述实施例。在回顾以上描述时,很多其他的实施例对于本领 域的技术人员而言将是显而易见的。因此应当参考所附权利要求与此权利要求被授权的等价物的完整范围来确定本发明的范围。
Claims (31)
1.一种计算机实现的设备,包括:
用于在与图形处理器相关联的第一存储器中对纹理进行高速缓存的装置;
用于自动更新纹理图集以识别经高速缓存的纹理的装置,其中经高速缓存的纹理映射到可搜索名称;
用于当由所述图形处理器渲染场景图时自动重新加载经高速缓存的纹理而不通过第一存储器创建经高速缓存的纹理的副本的装置,包括:
用于接收对于图像的请求的装置,其中请求包括所述可搜索名称;
用于通过所述可搜索名称来标引经高速缓存的纹理的装置;
用于使用所述可搜索名称执行查找以从纹理图集获取经高速缓存的纹理的坐标和尺寸的装置;以及
用于响应于所接收到的请求提供所述纹理图集的与经高速缓存的纹理的坐标和尺寸对应的子矩形的装置。
2.根据权利要求1所述的设备,进一步包括:
用于自动从所述第一存储器移除经高速缓存的纹理的装置;
用于在存储介质中对纹理进行高速缓存的装置;以及
用于自动将纹理从所述存储介质重新加载到所述第一存储器中的装置。
3.根据权利要求1所述的设备,进一步包括:
用于通过对场景图的子树进行扁平化而生成纹理的装置;
用于将与纹理相关联的节点插入到所述场景图中的装置;以及
用于渲染经高速缓存的纹理而非渲染所述子树的装置。
4.根据权利要求3所述的设备,进一步包括:
用于响应于所述子树的变化来重新生成纹理的装置;以及
用于在所述第一存储器中对经重新生成的纹理进行重新高速缓存的装置。
5.根据权利要求3所述的设备,进一步包括:
用于通过向经高速缓存的纹理应用效果来生成第二纹理的装置;以及
用于在所述第一存储器中对所述第二纹理进行高速缓存的装置。
6.根据权利要求1所述的设备,进一步包括:
用于自动从所述第一存储器移除经高速缓存的纹理的装置。
7.根据权利要求6所述的设备,其中用于自动从所述第一存储器移除经高速缓存的纹理的装置包括:
用于检测经高速缓存的纹理是否未在预定时间被使用的装置;以及
用于基于确定经高速缓存的纹理未在预定时间被使用则从所述第一存储器移除经高速缓存的纹理的装置。
8.根据权利要求6所述的设备,其中用于自动从所述第一存储器移除经高速缓存的纹理的装置包括:
用于检测经高速缓存的纹理是否未在数个绘制调用中被使用的装置;以及
用于基于确定经高速缓存的纹理未在数个绘制调用中被使用则从所述第一存储器移除经高速缓存的纹理的装置。
9.根据权利要求1所述的设备,进一步包括:
用于自动识别多个纹理文件的装置;
用于自动分析纹理文件以生成纹理图集的装置;以及
用于自动分析清单文件以在纹理图集中记录与纹理文件相关联的多个纹理坐标和多个尺寸的装置。
10.根据权利要求1所述的设备,进一步包括:
用于将场景图串行化到存储介质或者数据文件的装置。
11.一种计算机实现的方法,包括:
在与图形处理器相关联的第一存储器中对纹理进行高速缓存;
自动更新纹理图集以识别经高速缓存的纹理,其中经高速缓存的纹理映射到可搜索名称;
当由所述图形处理器渲染场景图时自动重新加载经高速缓存的纹理而不通过第一存储器创建经高速缓存的纹理的副本,包括:
接收对于图像的请求,其中请求包括所述可搜索名称;
通过所述可搜索名称来标引经高速缓存的纹理;
使用所述可搜索名称执行查找以从纹理图集获取经高速缓存的纹理的坐标和尺寸;以及
响应于所接收的请求提供所述纹理图集的与经高速缓存的纹理的坐标和尺寸对应的子矩形。
12.根据权利要求11所述的方法,进一步包括:
自动从所述第一存储器移除经高速缓存的纹理;
在存储介质中对纹理进行高速缓存;以及
自动将纹理从所述存储介质重新加载到所述第一存储器中。
13.根据权利要求11所述的方法,进一步包括:
对场景图的子树进行扁平化而生成纹理;
将与纹理相关联的节点插入到所述场景图中;以及
渲染经高速缓存的纹理而非渲染所述子树。
14.根据权利要求13所述的方法,进一步包括:
响应于所述子树的变化来重新生成纹理;以及
在所述第一存储器中对经重新生成的纹理进行重新高速缓存。
15.根据权利要求13所述的方法,进一步包括:
通过向经高速缓存的纹理应用效果来生成第二纹理;以及
在所述第一存储器中对所述第二纹理进行高速缓存。
16.根据权利要求11所述的方法,进一步包括自动从所述第一存储器移除经高速缓存的纹理。
17.根据权利要求16所述的方法,其中自动从所述第一存储器移除经高速缓存的纹理包括:
检测经高速缓存的纹理是否未在预定时间被使用;以及
基于确定经高速缓存的纹理未在预定时间被使用则从所述第一存储器移除经高速缓存的纹理。
18.根据权利要求16所述的方法,其中自动从所述第一存储器移除经高速缓存的纹理包括:
检测经高速缓存的纹理是否未在数个绘制调用中被使用;以及
基于确定经高速缓存的纹理未在数个绘制调用中被使用则从所述第一存储器移除经高速缓存的纹理。
19.根据权利要求11所述的方法,进一步包括:
自动识别多个纹理文件;
自动分析纹理文件以生成纹理图集;以及
自动分析清单文件以在纹理图集中记录与纹理文件相关联的多个纹理坐标和多个尺寸。
20.根据权利要求11所述的方法,进一步包括:
将场景图串行化到存储介质或者数据文件。
21.一种计算设备,包括:
图形处理器,被配置为渲染场景图;
第一存储器,与所述图形处理器相关联;以及
一个或多个处理器,被配置为:
在所述第一存储器中对纹理进行高速缓存;
自动更新纹理图集以识别经高速缓存的纹理,其中经高速缓存的纹理映射到可搜索名称;
当由所述图形处理器渲染场景图时自动重新加载经高速缓存的纹理而不通过第一存储器创建经高速缓存的纹理的副本,包括:
接收对于图像的请求,其中请求包括所述可搜索名称;
通过所述可搜索名称来标引经高速缓存的纹理;
使用所述可搜索名称执行查找以从纹理图集获取经高速缓存的纹理的坐标和尺寸;以及
响应于所接收的请求提供所述纹理图集的与经高速缓存的纹理的坐标和尺寸对应的子矩形。
22.根据权利要求21所述的计算设备,其中所述一个或多个处理器进一步被配置为:
自动从所述第一存储器移除经高速缓存的纹理;
在存储介质中对纹理进行高速缓存;以及
自动将纹理从所述存储介质重新加载到所述第一存储器中。
23.根据权利要求21所述的计算设备,其中所述一个或多个处理器进一步被配置为:
对场景图的子树进行扁平化而生成纹理;
将与纹理相关联的节点插入到所述场景图中;以及
渲染经高速缓存的纹理而非渲染所述子树。
24.根据权利要求23所述的计算设备,其中所述一个或多个处理器进一步被配置为:
响应于所述子树的变化来重新生成纹理;以及
在所述第一存储器中对经重新生成的纹理进行重新高速缓存。
25.根据权利要求23所述的计算设备,其中所述一个或多个处理器进一步被配置为:
通过向经高速缓存的纹理应用效果来生成第二纹理;以及
在所述第一存储器中对所述第二纹理进行高速缓存。
26.根据权利要求21所述的计算设备,其中所述一个或多个处理器进一步被配置为:
自动从所述第一存储器移除经高速缓存的纹理。
27.根据权利要求26所述的计算设备,其中所述一个或多个处理器被配置为通过至少执行以下操作来自动从所述第一存储器移除经高速缓存的纹理:
检测经高速缓存的纹理是否未在预定时间被使用;以及
基于确定经高速缓存的纹理未在预定时间被使用则从所述第一存储器移除经高速缓存的纹理。
28.根据权利要求26所述的计算设备,其中所述一个或多个处理器被配置为通过至少执行以下操作自动从所述第一存储器移除经高速缓存的纹理:
检测经高速缓存的纹理是否未在数个绘制调用中被使用;以及
基于确定经高速缓存的纹理未在数个绘制调用中被使用则从所述第一存储器移除经高速缓存的纹理。
29.根据权利要求21所述的计算设备,其中所述一个或多个处理器进一步被配置为:
自动识别多个纹理文件;
自动分析纹理文件以生成纹理图集;以及
自动分析清单文件以在纹理图集中记录与纹理文件相关联的多个纹理坐标和多个尺寸。
30.根据权利要求21所述的计算设备,其中所述一个或多个处理器进一步被配置为:
将场景图串行化到存储介质或者数据文件。
31.一种非暂时性计算机可读存储介质,在所述非暂时性计算机可读存储介质上存储有指令,所述指令在由一个或多个处理器执行时使得执行根据权利要求11-20中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261746678P | 2012-12-28 | 2012-12-28 | |
US61/746,678 | 2012-12-28 | ||
PCT/US2013/067470 WO2014105264A2 (en) | 2012-12-28 | 2013-10-30 | Sprite graphics rendering system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104823215A CN104823215A (zh) | 2015-08-05 |
CN104823215B true CN104823215B (zh) | 2018-04-27 |
Family
ID=49582816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380062222.XA Active CN104823215B (zh) | 2012-12-28 | 2013-10-30 | 子画面图形渲染系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9582848B2 (zh) |
EP (1) | EP2939208B1 (zh) |
KR (1) | KR101732288B1 (zh) |
CN (1) | CN104823215B (zh) |
AU (1) | AU2013368503B2 (zh) |
WO (1) | WO2014105264A2 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102048885B1 (ko) * | 2013-05-09 | 2019-11-26 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법 |
US20150070358A1 (en) * | 2013-09-12 | 2015-03-12 | Marcello Judah Sachs | Thotput |
US9886736B2 (en) | 2014-01-20 | 2018-02-06 | Nvidia Corporation | Selectively killing trapped multi-process service clients sharing the same hardware context |
US9235871B2 (en) | 2014-02-06 | 2016-01-12 | Oxide Interactive, LLC | Method and system of a command buffer between a CPU and GPU |
CN104035751B (zh) * | 2014-06-20 | 2016-10-12 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
CN104036451B (zh) * | 2014-06-20 | 2018-12-11 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
US9928564B2 (en) * | 2014-06-26 | 2018-03-27 | Intel Corporation | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
US9223551B1 (en) * | 2014-07-22 | 2015-12-29 | Here Global B.V. | Rendergraph compilation method and use thereof for low-latency execution |
US9934547B2 (en) * | 2014-10-09 | 2018-04-03 | Qualcomm Incorporated | Method and system for reducing the number of draw commands issued to a graphics processing unit (GPU) |
CN106157353B (zh) * | 2015-04-28 | 2019-05-24 | Tcl集团股份有限公司 | 一种文字渲染方法和文字渲染装置 |
US9733721B2 (en) | 2015-04-28 | 2017-08-15 | Dell Products, L.P. | Rendering graphics using framebuffer nodes with event handler mapping in a binary search tree |
US9594776B2 (en) | 2015-05-05 | 2017-03-14 | Microsoft Technology Licensing, Llc | Dynamic, parameterized image resource selection |
US10031947B2 (en) * | 2015-06-24 | 2018-07-24 | Advanced Micro Devices, Inc. | Method and apparatus for performing a search operation on heterogeneous computing systems |
GB2540382B (en) * | 2015-07-15 | 2020-03-04 | Advanced Risc Mach Ltd | Data processing systems |
US9654753B1 (en) * | 2015-09-01 | 2017-05-16 | Amazon Technologies, Inc. | Video stream processing |
US9761026B1 (en) * | 2016-01-22 | 2017-09-12 | The Mathworks, Inc. | Rendering graphical scenes |
KR102651125B1 (ko) | 2016-04-06 | 2024-03-26 | 삼성전자주식회사 | 경로 렌더링을 수행하는 방법 및 장치 |
CN107992328A (zh) * | 2016-10-26 | 2018-05-04 | 深圳市中兴微电子技术有限公司 | 一种数据处理的方法、装置和片上系统 |
US10445852B2 (en) * | 2016-12-22 | 2019-10-15 | Apple Inc. | Local image blocks for graphics processing |
US10565802B2 (en) * | 2017-08-31 | 2020-02-18 | Disney Enterprises, Inc. | Collaborative multi-modal mixed-reality system and methods leveraging reconfigurable tangible user interfaces for the production of immersive, cinematic, and interactive content |
US10726605B2 (en) * | 2017-09-15 | 2020-07-28 | Intel Corporation | Method and apparatus for efficient processing of derived uniform values in a graphics processor |
US10540194B2 (en) | 2017-12-21 | 2020-01-21 | International Business Machines Corporation | Runtime GPU/CPU selection |
US10878611B2 (en) * | 2018-01-26 | 2020-12-29 | Nvidia Corporation | Techniques for pre-processing index buffers for a graphics processing pipeline |
US10909739B2 (en) | 2018-01-26 | 2021-02-02 | Nvidia Corporation | Techniques for representing and processing geometry within an expanded graphics processing pipeline |
US10600229B2 (en) | 2018-01-26 | 2020-03-24 | Nvidia Corporation | Techniques for representing and processing geometry within a graphics processing pipeline |
US10650482B1 (en) | 2018-11-09 | 2020-05-12 | Adobe Inc. | Parallel rendering engine |
CN109948091A (zh) * | 2019-03-20 | 2019-06-28 | 网宿科技股份有限公司 | 一种网页处理方法及客户端设备 |
US11302055B2 (en) | 2019-04-01 | 2022-04-12 | Apple Inc. | Distributed processing in computer generated reality system |
CN110070597A (zh) * | 2019-04-02 | 2019-07-30 | 同济大学 | 一种基于OpenCL的Unity3D渲染加速方法 |
CN112470194A (zh) * | 2019-04-12 | 2021-03-09 | 艾司科软件有限公司 | 用于生成和查看具有印刷特征的对象的3d可视化的方法和系统 |
CN110738720B (zh) * | 2019-10-08 | 2022-01-07 | 腾讯科技(深圳)有限公司 | 特效渲染方法、装置、终端及存储介质 |
CN111327695B (zh) * | 2020-02-13 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种资源下载方法和相关装置 |
US11722540B2 (en) | 2020-09-24 | 2023-08-08 | Apple Inc. | Distributed encoding |
US11533351B2 (en) | 2020-09-24 | 2022-12-20 | Apple Inc. | Efficient delivery of multi-camera interactive content |
US11742973B2 (en) | 2020-09-25 | 2023-08-29 | Apple Inc. | Multi-protocol synchronization |
US11728932B2 (en) | 2020-09-25 | 2023-08-15 | Apple Inc. | Communication system with improved reliability |
CN112652025B (zh) * | 2020-12-18 | 2022-03-22 | 完美世界(北京)软件科技发展有限公司 | 图像渲染方法、装置、计算机设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1434171A2 (en) * | 1995-08-04 | 2004-06-30 | Microsoft Corporation | Method and system for texture mapping a source image to a destination image |
CN1926558A (zh) * | 2003-08-06 | 2007-03-07 | 兰德马克绘图公司 | 对任意成三角形的表面应用精确三维体纹理的系统和方法 |
CN102831631A (zh) * | 2012-08-23 | 2012-12-19 | 上海创图网络科技发展有限公司 | 一种大规模三维动画的渲染方法及渲染装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982939A (en) | 1995-06-07 | 1999-11-09 | Silicon Graphics, Inc. | Enhancing texture edges |
JP4540753B2 (ja) | 1995-08-04 | 2010-09-08 | マイクロソフト コーポレーション | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
US6373482B1 (en) | 1998-12-23 | 2002-04-16 | Microsoft Corporation | Method, system, and computer program product for modified blending between clip-map tiles |
US6995765B2 (en) | 2001-07-13 | 2006-02-07 | Vicarious Visions, Inc. | System, method, and computer program product for optimization of a scene graph |
EP1495412B1 (en) | 2002-03-22 | 2012-11-28 | Alandro Consulting NY LLC | Scalable high performance 3d graphics |
US7602398B2 (en) | 2005-01-28 | 2009-10-13 | Microsoft Corporation | Decorating surfaces with textures |
TWI267060B (en) | 2005-05-11 | 2006-11-21 | Benq Corp | Display apparatuses, methods and machine-readable storage medium for adjusting display parameter based on display content |
US7283140B2 (en) | 2005-06-21 | 2007-10-16 | Microsoft Corporation | Texture montage |
US7750922B2 (en) | 2006-10-24 | 2010-07-06 | Adobe Systems Incorporated | Transparency group computation on a graphics processing unit |
US9013499B2 (en) | 2007-07-19 | 2015-04-21 | Disney Enterprises, Inc. | Methods and apparatus for multiple texture map storage and filtering including irregular texture maps |
GB2457646B (en) | 2007-10-30 | 2010-03-03 | Imagination Tech Ltd | Method and apparatus for compressing and decompressing data |
US8204338B2 (en) | 2008-02-14 | 2012-06-19 | Microsoft Corporation | Factoring repeated content within and among images |
US9024959B2 (en) * | 2009-12-21 | 2015-05-05 | Intel Corporation | Demand-paged textures |
US8761543B2 (en) | 2011-08-30 | 2014-06-24 | Microsoft Corporation | Image processing using bounds adjustment |
US9710950B2 (en) | 2012-04-27 | 2017-07-18 | Adobe Systems Incorporated | Extensible sprite sheet generation mechanism for declarative data formats and animation sequence formats |
US9286122B2 (en) * | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9349210B2 (en) * | 2012-11-30 | 2016-05-24 | Arm Limited | Methods of and apparatus for using textures in graphics processing systems |
WO2014151796A1 (en) | 2013-03-15 | 2014-09-25 | Robert Bosch Gmbh | System and method for display of a repeating texture stored in a texture atlas |
US9626789B2 (en) | 2013-05-07 | 2017-04-18 | Advanced Micro Devices, Inc. | Implicit texture map parameterization for GPU rendering |
-
2013
- 2013-10-25 US US14/063,970 patent/US9582848B2/en active Active
- 2013-10-30 KR KR1020157014003A patent/KR101732288B1/ko active IP Right Grant
- 2013-10-30 AU AU2013368503A patent/AU2013368503B2/en active Active
- 2013-10-30 CN CN201380062222.XA patent/CN104823215B/zh active Active
- 2013-10-30 WO PCT/US2013/067470 patent/WO2014105264A2/en active Application Filing
- 2013-10-30 EP EP13789935.7A patent/EP2939208B1/en active Active
-
2017
- 2017-02-06 US US15/425,598 patent/US9978115B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1434171A2 (en) * | 1995-08-04 | 2004-06-30 | Microsoft Corporation | Method and system for texture mapping a source image to a destination image |
CN1926558A (zh) * | 2003-08-06 | 2007-03-07 | 兰德马克绘图公司 | 对任意成三角形的表面应用精确三维体纹理的系统和方法 |
CN102831631A (zh) * | 2012-08-23 | 2012-12-19 | 上海创图网络科技发展有限公司 | 一种大规模三维动画的渲染方法及渲染装置 |
Non-Patent Citations (2)
Title |
---|
MMR: An Interactive Massive Model Rendering System Using Geometric And Image-Based Acceleration;Daniel Aliaga等;《1999 Synlposium on interactive 3D Graphics》;19990426;第199-206页 * |
Virtual Texturing with WebGL;SVEN ANDERSSON等;《Chalmers University of Technology-Gothenburg Sweden》;20120131;第2.4、2.5、3.1、3.11.3、3.11.4、3.6、3.8节 * |
Also Published As
Publication number | Publication date |
---|---|
AU2013368503A1 (en) | 2015-04-30 |
US20170148131A1 (en) | 2017-05-25 |
EP2939208A2 (en) | 2015-11-04 |
US20140184606A1 (en) | 2014-07-03 |
WO2014105264A8 (en) | 2015-04-23 |
US9978115B2 (en) | 2018-05-22 |
KR20150080577A (ko) | 2015-07-09 |
AU2013368503B2 (en) | 2016-11-03 |
WO2014105264A3 (en) | 2014-09-18 |
EP2939208B1 (en) | 2021-03-03 |
US9582848B2 (en) | 2017-02-28 |
WO2014105264A2 (en) | 2014-07-03 |
CN104823215A (zh) | 2015-08-05 |
KR101732288B1 (ko) | 2017-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104823215B (zh) | 子画面图形渲染系统 | |
US8149242B2 (en) | Graphics processing apparatus, graphics library module and graphics processing method | |
Lauterbach et al. | Fast BVH construction on GPUs | |
US8269782B2 (en) | Graphics processing apparatus | |
US9355492B2 (en) | System, method, and computer program product for utilizing a wavefront path tracer | |
US11756256B2 (en) | Dedicated ray memory for ray tracing in graphics systems | |
CN111210498B (zh) | 降低多边形网格的细节水平以减少被渲染几何的复杂度 | |
US8384723B2 (en) | Method and system of rendering parallel global illumination | |
EP2698768A2 (en) | Method and apparatus for graphic processing using parallel pipeline | |
KR20140036519A (ko) | 레이 추적의 스케쥴링을 위한 장치 및 방법 | |
Choi et al. | Vivaldi: A domain-specific language for volume processing and visualization on distributed heterogeneous systems | |
US20180005427A1 (en) | Devices and methods for generating elementary geometries | |
JP2021532437A (ja) | 機械学習モデルを改良して局所性を改善させること | |
US9779537B2 (en) | Method and apparatus for ray tracing | |
US10580106B2 (en) | Graphics processing method utilizing predefined render chunks | |
JP5242628B2 (ja) | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 | |
KR102168175B1 (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 | |
Patney | Programmable Graphics Pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |