CN101097630B - 纹理图像管理系统与方法 - Google Patents
纹理图像管理系统与方法 Download PDFInfo
- Publication number
- CN101097630B CN101097630B CN2006101694867A CN200610169486A CN101097630B CN 101097630 B CN101097630 B CN 101097630B CN 2006101694867 A CN2006101694867 A CN 2006101694867A CN 200610169486 A CN200610169486 A CN 200610169486A CN 101097630 B CN101097630 B CN 101097630B
- Authority
- CN
- China
- Prior art keywords
- area
- read
- texture image
- write
- zones
- 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
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/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种纹理图像管理系统与方法。所述纹理图像管理方法包括下列步骤:从不可写入存储器装置取得一个纹理图像,并将所接收到的纹理图像直接加入一个片段;另外,纹理图像管理系统由一三维绘图引擎来执行,该系统包括:一存储器装置,一处理器,耦接于所述存储器装置,所述三维绘图引擎从一应用程序接收一信息,该信息指出纹理图像储存于一第一区域,决定存储器装置的第一区域是否为一只读区域或一读写区域,并使得从第一区域所撷取的纹理图像被应用于一片段。通过本发明,可以从不可写入存储器装置取得一个纹理图像,将所接收到的纹理图像直接应用于一片段。
Description
技术领域
此发明关于一种计算机绘图技术,特别关于一种纹理图像管理的系统与方法。
背景技术
三维计算机绘图使用一个绘图管道(graphics pipeline),将一个三维情景转换为一个二维图像。其中,于像素着色阶段(pixel shading stage)时,会将多个纹理图像加入至片段(fragments)中。
发明内容
本发明提供一种纹理图像管理方法。纹理图像管理方法的一个实施例包括下列步骤:从不可写入存储器装置取得一个纹理图像,将所接收到的纹理图像直接应用于片段。
纹理图像管理方法的一个实施例,包括下列步骤:从应用程序接收信息,该信息指出纹理图像储存于存储器装置的第一区域;决定存储器装置的第一区域是否为只读区域或读写区域;当决定存储器装置的第一区域为只读区域时,产生相应于所指出的纹理图像的只读属性,来指出纹理图像储存于只读区域,从而使得从第一区域所撷取的纹理图像被应用于一片段;
以及当决定所述存储器装置的第一区域为所述读写区域时,产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述读写区域;并配置一可写入存储器装置的一第二区域;从所述第一区域撷取所述纹理图像储存至所述第二区域,从而使得从所述第二区域所撷取的纹理图像被应用于一片段。
其中,所述只读区域位于一不可写入存储器装置的一区域;
所述只读区域由所述应用程序所管理并避免数据写入。
其中储存于所述第二区域的数据不能被修改,直到所述第二区域被释放为止。
其中,所述决定的步骤进一步包括:
通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息;
当所取得的信息指出所述第一区域为所述只读区域时,决定所述存储器装置的第一区域为所述只读区域;
当所取得的信息指出所述第一区域为所述读写区域时,决定所述存储器装置的第一区域为所述读写区域。
此外,所述决定的步骤进一步包括:
执行一测试程序;
根据由所述测试程序所产生的一测试结果来决定所述存储器装置的第一区域是否为所述只读区域或所述读写区域。
另外,所述测试程序用以写入数据至所述存储器装置的第一区域,所述方法还包括:
当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第一区域为所述只读区域;
当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第一区域为所述读写区域。
此外,所述决定的步骤进一步包括:
取得储存于相应于所述应用程序的一执行文件中的一存储器图像;
当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述只读区域;
当从所述存储器图像检测到具有一读写属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述读写区域。
本发明还提供一种纹理图像管理系统。纹理图像管理系统的一个实施例包括用于从一应用程序接收一信息的装置,所述信息指出一纹理图像储存于一存储器装置的一第一区域;
用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置;
当决定所述存储器装置的第一区域为所述只读区域时,用于产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述只读区域,从而使得从所述第一区域所撷取的纹理图像被应用于一片段的装置;
以及
当决定所述存储器装置的第一区域为所述读写区域时,用于产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述读写区域,并配置一可写入存储器装置的一第二区域,从所述第一区域撷取所述纹理图像储存至所述第二区域,从而使得从所述第二区域所撷取的纹理图像被应用于一片段的装置。
其中,所述只读区域位于一不可写入存储器装置的一区域。
所述只读区域由所述应用程序所管理并避免数据写入。
储存于所述第二区域的数据不能被修改直到所述第二区域被释放为止。
在所述的纹理图像管理系统中,所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息,当所取得的信息指出所述第一区域为只读区域时,决定所述存储器装置的第一区域为所述只读区域,以及当所取得的信息指出所述第一区域为读写区域时,决定所述存储器装置的第一区域为所述读写区域。
所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于执行一测试程序以及根据由所述测试程序所产生的一测试结果来决定所述存储器装置的第一区域是否为所述只读区域或读写区域。
所述测试程序用以写入数据至所述存储器装置的第一区域,并且当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第一区域为只读区域,以及当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第一区域为读写区域。
所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于取得储存于相应于所述应用程序的一执行文件中的一存储器图像,当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的第一区域为只读区域,以及当从所述存储器图像检测到具有一读写属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的第一区域为读写区域。综上所述,本发明可以从不可写入存储器装置取得一个纹理图像,将所接收到的纹理图像直接应用于片段。
附图说明
图1为依据本发明实施例的三维绘图引擎;
图2为依据本发明实施例的纹理图像管理方法流程图;
图3A为依据本发明实施例的纹理图像管理方法流程图;
图3B为范例的可写入存储器装置示意图;
图4为范例的应用于移动电子装置的硬件环境示意图;
图5为依据本发明实施例的纹理图像管理方法流程图;
图6为范例的存储器地图的取得示意图;
图7为范例状态获取的示意图;
图8为实施例的由三维绘图引擎所执行的测试程序的流程图;
图9为实施例的存储器图像示意图;
图10为实施例的纹理图像管理的方法流程图;
图11为实施例的纹理图像管理的方法流程图。
主要元件符号说明:
1100:应用程序; 1200:三维绘图引擎;
1210:接口/前置处理阶段;
1220:顶点处理阶段; 1230:裁剪阶段;
1240:片段设置与像素化阶段;
1250:遮挡剔除阶段; 1260:参数内插阶段;
1270:像素着色阶段; 1280:像素引擎;
1290:画面缓冲区控制器;
1300:显示装置; 2000:纹理图像;
S210、S230、S250、S270、S290:方法步骤;
S310、S330、S350、S370、S390:方法步骤;
M300:可写入存储器装置;
R31:由应用程序所管理的区域;
R33:由三维绘图引擎所管理的区域;
400:移动电子装置; 4301:通讯系统;
4302:可写入存储器装置;
4303:不可写入存储器装置;
4304:天线; 4305:处理器;
4306:三维图形绘制单元; 4307:显示装置;
S510、S531、....、S593、S595:方法步骤;
6100:三维绘图引擎; 6300:应用程序;
6500:存储器地图; 6300a:功能;
F61:区域识别码; F63:地址范围;
F65:只读旗标; 7100:三维绘图引擎;
7100a:指令; 7300:应用程序;
7300a:指令;
S810、S830、S851、S853、S855、S857:方法步骤;
R1、R2:区域;
011、012、013、021:输出段;
I111、I112、I121、I131、I132、I211、I212、I213:输入段;
S910、S930、....、S971、S973:方法步骤;
S1110、S1130:方法步骤。
具体实施方式
以下结合附图对本发明进行详细说明。
三维计算机绘图使用一个绘图管道(graphics pipeline),将一个三维情景转换为一个二维图像。图1为依据本发明实施例的三维绘图引擎1200,包含一个管道中的数个阶段,诸如接口/前置处理(interface/front end)1210、顶点处理(vertex processing)1220、裁剪(clipping)1230、片段设置与像素化(fragments setup and rasterization)1240、遮挡剔除(occlusionculling)1250、参数内插(parameter interpolation)1260、像素着色(pixelshading)1270与像素引擎(pixel engine)1280等阶段。这些阶段负责处理一开始所提供的端点(顶点)属性或几何原始数据(geometric primitives)的控制点的信息,这些信息描述描绘的内容。三维图形的几何原始数据通常包含线与片段(fragments)。每一个顶点所提供的属性类型包含x-y-z坐标、RGB值、透明度(translucency)、纹理(texture)、反射性(reflectivity)及类似的特性。于绘图处理器中,这些阶段可并行处理。
接口/前置处理阶段1210为应用程序的一个接口,这些应用程序诸如移动电子装置提供的人机接口(man-machine interface)、游戏控制或动画应用程序等,用以传送或接收数据与命令。顶点处理阶段1220将每一个顶点转换至一个二维画面的位置,并可进行投影以决定其颜色。可程序化的顶点着色器(vertex shader)使得应用程序1100可执行客制的效果转换,诸如扭曲形状等。裁剪阶段1230移除二维画面中无法显示的部分图像,诸如物体的背面。片段设置阶段1240搜集顶点并将之转换为片段,并且提供用以让后续阶段可准确产生关联于转换后的片段的每一个像素属性的信息。像素化阶段1240于片段中填满像素。遮挡剔除阶段1250于二维画面中剔除被其它对象所遮住的像素。参数内插阶段1260根据色彩、雾化系数、纹理等等,计算每一个像素的值。像素着色阶段1270将纹理图像2000加入到片段的最终颜色上。一个纹理图像由多个纹理像素(也称为纹理成分)构成。可程序化的像素着色器(pixel shader),也称为片段着色器(fragment shader),使得应用程序1100可以使用者定义的方式,将片段的属性(如色彩、深度与二维画面的位置)与纹理图像中的纹理像素(texels)的属性合并起来,以产生客制的着色效果。像素引擎1280使用数学运算将最终的片段色彩、覆盖范围与透明度合并至画面缓冲区中的相应二维位置的现存数据,用以产生最终欲储存至此位置的色彩。每一个像素的输出为深度(Z)值。画面缓冲区控制器1290为实际的存储器装置的接口,用以保留显示于显示装置1300上的实际像素值,显示装置可为彩色超扭曲向列型(color super twisted nematic,CSTN)显示器、薄膜晶体管液晶显示器(thin film transistor-liquid crystal display,TFT-LCD)、有机发光二极管(organic light-emitting diode,OLED)显示器等。画面缓冲区存储器还可储存绘图命令、纹理图像2000以及关联于每一个像素的其它属性。纹理图像管理系统与方法则可有效管理这些纹理图像2000。
图2为依据本发明实施例的纹理图像管理方法流程图,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行,这些绘图引擎为发明人所熟悉并用以管理纹理图像。此流程图并非用以决定是否具可专利性的现有技术,而仅用以显示发明人所发觉的问题。如步骤S210,从应用程序接收信息,该信息指出纹理图像被储存于可写入存储器装置的特定区域,例如运用两个指针分别指出特定区域的开始及结束地址。该信息可通过接口所接收。现有的接口例如于2003年10月30日所建立的规格″OpenGL Graphics System:ASpecifications(Version 1.5)”的3.8.1节所提出的″Textlmage3D”接口。于较糟的情况下,原本储存纹理图像的可写入存储器装置的特定区域,于步骤S210之后被应用程序所释放,将导致纹理图像被其它数据所取代。如步骤S230,储存所接收到的信息。如步骤S250,接收指出一个应用程序已激活绘图管道(参考图1)的命令。如步骤S270,根据所储存的信息,从可写入存储器装置所指示的区域获取数据,用以取得纹理图像并且接着执行如上所述的像素着色作业(pixel shading,如图1的1270)。如步骤S290,由于纹理图像已被其它数据所取代,导致非预期结果。
图3A为依据本发明实施例的纹理图像管理方法流程图,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行,这些绘图引擎为发明人所熟悉并用以管理纹理图像。如步骤S310,从应用程序接收信息,该信息指出纹理图像被储存于可写入存储器装置的第一区域,例如运用两个指针分别指出第一区域的开始及结束地址。如步骤S330,根据所接收到的信息,将纹理图像从第一区域复制到可写入存储器装置的第二区域,其中第二区域是由三维绘图引擎所管理并且不能被应用程序所释放。图3B为范例的可写入存储器装置M300示意图。储存于由应用程序所管理的区域R31的纹理图像被复制至由三维绘图引擎所管理的区域R33。如步骤S350,接收指出一个应用程序已激活绘图管道(参考图1)的命令。如步骤S370,从可写入存储器装置的第二区域获取数据,来取得纹理图像。如步骤S390,通过使用所取得的纹理图像成功地执行像素着色作业(如图1的1270)。可了解的是,当可写入存储器装置的第一区域被释放时,由于第二区域中仍存有纹理图像,因此并不会于像素着色作业期间产生非预期的结果(如图2的步骤S290所示)。通常纹理图像以红绿蓝+Alpha通道(Red Green Blue+Alpha,RGBA)格式储存,用以有效率地存取,但却会于像素着色作业阶段耗费庞大储存空间。例如,RGBA格式的四个256x256纹理图像需要1,048,576位(约1M位)的储存空间。但是,可写入存储器装置,尤其是配置于移动电子装置时,是昂贵而且稀少的。因此,当储存纹理图像时,必须要减少复制运算次数及使用可写入存储器装置的储存空间。
本发明提供一种纹理图像管理的方法,使用于移动电子装置,例如移动电话等等。图4为范例的应用于移动电子装置400的硬件环境示意图,主要包括通讯系统4301、可写入存储器装置4302、不可写入存储器装置4303、天线4304、处理器4305、三维图形绘制单元4306及显示装置4307。当连接至蜂窝式网络时,例如全球移动通讯系统(Global System For MobileCommunication,GSM)、通用分组无线业务(General Packet Radio Service,GPRS)、GSM演化的增强型数据速率(Enhanced Data Rates For GSM Evolution,EDGE)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CDMA,WCDMA)、电路交换数据服务(Circuit Switched Data,CSD)网络等,通讯系统4301,例如GSM、GPRS、EDGE、CDMA、WCDMA、CSD系统等,通过天线4304与其它远程移动电子装置进行通讯。处理器4305通过各式各样的总线架构耦接于可写入存储器装置4302、不可写入存储器装置4303、三维图形绘制单元4306及显示装置4307。显示装置4307可为彩色超级扭曲式(color super-twisted nematic,CSTN)显示器、薄膜晶体管液晶显示器(thin film transistor-liquid crystal display,TFT-LCD)、有机发光二极管(organic light-emitting diode,OLED)显示器等等。不可写入存储器装置4303可为只读存储器(ROM)、NOR型闪存等等。可写入存储器装置4302可为动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、NAND型闪存(NAND flashmemory)等等。纹理图像可储存于可写入存储器装置4302或不可写入存储器装置4303。所储存的纹理图像可以压缩格式来编码以减少储存空间,并且,当进行像素着色作业阶段时,解码成未压缩格式,例如RGBA。使用如所述的可程序化顶点着色作业单元(programmable vertex shader)、像素着色作业单元(pixel shader)等韧体与三维图形绘制单元4306的硬件电路,提供将三维空间景像转换为二维图像的能力。三维绘图绘制单元4306于较佳的情况下包括纹理图像解码逻辑,用以将压缩的纹理图像解码为未压缩的纹理图像。
由游戏控制应用程序、人机接口等应用程序所驱动的三维绘图引擎主要用以将三维空间景像转换为欲显示的二维图像。于所述的像素着色作业阶段,三维绘图引擎(于较佳的情况下配备有上述的可程序化像素着色作业单元)从可写入存储器装置4302或不可写入存储器装置4303取得纹理图像,传送所取得的纹理图像至三维图形绘制单元4306,让三维图形绘制单元4306将所接收到的纹理图像加入至相关的片段。显示装置4307最后取得由三维图形绘制单元4306所产生的二维图像,并且驱动显示装置4307来显示所取得的二维图像。可了解的是,三维绘图引擎、应用程序及可程序化像素着色作业单元由处理器4305所执行。
图5为依据本发明实施例的纹理图像管理方法流程图,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行。如步骤S510,从应用程序接收信息,该信息指出纹理图像被储存于存储器装置的第一区域,例如运用两个指针分别指出第一区域的开始及结束地址。存储器装置可为可写入存储器装置(如图4的4302)或不可写入存储器装置(如图4的4303)。如步骤S531,决定可写入存储器装置的第二区域是否已被配置来储存前一个纹理图像,并且相应于前一个纹理图像的只读属性为″伪”。若是,流程进行至步骤S533,若否,至步骤S550。需注意的是,前一个纹理图像可被应用于先前的像素着色作业的特定片段。如步骤S533,释放可写入存储器装置所配置的第二区域,使得其它数据得以被储存于此区域。
如步骤S550,决定是否存储器装置的第一区域为只读区域,并且所指示的纹理图像并不需要软件的解码。若是,流程执行步骤S570,若否,执行步骤S591至S595。当存储器装置的第一区域为只读区域时,代表修改或删除储存于该第一区域的数据是不被允许的,因此,所指示的纹理图像能确保不受损害。举例来说,只读区域位于不可写入存储器装置,或由应用程序所管理的区域,可以避免数据写入。当所指示的纹理图像为未压缩图像,或三维图形绘制单元(如图4的4306)中包括硬件电路,可用来解码经压缩后的纹理图像时,则代表所指示的纹理图像不需要通过软件来解码。可了解的是,当所指示的纹理图像需要软件的解码时,可写入存储器装置必须预备储存空间,用以储存解码的结果。于一些实施例中,可省略步骤S531、S533及S593,并且步骤S595可修改为储存所指示的纹理图像于可写入存储器装置的第二区域,用以减少第三区域的额外存储器空间配置。
以下举出用于只读区域决定的四种方法。于第一种方法中,应用程序可运用特定应用程序可编程接口(application programmable interface,API)来实作存储器地图取得功能,用以与三维绘图引擎进行沟通,使得三维绘图引擎可通过所提供的应用程序可编程接口取得由应用程序所产生的存储器地图。可了解的是,存储器地图取得功能由处理器(如图4的4305)所执行。图6为范例的存储器地图的取得示意图。三维绘图引擎(如6100)可发出所提供API的功能呼叫,例如MemMap(),接着,存储器地图取得功能(如6300a)回复由应用程序(如6300)所管理的特定存储器地图(如6500)。存储器地图包括指出存储器装置(如图4的4302、4303或以上两者)的特定区域已被应用程序组态为只读区域或读写区域的信息。举例来说,存储器地图6500包括相应于存储器装置中的四个区域的四个记录的信息,每一个记录包括区域识别码F61、地址范围F63及只读旗标F65。当只读旗标为″真”时,表示相应的地址范围为只读区域,若否,为读写区域。通过决定相应于所指示的纹理图像的只读旗标是否为″真”,可决定出所指示的纹理图像是否位于只读区域。举例来说,参考图5的步骤S510,当第一区域储存所指示的纹理图像的范围介于0xA600及0xA6FF之间时,通过查询存储器地图6500所提供的信息,决定出存储器装置的第一区域为只读区域。
于第二种方法中,应用程序可宣告一个全局变量(global variable),选择性地设定为″真”或″伪”,用以与三维绘图引擎沟通,让三维绘图引擎能通过取得此全局变量来获得相应于所指示的纹理图像的一个状态。可了解的是,应用程序与三维绘图引擎两者皆可取得此全局变量中所设定的值。图7为范例的取得状态示意图。应用程序可宣告一个全局变量″TexImageInR0”,并且通过指令7300a设定全局变量为″真”,用以告知三维绘图引擎所指示的纹理图像已储存于只读区域。此后,三维绘图引擎可通过指令7100a来取得全局变量的值,并且决定所检索的值为″真”。因此,参考图5的步骤S510,当检测出″真”的值,决定存储器装置的第一区域为只读区域。
于第三种方法中,三维绘图引擎(如图4的4305)执行测试程序以取得测试结果,接着,根据所取得的测试结果决定存储器装置的第一区域是否为只读区域。图8为实施例的由三维绘图引擎所执行的测试程序的流程图。如步骤S810,从第一区域的一个字节备份(也就是取得)第一数据。如步骤S830,写入第二数据于第一区域中的先前备份的字节。如步骤S851,决定是否已成功地写入第二数据。若是,流程进行至步骤S853及S855,若否,至步骤S857。例如,当接收到一个错误信息指出数据写入失败时,或当检测到储存于第一区域中的备份字节的数据并非第二数据时,决定第二数据未成功地写入。如步骤S853,决定第一区域为读写区域。如步骤S855,将第一数据再回复于第一区域中的备份字节。于较佳的情况下,于步骤S830,第二数据为第一数据与″0xFF”进行异或(X0R)操作处理而成,接着,当于步骤S855回复第一区域中的备份字节时,第一数据与″0xFF”进行XOR操作,用以回复于第二数据。如步骤S857,决定第一区域为只读区域。
于第四种方法中,三维绘图引擎(如图4的4305)根据存储器图像决定存储器装置的第一区域是否为只读区域,于较佳的情况下,此存储器图像储存于相应于应用程序的可执行文件。相应于应用程序的可执行文件由诸如ARM(Advanced RISC Machine)连接器(linker)的连接器产生。图9为实施例的存储器图像示意图。存储器图像可由图像、区域、输出段与输入段的阶层式架构组织而成。一个图像由一或多个区域所组成,例如R1与R2。每一个区域由一或多个输出段组成,例如011、012、013与021。每一输出段包含一或多个输入段,例如I111、I112、I121、I131、I132、I211、I212与I213。输入段中包括目标档案中的程序代码与数据信息。输入段包含程序代码或初始化数据,或描述于图像能执行前的无初始化或设为零的存储器的片段数据。输入段能有许多属性,只读、读写、或零-初始化(Zero-Initialized,ZI)。输出段为输入段拥有相同只读、读写、或零-初始属性的输入段连续序列。输出段如同其所构成的输入段拥有相同的属性。因此,通过检查第一区域的相应的属性能决定出存储器装置的第一区域的属性。具体而言,可通过执行一指令来取得指出所有输入或输出段为只读区域的信息,例如″unsigned intRO_Base_Address=Image$$R0$$Base”,并且决定第一区域是否位于所取得的输入或输出段中的一者。若是,决定第一区域为只读区域,若否,第一区域为读写区域。存储器图像的规格可参考于2001年所建立的ARM DeveloperSuite(Version 1.2)中的第4.1节。
参考图5,如步骤S570,将相应于所指示的纹理图像的只读属性标记为″真”,用以取代消耗可写入存储器装置的额外储存空间来储存所指示的纹理图像。所指示的纹理图像将由只读区域被取得,并且直接传送至硬件的三维图形绘制单元(如图4的4306),用以让三维图形绘制单元将所接收到的纹理图像加入至相关的片段。如步骤S591,将相应于所指示的纹理图像的只读属性标记为″伪”。如步骤S593,于可写入存储器装置(如4302)中配置第三区域。如步骤S595,将所指示的纹理图像储存于可写入存储器装置的第三区域,此区域由三维绘图引擎来管理。需注意的是,直到第三区域被三维绘图引擎所释放前,储存于第三区域的数据不能被修改,用以避免被应用程序毁损所储存的纹理图像。所指示的纹理图像可直接从存储器装置的第一区域复制至可写入存储器装置的第三区域。此外,如需解压缩,所指示的纹理图像也可由软件来解码,接着,储存于可写入存储器装置的第三区域。所储存的纹理图像从第三区域取得而来并且直接传送至硬件的三维图形绘制单元(如图4的4306),用以让三维图形绘制单元将所接收到的纹理图像加入至相关的片段。
图10为实施例的纹理图像管理的方法流程图,特别用以修改纹理图像子区域的内容,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行。如步骤S910,接收指出以第二纹理图像更新第一纹理图像的子区域内容的信息。需注意的是,相应于第一纹理图像的只读属性指出第一纹理图像为原本储存于只读区域或读写区域。只读属性、只读区域及读写区域的细节可参考步骤S550(见图5)的描述。如步骤S930,决定相应于第一纹理图像的只读属性是否为″真”。若是,流程执行步骤S951至S955以及S971至S973;若否,仅执行步骤S971至S973。如步骤S951,于可写入存储器装置(如图4的4302)中配置一个区域。如步骤S953,将第一纹理图像储存于可写入存储器装置的配置区域。如步骤S955,将相应于第一纹理图像的只读属性更新为″伪”。如步骤S971,若必要,解码第二纹理图像。如步骤S973,于可写入存储器装置中的第一纹理图像的指定子区域以第二纹理图像来更新。
图11为实施例的纹理图像管理的方法流程图,特别是使用纹理图像来执行像素着色作业运算,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行。如步骤S1110,从不可写入存储器装置(如图4的4303)来取得纹理图像(如图1的2000)。纹理图像由纹理像素(texels)组成。如步骤S1130,于像素着色作业运算阶段(如图1的1270)将所取得的纹理图像直接应用于片段。每一个片段由像素所组成。每一个片段的像素属性,例如二维画面的色彩、深度或地址,与纹理图像的像素属性相结合。
针对一个特定的系统元件,说明书及申请权利范围中会使用一个名称来为其命名。熟习此技艺人士皆了解,消费电子设备的制造者也许会使用不同的命名来称呼内容中所对应的系统元件。此文件并不欲以不同的名称来区别元件间的不同,而是使用不同的功能描述来进行区别。于说明书与申请专利范围中所使用的″耦接”表示非直接或直接的电性连接。例如,当第一装置耦接于第二装置时,其间的连接可通过一个直接电连线,或通过其它装置与连线的非直接电连线。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视申请专利范围所界定者为准。
Claims (16)
1.一种纹理图像管理方法,其特征在于,所述纹理图像管理方法包括:
从一应用程序接收一信息,所述信息指出一纹理图像储存于一存储器装置的一第一区域;
决定所述存储器装置的所述第一区域是否为一只读区域或一读写区域;
当决定所述存储器装置的第一区域为所述只读区域时,产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述只读区域,从而使得从所述第一区域所撷取的纹理图像被应用于一片段;
以及
当决定所述存储器装置的第一区域为所述读写区域时,产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述读写区域,并配置一可写入存储器装置的一第二区域,从所述第一区域撷取所述纹理图像储存至所述第二区域,从而使得从所述第二区域所撷取的纹理图像被应用于一片段。
2.根据权利要求1所述的纹理图像管理方法,其特征在于,所述只读区域位于一不可写入存储器装置的一区域。
3.根据权利要求1所述的纹理图像管理方法,其特征在于,所述只读区域由所述应用程序所管理并避免数据写入。
4.根据权利要求1所述的纹理图像管理方法,其特征在于,储存于所述第二区域的数据不能被修改,直到所述第二区域被释放为止。
5.根据权利要求1所述的纹理图像管理方法,其特征在于,所述决定的步骤进一步包括:
通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息;
当所取得的信息指出所述第一区域为所述只读区域时,决定所述存储器装置的第一区域为所述只读区域;以及
当所取得的信息指出所述第一区域为所述读写区域时,决定所述存储器装置的第一区域为所述读写区域。
6.根据权利要求1所述的纹理图像管理方法,其特征在于,所述决定的步骤进一步包括:
执行一测试程序;以及
根据由所述测试程序所产生的一测试结果来决定所述存储器装置的第一区域是否为所述只读区域或所述读写区域。
7.根据权利要求6所述的纹理图像管理方法,其特征在于,所述测试程序用以写入数据至所述存储器装置的第一区域,并且当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第一区域为所述只读区域;以及
当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第一区域为所述读写区域。
8.根据权利要求1所述的纹理图像管理方法,其特征在于,所述决定的步骤进一步包括:
取得储存于相应于所述应用程序的一执行文件中的一存储器图像;
当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述只读区域;以及
当从所述存储器图像检测到具有一读写属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述读写区域。
9.一种纹理图像管理系统,其特征在于,所述纹理图像管理系统包括:
用于从一应用程序接收一信息的装置,所述信息指出一纹理图像储存于一存储器装置的一第一区域;
用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置;
当决定所述存储器装置的第一区域为所述只读区域时,用于产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述只读区域,从而使得从所述第一区域所撷取的纹理图像被应用于一片段的装置;
以及
当决定所述存储器装置的第一区域为所述读写区域时,用于产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述读写区域,并配置一可写入存储器装置的一第二区域,从所述第一区域撷取所述纹理图像储存至所述第二区域,从而使得从所述第二区域所撷取的纹理图像被应用于一片段的装置。
10.根据权利要求9所述的纹理图像管理系统,其特征在于,所述只读区域位于一不可写入存储器装置的一区域。
11.根据权利要求9所述的纹理图像管理系统,其特征在于,所述只读区域由所述应用程序所管理并避免数据写入。
12.根据权利要求9所述的纹理图像管理系统,其特征在于,储存于所述第二区域的数据不能被修改直到所述第二区域被释放为止。
13.根据权利要求9所述的纹理图像管理系统,其特征在于,所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息,当所取得的信息指出所述第一区域为只读区域时,决定所述存储器装置的第一区域为所述只读区域,以及当所取得的信息指出所述第一区域为读写区域时,决定所述存储器装置的第一区域为所述读写区域。
14.根据权利要求9所述的纹理图像管理系统,其特征在于,所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于执行一测试程序以及根据由所述测试程序所产生的一测试结果来决定所述存储器装置的第一区域是否为所述只读区域或读写区域。
15.根据权利要求14所述的纹理图像管理系统,其特征在于,所述测试程序用以写入数据至所述存储器装置的第一区域,并且当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第一区域为只读区域,以及当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第一区域为读写区域。
16.根据权利要求9所述的纹理图像管理系统,其特征在于,所述用于决定所述存储器装置的第一区域是否为一只读区域或一读写区域的装置,进一步用于取得储存于相应于所述应用程序的一执行文件中的一存储器图像,当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的第一区域为只读区域,以及当从所述存储器图像检测到具有一读写属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的第一区域为读写区域。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/427,451 US7652672B2 (en) | 2006-06-29 | 2006-06-29 | Systems and methods for texture management |
US11/427,451 | 2006-06-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101097630A CN101097630A (zh) | 2008-01-02 |
CN101097630B true CN101097630B (zh) | 2012-08-29 |
Family
ID=38876131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101694867A Expired - Fee Related CN101097630B (zh) | 2006-06-29 | 2006-12-15 | 纹理图像管理系统与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7652672B2 (zh) |
CN (1) | CN101097630B (zh) |
TW (1) | TWI324325B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8730261B2 (en) * | 2006-09-13 | 2014-05-20 | Panasonic Corporation | Image processing device, image processing integrated circuit, image processing system, input assembler device, and input assembling integrated circuit |
US9390539B2 (en) * | 2009-11-04 | 2016-07-12 | Intel Corporation | Performing parallel shading operations |
ES2398887B1 (es) * | 2011-08-04 | 2014-01-30 | Meztura Servicios Premium S.L. | Método para la superposición de contenido de motores de renderizado web sobre señal de video |
US10349069B2 (en) * | 2012-12-11 | 2019-07-09 | Sony Interactive Entertainment Inc. | Software hardware hybrid video encoder |
CN105354040B (zh) * | 2015-12-10 | 2019-05-17 | 网易(杭州)网络有限公司 | 双引擎游戏内置工具栏的方法、装置及终端 |
CN108573519B (zh) | 2017-03-14 | 2022-02-11 | 阿里巴巴集团控股有限公司 | 三维图形文件生成和在客户端展示三维图形的方法及装置 |
US11055807B2 (en) * | 2017-06-12 | 2021-07-06 | Apple Inc. | Method and system for a transactional based display pipeline to interface with graphics processing units |
KR20200044312A (ko) | 2018-10-19 | 2020-04-29 | 삼성전자주식회사 | 반도체 장치 |
US11755336B2 (en) * | 2021-09-29 | 2023-09-12 | Advanced Micro Devices, Inc. | Distributed geometry |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1177784A (zh) * | 1996-08-30 | 1998-04-01 | 索尼公司 | 纹理数据的方法和设备 |
CN1506852A (zh) * | 2002-12-06 | 2004-06-23 | 联想(北京)有限公司 | 基于硬盘保护区的非保护区文件选择性安全保护方法 |
CN1545023A (zh) * | 2003-11-21 | 2004-11-10 | 苏州国芯科技有限公司 | 一种用于信息安全的嵌入式cpu |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4205567A1 (de) * | 1992-02-22 | 1993-08-26 | Philips Patentverwaltung | Verfahren zum steuern des zugriffs auf einen speicher sowie anordnung zur durchfuehrung des verfahrens |
JPH06349064A (ja) * | 1993-06-07 | 1994-12-22 | Fujitsu Ltd | 光ディスク及び該光ディスクの不正利用防止方法 |
JP2682439B2 (ja) * | 1994-05-10 | 1997-11-26 | 日本電気株式会社 | データの不正複写防止方法及び不正複写防止機能を有する情報記録制御装置 |
WO2000011603A2 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US20040157639A1 (en) * | 2002-11-27 | 2004-08-12 | Morris Roy D. | Systems and methods of mobile restore |
-
2006
- 2006-06-29 US US11/427,451 patent/US7652672B2/en not_active Expired - Fee Related
- 2006-11-21 TW TW095142990A patent/TWI324325B/zh not_active IP Right Cessation
- 2006-12-15 CN CN2006101694867A patent/CN101097630B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1177784A (zh) * | 1996-08-30 | 1998-04-01 | 索尼公司 | 纹理数据的方法和设备 |
CN1506852A (zh) * | 2002-12-06 | 2004-06-23 | 联想(北京)有限公司 | 基于硬盘保护区的非保护区文件选择性安全保护方法 |
CN1545023A (zh) * | 2003-11-21 | 2004-11-10 | 苏州国芯科技有限公司 | 一种用于信息安全的嵌入式cpu |
Non-Patent Citations (1)
Title |
---|
说明书第1页第8-25行,第2页第25行-第3页第6行,第7页倒数第2行-第8页第15行,第13页第27行-第14页第2行、权利要求24-26. |
Also Published As
Publication number | Publication date |
---|---|
US7652672B2 (en) | 2010-01-26 |
TWI324325B (en) | 2010-05-01 |
US20080001960A1 (en) | 2008-01-03 |
CN101097630A (zh) | 2008-01-02 |
TW200802176A (en) | 2008-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101097630B (zh) | 纹理图像管理系统与方法 | |
CN112233217B (zh) | 一种虚拟场景的渲染方法和装置 | |
RU2661763C2 (ru) | Использование межкадровой когерентности в архитектуре построения изображений с сортировкой примитивов на промежуточном этапе | |
US20130106882A1 (en) | Methods, systems, and data structures for generating a rasterizer | |
EP2834793B1 (en) | Patched shading in graphics processing | |
CN111062858B (zh) | 高效的提前渲染方法、装置及计算机存储介质 | |
CN113515396B (zh) | 图形渲染方法、装置、电子设备与存储介质 | |
US20070257924A1 (en) | OpenGL to OpenGL/ES translator and OpenGL/ES simulator | |
US20080055321A1 (en) | Parallel physics simulation and graphics processing | |
CN112529995B (zh) | 图像渲染计算方法、装置、存储介质以及终端 | |
CN109242967B (zh) | 一种三维地形渲染方法及装置 | |
US10825129B2 (en) | Eliminating off screen passes using memoryless render target | |
US20220036632A1 (en) | Post-processing in a memory-system efficient manner | |
WO2013148732A1 (en) | Post tesellation edge cache | |
CN111080505B (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
US8525843B2 (en) | Graphic system comprising a fragment graphic module and relative rendering method | |
CN112714357A (zh) | 视频播放方法、视频播放装置、电子设备和存储介质 | |
CN117392266A (zh) | 线框绘制方法、装置、电子设备及计算机可读存储介质 | |
CN112614042A (zh) | 贴图延迟渲染的数据驱动方法及装置 | |
CN104933752A (zh) | 一种计算机系统、图形处理单元及其图形处理方法 | |
CN113838180A (zh) | 一种渲染指令处理方法及其相关设备 | |
CN114247138B (zh) | 图像渲染方法、装置、设备及存储介质 | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
CN116348904A (zh) | 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小 | |
US10157443B1 (en) | Deferred batching of incremental constant loads |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120829 Termination date: 20161215 |
|
CF01 | Termination of patent right due to non-payment of annual fee |