图形硬件中的纹理化的制作方法

文档序号:6495126阅读:182来源:国知局
图形硬件中的纹理化的制作方法
【专利摘要】公开了使用纹理映射来渲染计算机图形的方法、系统和设备。具有不同的数据类型(诸如RGB颜色的整数数据类型和XYZ法向量分量的浮点数据类型的混合)的多个纹理映射被作为一个纹理映射组传递到图形处理单元(GPU)。在不同的纹理映射之间重复使用滤波器参数和其它内插参数。用户可指定多个以整数和浮点为基础的通道来供GPU同时处理,从而定制纹理组结构。
【专利说明】图形硬件中的纹理化
[0001]相关申请案的交叉引用
[0002]本申请是2011年5月2日提交的美国申请N0.13/099, 281的继续并请求所述申请的权益,所述申请为达所有目的以引用的方式在此全文并入。
【技术领域】
[0003]本发明的实施方案一般涉及计算机图形处理系统,且更具体说来,涉及接受并处理作为相关单组的多个不同类型的纹理映射用于三维场景的图形处理单元(GPU)。
【背景技术】
[0004]现代视频游戏中的三维(3D或3-D)模型使用多个纹理以在3D场景中接近逼真的外观。有时称为纹理映射的纹理,通常是颜色、透明度、材料特性、表面取向或可被数字环绕或以其它方式映射到3D对象的其它特征的表格。在视频游戏中,用于3D模型的纹理常包括漫射颜色纹理、镜面(闪亮)顔色纹理、法线映射、透明映射、材料指数等。通过把合适的纹理存储在存储器中并把到存储器的地址传给图形处理器单元(GPU),这些纹理被一次ー个应用到3D模型。
[0005]图1示出使用图形处理器来把纹理应用到图像的现有技术系统。在系统100中,三维模型101存储在存储器中以供GPU113处理。包括红色(R)通道映射102、绿色(G)通道映射103和蓝色(B)通道映射104的纹理映射105存储在存储器中供应用到模型上。
[0006]每个通道映射是碰巧具有支持内插和过滤的硬件的一般的N维表格。通道映射可取决于应用而基于整数或基于浮点。例如,漫射纹理映射105基于整数,其中所有数据都是整数数据类型109。漫射映射的代表红色、緑色和蓝色分量的每个纹理元素R、G和B具有三个整数值。每个纹理元素的三个整数值在存储器中彼此跟随,即,交错。即,表格中的值存储为RGB、RGB、RGB等。每个8位整数代表一定量的红色且是0到255之间且包括0和255的允许值。加上G和B通道,RGB纹理映射105表示的颜色的数量是256x256x256?=超过1600万种颜色。在替代格式中,另外的a A (透明)通道有时与RGB值交错用于“RGBA”格式的纹理元素。S卩,表格中的值存储为RGBA、RGBA、RGBA等。这允许对于8位通道纹理进行纹理元素的4字节存储器对齐。如果a通道在替换格式中未使用,那么它有时浪费并称作“RGBX”格式。在示例性实施方案中,纹理映射105的存储器地址作为函数中的參数发送到GPU以映射到3D对象。
[0007]在把漫射颜色纹理映射105的颜色应用到3D模型101之后,控制被从GPU113返回到渲染应用(即,GPU的“用户”)。渲染应用然后把镜面(即,闪亮)颜色RGB纹理映射106传到GPU113,其中图像(的地址)存储第一步骤的結果。与漫射颜色纹理映射105相同,镜面颜色纹理映射106也是包括三个通道RGB的基于整数的纹理映射。镜面颜色应用到3D模型以更新图像。
[0008]在漫射和镜面颜色纹理应用到3D模型之后,法线映射可用以更新图像。光源与表面直接垂直(即,正交)中的表面与光源和表面成角度中的表面不同地照亮。类似地,相对于虚拟摄像机的位置与表面成入射余角的光源不同地照亮。
[0009]法线映射107作为參数传递到GPU113。法线映射107基于浮点,由用于它表格中的所有数据的浮点数据类型110表示。它的X、Y和Z表格中的每个浮点数代表空间方向。X通道映射是ニ维浮点数数组。每个32位带符号浮点数代表在X方向上単位向量倾斜的幅度,即,単位向量的X分量。Y和Z通道分别代表単位向量的Y和Z分量。每个数组的存储器地址被作为參数发送到GPU以进行处理来更新图像。
[0010]在使用法线映射更新照明之后,应用透明/不透明度。透明映射108是基于整数的纹理映射,用有时称为“a通道”的单通道表示。a通道是ー维、ニ维整数数组。整数越大就越不透明。所述值通常代表‘ー減’透明度。
[0011]在把四个纹理映射应用到3D模型之后,看起来相对真实的图像准备好在视频游戏、计算机辅助设计(CAD)图像或其它三维虚拟环境中呈现给終端用户。图像111是纹理映射的GPU应用的結果。
[0012]在其它现有技术方法中,中央处理单元(CPU)把所有纹理的地址传递到GPU、指定用于GPU的着色器代码和几何构形,并然后把控制移交到GPU。GPU绘制几何构形,从而应用指定着色器用于覆盖该几何构形的每个像素。着色器访问作为具有内插支持的可应用数组类型(例如,ー维、ニ维或三维数组)的局部变量的纹理。着色器使用这些纹理来产生成品,甚至多次应用纹理的ー个或更多个通道。例如,着色器可把漫射通道的R分量再使用为反射率值。然而,纹理内插被浪费地重复几次。
[0013]尽管在过去的数十年中尤其是在大量生产、消费者级别视频游戏硬件中图形处理器和渲染技术的改善突飞猛进,但是本领域中永远存在对更快速和更有效的3D渲染的需要。

【发明内容】

[0014]一般描述了用于组合一个纹理组中不同类型的纹理并然后使用过滤和内插參数来进行纹理元素到像素的映射以便过滤且内插不同类型的纹理的系统、设备和方法。映射允许以比现有技术开销小来在像素或其它输出点渲染适当的顔色。导致来自纹理元素或多个纹理元素的潜在混合值的采样的内插參数被计算一次,并然后再使用于多个纹理。使用相同的内插參数来应用有具有完全不同含义且用于不同目的(诸如顔色纹理和法线映射)的数据的纹理。内插參数可在基于整数的顔色纹理映射和浮点法线映射之间再使用。
[0015]当接ロ允许不同的纹理映射在一个调用中作为參数传递到GPU时,可在硬件中再使用内插參数。例如,包括漫射RGB (3)、镜面RGB (3)、法线映射XYZ (3)和透明(I)纹理映射的十通道纹理组可用ー个函数调用传递给GPU,且GPU可一次处理它们以渲染图像。
[0016]本文的方法与可使用不同的纹理来消除滤波器參数确定和基于内插的其它技术的开销的延迟渲染兼容。除了更好地支持延迟渲染,多通道通道纹理可允许更好地支持预先计算的辐射传输和光谱渲染。允许纹理的数量和数据类型由用户指定(例如,每像素两个整数和三个浮点值)的灵活类型缓冲区可允许更多的灵活性。
[0017]本公开的ー些实施方案针对ー种在图形处理单元(GPU)中进行图形处理的方法。该方法包括:接收具有第一原语数据类型的纹理元素的第一纹理;接收具有第二原语数据类型的纹理元素的第二纹理,第一和第二原语数据类型彼此不同;使用可操作地与存储器耦合的至少ー个处理器来确定第一纹理中第一数据类型的纹理元素的内插參数以映射到图像的像素,该图像代表三维场景;和使用为第一纹理确定的内插參数来把第二纹理中第ニ数据类型的纹理元素应用到该像素。
[0018]一些实施方案针对ー种在GPU中进行图形处理的方法。该方法包括:接收限定三维模型的外观的纹理组,该纹理组具有基于ー个原语数据类型与另ー个原语数据类型彼此不同的原语数据类型的纹理;使用可操作地与存储器耦合的至少ー个处理器来为纹理映射中ー个的纹理元素位置确定用于三维模型上一部分的内插參数;和使用所确定的内插參数来执行对其它纹理映射中对应的纹理元素的处理,从而对不同原语数据类型的纹理使用所确定的内插參数。
[0019]该方法可包括:从用户接收指示多个基于整数的纹理映射的第一数字;从用户接收指示多个基于浮点的纹理映射的第二数字;和使用从该用户接收的第一和第二数字来为纹理组配置图形存储器空间。
[0020]一些实施方案针对ー种在GPU中延迟渲染的方法。该方法包括:把基于浮点的法向量纹理和基于整数的材料指数存储到单个目标g_缓冲区用于代表三维场景的整个图像;把g_缓冲区作为纹理參数传递到片段程序用于整个图像;和使用可操作地与存储器耦合的至少ー个处理器来确定使用g_缓冲区和片段程序对该图像的着色。
[0021]其它实施方案涉及使用或存储用于上述方法的指令的机器可读有形存储媒体和计算机系统。
[0022]对本文公开并建议的实施方案的本质和优势的进一歩理解可參看说明书的剩余部分和附图来实现。
【专利附图】

【附图说明】
[0023]图1示出使用图形处理器来把纹理应用到图像的现有技术系统。
[0024]图2示出根据实施方案使用图形处理器来把纹理应用到图像的系统。
[0025]图3示出根据实施方案的具有整数数据类型的纹理元素的四边形。
[0026]图4示出根据实施方案的具有浮点数据类型的纹理元素的四边形。
[0027]图5示出根据实施方案的mipmap。
[0028]图6示出根据实施方案的三维模型。
[0029]图7示出根据实施方案的纹理映射。
[0030]图8示出根据实施方案的图7的纹理映射应用到图6的三维模型。
[0031]图9是根据实施方案的过程的流程图。
[0032]图10是根据实施方案的过程的流程图。
[0033]图11是根据实施方案的过程的流程图。
[0034]图12示出适于实施实施方案的计算机系统。
【具体实施方式】
[0035]通常,描述了用于降低当渲染多纹理3D几何结构时的计算开销的方法、系统和设备。本文所述的主题可允许支持质量预先计算的辐射传输、光谱渲染和改善的延迟渲染的支持。不同数据类型的纹理映射可用单纹理映射组的形式传递到图形处理单元或可执行图形渲染的其它硬件。包括整数和浮点数据类型的不同原语数据类型可用于纹理映射组中的纹理映射。诸如源自双线性和三线性内插、小中见大映射(mipmap或MIP映射)级确定、各向异性过滤和其它内插的那些内插參数的内插參数在不同的纹理映射之间再使用。例如,漫射颜色映射中红纹理元素的加权可再使用于法线映射中法向量的X分量。
[0036]发明人已经认识到,不同类型的纹理,甚至那些具有完全不同用途和数据的纹理,常常具有相同的分辨率和映射。然而,现有技术GPU通常需要程序员使用硬件中単独的纹理单元来把纹理指定为单独的纹理。这样可能在许多情况下很浪费,因为即使诸如双线性/三线性内插和各向异性过滤的滤波建立和采样算法必须被执行多次,但最终相同纹理坐标用于所有纹理。此种浪费的原因之ー是现有技术GPU施加到纹理和帧缓冲区的任意限制:它们只可具有最多四个通道(即,RGBA,其中‘A’是a通道)。
[0037]在实施方案中,可建立用户定义的纹理组用于传递到图形处理器。例如,每像素具有两个整数和三个浮点值的纹理可由程序员指定、传递到GPU,且由GPU在一个程序调用中渲染。
[0038]本公开的实施方案的技术优势包括用于3D场景的纹理映射中更快速的渲染和更多灵活性。关注空间问题的纹理映射(诸如基于整数的RGB纹理映射)的内插參数可由高动态范围很重要的纹理映射(诸如基于浮点的法线映射)再使用。对高质量的预先计算辐射传输(例如,球谐函数)可有更好的支持。每颜色通道只使用四个系数(即,RGBA)限制了视觉细节,尤其在阴影/光边界处的视觉细节。更多系数将允许更好的视觉质量。顔色由更密集采样光谱(例如,32而不是只有3)代表的光谱渲染可消除每个像素处RGB光谱转换的大的计算开销。另外,RGB到光谱转换不受约束。即,无限数量的条件等色将转化为相同RGB三联体。因此,如果原始数据为多光谱,那么把它转换成RGB并转换回多光谱可引起重要信息损失。存储例如32个原始采样光谱纹理将允许高度准确地渲染颜色。可通过把实施方案延伸到帧缓冲区和纹理来更好地支持延迟渲染。这些可允许缓冲区中存储的用于照明传递的值的数目和类型有更多灵活性。技术优势在超过渲染3D场景的范围充分延伸。在金融应用中,类似于用于实时3D图形的内插方法采样数据的应用对于接受整数、货币型和浮点数据类型的程序可运行得更快。
[0039]“原语数据类型”包括字节、整数(例如,短、正则、长)、浮点(包括双浮点)、布尔值和字符数据类型。在许多编程语言中,原语数据类型可诸如使用C/C++结构命令组合成复合类型。原语数据类型可由使用中的硬件或编程语言直接支持。
[0040]“g_缓冲区”是图形缓冲区且用于延迟着色。g_缓冲区可包括在现有技术中由多渲染目标(MRT)支持的多个组件。多组件g_缓冲区允许像素着色器同时输出若干顔色。
[0041]纹理元素的“内插參数”包括加权、着色或从ー个或更多个纹理元素取得以把着色或其它值从纹理元素映射到像素或输出点的其它參数。内插參数可代表源自双线性内插、mipmap选择、三线性mipmap内插、各向异性过滤等的任何參数。最接近的mipmap的简单选择有时称为内插且使用内插參数。
[0042]“纹理元素”包括像素或在ー些寻址坐标上纹理的其它位置。纹理元素包括漫射颜色纹理、镜面颜色纹理、法线映射纹理、透明映射纹理、反射映射纹理、预先计算光纹理、材料指数纹理等中的元素。
[0043]“颜色”可包括传统屏幕组成色红、绿和蓝(RGB)代表的顔色;青色、品红色、黄色和黒色(CMYK)代表的传统的光刻技术颜色;非传统多光谱颜色(例如,超光谱、32通道颜色);灰度;和电磁辐射特性的其它代表色。
[0044]图2示出根据实施方案使用图形处理器来把纹理应用到图像的系统。在系统200中,三维模型201存储在存储器中供GPU213处理。十通道纹理映射组214包括漫射颜色纹理映射205、镜面颜色纹理映射206、法线映射207和透明映射208。漫射颜色纹理映射分别包括R、G和B映射202、203和204。镜面颜色纹理映射206也包括RBG映射。纹理映射205,206和208基于整数,其中每个纹理的纹理元素把数据存储为整数数据类型209。法线映射207基于浮点,其中每个纹理数组X、Y和Z的纹理元素存储为浮点数据类型210。法线映射有时需要高动态范围,因为小角度在光反射方面产生大的差別。光映射或透明映射可能更需要高动态范围以避免带状伪影。
[0045]十通道纹理映射组214被作为參数传递到GPU213。GPU213确定R纹理映射202中纹理元素的内插參数,并把内插參数不仅再使用于G纹理映射203和B纹理映射204,也再使用于镜面颜色纹理映射206 (RGB)、法线映射207 (XYZ)和透明映射208 ( a )的分量映射。
[0046]例如,对于图像中某一位置处的像素,像素的位置在3D模型201上确定并因此在纹理映射上确定。在纹理映射上的对应纹理元素和周围纹理元素的加权源自该位置在纹理元素上的相对居中度。ー个R纹理元素映射到该像素的加权被再使用作为X分量在法线映射上的加权。ー个G纹理元素映射到该像素的加权被再使用作为Y分量在法线映射上的加权。ー个B纹理元素映射到该像素的加权被再使用作为Z分量在法线映射上的加权。
[0047]在十通道纹理映射组214应用到3D模型201之后,代表三维场景的图像211可用。十通道纹理映射被认为是将用于实时3D渲染的许多标准纹理并入在视频游戏中。然而,不同数目的通道也适合。
[0048]在一些实施方案中,用户可指定将输入到GPU的纹理的数量。例如,用户可键入、输入、选择或以其它方式指示代表将作为參数传递到GPU函数的多个基于整数的纹理映射的数量。用户可指示代表将作为參数传递到GPU函数的多个基于浮点的纹理映射的另ー数量。GPU然后可使用用户提供的数量来配置纹理映射组的图形存储器空间。当用户调用渲染函数吋,内插參数用于无论是基于整数或者基于浮点的所有纹理,以使用纹理映射的纹理元素来采样或以其它方式调整像素。通过调用所有纹理作为參数的渲染函数,可易于在纹理之间再使用计算的内插參数。
[0049]图3示出根据实施方案的具有整数数据类型的纹理元素的四边形。四边形320是来自RGB颜色纹理映射的ー组四个纹理元素,它包括纹理元素321、322、323和324。每个纹理元素代表组成色的不同程度。例如,每个纹理元素代表RGB顔色表示中红色的值。每个纹理元素包括整数,例如整数325。
[0050]图像中像素的中心映射到四边形中的位置328。如果像素映射到四边形的正中心,那么来自每个纹理元素321、322、323和324的颜色将被同等加权(即,每个25%)以产生混合顔色。在示例性实施方案中,像素所落在的纹理元素321加权高于四边形的其它纹理元素。基于距离四边形的中心的水平距离326 ‘a’和垂直距离327 ‘b’,对纹理元素321进行加权用于该像素。水平距离326和垂直距离327是源自加权所基于的双线性内插的内插參数。另外,距离(即,sqrt(a2+b2))或水平距离326和垂直距离327的其它组合可被认为是内插參数。
[0051]图4示出根据实施方案的具有浮点数据类型的纹理元素的四边形。四边形420是来自法线映射的ー组四个纹理元素,它包括纹理元素421、422、423和424。每个纹理元素代表单位向量的方向分量。例如,姆个纹理元素代表XYZ单位向量表示中的X分量。姆个纹理元素由浮点数表示,诸如浮点数425。
[0052]图像中像素的中心映射到四边形中的位置428。如果像素映射到四边形的正中心,那么来自每个纹理元素421、422、423和424的X分量将被同等加权(即,每个25%)以产生平均X分量。在示例性实施方案中,像素所落在的纹理元素421加权高于四边形的其它纹理元素。基于距离四边形的中心的水平距离426 ‘a’和垂直距离427 ‘b’,对纹理元素421进行加权用于该像素。水平距离426和垂直距离427是加权所基于的内插參数。
[0053]发明人已经认识到,导出用于RGB纹理的许多内插參数可再使用于XYZ纹理。另夕卜,内插參数可在基于整数和基于浮点的四边形之间再使用。这可节省硬件中的处理器周期。
[0054]确定水平距离326和垂直距离327 (图3)和水平距离426和垂直距离427 (图4)可造成GPU中大量开销。可把从图3的基于整数的纹理导出的距离或加权再使用于图4的基于浮点的纹理,使得处理器浪费较少的时间来重新计算距离或加权和/或从存储器高速缓存中查找距离或加权。
[0055]图5示出根据实施方案的mipmap。Mipmap金字塔500包括Ixl mipmap531、2x2mipmap532、4x4mipmap533、8x8mipmap534、16xl6mipmap535 和 32x32mipmap535。Mipmap500可为mipmap更大金字塔的一部分。
[0056]在确定ー个或更多个mipmap供使用时,确定3D场景中对象的规模。在示例性实施方案中,感兴趣对象的规模在级别537。级别537落入mipmap533和mipmap534之间。到较小mipmap533的相对距离是距离526 ‘a’,且到较大mipmap534的相对距离是距离527 ‘b’。mipmap533和534的三线性内插使用内插參数526和527。内内插从两个mipmap中挑选。然后使用基于到每个MIP级别的相对距离(S卩,距离526 ‘a’和距离527 ‘b’)的第三内插(因此称为“三线性”)參数来内插这两个值。
[0057]在其它实施方案中,使用规模最接近的mipmap的简单选择。例如,如果‘距离’b〈a,那么mipmap534用于进行进ー步的处理。即,如果mipmap537的规模相比mipmap533更接近mipmap534,那么mipmap534用于进行进ー步的处理。在一些实施方案中,mipmap的简单选择使用被认为是内插參数的选择本身。
[0058]确定合适规模的mipmap可消耗大量资源。把内插參数526和527再使用于包括基于整数或基于浮点数的那些mipmap的其它mipmap可减少对此类资源的需要。这在各向异性过滤用于进行不对称mipmap的情况下可能非常有用。
[0059]图6示出根据实施方案的三维模型。3D模型640是人头,它用线框渲染以进行说明。3D模型640上的像素641可具有映射到它的若干纹理。包括漫射和镜面颜色纹理、法线映射和透明映射的纹理可用以渲染在三维场景中的模型。
[0060]图7示出根据实施方案的纹理映射。纹理映射740是漫射颜色纹理映射,它包括诸如眼睛、耳朵、嘴等的特征。纹理元素741映射到图6上的像素641。通过把纹理映射740和其它纹理映射一起映射到3D模型640 (图6),可产生逼真的3D图像。[0061]图8示出根据实施方案的图7的纹理映射应用到图6的三维模型。3D头部840具有像素841,像素841对应于像素641 (图6)和纹理元素741 (图7)。附图的三维对象可用于视频游戏、CAD制图和其它3D环境。
[0062]图8的渲染也可使用延迟渲染来实现。基于浮点的法线映射和基于整数的材料指数可存储到单个目标g_缓冲区中。单个g_缓冲区可作为纹理參数传递到用户提供的片段程序以用于整个全屏图像。使用g_缓冲区和片段程序为图像计算对图像的着色。
[0063]图9是示出根据实施方案的过程900的流程图。在操作901,接收具有第一原语数据类型的纹理元素的第一纹理。在操作902,接收具有第二原语数据类型的纹理元素的第二纹理。第一和第二原语数据类型彼此不同。在操作903,使用可操作地与存储器耦合的至少一个处理器来确定第一纹理中第一数据类型的纹理元素的内插參数以映射到图像的像素,该图像代表三维对象或场景。在操作904,使用为第一纹理确定的内插參数来把第二纹理中第二数据类型的纹理元素应用到该像素。
[0064]图10是示出根据实施方案的过程1000的流程图。在操作1001,从用户接收指示多个基于整数的纹理映射的第一数字。在操作1002,从可能是同一用户的用户接收指示多个基于浮点的纹理映射的第二数字。在操作1003,使用从用户接收的第一和第二数字来为纹理组配置图形存储器空间。在操作1004,接收限定三维模型的外观的纹理组,所述纹理组具有基于ー个原语数据类型与另ー个原语数据类型彼此不同的原语数据类型的纹理。在操作1005,使用可操作地与存储器耦合的至少ー个处理器来为纹理映射中ー个的纹理元素位置确定用于三维模型上一部分的内插參数。在操作1006,使用所确定的内插參数来执行对其它纹理映射中对应的纹理元素的处理。这允许对不同原语数据类型的纹理使用所确定的内插參数。
[0065]图11是示出根据实施方案的过程1100的流程图。在操作1101,把基于浮点的法向量纹理和基于整数的材料指数存储到单个目标g_缓冲区中用于代表三维对象或场景的图像。在操作1102,把g-缓冲区作为纹理參数传递到片段程序用于整个图像。在操作1103,使用可操作地与存储器耦合的至少ー个处理器来确定使用g_缓冲区和片段程序对图像的着色。
[0066]操作可按照上文给定的顺序或适用的不同次序来执行。它们可在计算机或其它机器中自动进行,且可用软件、固件来编码或者硬编码为机器可读指令并通过可实施该指令的一个或更多个处理器来运行。
[0067]图12示出适于实施根据各种实施方案的设备的硬件系统的实例。这个框图示出计算机系统1200,诸如个人计算机、视频游戏控制台和相关联的显示器、移动设备、个人数字助理或适于实践本发明的实施方案的其它数字设备。计算机系统1200包括用于运行软件应用并视需要运行操作系统的中央处理单元(CPU) 1205。CPU1205可由一个或更多个同构或异构处理核组成。存储器1210存储应用和数据以供CPU1205使用。存储1215提供用于应用和数据的非易失性存储和其它计算机可读媒体,且可包括固定磁盘驱动器、可移动磁盘驱动器、快闪存储器设备和⑶-ROM、DVD-ROM、蓝光、HD-DVD或其它光存储设备以及信号传输和存储媒体。用户输入设备1220将用户输入从一个或更多个用户传递到计算机系统1200,用户输入设备的实例可包括键盘、鼠标、操纵杆、触摸板、触摸屏、静止或视频相机和/或麦克风。网络接ロ 1225允许计算机系统1200通过电子通信网络与其它计算机系统进行通信,且可包括通过局域网和广域网(诸如因特网)进行的有线或无线通信。音频处理器1230适于从CPU1205、存储器1210和/或存储1215提供的指令和/或数据产生模拟或数字音频输出。包括CPU1205、存储器1210、数据存储1215、用户输入设备1220、网络接ロ1225和音频处理器1230的计算机系统1200的组件通过ー根或更多根数据总线1235连接。
[0068]图形子系统1240进ー步与数据总线1235和计算机系统1200的组件连接。图形子系统1240包括图形处理单元(GPU)1245和图形存储器1250。图形存储器1250包括用于为输出图像的每个像素存储像素数据的显示存储器(例如,帧缓冲区)。图形存储器1250可在与GPU1245相同的设备中集成、作为单独的设备与GPU1245连接和/或实施在存储器1210中。像素数据可从CPU1205直接提供到图形存储器1250。或者,CPU1205向GPU1245提供限定期望输出图像的数据和/或指令,GPU1245从数据和/或指令产生ー个或更多个输出图像的像素数据。限定期望输出图像的数据和/或指令可存储在存储器1210和/或图形存储器1250中。在实施方案中,GPU1245包括从限定场景的几何形状、照明、着色、纹理化、运动和/或摄像机參数的指令和数据产生输出图像的像素数据的3D渲染能力。GPU1245还可包括能够执行着色器程序的一个或更多个可编程执行单元。
[0069]图形子系统1240周期性地从图形存储器1250输出图像的像素数据以在显示设备1255上显示。显示设备1255可为能够响应于来自计算机系统1200的信号而显示可视信息的任何设备,包括CRT、IXD、等离子和OLED显示器。计算机系统1200可向显示设备1255提供模拟或数字信号。
[0070]根据各种实施方案,CPU1205是具有一个或更多个处理核的ー个或更多个通用微处理器。另外的实施方案可使用具有特别适于高度平行和计算密集型应用(诸如媒体和交互式娱乐应用)的微处理器结构的ー个或更多个CPU1205来实施。
[0071]在不同的实施方案中,系统的组件可通过可为以下的任何组合的网络来连接:因特网、IP网络、内联网、广域网(“WAN”)、局域网络(“LAN”)、虚拟专用网络(“VPN”)、公共交换电话网络(“PSTN”)或支持本文所述设备之间的数据通信的任何其它类型的网络。网络可包括有线和无线连接,包括光链路。根据本公开,许多其它实例对于本领域那些技术人员也是可能和明显的。在本文的讨论中,网络可特别指定也可不特别指定。
[0072]在上述说明书中,本发明是參照其特定实施方案描述的,但本领域那些技术人员将认识到本发明并不局限于此。上述发明的各种特征和方面可単独或结合使用。另外,在不脱离说明书的更广泛的精神和范围的情况下,本发明可用于本文所述的环境和应用之外的任何数量的环境和应用。说明书和附图因此被认为是说明性的而非限制性的。
[0073]应注意,上文讨论的方法、系统和设备仅仅是为了示例。必须强调,各种实施方案可视情况省略、替换或増加各种过程或组件。例如,应理解,在替代性实施方案中,所述方法可按照不同于所描述的顺序来执行,且可增加、省略或组合各种步骤。另外,參照某些实施方案描述的特征可在各种其它实施方案中组合。可用类似的方式来组合实施方案的不同方面和元件。另外,应强调,技术在发展,并因此,许多元件是示例性的而不应被解释为限制本发明的范围。
[0074]描述中给出具体细节以便透彻地理解实施方案。然而,本领域技术人员应理解,可在没有这些具体细节的情况下实践实施方案。例如,未示出已知电路、过程、算法、结构和技术的不必要的细节,以免混淆实施方案。[0075]另外,应注意,可将实施方案描述为过程,过程被描绘为流程图或框图。尽管每个过程可把操作描述为顺序过程,但是许多操作可并行或同时执行。另外,可重新安排操作的顺序。过程可具有附图中未包括的另外的步骤。
[0076]此外,如本文所公开,术语“存储器”或“存储器単元”可表示用于存储数据的ー个或更多个设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、磁心存储器、磁盘存储媒体、光存储媒体、快闪存储器设备或用于存储信息的其它计算机可读媒体。术语“计算机可读媒体”包括但不限于便携式或固定存储设备、光存储设备、无线通道、SIM卡、其它智能卡和能够存储、包含或承载指令或数据的各种其它媒体。
[0077]此外,实施方案可由硬件、软件、固件、中间件、微代码、硬件描述语言或它们的任何组合来实施。当在软件、固件、中间件或微代码中实施时,执行所需任务的程序代码或代码段可存储在诸如存储媒体的计算机可读媒体中。处理器可执行所需任务。
[0078]已描述了若干实施方案,本领域那些技术人员将认识到,可在不偏离本发明的精神的情况下使用各种修改、替代性构造和等效物。例如,上述元件可仅为更大系统的组件,其中其它规则可优先于本发明的应用或以其它方式修改本发明的应用。另外,可在考虑以上元件之前、期间或之后进行多个步骤。因此,以上描述不应被视为限制本发明的范围。
【权利要求】
1.一种在图形处理单元(GPU)中进行图形处理的方法,所述方法包括: 接收具有第一原语数据类型的纹理元素的第一纹理; 接收具有第二原语数据类型的纹理元素的第二纹理,所述第一原语数据类型和所述第二原语数据类型彼此不同; 使用可操作地与存储器耦合的至少ー个处理器来确定所述第一纹理中所述第一数据类型的纹理元素的内插參数以映射到图像的像素,所述图像代表三维对象;和 使用为所述第一纹理确定的所述内插參数来把所述第二纹理中所述第二数据类型的纹理元素应用到所述像素。
2.如权利要求1所述的方法,其中数据类型中的ー个是整数数据类型而另ー数据类型是浮点数据类型。
3.如权利要求2所述的方法,其中具有整数数据类型的纹理元素的所述纹理选自由以下内容构成的组: 漫射颜色纹理; 镜面颜色纹理; 透明映射;和 材料指数。
4.如权利要求2所述的方法,其中具有浮点数据类型的纹理元素的所述纹理选自由以下内容构成的组: 法向量映射;` 反射映射; 预计算光映射;和 灰度级纹理, 所述浮点数据类型允许高动态范围映射。
5.如权利要求2所述的方法,其中所述整数数据类型是8位整数数据类型。
6.如权利要求2所述的方法,其中所述浮点数据类型是32位浮点数据类型。
7.如权利要求1所述的方法,其中所述内插參数是源自双线性内插的加权。
8.如权利要求1所述的方法,其中所述内插參数源自小中见大映射(mipmap)选择。
9.如权利要求1所述的方法,其中所述内插參数是源自小中见大映射(mipmap)三线性内插的加权。
10.如权利要求1所述的方法,其中所述内插參数是源自各向异性过滤的加权。
11.如权利要求1所述的方法,其中所述操作以示出的顺序执行。
12.如权利要求1所述的方法,其中每个操作由可操作地与所述存储器耦合的所述至少ー个处理器执行。
13.—种实施指示使一个或更多个机器执行如权利要求1所述的操作的指令的信息的机器可读有形存储媒体。
14.一种执行计算机程序中的指令的计算机系统,所述计算机程序指令包括用于执行如权利要求1所述的操作的程序代码。
15.一种在图形处理单元(GPU)中进行图形处理的方法,所述方法包括: 接收限定三维模型的外观的纹理映射组,所述纹理映射组具有基于ー个原语数据类型与另ー个原语数据类型彼此不同的原语数据类型的纹理; 使用可操作地与存储器耦合的至少ー个处理器来为所述纹理映射中ー个的纹理元素位置确定用于所述三维模型上一部分的内插參数;和 使用所述确定的内插參数来执行对所述其它纹理映射中对应的纹理元素的处理, 从而对不同原语数据类型的纹理使用所述确定的内插參数。
16.如权利要求15所述的方法,其还包括: 从用户接收指示多个基于整数的纹理映射的第一数字; 从用户接收指示多个基于浮点的纹理映射的第二数字;和 使用从所述用户接收的所述第一数字和所述第二数字来为所述纹理映射组配置图形存储器空间。
17.如权利要求15所述的方法,其中所述内插參数源自双线性内插、小中见大映射(mipmap)选择、mipmap三线性内插或各向异性过滤。
18.如权利要求15所述的方法,其中所述纹理映射组包括: 三通道基于整数的漫射颜色纹理; 三通道基于整数的镜面颜色纹理; 三通道基于浮点的法线映射;和 单通道基于整数的透明映射。
19.如权利要求15所述的方法,其中所述原语数据类型包括浮点数据类型和整数数据类型。
20.—种在图形处理单元(GPU)中延迟渲染的方法,所述方法包括: 把基于浮点的法向量纹理和基于整数的材料指数存储到单个目标g_缓冲区用于代表三维对象的图像; 把所述g_缓冲区作为纹理參数传递到片段程序用于所述图像;和使用可操作地与存储器耦合的至少ー个处理器来确定使用所述g_缓冲区和所述片段程序对所述图像的着色。
【文档编号】G06F17/00GK103503032SQ201280021532
【公开日】2014年1月8日 申请日期:2012年5月1日 优先权日:2011年5月2日
【发明者】G.纳吉 申请人:索尼电脑娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1