CN103295257B - 渲染***和方法 - Google Patents
渲染***和方法 Download PDFInfo
- Publication number
- CN103295257B CN103295257B CN201310059861.2A CN201310059861A CN103295257B CN 103295257 B CN103295257 B CN 103295257B CN 201310059861 A CN201310059861 A CN 201310059861A CN 103295257 B CN103295257 B CN 103295257B
- Authority
- CN
- China
- Prior art keywords
- rendering
- context
- rendering context
- access times
- target
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
- 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/14—Display of multiple viewports
-
- 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
- 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/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- 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/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Image Generation (AREA)
Abstract
提供了一种渲染***和方法。所述渲染***可使用存储在内部存储器中的渲染上下文执行渲染。当将被使用的渲染上下文在内部存储器中不可用时,所述渲染***可将将被使用的渲染上下文从外部存储器加载到内部存储器中。当在内部存储器中没有足够量的存储空间可用时,可通过从内部存储器选择性地删除渲染上下文来确保存储空间,并且可将存储在外部存储器中的请求的渲染上下文加载到内部存储器中。
Description
本申请要求于2012年2月27日提交到韩国知识产权局的第10-2012-0019523号韩国专利申请的优先权利益,该申请的公开通过引用合并于此。
技术领域
一个或多个实施例涉及一种渲染***和方法,更具体地说,涉及一种可减少在渲染***和外部存储器之间的数据访问和传输的渲染***和方法。
背景技术
当使用移动装置时,例如,三维(3D)图形数据可被显示用于例如当研究在基于互联网的商店上的可用的产品时提供给用户的用户界面(UI)、电子书(e-book)界面、演示可用的产品和/或各自特征的界面,这仅作为示例。
这样的显示的界面会使用或要求比较快的渲染。可使用基于块(tile)的渲染方法来满足这些要求,其中,将被渲染的图像被分割成多个块,针对每个块确定和渲染将被显示的对象。
根据这种基于块的渲染方案,将第一渲染上下文从外部存储器加载到内部存储器中以渲染各自的第一块,然后将第二渲染上下文从外部存储器加载到内部存储器中以渲染各自的第二块。
然而,当外部存储器和内部存储器之间的带宽比较窄或被导致比较窄时渲染性能下降。因此,本发明人已发现在增强渲染性能中或至少在最小化渲染性能的下降中,外部存储器和内部存储器之间的带宽会是比较重要的因素。
发明内容
在一个或多个实施例中,提供了一种基于图像的多个块的渲染***,所述渲染***包括:确定器,确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;第一更新器,选择性地将所述各个目标渲染上下文从外部存储器加载到内部存储器中;第二更新器,响应于选择性地加载的正用于渲染所述多个块中的每个块的目标渲染上下文,更新所述各个目标渲染上下文的剩余使用次数。
所述各个目标渲染上下文可包括用于渲染与所述各个目标渲染上下文对应的目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个。
确定器可基于块的数量确定所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
第一更新器可确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,并当存储空间被确定为可用时将所述各个目标渲染上下文加载到内部存储器中。当存储空间被确定为不可用时,第一更新器可基于其他渲染上下文的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文,并将所述各个目标渲染上下文加载到内部存储器中。
第一更新器可在所述其他渲染上下文中,选择渲染上下文的剩余使用次数为值“0”的渲染上下文作为将被删除的渲染上下文。第一更新器可在所述其他渲染上下文中,选择具有渲染上下文的最少剩余使用次数的渲染上下文作为将被删除的渲染上下文。
图像的所述多个块可以是被配置为用于产生三维(3D)图形数据的块。
在一个或多个实施例中,提供了一种基于图像的多个块的渲染方法,所述渲染方法包括:确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;选择性地将所述各个目标渲染上下文从外部存储器加载到内部存储器中;响应于选择性地加载的正用于渲染所述多个块中的每个块的目标渲染上下文,更新所述各个目标渲染上下文的剩余使用次数。
所述各个目标渲染上下文可包括用于渲染与所述各个目标渲染上下文对应的目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个。
确定的步骤可包括:基于块的数量确定所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
此方法可包括:确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,并可包括:当存储空间被确定为可用时,将所述各个目标渲染上下文加载到内部存储器中。
此方法可包括:当存储空间被确定为不可用时,基于其他渲染上下文的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文,并可包括:在删除渲染上下文后,将所述各个目标渲染上下文加载到内部存储器中。
删除的步骤可包括:在所述其他渲染上下文中选择渲染上下文的剩余使用次数为值“0”的渲染上下文作为将被删除的渲染上下文。删除的步骤可包括:在所述其他渲染上下文中选择具有渲染上下文的最少剩余使用次数的渲染上下文作为将被删除的渲染上下文。
在此方法中,图像的所述多个块可以是被配置为用于产生三维(3D)图形数据的块。
在一个或多个实施例中,提供了一种基于图像的多个块的渲染方法,所述渲染方法包括:确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;确定在内部存储器中用于将所述各个目标渲染上下文加载到内部存储器中的存储空间是否可用;当存储空间被确定为不可用时,基于其他渲染上下文的确定的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文。
确定总使用次数的步骤可包括:基于块的数量确定所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
此方法可包括:确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,并且可包括:当存储空间被确定为可用时,将所述各个目标渲染上下文加载到内部存储器中。
加载的步骤可包括:在删除渲染上下文后,将所述各个目标渲染上下文加载到内部存储器中。删除的步骤可包括:在所述其他渲染上下文中选择渲染上下文的剩余使用次数为值“0”的渲染上下文作为将被删除的渲染上下文。删除的步骤可包括:在所述其他渲染上下文中选择具有渲染上下文的最少剩余使用次数的渲染上下文作为将被删除的渲染上下文。
在此方法中,图像的所述多个块可以是被配置为用于产生三维(3D)图形数据的块。
根据一个或多个实施例,可有效地使用内部存储器和外部存储器之间的带宽。
根据一个或多个实施例,可减少渲染***加载存储在外部存储器中的渲染上下文的操作的数量。
将在以下的描述中部分阐述一个或多个实施例的另外的方面、特征和/或优点,并且通过描述部分是清楚的,或可通过所述一个或多个实施例的实施被理解。
附图说明
从以下结合附图对一个或多个实施例的描述,这些和/或其他方面将变得清楚和更易于理解,其中:
图1示出根据一个或多个实施例的渲染方法;
图2示出根据一个或多个实施例的设置用于渲染上下文的总使用次数的方法;
图3示出根据一个或多个实施例的设置用于渲染上下文的总使用次数的方法;
图4示出根据一个或多个实施例的渲染方法;
图5示出根据一个或多个实施例的渲染***的配置;
图6示出根据一个或多个实施例的渲染方法。
具体实施方式
现在将详细参考附图中示出的一个或多个实施例,其中,相同的标号始终表示相同的元件。在这方面,可以以许多不同的形式实现本发明的实施例,并且本发明的实施例不应当被解释为限于此处所阐述的实施例,因为在此处讨论的实施例被理解后,此处描述的***、设备和/或方法的各种改变、修改和等同物将被本领域的普通技术人员理解为包括在本发明中。因此,以下通过参照附图仅描述实施例来解释本发明的方面。
图1示出根据一个或多个实施例的渲染方法。
在操作110,渲染***可确定数据的总使用次数,诸如确定光栅器操作信息的使用的总数。这里,这种用于光栅器操作的信息可在操作110被用作数据。根据一个或多个实施例,仅作为示例,用于光栅器操作的信息可包括用于渲染目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个信息。
这里,所述光栅器可诸如通过使用数据结构对目标对象执行操作。在此情况下,仅作为示例,数据结构可包括纹理图像信息、块(tile)信息和场景缓冲器信息。光栅器可使用光栅器状态等对目标对象执行操作。在此情况下,仅作为示例,光栅器状态可包括光栅器设置和片段操作的设置。
目标对象的像素着色器可使用像素着色器操作的信息对目标对象执行操作,所述像素着色器操作的信息包括着色器程序的指针、着色器上下文、着色器程序的变量(即,变化的变量)、统一的变量、像素着色器操作函数和与像素着色器操作的结果对应的片段信息中的至少一个。
这里,仅作为示例,变化的变量可包括位置信息、纹理信息、颜色信息、法线信息、切线信息、副法线信息、视图信息和光线信息中的至少一个。
以下,术语“数据”可结合术语“上下文”被使用。因此,例如,可基于块的数量确定数据的总使用次数,其中,通过所述块显示与所述数据对应的对象。例如,当通过四个块表示与数据对应的对象时,可通过将所述对象划分为四个块来表示所述对象。因此,当渲染四个块中的每个块时,可使用对应的数据。在此情况下,可确定对应的数据的总使用次数为四,注意可使用其它方案。
在操作110,渲染***可确定将被用于执行期望的渲染的数据的剩余使用次数。当在操作110之前不执行数据的渲染时,例如,渲染***可将数据的剩余使用次数设置为与用于渲染多个块的数据的总使用次数相同。
在操作120,渲染***的渲染模块可请求数据来渲染确定的块。
根据一个或多个实施例,数据可被存储在一个或多个外部存储装置中,例如,一个或多个外部存储器。存储在外部存储器中的数据可被加载到一个或多个内部存储装置中,例如,一个或多个内部存储器,然后渲染模块可使用从外部存储器加载到内部存储器中的数据来执行渲染。
在操作121,渲染***可确定请求的数据在内部存储器中是否可用。当对应的数据被用来渲染先前的块时,请求的数据可能已经被加载到了内部存储器中。
当对应的数据在内部存储器中已可用时,在操作122,渲染***可向渲染模块提供对应的数据。
在操作123,渲染***随后可使用对应的数据执行渲染。例如,当数据被用于或已经被用于渲染时,渲染***可将对应的数据的剩余使用次数减去值“1”。
在操作121,当确定请求的数据在内部存储器中不是已可用时,在操作130,例如,当从外部存储器加载请求的数据时,渲染***可确定在内部存储器中用于存储请求的数据的足够大的存储空间是否可用。
当确定用于存储请求的数据的内部存储器的存储空间足够大时,在操作140,渲染***可将请求的数据从外部存储器加载到内部存储器中。在操作122和操作123,渲染***随后可使用加载的数据执行渲染。
当在内部存储器中没有足够的用于存储请求的数据的存储空间时,渲染***可通过删除先前加载到内部存储器中的其他数据(例如,用于先前渲染的数据)的一部分,来确保在内部存储器中的用于请求的数据的存储空间。
根据一个或多个实施例,与在内部存储器中可用的可被确定为相对更可能被用于将来的或接近即将进行的渲染的基于渲染的数据相比,渲染***可选择并删除被确定为相对不太可能被用于将来的或接近即将进行的渲染的其他基于渲染的数据。
根据一个或多个实施例,渲染***可设置并控制全部数据的剩余使用次数,在此情况下,渲染***可将具有最少使用次数的数据确定为不太可能被用于这种将来的或即将进行的渲染的数据,选择最少使用次数的数据,然后删除选择的数据。
在操作150,例如,渲染***可确定请求的数据的剩余使用次数是否小于或等于值“1”。在这个实施例中,当请求的数据的剩余使用次数小于或等于值“1”时,渲染***可确定请求的数据可被用于单次当前操作。在此情况下,在操作170,渲染***可仅将从外部存储器存储的请求的数据提供给渲染模块,并且在内部存储器中不存储所述请求的数据,有效地避开请求的数据在内部存储器中的本地存储,例如,通过不必删除内部存储器当前存储的数据来为新请求的数据腾出空间,来保持在内部存储器中更可能被使用的基于渲染的数据的可用性。
仅作为示例,当请求的数据的剩余使用次数大于值“1”时,渲染***可确定请求的数据将被用于多个操作。在此示例中,请求的数据可被存储在内部存储器中以增强性能。在操作151,渲染***可从在内部存储器中的数据中选择具有最少的数据的剩余使用次数的数据。
在操作160,渲染***可例如通过比较请求的数据的剩余使用次数的数量和选择的数据的剩余使用次数的数量,来比较请求的数据的剩余使用次数和选择的数据的剩余使用次数。当请求的数据的剩余使用次数小于选择的数据的剩余使用次数时,在操作170,渲染***可不将存储在外部存储器中的数据存储在内部存储器中,并可仅向渲染模块提供请求的数据。
当请求的数据的剩余使用次数大于或等于选择的数据的剩余使用次数时,在操作161,渲染***可将从外部存储器请求的数据加载到内部存储器中。
图2示出根据一个或多个实施例的设置渲染上下文的总使用次数的方法,并且图3的示图(a)-(c)示出根据一个或多个实施例的设置渲染上下文的总使用次数的方法。
在操作210,仅作为示例,渲染***可从外部存储器(诸如,一个或多个外部存储器)读取对象、块信息和渲染上下文信息。这里,渲染上下文信息可包括用于渲染对象的纹理信息、位置信息、法线信息和渲染状态信息中的至少一个,注意可使用其它信息。
在操作220,渲染***可计算渲染图像中每个对象与块重叠的部分。根据一个或多个实施例,参照图3的示图(a),渲染***可将渲染图像310划分为多个块311。仅作为示例,图3的示图(a)示出了渲染图像被划分为25个块的示例。渲染图像310可包括至少一个对象,例如,第一对象320和第二对象330。如在图3的示图(a)中示出的,所述至少一个对象可通过至少一个块被显示。
图3的示图(b)示出了计算每个对象与每个块重叠的部分。在这个实施例中,记录在每个块中的数字可指示与每个块重叠的对象的标识号。例如,记录在块中的标识号1可指示第一对象320被显示在对应的块上,并且标识号2可指示第二对象330可被显示在对应的块上。
在操作230,渲染***可在对象与块重叠的区域中将当前块的值设置为开始块。
在操作240,渲染***可确定当前块的值是否对应于对象与块重叠的区域的结束块。当当前块对应于结束块时,在操作210,渲染***可对另一对象执行操作。
当当前块不对应于结束块时,在操作250,渲染***可确定在当前块中的相应对象的渲染上下文是否与先前对象的渲染上下文不同。当渲染上下文相同时,在操作280,渲染***可仅再次使用在内部存储器中(诸如,一个或多个内部存储器)已经可用的先前对象的渲染上下文(诸如,为先前的渲染而先前加载的渲染上下文),从而,相应的渲染上下文的总使用次数可不增加,并且可通过增加当前块的值对另一块执行操作。
当相应对象的渲染上下文与先前对象(诸如,所述先前对象)的渲染上下文不同时,渲染***可将渲染上下文从外部存储器加载到内部存储器中。因此,在操作260,渲染***可相应的渲染上下文的总使用次数加上值“1”。
在操作270,渲染***可将每个渲染上下文的总使用次数存储在外部存储器中。
操作230至280的执行可对应于将在图3的示图(b)中示出的对象的所有的数量相加。(将在图3的示图(b)中示出的对象的所有的数字相加)即,这样的执行可对应于获得在图3的示图(b)中显示每个对象的块的数量。
参照图3的示图(a)和示图(b),仅作为示例,第一对象320可通过八个块被显示,并且第二对象330可通过十四个块被显示,这可被概括在图3的示图(c)中。
图4示出根据一个或多个实施例的渲染方法。
参照第一块的渲染信息410,仅作为示例,四个对象可被显示在第一块中。参照每个对象的渲染信息411、412、413和414,可使用与相应对象匹配的渲染上下文来渲染每个对象。
参照第二块的渲染信息420,三个对象可被显示在第二块中。参照每个对象的渲染信息421、422和423,可使用与相应对象匹配的渲染上下文来渲染每个对象。
在操作460,关于全部渲染上下文的信息可被存储在外部存储器450中。在每个渲染上下文旁边记录的数字可指示每个渲染上下文将被使用的剩余操作的数量。
在操作461,渲染***可将第一渲染上下文加载到内部存储器441中。光栅器431可使用加载的第一渲染上下文来渲染在第一块中的第一对象在此情况下,外部存储器451的第一渲染上下文的剩余使用次数可减少到值“2”。
在操作462,渲染***可将第二渲染上下文加载到内部存储器442中。光栅器432可使用加载的第二渲染上下文来渲染在第一块中的第二对象。在此情况下,外部存储器452的第二渲染上下文的剩余使用次数可减少到值“0”。
在操作463,渲染***可将第三渲染上下文加载到内部存储器443中。光栅器433可使用加载的第三渲染上下文来渲染在第一块中的第三对象。在此情况下,外部存储器453的第三渲染上下文的剩余使用次数可减少到值“8”。
在操作464,渲染***可渲染在第一块中的第四对象。当内部存储器444不具有可用的存储空间时,渲染***可期望加载第四渲染上下文来渲染第四对象。在此情况下,渲染***可删除存储在内部存储器444中的第一渲染上下文、第二渲染上下文和第三渲染上下文中的至少一个。
根据一个或多个实施例,渲染***可基于每个渲染上下文的剩余使用次数在存储于内部存储器444中的渲染上下文中选择至少一个渲染上下文,并删除所述至少一个选择的渲染上下文。
根据一个或多个实施例,渲染***可在存储于内部存储器444中的渲染上下文中选择并删除渲染上下文的剩余使用次数为值“0”的渲染上下文。根据一个或多个实施例,渲染***可在存储于内部存储器444中的渲染上下文中选择并删除具有渲染上下文的最少剩余使用次数的渲染上下文。
参照图4,渲染***可在存储于内部存储器444中的渲染上下文中删除第二渲染上下文。第二渲染上下文的剩余使用次数可对应于值“0”,这在第一渲染上下文、第二渲染上下文和第三渲染上下文中会是最少的。
根据一个或多个实施例,渲染***可将第四渲染上下文加载到通过删除第二渲染上下文确保的存储空间中。光栅器434可使用加载的第四渲染上下文来渲染在第一块中的第四对象。在此情况下,外部存储器454的第四渲染上下文的剩余使用次数可减少到值“16”。
在操作465,光栅器435可使用加载到内部存储器445的第一渲染上下文、第三渲染上下文和第四渲染上下文来渲染在第二块中的第一对象、第三对象和第四对象。在这种情况下,外部存储器455的第一渲染上下文的剩余使用次数可减少到值“1”,第三渲染上下文的剩余使用次数可减少到值“7”,并且第四渲染上下文的剩余使用次数可减少到值“15”。
在操作465,因为用于渲染第二块的全部渲染上下文可已经被加载到存储器(诸如,内部存储器),所以渲染***可不访问外部存储器455,并且可不将渲染上下文从外部存储器加载到内部存储器,而是在不将所述渲染上下文存储在内部存储器中的情况下仅转发所述渲染上下文。因此,从外部存储器至内部存储器的总线可被有效地使用,并且被配置为允许选择是否将请求的渲染上下文存储在内部存储器中。
图5示出根据一个或多个实施例的渲染***的配置。
渲染***500可包括确定器510、第一更新器520、第二更新器530、外部存储器540、内部存储器550和渲染引擎560。
渲染***500可在划分器中划分渲染图像,并对每个块执行渲染。渲染***500可使用渲染上下文来渲染对象。这里,例如,渲染上下文可包括用于渲染目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个。
确定器510可确定用于渲染每个块的目标渲染上下文的总使用次数。根据一个或多个实施例,确定器510可基于在通过划分渲染图像而获得的块中的块数量,来确定目标渲染上下文的总使用次数,其中,通过所述块来显示与目标渲染上下文对应的目标对象。例如,当与目标渲染上下文对应的目标对象通过三个块被显示时,确定器510可确定目标渲染上下文的总使用次数为三。
目标渲染上下文可被存储在外部存储器540中。
第一更新器520可将存储在外部存储器540中的目标渲染上下文加载到内部存储器中,并且渲染引擎560可使用加载到内部存储器中的目标渲染上下文来渲染目标对象。
在图5中,渲染引擎560和内部存储器550被示出为单独的元件硬件。然而,根据一个或多个实施例,渲染引擎560和内部存储器550可被实现为单个硬件的元件,例如,不同于外部存储器的硬件的元件。例如,渲染引擎560可对应于中央处理单元(CPU)的操作器部分,并且内部存储器550可对应于在CPU内的存储器。因此,内部存储器的带宽可比较宽,并且在渲染引擎560和内部存储器550之间的加载速度会比较快,而外部存储器540和CPU之间的带宽和加载速度分别会比较窄和比较慢。
根据一个或多个实施例,第一更新器520可确定在内部存储器550中用于加载目标渲染上下文的足够大的存储空间是否可用,并且当存储空间可用时,将目标渲染上下文加载到内部存储器550中。即,当用于渲染其他对象的其他渲染上下文被加载到内部存储器550中时,在内部存储器550中可能没有足够量的存储空间可用。在此情况下,第一更新器520可能无法将目标渲染上下文加载到内部存储器550中。
第二更新器530可响应于加载到内部存储器550中的正用于渲染每个块的目标渲染上下文,来更新目标渲染上下文的剩余使用次数。即,当目标渲染上下文被初始加载到内部存储器550中时,目标渲染上下文的剩余使用次数可被确定为与目标渲染上下文的总使用次数相同。当目标渲染上下文被用于渲染第一块时,第二更新器530可将目标渲染上下文的剩余使用次数更新为比先前的操作数量小“1”的值。当目标渲染上下文被用于渲染第二片时,第二更新器530可将目标渲染上下文的剩余使用次数更新为比先前的操作数量小“1”的值。在相似方案中,第二更新器530可更新目标渲染上下文的剩余使用次数,直到数量达到值“0”。
根据一个或多个实施例,第一更新器520可基于每个渲染上下文的剩余使用次数,从加载到内部存储器550中的多个渲染上下文中选择将从内部存储器550删除的渲染上下文。
响应于第一更新器520删除选择的渲染上下文,在内部存储器550中可确保用于加载目标渲染上下文的足够大的存储空间。在此情况下,第一更新器520可将目标渲染上下文加载到确保的存储空间中,并且渲染引擎560可使用加载的目标渲染上下文执行渲染。
根据一个或多个实施例,第一更新器520可在存储于内部存储器550中的渲染上下文中选择并删除渲染上下文的剩余使用次数为值“0”的渲染上下文。
根据一个或多个实施例,第一更新器520可在存储于内部存储器550中的渲染上下文中选择并删除具有渲染上下文的最少剩余使用次数的渲染上下文。
图6示出根据一个或多个实施例的渲染方法。
渲染***可在划分器中划分渲染图像,并对每个块执行渲染。渲染***可使用渲染上下文来渲染对象。这里,例如,渲染上下文可包括用于渲染目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个。在操作610,渲染***可确定用于渲染每个块的目标渲染上下文的总使用次数。根据一个或多个实施例,渲染***可基于通过划分渲染图像而获得的块中的块的数量,来确定目标渲染上下文的总使用次数,其中,可通过所述块显示与目标渲染上下文对应的目标对象。
目标渲染上下文可被存储在外部存储器中。
在操作620,渲染***可确定在内部存储器中用于加载目标渲染上下文的足够大的存储空间是否可用。当用于加载目标渲染上下文的足够大的存储空间可用时,在操作640,渲染***可将目标渲染上下文加载到内部存储器中。
当用于渲染其他对象的其他渲染上下文被确定将被加载到内部存储器中时,实际上在内部存储器中可能没有充足的存储空间可用。在此情况下,渲染***可能无法将目标渲染上下文加载到内部存储器中。在此情况下,在操作630,渲染***可在存储于内部存储器中的渲染上下文中选择并删除一部分渲染上下文。
根据一个或多个实施例,渲染***基于每个渲染上下文的使用次数,从加载到内部存储器中的多个渲染上下文中选择并删除将从内部存储器被删除的渲染上下文。
根据一个或多个实施例,渲染***可在加载到内部存储器的多个渲染上下文中选择并删除渲染上下文的剩余使用次数为值“0”的渲染上下文。
根据一个或多个实施例,渲染***可在加载到内部存储器的多个渲染上下文中选择具有渲染上下文的最少剩余使用次数的渲染上下文。
响应于渲染***删除选择的渲染上下文,在内部存储器中可确保用于加载目标渲染上下文的足够大的存储空间。在此情况下,在操作640,渲染***可将目标渲染上下文加载到保证的存储空间中。
在操作650,渲染***可使用加载的目标渲染上下文执行渲染。
在操作660,渲染***可响应于加载到内部存储器中的正用于渲染每个块的目标渲染上下文,更新目标渲染上下文的剩余使用次数。即,当目标渲染上下文被初始加载到内部存储器中时,目标渲染上下文的剩余使用次数可被确定为与目标渲染上下文的总使用次数相同。当目标渲染上下文被用于渲染第一块时,渲染***可将目标渲染上下文的剩余使用次数更新为比先前的操作数量小“1”的值。当目标渲染上下文被用于渲染第二块时,渲染***可将目标渲染上下文的剩余使用次数更新为比先前的操作数量小“1”的值。在类似的方案中,渲染***可更新目标渲染上下文的剩余使用次数,直到数量达到值“0”。
在一个或多个实施例中,这里的任何设备、***、元件或可解释的单元描述包括一个或多个硬件装置或硬件处理元件。例如,在一个或多个实施例中,任何描述的设备、***、元件等还可包括一个或多个存储器和/或处理元件和任何硬件输入/输出传输装置,或代表一个或多个各自处理元件或装置的操作部分/方面。而且,术语设备应该被认为与物理***的元件同义,不限于单个装置或者所有实施例中的附件或体现在单个各自附件中的所有描述的元件,相反地,根据实施例,术语设备被开放以通过不同的硬件元件被共同地或单独地实现在不同的附件和/或位置中。
除了上述实施例,实施例同样可通过在非临时性介质(例如,计算机可读介质)内/上的计算机可读代码/指令来实现,其中,所述计算机可读代码/指令控制至少一个处理装置(例如处理器或计算机)以实现任何上述实施例。介质可与允许计算机可读代码的存储和/或传输的任何定义的、可测量的和有形的结构对应。
例如,介质也可包括例如计算机可读代码、数据文件、数据结构等的组合。计算机可读介质的一个或多个实施例包括:磁介质(诸如硬盘、软盘和磁带);光学介质(诸如CDROM盘和DVD);磁光介质(诸如光盘);被专门配置为存储和执行程序指令的硬件装置(诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。计算机可读代码可包括例如诸如由编译器产生的机器代码,和包含可由计算机使用解释器执行的高级代码的文件。介质也可以是任何定义的、可测量的和有形的分布式网络,以便以分布式方式存储和执行计算机可读代码。此外,仅作为示例,处理元件可包括处理器或计算机处理器,并且处理元件可被分布和/或包括在单个装置中。
仅作为示例,计算机可读介质也可被实现在执行(诸如,像处理器一样处理)程序指令的至少一个特定应用集成电路(ASIC)或现场可编程门阵列(FPGA)。
虽然已经参照本发明的不同的实施例具体地示出和描述本发明的方面,但是应理解,这些实施例应当被认为仅有描述性的意义而非为了限制的目的。在每个实施例内的特征或方面的描述通常应当被认为可用于其余实施例中的其它相似特征或方面。如果描述的设备以不同的顺序执行描述的技术,和/或如果在描述的设备、结构、装置或电路中的部件以不同的方式组合和或被其他的组件或它们的等同物取代或补充,则可同样达到适当的结果。
因此,虽然已经示出并描述一些实施例,另外的实施例同样可用,但是本领域的技术人员将理解在不脱离本发明的原理和精神的情况下可在这些实施例中进行改变,本发明的范围由权利要求及其等同物定义。
Claims (19)
1.一种基于图像的多个块的渲染***,所述渲染***包括:
确定器,确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;
第一更新器,基于第一渲染上下文的剩余使用次数是否大于第二渲染上下文的剩余使用次数,选择性地将第一渲染上下文从外部存储器加载到内部存储器中;
第二更新器,响应于选择性地加载的正用于渲染所述多个块中的每个块的目标渲染上下文,更新所述各个目标渲染上下文的剩余使用次数,
其中,在执行渲染之前,渲染上下文的剩余使用次数等于渲染上下文的总使用次数,
其中,第一渲染上下文是向外部存储器请求的存储在外部存储器中的渲染上下文,第二渲染上下文是存储在内部存储器中的具有最少的剩余使用次数的渲染上下文。
2.如权利要求1所述的渲染***,其中,所述各个目标渲染上下文包括用于渲染与所述各个目标渲染上下文对应的目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个信息。
3.如权利要求1所述的渲染***,其中,确定器基于块的数量确定所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
4.如权利要求1所述的渲染***,其中,第一更新器确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,并且当存储空间被确定为可用时,将所述各个目标渲染上下文加载到内部存储器中。
5.如权利要求4所述的渲染***,其中,当存储空间被确定为不可用时,第一更新器基于其他渲染上下文的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文,并将所述各个目标渲染上下文加载到内部存储器中。
6.如权利要求5所述的渲染***,其中,第一更新器在所述其他渲染上下文中选择渲染上下文的剩余使用次数为值“0”的渲染上下文作为将被删除的渲染上下文。
7.如权利要求5所述的渲染***,其中,第一更新器在所述其他渲染上下文中选择具有渲染上下文的最少剩余使用次数的渲染上下文作为将被删除的渲染上下文。
8.如权利要求1所述的渲染***,其中,图像的所述多个块是被配置为用于产生三维(3D)图形数据的块。
9.一种基于图像的多个块的渲染方法,所述渲染方法包括:
确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;
基于第一渲染上下文的剩余使用次数是否大于第二渲染上下文的剩余使用次数,选择性地将第一渲染上下文从外部存储器加载到内部存储器中;
响应于选择性地加载的正用于渲染所述多个块中的每个块的目标渲染上下文,更新所述各个目标渲染上下文的剩余使用次数,
其中,在执行渲染之前,渲染上下文的剩余使用次数等于渲染上下文的总使用次数,
其中,第一渲染上下文是向外部存储器请求的存储在外部存储器中的渲染上下文,第二渲染上下文是存储在内部存储器中的具有最少的剩余使用次数的渲染上下文。
10.如权利要求9所述的渲染方法,其中,所述各个目标渲染上下文包括用于渲染与所述各个目标渲染上下文对应的目标对象的纹理信息、用于目标对象的像素着色器操作的信息和目标对象的光栅器的状态信息中的至少一个。
11.如权利要求9所述的渲染方法,其中,确定的步骤包括:基于块的数量确定所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
12.如权利要求9所述的渲染方法,还包括:
确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,
其中,加载的步骤包括:当存储空间被确定为可用时,将所述各个目标渲染上下文加载到内部存储器中。
13.如权利要求12所述的渲染方法,还包括:
当存储空间被确定为不可用时,基于其他渲染上下文的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文,
其中,加载的步骤包括:在删除渲染上下文后,将所述各个目标渲染上下文加载到内部存储器中。
14.如权利要求13所述的渲染方法,其中,删除的步骤包括:在所述其他渲染上下文中,选择渲染上下文的剩余使用次数为值“0”的渲染上下文作为将被删除的渲染上下文。
15.如权利要求13所述的渲染方法,其中,删除的步骤包括:在所述其他渲染上下文中,选择具有渲染上下文的最少剩余使用次数的渲染上下文作为将被删除的渲染上下文。
16.如权利要求9所述的渲染方法,其中,图像的所述多个块是被配置为用于产生三维(3D)图形数据的块。
17.一种基于图像的多个块的渲染方法,所述渲染方法包括:
确定用于渲染所述多个块中的每个块的各个目标渲染上下文的总使用次数;
确定在内部存储器中用于将所述各个目标渲染上下文加载到内部存储器中的存储空间是否可用;
基于第一渲染上下文的剩余使用次数是否大于第二渲染上下文的剩余使用次数,将第一渲染上下文从外部存储器加载到内部存储器中;
当存储空间被确定为不可用时,基于其他渲染上下文的确定的剩余使用次数,其中,所述其他渲染上下文存储于内部存储器中,从内部存储器在所述其他渲染上下文中选择并删除渲染上下文,
其中,在执行渲染之前,渲染上下文的剩余使用次数等于渲染上下文的总使用次数,
其中,第一渲染上下文是向外部存储器请求的存储在外部存储器中的渲染上下文,第二渲染上下文是存储在内部存储器中的具有最少的剩余使用次数的渲染上下文。
18.如权利要求17所述的渲染方法,其中,确定总使用次数的步骤包括:基于块的数量确定的所述各个目标渲染上下文的总使用次数,其中,通过所述块显示与所述各个目标渲染上下文对应的目标对象。
19.如权利要求17所述的渲染方法,还包括:
确定在内部存储器中用于加载所述各个目标渲染上下文的足够大的存储空间是否可用,
其中,加载的步骤包括:当存储空间被确定为可用时,将所述各个目标渲染上下文加载到内部存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0019523 | 2012-02-27 | ||
KR1020120019523A KR101953133B1 (ko) | 2012-02-27 | 2012-02-27 | 렌더링 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103295257A CN103295257A (zh) | 2013-09-11 |
CN103295257B true CN103295257B (zh) | 2017-11-14 |
Family
ID=49002347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310059861.2A Expired - Fee Related CN103295257B (zh) | 2012-02-27 | 2013-02-26 | 渲染***和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9805502B2 (zh) |
JP (1) | JP6170690B2 (zh) |
KR (1) | KR101953133B1 (zh) |
CN (1) | CN103295257B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150378920A1 (en) * | 2014-06-30 | 2015-12-31 | John G. Gierach | Graphics data pre-fetcher for last level caches |
CN105469354A (zh) * | 2014-08-25 | 2016-04-06 | 超威半导体公司 | 图形处理方法、***和设备 |
EP3311601B1 (en) * | 2015-06-16 | 2018-10-17 | Philips Lighting Holding B.V. | Electronic network device |
US10269154B2 (en) * | 2015-12-21 | 2019-04-23 | Intel Corporation | Rasterization based on partial spans |
CN107491289B (zh) * | 2016-06-12 | 2023-01-24 | 阿里巴巴(中国)有限公司 | 一种窗口渲染方法及装置 |
KR102637736B1 (ko) | 2017-01-04 | 2024-02-19 | 삼성전자주식회사 | 그래픽스 처리 방법 및 시스템 |
CN109260708B (zh) * | 2018-08-24 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 地图渲染方法、装置以及计算机设备 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430841A (en) | 1992-10-29 | 1995-07-04 | International Business Machines Corporation | Context management in a graphics system |
US6819321B1 (en) | 2000-03-31 | 2004-11-16 | Intel Corporation | Method and apparatus for processing 2D operations in a tiled graphics architecture |
TW531706B (en) | 2000-07-20 | 2003-05-11 | Ibm | Method and apparatus in a data processing system for dynamic graphics context switching |
GB2378108B (en) * | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
JP2003132347A (ja) | 2001-10-26 | 2003-05-09 | Sony Corp | 画像処理装置 |
US6738069B2 (en) | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
US6985150B2 (en) | 2003-03-31 | 2006-01-10 | Sun Microsystems, Inc. | Accelerator control unit configured to manage multiple hardware contexts |
JP4211760B2 (ja) * | 2005-05-26 | 2009-01-21 | コニカミノルタビジネステクノロジーズ株式会社 | 情報処理装置およびその管理方法ならびにコンピュータプログラム |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
KR100762811B1 (ko) | 2006-07-20 | 2007-10-02 | 삼성전자주식회사 | 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템 |
KR100793990B1 (ko) | 2006-09-18 | 2008-01-16 | 삼성전자주식회사 | 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템 |
US20090046098A1 (en) | 2007-08-14 | 2009-02-19 | Stmicroelectronics S.R.L. | Primitive binning method for tile-based rendering |
CN101127125A (zh) | 2007-09-26 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及*** |
US8040349B1 (en) * | 2007-12-04 | 2011-10-18 | Nvidia Corporation | System and method for structuring an A-buffer |
GB2461900B (en) | 2008-07-16 | 2012-11-07 | Advanced Risc Mach Ltd | Monitoring graphics processing |
US8368701B2 (en) | 2008-11-06 | 2013-02-05 | Via Technologies, Inc. | Metaprocessor for GPU control and synchronization in a multiprocessor environment |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US8379728B2 (en) * | 2009-04-17 | 2013-02-19 | Texas Instruments Incorporated | Adaptive real-time video prediction mode method and computer-readable medium and processor for storage and execution thereof |
JP2011051141A (ja) | 2009-08-31 | 2011-03-17 | Ricoh Co Ltd | 画像形成装置、画像処理方法及び制御プログラム |
KR101609266B1 (ko) | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | 타일 기반의 랜더링 장치 및 방법 |
JP5524584B2 (ja) * | 2009-11-20 | 2014-06-18 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
EP2517169A4 (en) * | 2009-12-23 | 2017-10-18 | Intel Corporation | Image processing techniques |
US8619085B2 (en) | 2010-03-08 | 2013-12-31 | Broadcom Corporation | Method and system for compressing tile lists used for 3D rendering |
JP5115768B2 (ja) | 2010-04-14 | 2013-01-09 | Necシステムテクノロジー株式会社 | 画像描画装置、画像描画方法およびプログラム |
-
2012
- 2012-02-27 KR KR1020120019523A patent/KR101953133B1/ko active IP Right Grant
- 2012-12-27 US US13/728,408 patent/US9805502B2/en active Active
-
2013
- 2013-02-26 CN CN201310059861.2A patent/CN103295257B/zh not_active Expired - Fee Related
- 2013-02-26 JP JP2013035983A patent/JP6170690B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9805502B2 (en) | 2017-10-31 |
US20130222379A1 (en) | 2013-08-29 |
KR20130097886A (ko) | 2013-09-04 |
KR101953133B1 (ko) | 2019-05-22 |
JP2013175191A (ja) | 2013-09-05 |
JP6170690B2 (ja) | 2017-07-26 |
CN103295257A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103295257B (zh) | 渲染***和方法 | |
US8526763B2 (en) | Seamless image composition | |
US8629886B2 (en) | Layer combination in a surface composition system | |
US9305403B2 (en) | Creation of a playable scene with an authoring system | |
US9672654B2 (en) | Method and apparatus for accelerating ray tracing | |
KR20140105609A (ko) | 온라인 게이밍 | |
KR102547879B1 (ko) | z-컬링 후 중첩 단편들 식별 또는 제거 | |
US8869051B2 (en) | Systems and methods for using separate editing applications from within electronic content creation applications while preventing data loss | |
JP2017530444A (ja) | グラフィックス処理におけるレンダリング対象コマンドの並べ替え | |
CN106251391A (zh) | 细分方法 | |
US9886735B2 (en) | Hybrid engine for central processing unit and graphics processor | |
CN109716324A (zh) | 存储器内数据库中的直接表关联 | |
US10796483B2 (en) | Identifying primitives in input index stream | |
US10409456B2 (en) | Dynamically changing a 3D object into an interactive 3D menu | |
CN106502662A (zh) | 用于智能操作***的多区域图形绘制方法及装置 | |
US20160078671A1 (en) | Render-Time Linking of Shaders | |
US11157551B2 (en) | Method and device for image loading | |
CN112587921A (zh) | 模型处理方法和装置、电子设备和存储介质 | |
US9704290B2 (en) | Deep image identifiers | |
US20130063453A1 (en) | Reordering graph execution for processing optimization | |
JP6981753B2 (ja) | 複数のグラフィックカードの管理 | |
US20150317253A1 (en) | Image processing apparatus, method of controlling the same, program and storage medium | |
Arbelaiz et al. | Volume visualization tools for medical applications in ubiquitous platforms | |
CN109949394A (zh) | 渲染任务处理时间的生成方法及装置 | |
US11410357B2 (en) | Pixel-based techniques for combining vector graphics shapes |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171114 |