专利名称:纹理图像管理系统与方法
技术领域:
此发明关于 一种计算机绘图技术,特别关于 一种紋理图像管理的系统与 方法。
背景技术:
三维计算机绘图使用一个绘图管道(graphics pipeline),将一个三维情 景转换为一个二维图像。其中,于像素着色阶段(pixel shading stage)时, 会将多个紋理图像加入至片段(f ragment s)中。
发明内容
本发明提供一种紋理图像管理方法。'纹理图像管理方法的一个实施例包 括下列步骤从不可写入存储器装置取得一个紋理图像,将所接收到的紋理 图像直接应用于片段。
纹理图像管理方法的一个实施例,由三维绘图引擎所执行,包括下列步 骤从应用程序接收信息,该信息指出紋理图像储存于存储器装置的第一区 域;决定存储器装置的第一区域是否为只读区域或读写区域;当决定存储器 装置的第一区域为只读区域时,产生相应于所指出的紋理图像的只读属性, 来指出紋理图像储存于只读区域,从而使得从第 一 区域所撷取的紋理图像被 应用于一片段。
其中,所述只读区域位于一不可写入存储器装置的一区域;
所述只读区域由所述应用程序所管理并避免数据写入。
所述紋理图像管理方法还包括
当决定所述存储器装置的第一区域为所述读写区域时,产生相应于所指 出的紋理图像的一只读属性来指出所述紋理图像储存于所述读写区域;
当决定所述存储器装置的第一区域为所述读写区域时,配置一可写入存 储器装置的一第二区域;
从所述第一区域擷取所述紋理图像储存至所述第二区域,从而使得从所
述第二区域所擷取的紋理图像被应用于 一 片段;
其中储存于所述第二区域的数据不能被修改,直到所述第二区域通过所 述三维绘图引擎释放为止。
其中,所述决定的步骤还包括
通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息; 当所取得的信息指出所述第一区域为所述只读区域时,决定所述存储器
装置的第一区域为所述只读区域;
当所取得的信息指出所述第一区域为所述读写区域时,决定所述存储器
装置的第 一 区域为所述读写区域。 此外,所述决定的步骤还包括 执行一测试程序;
根据由所述测试程序所产生的 一 测试结果来决定所述存储器装置的第一 区域是否为所述只读区域或所述读写区域。
另外,所述测试程序用以写入数据至所述存储器装置的第一区域,所述方 法还包括
当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第 一区域为所述只读区域;
当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第 一区域为所述读写区域。
此外,所述决定的步骤还包括
取得储存于相应于所述应用程序的 一执行文件中的 一存储器图像; 当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所 述第一区域时,决定所述存储器装置的所述第一区域为所述只读区域;
当从所述存储器图像检测到具有一读写属性的 一输入或输出区域包括所
述第 一 区域时,决定所述存储器装置的所述第 一 区域为所述读写区域。
紋理图像管理方法的一个实施例,由三维绘图引擎所执行,包括下列步 骤从应用程序接收信息,该信息指出以第二紋理图像来更新第一纹理图像
中的子区域的内容;决定第一紋理图像是否位于只读区域或读写区域;当第 一紋理图像位于只读区域时,于可写入存储器装置中配置新区域;储存第一 紋理图像于可写入存储器装置的配置区域;以第二紋理图像来更新位于可写 入存储器装置的配置区域中的第 一紋理图像的子区域。
其中,所述决定的步骤还包括,通过探索相应于所述第一紋理图像的一只 读属性是否为"真"或"伪,,来决定所述第一紋理图像是否位于所述只读区域或 读写区域。
所述的紋理图像管理方法,还包括当所述第一紋理图像位于所述读写区 域时,以所述第二紋理图像更新位于所述可写入存储器装置的所述配置区域 中的第 一紋理图像的子区域;于储存所述第 一紋理图像于所述可写入存储器 装置的配置区域后,将相应于所述第一紋理图像的一只读属性更新为"伪"。
一种紋理图^f象管理方法包括
从一不可写入存储器装置取得一紋理图像;以及将接收到的紋理图像直 接加入到至少一片段的加入步骤。
其中,所述紋理图像由复数像素所组成。
所述加入步骤还包括,以所述像素的一属性来结合所述片段的一属性。 本发明还提供一种紋理图像管理系统,用于可携式电子装置中。紋理图 像管理系统的一个实施例包括存储器装置及处理器。存储器装置储存紋理图 像。处理器耦接于不可写入存储器装置,从不可写入存储器装置取得紋理图 像,并且将所接收到的紋理图像直接加入至片段。紋理图像管理系统的一个 实施例包括存储器装置及处理器。存储器装置储存紋理图像。处理器耦接于 存储器装置,执行三维绘图引擎及应用程序。三维绘图引擎从应用程序接收 信息,该信息指出紋理图像储存于存储器装置的第一区域,决定存储器装置 的第一区域是否为只读区域或读写区域,以及当决定存储器装置的第一区域 为只读区域时,产生相应于所指出的紋理图4象的只读属性,来指出紋理图像 储存于只读区域,从而使得从第 一 区域所撷取的紋理图像被应用于 一 片段。 其中,所述只读区域位于一不可写入存储器装置的一区域。 所述只读区域由所述应用程序所管理并避免数据写入。
所述的紋理图像管理系统还包括一可写入存储器装置,其中当决定所述 存储器装置的第一区域为读写区域时,所述三维绘图引擎产生相应于所指出 的紋理图像的 一只读属性来指出所述紋理图像储存于读写区域,当决定所述 存储器装置的第一区域为读写区域时,配置一可写入存储器装置的一第二区 域,以及从所述第一区域撷取所述紋理图像并储存至所述第二区域,从而使 得从所述第二区域所撷取的紋理图像被应用于一片段,并且储存于所述第二 区域的数据不能被修改直到所述第二区域通过所述三维绘图引擎释放为止。
在所述的紋理图4象管理系统中,所述三维绘图引擎通过由所述应用程序 所提供的一应用程序可编程接口来取得所述信息,当所取得的信息指出所述 第 一 区域为只读区域时,决定所述存储器装置的第 一 区域为所述只读区域, 以及当所取得的信息指出所述第一区域为读写区域时,决定所述存储器装置 的第 一 区域为所述读写区域。
所述三维绘图引擎执行一测试程序以及根据由所述测试程序所产生的一 测试结果来决定所述存储器装置的第 一 区域是否为所述只读区域或读写区 域。
所述测试程序用以写入数据至所述存储器装置的第 一 区域,并且当所述 测试结果指出未成功地写入数据至所述第一区域时,所述三维绘图引擎决定 所述第一区域为只读区域,以及当所述测试结果指出已成功地写入数据至所 迷第一区域时,所述三维绘图引擎决定所述第一区域为读写区域。
所述三维绘图引擎取得储存于相应于所述应用程序的一执行文件中的一 存储器图像,当从所述存储器图像检测到具有一只读属性的一输入或输出区
域包括所述第一区域时,决定所述存储器装置的第一区域为只读区域,以及 当从所述存储器图像检测到具有一读写属性的一输入或输出区域包括所述第 一区域时,决定所述存储器装置的第一区域为读写区域。综上所述,本发明 可以从不可写入存储器装置取得一个紋理图像,将所接收到的紋理图像直接 应用于片段。
图1为依据本发明实施例的三维绘图引擎;
图2为依据本发明实施例的紋理图像管理方法流程图3A为依据本发明实施例的紋理图像管理方法流程图3B为范例的可写入存储器装置示意图4为范例的应用于移动电子装置的硬件环境示意图5为依据本发明实施例的紋理图像管理方法流程图6为范例的存储器地图的取得示意图7为范例状态获取的示意图8为实施例的由三维绘图引擎所执行的测试程序的流程图9为实施例的存储器图像示意图10为实施例的紋理图像管理的方法流程图11为实施例的紋理图像管理的方法流程图。
主要元件符号说明
1100:应用程序; 1200:三维绘图引擎;
1210:接口/前置处理阶段;
1220:顶点处理阶段; 1230:裁剪阶段;
1240:片段设置与像素化阶段;
1250:遮挡剔除阶段; 1260:参数内插阶段;
l"0:像素着色阶段; 1280:像素引擎;
1290:画面緩冲区控制器;1 300:显示装置; 2000:紋理图4象;
S210、 S230、 S250、 S270、 S290:方法步骤;
S310、 S330、 S350、 S370、 S390:方法步骤;
M300:可写入存储器装置;
R31:由应用程序所管理的区域;
R33:由三维绘图引擎所管理的区域;
400:移动电子装置; 4301:通讯系统;
4302:可写入存储器装置;
4303:不可写入存储器装置;
4304:天线; 4305:处理器;
4306:三维图形绘制单元;4307:显示装置;
S510、 S531...... S59 3、 S595:方法步骤;
6100:三维绘图引擎; 6300:应用程序;
6500:存储器地图; 6300a:功能;
F61:区域识别码; F63:地址范围; F65:只读旗标; 7100:三维绘图引擎;
7100a:指令; 7300:应用程序; 7300a:指令;
S810、 S830、 S851、 S853、 S855、 S857:方法步骤; Rl、 R2:区域;
011、 012、 013、 021:输出段;
1111、 1112、 1121、 1131、 1132、 1211、 1212、 1213:输入段;
S910、 S930...... S971、 S973:方法步骤;
SlllO、 S1130:方法步骤。
具体实施例方式
以下结合附图对本发明进行详细说明。
三维计算机绘图使用一个绘图管道(graphics pipeline),将一个三维情 景转换为一个二维图像。图1为依据本发明实施例的三维绘图引擎1200,包 含一个管道中的数个阶段,诸如接口/前置处理(interface/front end)1210、 顶点处理(vertex processing) 1220、裁剪(cl ipping) 1230、片賴:i殳置与像素 4b (fragments setup and rasterization)1240 、 遮挡易寸除(occlusion culling) 1250、参数内插(parameter interpolation) 1260、像素着色(pixel shading) 1270与像素引擎(pixel engine) 1280等阶段。这些阶段负责处理一 开始所纟是供的端点(顶点)属性或几何原始数据(geometric primitives)的控 制点的信息,这些信息描述描绘的内容。三维图形的几何原始数据通常包含 线与片段(fragments)。每一个顶点所提供的属性类型包含x-y-z坐标、RGB 值、透明度(translucency)、紋理(texture)、反射性(reflect ivi ty)及类似 的特性。于绘图处理器中,这些阶段可并行处理。
接口/前置处理阶段1210为应用程序的一个接口,这些应用程序诸如移 动电子装置提供的人机接口 (man-machine interface)、游戏控制或动画应用 程序等,用以传送或接收数据与命令。顶点处理阶段1220将每一个顶点转换 至一个二维画面的位置,并可进行投影以决定其颜色。可程序化的顶点着色 器(vertex shaderM吏得应用程序1100可执行客制的效果转换,诸如扭曲形 状等。裁剪阶段1230移除二维画面中无法显示的部分图像,诸如物体的背面。 片段设置阶段12,40搜集顶点并将之转换为片段,并且提供用以让后续阶段可 准确产生关联于转换后的片段的每一个像素属性的信息。像素化阶段1240于 片段中填满像素。遮挡剔除阶段1250于二维画面中剔除被其它对象所遮住的 像素。参数内插阶段1260根据色彩、雾化系数、紋理等等,计算每一个像素 的值。像素着色阶段1270将紋理图像2000加入到片段的最终颜色上。 一个 紋理图像由多个紋理像素(也称为紋理成分)构成。可程序化的像素着色器 (pixel shader),也称为片段着色器(fragment shader),使得应用程序1100 可以使用者定义的方式,将片段的属性(如色彩、深度与二维画面的位置)与
紋理图像中的紋理4象素(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: A Specifications (Version 1. 5)"的3. 8. 1节所提出的"Textlmage3D,,接口 。 于较糟的情况下,原本储存紋理图像的可写入存储器装置的特定区域,于步 骤S21Q之后被应用程序所释;^,将导致紋理图l象;故其它数据所取代。如步骤 S230,储存所接收到的信息。如步骤S250,接收指出一个应用程序已激活绘 图管道(参考图l)的命令。如步骤S270,根据所储存的信息,从可写入存储 器装置所指示的区域获取数据,用以取得紋理图像并且接着执行如上所述的 像素着色作业(pixel shading,如图1的1270)。如步骤S290,由于纹理图 像已被其它数据所取代,导致非预期结果。
图3A为依据本发明实施例的紋理图像管理方法流程图,由诸如OpenGL
或DirectX绘图引擎等的三维绘图引擎来执行,这些绘图引擎为发明人所熟 悉并用以管理紋理图像。如步骤S310,从应用程序接收信息,该信息指出紋 理图像被储存于可写入存储器装置的第 一 区域,例如运用两个指针分别指出 第一区域的开始及结束地址。如步骤S330,根据所接收到的信息,将紋理图 像从第一区域复制到可写入存储器装置的第二区域,其中第二区域是由三维 绘图引擎所管理并且不能被应用程序所释放。图3B为范例的可写入存储器装 置M300示意图。储存于由应用程序所管理的区域R31的紋理图像被复制至由 三维绘图引擎所管理的区域R33。如步骤S350,接收指出一个应用程序已激 活绘图管道(参考图l)的命令。如步骤S370,从可写入存储器装置的第二区 域获取数据,来取得紋理图像。如步骤S390,通过使用所取得的紋理图像成 功地执行像素着色作业(如图1的1270)。可了解的是,当可写入存储器装置 的第一区域被释放时,由于第二区域中仍存有紋理图像,因此并不会于像素 着色作业期间产生非预期的结果(如图2的步骤S290所示)。通常紋理图像以 红绿蓝+ Alpha通道(Red Green Blue+Alpha, RGBA )格式储存,用以有效率 地存取,但却会于像素着色作业阶段耗费庞大储存空间。例如,RGBA格式的 四个256x256紋理图像需要l, 048,576位(约1M位)的储存空间。但是,可写 入存储器装置,尤其是配置于移动电子装置时,是昂贵而且稀少的。因此, 当储存紋理图像时,必须要减少复制运算次数及使用可写入存储器装置的储 存空间。
本发明提供一种紋理图像管理的方法,使用于移动电子装置,例如移动 电话等等。图4为范例的应用于移动电子装置400的硬件环境示意图,主要 包括通讯系统4301、可写入存储器装置4302、不可写入存储器装置4303、天 线4304、处理器4305、三维图形绘制单元4306及显示装置4307。当连接至 蜂窝式网络时,例如全球移动通讯系统(Global System For Mobile Communication, GSM)、通用分组无线业务(General Packet Radio Service, GPRS) 、GSM演化的增强型数据速率(Enhanced Data Rates For GSM Evolution,
EDGE)、码分多址(Code Division Multiple Access, CDMA)、宽带码分多 址(Wideband C固A, WCDMA)、电路交换数据服务(Circui t 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 1 ight-emiUing diode, OLED)显示器等等。不可写入存 储器装置4303可为只读存储器(ROM)、 NOR型闪存等等。可写入存储器装置 4302可为动态随机存耳又存储器(dynamic random access memory, DRAM)、 同 步动态随才几存取存储器(synchronous DRAM, SDRAM) 、 NAND型闪存(NAND flash memory)等等。紋理图像可储存于可写入存储器装置4302或不可写入存储器 装置4303。所储存的紋理图像可以压缩格式来编码以减少储存空间,并且, 当进行像素着色作业阶段时,解码成未压缩格式,例如RGBA。使用如所述的 可程序化顶点着色作业单元(program隨ble 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)所管理的特定存储器地图(如6500h存储器地图包括指 出存储器装置(如图4的4302、 4303或以上两者)的特定区域已被应用程序组 态为只读区域或读写区域的信息。举例来说,存储器地图6500包括相应于存 储器装置中的四个区域的四个记录的信息,每一个记录包括区域识别码F61、 地址范围F63及只读旗标F65。当只读旗标为"真"时,表示相应的地址范围 为只读区域,若否,为读写区域。通过决定相应于所指示的紋理图像的只读 旗标是否为"真",可决定出所指示的紋理图像是否位于只读区域。举例来说, 参考图5的步骤S510,当第一区域储存所指示的紋理图像的范围介于OxA600 及0xA6FF之间时,通过查询存储器地图6500所提供的信息,决定出存储器 装置的第一区域为只读区域。
于第二种方法中,应用程序可宣告一个全局变量(global variable),选 择性地设定为"真,,或"伪",用以与三维绘图引擎沟通,让三维绘图引擎能通 过取得此全局变量来获得相应于所指示的紋理图像的 一个状态。可了解的是, 应用程序与三维绘图引擎两者皆可取得此全局变量中所设定的值。图7为范 例的取得状态示意图。应用程序可宣告-^个全局变量"TexImagelnRO",并且 通过指令7300a设定全局变量为"真,,,用以告知三维绘图引擎所指示的紋理 图像已储存于只读区域。此后,三维绘图引擎可通过指令7100a来取得全局 变量的值,并且决定所检索的值为"真"。因此,参考图5的步骤S510,当检 测出"真"的值,决定存储器装置的第一区域为只读区域。
于第三种方法中,三维绘图引擎(如图4的4305)执行测试程序以取得测 试结果,接着,根据所取得的测试结果决定存储器装置的第一区域是否为只
读区域。图8为实施例的由三维绘图引擎所执行的测试程序的流程图。如步
骤S810,从第一区域的一个字节备份(也就是取得)第一数据。如步骤S830, 写入第二数据于第一区域中的先前备份的字节。如步骤S851,决定是否已成 功地写入第二数据。若是,流程进行至步骤S853及S855 ,若否,至步骤S857。 例如,当接收到一个错误信息指出数据写入失败时,或当检测到储存于第一 区域中的备份字节的数据并非第二数据时,决定第二数据未成功地写入。如 步骤S853,决定第一区域为读写区域。如步骤S855,将第一数据再回复于第 一区域中的备份字节。于较佳的情况下,于步骤S830,第二数据为第一数据 与"0xFF"进行异或(XOR)操作处理而成,接着,当于步骤S855回复第一区 域中的名^分字节时,第一数据与"OxFF"进行XOR操作,用以回复于第二数据。 如步骤S857,决定第一区域为只读区域。
于第四种方法中,三维绘图引擎(如图4的4305)根据存储器图像决定存 储器装置的第一区域是否为只读区域,于较佳的情况下,此存储器图像储存 于相应于应用程序的可执行文件。相应于应用程序的可执行文件由诸如A腿 (Advanced RISC Machine)连接器(1 inker)的连接器产生。图9为实施例的 存储器图像示意图。存储器图像可由图像、区域、输出段与输入段的阶层式 架构组织而成。 一个图像由一或多个区域所组成,例如R1与R2。每一个区域 由一或多个输出段组成,例如Oll、 012、 013与021。每一输出段包含一或多 个输入段,例如Illl、 1112、 1121、 1131、 1132、 1211、 1212与1213。输入 段中包括目标档案中的程序代码与数据信息。输入段包含程序代码或初始化 数据,或描述于图像能执行前的无初始化或设为零的存储器的片段数据。输 入革殳能有许多属性,只读、读写、或零-初始化(Zero-Initialized, ZI)。输 出段为输入段拥有相同只读、读写、或零-初始属性的输入段连续序列。输出 段如同其所构成的输入段拥有相同的属性。因此,通过检查第一区域的相应 的属性能决定出存储器装置的第一区域的属性。具体而言,可通过执行一指 令来取得指出所有输入或输出段为只读区域的信息,例如"unsigned int
RO-Base-Address =Image$$R0$$Base",并且决定第一区域是否位于所取得的 输入或输出段中的一者。若是,决定第一区域为只读区域,若否,第一区域为
读写区域。存储器图像的规格可参考于2001年所建立的ARM Developer Suite(Version 1. 2)中的第4. 1节。
参考图5,如步骤S570,将相应于所指示的紋理图像的只读属性标记为 "真,,,用以取代消耗可写入存储器装置的额外储存空间来储存所指示的紋理 图像。所指示的紋理图像将由只读区域被取得,并且直接传送至硬件的三维 图形绘制单元(如图4的4306),用以让三维图形绘制单元将所接收到的紋理 图像加入至相关的片段。如步骤S591,将相应于所指示的紋理图像的只读属 性标记为"伪"。如步骤S593,于可写入存储器装置(如4302)中配置第三区 域。如步骤S595,将所指示的紋理图像储存于可写入存储器装置的第三区域, 此区域由三维绘图引擎来管理。需注意的是,直到第三区域被三维绘图引擎 所释放前,储存于第三区域的数据不能被修改,用以避免被应用程序毁损所 储存的紋理图像。所指示的紋理图像可直接从存储器装置的第 一区域复制至 可写入存储器装置的第三区域。此外,如需解压缩,所指示的紋理图像也可 由软件来解码,接着,储存于可写入存储器装置的第三区域。所储存的紋理 图像从第三区域取得而来并且直接传送至硬件的三维图形绘制单元(如图4的 4306),用以让三维图形绘制单元将所接收到的紋理图像加入至相关的片段。
图IO为实施例的紋理图像管理的方法流程图,特别用以修改紋理图像子 区域的内容,由诸如OpenGL或DirectX绘图引擎等的三维绘图引擎来执行。 如步骤S910,接收指出以第二紋理图像更新第一紋理图像的子区域内容的信 息。需注意的是,相应于第一紋理图像的只读属性指出第一紋理图像为原本 储存于只读区域或读写区域。只读属性、只读区域及读写区域的细节可参考 步骤S5S0(见图5)的描述。如步骤S930,决定相应于第一紋理图像的只读属 性是否为"真"。若是,流程执行步骤S951至S955以及S971至S973;若否, 仅执行步骤S971至S973。如步骤S951,于可写入存储器装置(如图4的4 302)
中配置一个区域。如步骤S953,将第一紋理图像储存于可写入存储器装置的 配置区域。如步骤S955,将相应于第一紋理图像的只读属性更新为"伪"。如 步骤S971,若必要,解码第二紋理图像。如步骤S973,于可写入存储器裝置 中的第 一紋理图像的指定子区域以第二紋理图像来更新。
图11为实施例的紋理图像管理的方法流程图,特别是使用紋理图像来执 行像素着色作业运算,由诸如0penGL或DirectX绘图引擎等的三维绘图引擎 来执行。如步骤SlllO,从不可写入存储器装置(如图4的4303)来取得紋理 图像(如图1的2000)。紋理图像由紋理像素(texels)组成。如步骤S1130, 于像素着色作业运算阶段(如图1的1270)将所取得的紋理图像直接应用于片 段。每一个片段由像素所组成。每一个片段的像素属性,例如二维画面的色 彩、深度或地址,与紋理图像的像素属性相结合。
针对一个特定的系统元件,说明书及申请权利范围中会使用 一个名称来 为其命名。熟习此技艺人士皆了解,消费电子设备的制造者也许会使用不同 的命名来称呼内容中所对应的系统元件。此文件并不欲以不同的名称来区别 元件间的不同,而是使用不同的功能描述来进行区别。于说明书与申请专利 范围中所使用的"耦接"表示非直接或直接的电性连接。例如,当第一装置耦 接于第二装置时,其间的连接可通过一个直接电连线,或通过其它装置与连 线的非直接电连线。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何 熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰, 因此本发明的保护范围当视申请专利范围所界定者为准。
权利要求
1.一种纹理图像管理方法,由一三维绘图引擎来执行,其特征在于,所述纹理图像管理方法包括从一应用程序接收一信息,所述信息指出一纹理图像储存于一存储器装置的一第一区域;决定所述存储器装置的所述第一区域是否为一只读区域或一读写区域;以及当决定所述存储器装置的第一区域为所述只读区域时,产生相应于所指出的纹理图像的一只读属性来指出所述纹理图像储存于所述只读区域,从而使得从所述第一区域所撷取的纹理图像被应用于一片段。
2. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述只读区域位于一不可写入存储器装置的一区域。
3. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述只读区域 由所述应用程序所管理并避免数据写入。
4. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述紋理图像 管理方法还包括当决定所述存储器装置的第 一 区域为所述读写区域时,产生相应于所指 出的紋理图像的一只读属性来指出所述紋理图像储存于所述读写区域;当决定所述存储器装置的第一区域为所述读写区域时,配置一可写入存 储器装置的一第二区域;以及从所述第一区域撷取所述紋理图像储存至所述第二区域,从而使得从所 述第二区域所擷取的紋理图像被应用于 一 片段;其中储存于所述第二区域的数据不能被修改,直到所述第二区域通过所 述三维绘图引擎释放为止。
5. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述决定的步 骤还包括通过由所述应用程序所提供的一应用程序可编程接口来取得所述信息;当所取得的信息指出所述第一区域为所述只读区域时,决定所述存储器装置的第一区域为所述只读区域;以及当所取得的信息指出所述第一区域为所述读写区域时,决定所述存储器 装置的第一区域为所述读写区域。
6. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述决定的步 骤还包括执行一测试程序;以及根据由所述测试程序所产生的 一测试结果来决定所述存储器装置的第一 区域是否为所述只读区域或所述读写区域。
7. 根据权利要求6所述的紋理图像管理方法,其特征在于,所述测试程序 用以写入数据至所述存储器装置的第一区域,所述方法还包括当所述测试结果指出未成功地写入数据至所述第一区域时,决定所述第 一区域为所述只读区域;以及当所述测试结果指出已成功地写入数据至所述第一区域时,决定所述第 一区域为所述读写区域。
8. 根据权利要求1所述的紋理图像管理方法,其特征在于,所述决定的步 骤还包括取得储存于相应于所述应用程序的 一执行文件中的 一存储器图像;当从所述存储器图像检测到具有一只读属性的一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述只读区域;以及 当从所述存储器图像检测到具有一读写属性的 一输入或输出区域包括所述第一区域时,决定所述存储器装置的所述第一区域为所述读写区域。
9. 一种紋理图像管理方法,由一三维绘图引擎来执行,其特征在于,所述 紋理图像管理方法包括 从一应用程序接收一信息,所述信息指出以 一第二紋理图像来更新一 第 一紋理图像中的 一子区域的内容;决定所迷第 一 紋理图像是否位于 一 只读区域或 一 读写区域; 当所述第一紋理图像位于所述只读区域时,于一可写入存储器装置中配置一新区域;储存所述第一紋理图像于所述可写入存储器装置的配置区域;以及 以所述第二紋理图像来更新位于所述可写入存储器装置的配置区域中的 所述第一紋理图像的子区域。
10. 根据权利要求9所述的紋理图像管理方法,其特征在于,所述决定的 步骤还包括,通过探索相应于所述第一紋理图像的一只读属性是否为"真"或"伪,,来决定所述第一紋理图像是否位于所述只读区域或读写区域。
11. 根据权利要求9所述的紋理图像管理方法,其特征在于,还包括当所 述第一紋理图像位于所述读写区域时,以所述第二紋理图像更新位于所述可 写入存储器装置的所述配置区域中的第 一紋理图像的子区域。
12. 根据权利要求9所述的紋理图像管理方法,其特征在于,还包括于储 存所述第一紋理图像于所述可写入存储器装置的配置区域后,将相应于所述 第一纹理图像的一只读属性更新为"伪"。
13. —种紋理图像管理方法,其特征在于,所述紋理图像管理方法包括 从一不可写入存储器装置取得一紋理图像;以及将接收到的紋理图像直接加入到至少 一 片段的加入步骤。
14. 根据权利要求13所述的紋理图像管理方法,其特征在于,所述紋理图像由复数像素所组成。
15. 根据权利要求14所述的紋理图像管理方法,其特征在于,所述加入步 骤还包括,以所述像素的一属性来结合所述片段的一属性。
16. —种紋理图^^管理系统,用于一可携式电子装置中,其特征在于,所 述紋理图像管理系统包括 一存储器装置,储存一紋理图像;以及一处理器,耦接于所述存储器装置,并且执行一三维绘图引擎及一应用 程序;其中所述三维绘图引擎从所述应用程序接收一信息,所述信息指出所述 紋理图像储存于存储器装置的 一第 一 区域,决定所述存储器装置的第 一 区域 是否为一只读区域或一读写区域,以及当决定所述存储器装置的第 一区域为 只读区域时,产生相应于所指出的紋理图像的一只读属性来指出所述紋理图 像储存于只读区域,从而使得从所述第 一 区域所撷取的紋理图像被应用于一片段。
17. 根据权利要求16所述的紋理图像管理系统,其特征在于,所述只读区 域位于一不可写入存储器装置的一区域。
18. 根据权利要求16所述的紋理图像管理系统,其特征在于,所述只读区 域由所述应用程序所管理并避免数据写入。
19. 根据权利要求16所述的紋理图像管理系统,其特征在于,还包括一可 写入存储器装置,其中当决定所述存储器装置的第一区域为读写区域时,所 述三维绘图引擎产生相应于所指出的紋理图像的一只读属性来指出所述紋理 图像储存于读写区域,当决定所述存储器装置的第一区域为读写区域时,配 置一可写入存储器装置的一第二区域,以及从所述第一区域撷取所述紋理图 像并储存至所述第二区域,从而使得从所述第二区域所撷取的紋理图像被应 用于一片段,并且储存于所述第二区域的数据不能被修改直到所述第二区域 通过所述三维绘图引擎释放为止。
20. 根据权利要求16所述的紋理图像管理系统,其特征在于,所述三维绘 图引擎通过由所述应用程序所提供的 一应用程序可编程接口来取得所述信 息,当所取得的信息指出所述第一区域为只读区域时,决定所述存储器装置 的第一区域为所述只读区域,以及当所取得的信息指出所述第一区域为读写 区域时,决定所述存储器装置的第一 区域为所述读写区域。
21. 根据权利要求16所述的紋理图像管理系统,其特征在于,所述三维绘 图引擎^U亍一测试程序以及根据由所述测试程序所产生的一测试结果来决定 所述存储器装置的第 一 区域是否为所述只读区域或读写区域。
22. 根据权利要求21所述的紋理图像管理系统,其特征在于,所述测试程 序用以写入数据至所述存储器装置的第 一 区域,并且当所述测试结果指出未 成功地写入数据至所述第一区域时,所述三维绘图引擎决定所述第一区域为 只读区域,以及当所述测试结果指出已成功地写入数据至所述第一区域时, 所述三维绘图引擎决定所述第一区域为读写区域。
23. 根据权利要求16所述的紋理图像管理系统,其特征在于,所述三维绘 图可i擎取得储存于相应于所述应用程序的 一执行文件中的 一存储器图像,当 从所述存储器图像检测到具有 一 只读属性的 一输入或输出区域包括所述第一 区域时,决定所述存储器装置的第一区域为只读区域,以及当从所述存储器 图像检测到具有一读写属性的一输入或输出区域包括所述第一区域时,决定 所述存储器装置的第一区域为读写区域。
全文摘要
本发明提供一种纹理图像管理系统与方法。所述纹理图像管理方法包括下列步骤从不可写入存储器装置取得一个纹理图像,并将所接收到的纹理图像直接加入一个片段;另外,纹理图像管理系统由一三维绘图引擎来执行,该系统包括一存储器装置,一处理器,耦接于所述存储器装置,所述三维绘图引擎从一应用程序接收一信息,该信息指出纹理图像储存于一第一区域,决定存储器装置的第一区域是否为一只读区域或一读写区域,并使得从第一区域所撷取的纹理图像被应用于一片段。通过本发明,可以从不可写入存储器装置取得一个纹理图像,将所接收到的纹理图像直接应用于一片段。
文档编号G06T15/04GK101097630SQ20061016948
公开日2008年1月2日 申请日期2006年12月15日 优先权日2006年6月29日
发明者陈正哲 申请人:联发科技股份有限公司