CN1339764A - 用于图形系统的再循环浓淡树混合器 - Google Patents
用于图形系统的再循环浓淡树混合器 Download PDFInfo
- Publication number
- CN1339764A CN1339764A CN01122294A CN01122294A CN1339764A CN 1339764 A CN1339764 A CN 1339764A CN 01122294 A CN01122294 A CN 01122294A CN 01122294 A CN01122294 A CN 01122294A CN 1339764 A CN1339764 A CN 1339764A
- Authority
- CN
- China
- Prior art keywords
- texture
- data
- color
- processing
- output
- 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.)
- Pending
Links
Images
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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- 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/50—Lighting effects
-
- 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
Abstract
一种包括定制图形和音频处理器的图形系统产生激动的2维和3维图象和围绕声。所述系统包括3维图形流水线和音频数字信号处理器。通过使用可塑的API和加速硬件的可编程纹理混合器/光照模型配置,在流水线式图形系统中执行芯片一占地面积相当低的多用途纹理环境(TEV)处理子系统,所述加速硬件的可编程纹理混合器/光照模型配置使经计算的色彩和阿尔法数据在多个纹理混合/浓淡周期(级)上循环。
Description
本申请对2000年8月23日提出的美国临时申请第60/226,888号要求优先权,其完整内容作为参考包含在本申请中。本申请涉及同时提交的Law等人题为“用于在图形系统中提供N阿尔法(Alpha)操作的逻辑组合的方法和设备”的申请第
号(代理人参考号723-973)。
发明领域
本发明涉及计算机图形,尤其,涉及诸如家用视频游戏平台之类的交互式图形系统。还是尤其,本发明涉及实施用于多纹理和其它效果的浓淡树的再循环光照模型硬件。
背景技术
我们中间许多人都已经看到过包括惊人的逼真的恐龙、外星人、生气勃勃的玩具以及其它怪诞的生物之类的影片。计算机图形有可能制作这种动画片。使用这种技术,计算机图形艺术家可以指定每个目标的外貌应该是怎样的,以及它的外貌应随时间作出怎样的变化,然后计算机塑造这些目标,并把它们显示在诸如你的电视机或计算机屏幕之类的显示器上。计算机关心执行许多任务,根据每个目标在布景中的位置和方向、看起来光射击到每个目标的方向、每个目标的表面纹理以及其它因素,要求确保所显示的图象的每个分量都是彩色的,而且形状正确。
因为计算机图形产生是复杂的,所以计算机产生的三维图形在几年之前仅限于昂贵的专业化的飞行模拟器、高级图形工作站和超级计算机。公众只有在电影和昂贵的电视广告中看到这些计算机系统产生的某些图象,但是我们大多数人不能与产生图形的计算机实际地交互活动。从可得到相对不昂贵的3维图形平台开始,所有这些情况已经都改变了,例如,现在可得到用于个人计算机的诸如Nintendo 64和各种3维图形卡。现在有可能在你的家或办公室中用相对不昂贵的计算机图形系统与有刺激的3维动画和仿真片进行交互活动。
过去,图形系统设计师面对的一个问题是如何在图形系统中有效地实现光照模型。一般,浓淡处理是执行光计算和从它们确定象素色彩/浑浊度的过程。一般,在通常使用中有3种主要类型的浓淡处理:平坦、Gouraud和Phong。这些相应于计算每多边形、每顶点和每象素的光。已经建立许许多多种浓淡处理模型。没有一种模型受到所有用户的欢迎并且适合于所有的应用。因此,已经建议数种设计方法以提供在编程器选择和浓淡处理模型规格方面的可塑造性。
在R.L.Cook题为“浓淡树”的文章中(SIGGRAPH 84,223-231页),作者描述一种特殊用途语言,在这种特殊用途语言中,把光照模型建立成称为浓淡树的树表达式。一般说来,浓淡树是许多节点的树,每个节点从它的子节点取得参数,并为它的母节点产生参数。例如,参数可以是照明等式(例如,镜面系数或表面法线(Normal))的项。其它参数可以包括大气效应(例如,薄图象模糊)或投影。RenderMan接口使用浓淡树来提供用于多种用途的用户定义的光照模型和系统定义的光照模型。
在已经在非—实时绘制图形系统中广泛地使浓淡树的同时,当试图适应浓淡树在实时绘制的情况中提供的可塑造性时发现了问题。例如,极其希望在诸如家用视频游戏平台和个人计算机图形卡之类的低成本实时绘制系统中提供浓淡树的可塑造性。
图形系统设计师面对的另一个问题是如何有效地提供所谓的单—扫描多纹理的特性。基本上,纹理是一门技术,用于有效地塑造一个表面的特性。例如,作为替代塑造每个分立砖块和在砖墙中的砂浆线的几何图形,有可能把砖墙的图象电子地“粘合”到表面上。可以使用这种纹理能力以显著地增加图象的复杂度而无需相应地增加塑造和处理的成本。
已知为多纹理的纹理的扩展允许把两个或多个纹理施加到相同的表面上。例如,你想建立一个从天外空间看地球的图象。你可以把地球塑造成球形并对它施加两个不同的纹理。第一个纹理可以是大陆和海洋的图象。第二个纹理可以是云覆盖层的图象。通过使云覆盖纹理图象相对于大陆/海洋纹理图象移动,你可以建立极真实动态的映射纹理图象。
某些图形加速器支持多纹理,其中在相同的绘制扫描(rendering pass)期间访问两个或多个纹理。例如,见微软的Direct X 6.0 SBK(1998);Segal等人的“开放GL图形系统:规范”(版本1.2.1)(1998年3月)(www.OpenGL.org)。某些PC图形加速器卡还提供单扫描多纹理。然而,进一步改进是可能的。
发明内容
本发明提供通用化的浓淡树混合器,可以把它使用于多纹理和许多其它可塑造的混合效果。根据本发明提供的一个方面,可以控制在图形流水线中的再循环光照模型硬件,以提供许多独立的可控制的混合级。光照模型硬件包括中间存储器,用于存储以前混合操作的结果。对于每个混合级,光照模型硬件可以选择不同的输入和执行不同的操作。因此,可以使用成本相当低和小型的光照模型硬件任意地实施复杂的浓淡树。
根据本发明提供的另一个方面,把第一纹理映射操作的结果提供给再配置光照模型。光照模型根据第一纹理映射操作的结果执行混合操作。然后使光照模型再配置,并进行连接以接收又一个纹理操作的结果。再配置的光照模型把它的以前的结果和又一个纹理操作的结果进行组合以提供混合的输出。
根据本发明提供的又一个方面,可以使光照模型再循环任何要求的次数,以任意地实施复杂的浓淡处理模型。可以对每个再循环或“级”编程,使之具有许多要求的混合操作中的任何一个混合操作,并从许多彩色、浑浊度或深度源所选择的一个进行混合。考虑到实时绘制定时限制,在特定实施中可以限制再循环的次数,但是合理的再循环级的个数(例如,15个)在实施许多复杂浓淡处理模型方面可以提供较大的可塑造性。
根据本发明提供的另一个方面,在硬件中实施再循环浓淡树象素混合器以使每级的处理时间最少。更详细地,本发明的较佳实施例提供相当低的芯片—占地面积,包括加速硬件的可编程纹理光照模型/象素混合器的多用途纹理—环境处理子系统,它在多个周期/级上使经计算的彩色、浑浊度和其它数据进行循环。纹理环境子系统可以组合每一顶点的光、纹理、光栅化的彩色、浑浊度和深度,以形成供显示的象素参数。可以在纹理环境子系统中通过混合单元独立地处理彩色(例如,RGB(红绿蓝))和阿尔法分量(alpha component)的混合操作,所述混合单元包括一组彩色/阿尔法组合器(光照模型)硬件,可以在多个处理级上再使用以实施多纹理和其它效果。在所有级中间可以共享可选择的当前—彩色/浑浊度输入/输出寄存器以存储中间结果。可以对光照模型硬件在每个级进行再配置,以提供支持单个绘制扫描多纹理和其它效果的特定混合/浓淡处理操作链。
附图简述
从下面结合附图对本发明的实施例的详细描述中,对本发明提供的这些和其它特性和优点将更好和更完全地了解,在所有的附图中,用相同的标记作相应的识别,其中:
图1是示例交互计算机图形系统的总视图;
图2是图1的示例计算机图形系统的方框图;
图3是在图2中的示例图形和音频处理器的方框图;
图4是在图3中示出的示例3维图形处理器的方框图;
图5是图4的图形和音频处理器分示例逻辑流程图;
图6示出示例再使用再循环光照模型;
图7示出使用再循环光照模型实施的示例浓淡处理流水线;
图8示出示例再循环光照模型方框图;
图9示出示例再循环光照模型方框图;
图10示出示例再循环光照模型操作方框图;
图11示出示例再循环光照模型实施;
图12A和12B示出示例色彩交换特性;
图13示出示例纹理环境单元实施;
图14示出示例图象模糊计算单元;
图15示出再循环光照模型怎样用于多纹理的例子;
图16示出使用再循环光照模型的示例多纹理处理;
图17示出使用再循环光照模型的示例多—纹理流水线;
图18示出示例多—纹理流水线控制;
图19示出示例纹理环境单元控制寄存器;以及
图20A和20B示出另外兼容实施的例子。
本发明的示例实施例的详述
图1示出示例交互3维计算机图形系统50。可以使用系统50来玩带有有趣的立体声的交互3维视频游戏。还可以把它用于许多其它应用。
在本例子中,系统50能够交互地以实时处理3维世界的数字显示或模块。系统50可以从任何任意的观察点显示3维世界的某一些或全部。例如,系统50可以根据来自手持控制器52a、52b或其它输入装置的实时输入交互地改变观察点。这允许玩游戏者通过在世界内或世界外的某人的眼睛看到世界。可以把系统50用于不需要实时3维交互显示的应用(例如,2维显示形成和/或非—交互显示),但是可以把极快速显示高质量3维图象的能力应用于建立非常真实和激动的游戏或其它图形交互作用。
使用系统50玩视频游戏或其它应用时,用户首先把主单元54连接到他或她的彩色电视机56或其它显示装置,通过连接在两者之间的电缆58。主单元54产生用于控制彩色电视机56的视频和音频两个信号。视频信号是控制显示在电视屏幕59上的图象的信号,而音频信号是通过电视立体声扬声器61L、61R的再现声音的信号。
用户还需要把主单元54连接到电源。电源可以是传统的AC(交流)适配器(未示出),可以把它插入家中的壁式电气插座,并把家用电转换成适于对主单元54供电的较低DC(直流)电压信号。在其它实施中可以使用电池。
用户可以使用手持控制器52a、52b来控制主单元54。例如,可以使用控制器60来指定显示在电视机56上的字符在3维世界中移动的方向(上或下、左或右、靠近或离开)。控制器60还提供其它应用的输出(例如,菜单选择、指针/光标控制等等)。控制器52可以采取多种形式。在本例中,所示出的控制器52的每一个包括诸如摇杆、按钮和/或方向开关之类的控制器60。可以通过电缆或通过电磁(例如,射频或红外)波无线地把控制器52连接到主单元54。
对于游玩诸如游戏之类的应用程序,用户选择他或她希望玩的存储视频游戏或其它应用程序的一个合适的存储媒体62,并把该存储媒体插入在主单元54中的槽64。例如,存储媒体可以是特殊地编码和/或加密的光盘和/或磁盘。用户可以操作电源开关66以接通主单元54,并导致主单元根据存储在存储媒体62上的软件开始运行视频游戏或其它应用程序。用户可以操作控制器52以把输入提供给主单元54。例如,操作控制器60可能导致游戏或其它应用程序的启动。移动其它控制60可能导致动画式的字符沿不同方向移动,或改变用户在3维世界中的观察点。根据存储在存储媒体62中的特定软件,在控制器52上的各种控制60在不同的时间可以执行不同的功能。
总系统的示例电子线路
图2示出系统50的示例部件的方框图。主要部件包括:
·主处理器(CPU)110;
·主存储器112;以及
·图形和音频处理器114。
在该例子中,主处理器110(例如,加强型IBM Power PC 750)通过图形和音频处理器114接收来自手持控制器108(和/或其它输入装置)的输入。主处理器110交互地响应用户的输入,并执行视频游戏或其它节目,实施视频游戏或其它节目是,例如,通过外部存储媒体62经由海量存储器接入装置106(诸如光盘驱动)提供的。作为在视频游戏的情况下的一个例子,除了许多交互和控制功能之外,主处理器110可以执行碰撞检测和动画处理。
在该例子中,主处理器110产生3维图形和音频命令,并把它们发送到图形和音频处理器114。图形和音频处理器114处理这些命令以在显示器59上产生有趣的可视图象和在立体声扬声器61R、61L或其它合适的声音—产生装置上产生有趣的立体声。
示例系统50包括视频编码器120,它接收来自图形和音频处理器114的图象信号,并把图象信号转换成适合于在诸如计算机监视器或家用彩色电视机56之类的标准显示装置上显示的模拟和/或数字视频信号。系统50还包括音频codec(压缩器/解除压缩器)122,它对数字音频信号压缩和解除压缩,还可以按需要在数字和模拟音频信令格式之间转换。音频codec 122可以通过缓冲器124接收音频输入并把它们提供给图形和音频处理器114供进行处理(例如,与处理器产生的其它音频信号混合和/或通过海量存储器接入装置106的流式传输的音频输出的接收)。在该例子中,图形和音频处理器114可以在音频存储器126(所述存储器可用于音频任务)中存储与音频有关的信息。图形和音频处理器114把所产生的音频输出信号提供给音频codec 122,用于解除压缩和转换成模拟信号(例如,通过缓冲放大器128L、128R),所以可以通过扬声器61R、61L使它们再现。
图形和音频处理器114具有与各种附加装置进行通信的能力,所述各种附加装置是可能存在于系统50中的。例如,可以使用并行数字总线130与海量存储器接入装置106和/或其它部件进行通信。可以使用串行外设总线132与许多外围设备或其它装置进行通信,例如,所述其它装置包括:
·可编程只读存储器和/或实时时钟134;
·modem(调制解调器)136或其它网络接口(而它可以把系统50连接到诸如互联网或其它数字网络之类的电信网络138,可以从/到所述网络下载或上载程序指令和/或数据);以及
·快闪存储器140。
可以使用又一个外部串行总线142与附加的扩展存储器144(例如,存储器卡)或其它装置进行通信。可以使用连接器把各种装置连接到总线130、132、142。
示例图形和音频处理器
图3是示例图形和音频处理器114的方框图。在一个实施例中,图形和音频处理器114可以是一个单片ASIC(专用集成电路)。在该例子中,图形和音频处理器114包括:
·处理器接口移动接收子系统150;
·存储器接口/控制器152;
·3维图形处理器154;
·音频数字信号处理器(DSP)156;
·音频存储器接口158;
·音频接口和混频器160;
·外围设备控制器162;以及
·显示控制器164。
3维图形处理器154执行图形处理任务。音频数字信号处理器156执行音频处理任务。显示控制器164访问来自主存储器112的图象信息并把它提供给视频编码器120,供在显示装置56上显示。音频接口和混频器160与音频codec122连接,并且也可以混合从不同源(例如,来自海量存储器接入装置106的流式传输、音频DSP 156的输出、以及经由音频codec 122接收的外部音频输入)来的音频。处理器接口150提供在主处理器110和图形和音频处理器114之间的数据和控制接口。
存储器接口152提供在图形和音频处理器114和存储器112之间的数据和控制接口。在该例子中,主处理器110通过作为图形和音频处理器114的分量的处理器接口150和存储器接口152访问主存储器112。外围设备控制器162提供在图形和音频处理器114和上述各种外围设备之间的数据和控制接口。音频存储器接口158提供与音频存储器126的接口。
示例图形流水线
图4示出示例3维图形处理器154的更详细的视图。3维图形处理器154包括:除了许多其它部件之外还包括命令处理器200和3维图形流水线180。主处理器110把数据流(例如,图形命令流和显示清单)传递到命令处理器200。主处理器110具有一个两级超高速缓冲器115以使存储器等待时间最小,还具有集中写缓冲器111,用于针对图形和音频处理器114的未超高速缓存的数据流。集中写缓冲器111把部分超高速缓冲器存储界收集到完整的超高速缓冲器存储界,并且一次一个超高速缓冲器存储界把数据发送到图形和音频处理器114,用于最大总线使用。
命令处理器200接收来自主处理器110的显示命令,并对它们进行分析——从共享存储器112得到处理它们所需要的任何附加数据。命令处理器200把顶点命令的流提供给图形流水线180,用于2维和/或3维处理和绘制。图形流水线180根据这些命令产生图象。可以把所产生的图象信息传递到主存储器112,供显示控制器/视频接口单元164访问,单元164把流水线180的帧缓冲输出显示在显示器56上。
图5是图形处理器154的逻辑流程图。主处理器110可以把图形命令流210、显示清单212以及顶点阵列214存储在主存储器112中,并通过总线接口150把指针传递到命令处理器200。主处理器110把图形命令存储在位于主存储器110中的一个或多个图形先进先出(FTFO)缓冲器210中。命令处理器200读取:
·从主存储器112通过片上FIFO存储缓冲器216来的命令流,所述片上FIFO存储缓冲器216接收和缓冲用于同步/流控制和负载平衡的图形命令;
·从主存储器112通过片上调用FIFO存储缓冲器218来的显示清单212;以及
·从命令流和/或在主存储器112中的顶点阵列214通过顶点超高速缓冲器220来的顶点属性。
命令处理器220执行命令处理操作220a,它把属性类型转换成浮点格式,并把所产生的完整的顶点多边形数据传递到用于绘制/光栅化的图形流水线180。可编程存储器判优电路130(见图4)对图形流水线180、命令处理器200、和显示控制器/视频接口单元164之间共享主存储器112判定优先权。
图4示出图形流水线180可以包括:
·变换单元300;
·设置/光栅化器400;
·纹理单元500;
·纹理环境单元600;以及
·象素核心程序700。
变换单元300执行多种2维和3维变换和其它操作300a(见图5)。变换单元300可以包括一个或多个矩阵存储器300b,用于存储在变换处理300a中使用的矩阵。变换单元300把每顶点的输入几何从目标空间变换到屏幕空间;并变换输入纹理坐标和计算投影纹理坐标(300c)。变换单元300还可以执行多边形裁剪/挑选300d。也通过变换单元300b执行的照明处理300e提供每顶点照明计算,在一个实施例中计算多达8个独立的照明。变换单元300还可以执行纹理坐标产生(300c),用于浮雕型凸出映射效果和多边形裁剪/挑选操作(300d)。
设置/光栅化器400包括设置单元,它接收来自变换单元300的顶点数据,并把三角形设置信息发送到一个或多个执行边缘光栅化、纹理坐标光栅化和色彩光栅化的光栅化器单元(400b)。
纹理单元500(它可能包括片上纹理存储器(TMEM)502)执行各种与纹理有关的任务,例如包括:
·取得来自主存储器112的纹理504;
·纹理处理(500a)包括,例如,多纹理处理、后—超高速缓冲器纹理解除压缩、纹理滤波、浮雕、通过使用投影纹理和带阿尔法透明度和深度的BLIT的阴影和照明;
·凸出映射处理,用于计算凸出映射的纹理坐标位移、伪纹理和纹理倾斜效果(500b);以及
·间接纹理处理(500c)。
对于有关块500a、500b和500c的操作的详述,在题为“在图形系统中用于直接和间接纹理处理的方法和设备”(代理人提要第732-961号)的共同受让的未定专利申请第
号和2000年8月23日提出的它的相应的临时申请第60/226,891号中揭示了用于执行规则的和间接的纹理查找操作的示例图形流水线电路和过程的更详细的描述,在此引用该两专利作为参考。
在图形流水线的较佳示例结构中,使用“再循环”纹理流水线结构来实施纹理单元500,所述“再循环”纹理流水线结构使用单个纹理地址坐标/数据处理单元,该单元对逻辑的直接和间接纹理坐标数据的处理进行交错,并提供纹理查找数据反馈路径(500d),用于使从单个纹理获取单元获取的间接纹理查找数据再循环而返回纹理地址坐标/数据处理单元。
纹理单元500把经滤波的纹理值输出到纹理环境单元600,用于纹理环境处理(600a)。纹理环境单元600混合多边形和纹理色彩/阿尔法/深度,还可以执行纹理图象模糊处理(600b),以得到基于反距离的图象模糊效果。纹理环境单元600可以提供多个级,以执行许多其它感兴趣的与环境有关的功能,例如,基于色彩/阿尔法/深度调制、浮雕、纹理细节、纹理交换、箝位和深度混合的功能。
如在图5中所示,在示例实施例中的纹理环境单元600a包括再循环光照模型602。在该例子中,再循环光照模型602包括基于硬件的一般用途混合器,它可以在许多选择的输入之间进行混合,而且可以保留所混合的结果,用于在接连着的混合操作中进一步混合。在该例子中,再循环光照模型602包括可以执行许多不同混合操作的可再使用混合逻辑。在该例子中,再循环光照模型602可以保留许多截然不同的以前混合结果,并可以用这些以前混合结果的任何结果和新提供的值进行混合。这允许再循环光照模型602通过接连着的再循环级执行任何判优浓淡树。例如,见Cook的浓淡树,SIGGRAPH Proceedings,223-231页(1984年7月)。再循环光照模型602可以执行的浓淡树的复杂度受到在给定绘制扫描中再循环光照模型602可以再循环的总次数的限制。在示例实施例中,再循环光照模型602在示例实施例中提供多达15个再循环级,但是不同的实施提供不同的再循环级数目。
一旦纹理环境单元600产生混合的色彩/阿尔法/z输出,象素核心程序700就执行深度(z)比较(700a)和帧缓冲象素混合(700b)。在该例子中,象素核心程序700把数据存储到嵌入式(片上)帧缓冲存储器702。图形流水线180可以包括一个或多个嵌入式DRAM存储器702以本地地存储帧缓冲和/或纹理信息。根据当前有效的绘制模式,也可以在图形流水线180中较早级处执行z比较700a’(例如,如果不需要阿尔法混合,则可以较早地执行z比较)。象素核心程序700包括复制操作700c,它周期性地把片上帧缓冲器702写入主存储器112供显示器/视频接口单元164访问。还可以使用复制操作700c把嵌入式帧缓冲器702内容复制到在主存储器112中的纹理,用于动态纹理合成效果。在复制—出操作期间,可以执行反—假名和其它滤波。由显示器/视频接口单元164每帧读出图形流水线180的帧缓冲器输出(最终把它存储在主存储器112中)。显示器控制器/视频接口164提供数字RGB(红绿蓝)象素值,供在显示器102上显示。
示例再循环光照模型
图6示出示例再循环光照模型实施例的高级方框图,而图7示出可以使用图6的再循环光照模型实施的示例光照模型流水线的逻辑图。如在图6中所示,再循环光照模型602接收许多不同的输入,并产生可以反馈回它的输入的一个输出。
更详细地,可以在下述任何输入类型中选择在示例实施例中的再循环光照模型602:
·光栅化的色彩/阿尔法;
·纹理色彩/阿尔法;
·计算的色彩/阿尔法;
·其它。
在示例实施例中,光栅化器400可以提供光栅化的色彩/阿尔法。例如,光栅化的色彩/阿尔法可以是Gouraud浓淡象素,所述Gouraud浓淡象素是根据变换单元300在每一顶点的基础上执行照明计算而通过光栅化器400确定的。纹理色彩/阿尔法可以是通过纹理单元500执行的直接或间接纹理映射操作的结果。再循环光照模型602根据可编程混合操作把这些值的任何一个/全部和/或常数进行混合,以在它的输出处提供经计算的色彩/阿尔法值。可以把经计算的色彩/阿尔法值作为输入反馈回再循环光照模型602,供在接连着的混合操作中使用。
可以把再循环光照模型602的每个独立地受控制的再循环称为一个“级”。在示例实施例中,通过在专用集成电路(ASIC)中的高速硬件逻辑来实施再循环光照模型602。通过允许任何需要数目的浓淡/混合级而同时降低硬件复杂度和所需要的集成电路不动产,对提供许多受到独立控制的逻辑级的高速硬件逻辑再循环功能性提供了灵活性。在示例实施例中的每个再循环光照模型602级对色彩(RGB)和阿尔法(透明度)计算独立的混合操作。可以从许多不同操作通过运行在主处理器110上的应用程序对在示例实施例中的混合计算进行编程,例如,所述许多不同操作包括:
·调制;
·调制2x;
·调制4x;
·加;
·加符号;
·加符号2x;
·减;
·加平滑;
·混合散射阿尔法;
·混合纹理阿尔法;
·混合因子阿尔法;
·混合当前阿尔法;
·混合预—乘的纹理阿尔法;
·调制阿尔法和加色彩;
·调制色彩和加阿尔法;
·调制反阿尔法和加色彩;
·调制反色彩和加阿尔法;
·镜面色彩和纹理(多个级);
·浮雕(多个级);
·纹理细节(多个级);
·其它操作。
图7示出可以由再循环光照模型602提供的示例再循环浓淡流水线。这个逻辑流水线提供多个顺序的混合级,每个混合级把一个经计算的色彩/阿尔法与一个纹理色彩/阿尔法和/或一个光栅化的色彩/阿尔法进行混合。在示例实施例中,可以提供多达16个不同的混合操作级,每级接收内插的纹理和光栅色彩/阿尔法。光栅化器400(见图5)的编程指定8个纹理坐标组中的哪一个和8个物理纹理504中的哪一个使用于通过再循环光照模型602提供的纹理内插。光栅化器400还可以控制把两个光栅化色彩中的哪一个使用于给定的再循环光照模型602级。
示例再循环光照模型实施例
图8示出适合于在纹理环境单元600中使用的再循环光照模型602的示例实施例的方框图。在所示的例子中,再循环光照模型602包括许多多路复用器656,用于在待通过混合操作符658操作的各种不同输入(例如,纹理色彩/阿尔法、光栅化的色彩/阿尔法以及以前混合操作的结果)之间进行选择。可以把混合操作符658的结果存储在在示例实施例中的4个中间寄存器660中的任何一个寄存器中。然后输入多路复用器656可以选择这些寄存器660中的任何一个,用于在接连着的混合级中的进一步混合操作。
在示例实施例中,再循环光照模型8对每个混合级提供色彩分量操作和分开的阿尔法分量操作。对于给定的级,块658执行的操作对于色彩分量和阿尔法分量可以是不同的。通过运行在主处理器110中的应用程序可以独立地控制色彩和阿尔法分量操作。对于每个再循环级提供独立的色彩和阿尔法操作控制的这种能力允许再循环光照模型602优先执行操作的复数阿尔法(透明度)树,在处理速度方面没有增加成本。把再循环光照模型602的最后级产生的阿尔法输入到阿尔法比较块662。例如,这个阿尔法比较操作662的结果可以使用于有条件地屏蔽色彩和/或z写入到嵌入式帧缓冲器702。
在示例实施例中,把最后混合级的最终混合输出存储在寄存器660(4)中,用于色彩输出和/或阿尔法门限值662。还对z-纹理提供z纹理路径。见Leather等人的题为“Z-纹理”(代理人参考号723-965)的未定的共同受让美国专利申请第
号和2000年8月23日提出的它的相应的临时申请第60/226,913号,在此引用该两专利作为参考。
示例输入多路复用器配置
图9示出示例再循环光照模型多路复用器配置656。如在图9中所示,4个多路复用器656a…656d中的每一个可以选择许多不同色彩输入中的一个,所述不同色彩输入包括:
·寄存器660(1)的内容;
·寄存器660(2)的内容;
·寄存器660(3)的内容;
·寄存器660(4)的内容;
·纹理色彩;
·纹理阿尔法;
·常数(寄存器)色彩;
·常数(寄存器)阿尔法;
·光栅化的色彩;
·光栅化的阿尔法;
·几个有用的固定常数;
·可编程常数;
·复制到其它纹理色彩通道的纹理色彩分量(该特性对于点积、强度计算和色彩空间转换是有用的);
·其它输入。
可以对每个再循环光照模型独立地指定到多路复用器656的输入控制。在示例实施例中的多路复用器656的输出是无符号的8-位值或有符号的10位值,但是其它实施可以提供不同的精度。
示例混合计算/操作
图10示出示例混合/浓淡操作符658。在示例实施例中,再循环光照模型602可以对每个级执行计算,可以把该计算归纳为:
R=(D+(-1)sub*((1-C*A+C*B)+bias<<shift
在示例实施例中的计算块664中的变元A、B、和C选择自:
·4个色彩寄存器;
·光栅化的色彩(散射或镜面);
·纹理;
·上述色彩的阿尔法分量或所定义的常数;
·固定常数;
·可编程常数。
在示例实施例中,计算块664在值A、B和C上操作。把计算块664的输出通过任意的否定块666传递,并通过加法器668与“D”多路复用器656(D)的输出和一个任意的偏置值相加。可以通过定标块670对所产生的总和进行定标,并在存储在寄存器660(1)、660(2)、660(3)、660(4)中任何一个之前通过箝位块672
箝位,用于输出和/或接连着进一步进行混合。
在示例实施例中,定标块670可以通过0.5、1、2或4进行定标—但是其它实施可以提供其它定标系数。箝位块672可以支持许多不同的箝位模式。在一个实施例中,输入值A、B、C可以是在一个实施中的无符号8-位值,输入值D可以是有符号的10-位值,而箝位块672的输出可以是有符号的10-位值。
图11示出再循环光照模型602的更详细的实施。在该例子中,通过硬件乘法器664b、664c、“1-f”补码块664a和加法器664d实施计算块664。在该例子中,乘法器664b使B和C输入相乘,并把所产生的积提供给加法器664d的一个输入。其它乘法器664c使A输入和值(1-C)相乘,并把它所产生的积提供给加法器664d的其它输入。该硬件计算在图10中示出的通过块664计算的公式。把加法器664提供的所产生的积输出到符号反向块666。
在图11所示的实施例中,提供附加比较器674,以对多路复用器656输出A和D进行比较,使用比较的结果在多路复用器656输出C和0值之间进行选择(通过多路复用器676)。在数据路径中提供附加的多路复用器678,以在符号操作符666和多路复用器676的输出(即,比较操作的结果)之间进行选择。通过在一个再循环级中执行所有混合计算和比较结果操作,这种比较可以节省再循环级。在示例实施例中的比较器674可以同时比较一、二或三个通道,以提供8-位、16-位或24-位比较。
在图11中示出的示例实施例中,定标操作670提供的定标具有任何下述因子;
·0.5:
·1;
·2:
·4。
在示例实施例中,通过多路复用器670e选择不同的定标块670a、670b、670c、670d,用于提供给箝位块672。
在图11中示出的示例实施例中,在通过块664计算之前,可以通过“色彩交换”块680任意地传递到多路复用器656的输入。可以使用色彩交换块680把每个色彩分量(R、G或B)广播到其它两个色彩分量。见图12A、12B。例如,可以把这个特征使用于点积、强度计算和色彩空间转换。
在图11中示出的示例实施例包括对于固定和可编程常数的支持。在一个实施例中,使用常数选择来选择通过常数选择寄存器确定的任意的常数值,所述常数选择寄存器指定是否使用多个固定定义值之一或多个可编程色彩寄存器值之一。在混合操作中,这种可编程和固定常数提供了灵活性。在其它实施例中,可以使用较少的固定常数(例如,,1.0)作为替代。
例如,可以对诸如在DirectX 6.0或7.0的D3D中规定的不同的混合操作设置图11的数据路径。在示例实施例中,使用7个参数对再循环光照模型602混合级进行编程:
·变元A;
·变元B;
·变元C;
·变元D;
·sub;
·bias;
·shift。
下面是一些混合操作的例子:
SelectArg(选择变元)
R=(0,0,0,D,0,0,0)=D
Modulate,Modulate2X,Modulate4X(调制,调制2X,调制4X)
R=(0,B,C,0,0,0,0)=B*C
把变元B和C的分量一起相乘。可以使用2或4的定标系数增加亮度:
R=(0,B,C,0,0,0,1)=B*C*2
R=(0,B,C,0,0,0,2)=B*C*4
Add(加)
把变元的分量加在一起:
R=(A,0,0,D,0,0,0)=A+D
AddSigned,AddSigned2X(有符号加,有符号加2X)
使变元的分量带有-0.5偏置而相加,使值的有效范围从-0.5到0.5。可以把结果乘以2而增加亮度:
R=(A,0,0,D,0,-0.5,0)=A+D-0.5
R=(A,0,0,D,0,-0.5,1)=(A+D-0.5)*2
Subtract(减)
从第一变元的分量减去第二变元的分量:
R=(A,0,0,D,1,-0,0)=D-A
AddSmooth(加平滑)
对于辉光、图象模糊等数学地校正基本加操作。然而,它可能突然饱和而导致人工制造轮廓。看起来较好而数学的正确性较差的方法是减去积:
R=(A,0,C,C,0,0,0)=C+A*(1-C)
BlendDiffuseAlpha,BlendTextureAlpha,BlendFactorAlpha,BlendCurrentAlpha(混合散射阿尔法,混合纹理阿尔法,混合因子阿尔法,混合当前阿尔法)
执行线性混合,所使用的阿尔法来自:来自顶点(CDMA光栅化的阿尔法)的内插阿尔法,来自当前纹理的阿尔法(C=纹理阿尔法),参数阿尔法(C=常数阿尔法),和/或当前色彩的阿尔法(C=计算的阿尔法):
R=(A,B,CA,0,0,0,0)=A*(1-CA)+B*CA
BlendTextureAlphaPM(混合预—乘的纹理阿尔法):
具有预—乘阿尔法的线性混合:
R=(A,0,CA,D,0,0,0)=D+A*(1-CA)
ModulateAlpha_AddColor(调制阿尔法_加色彩)
用第一变元的阿尔法调制第二变元并把结果加到第一变元。
RGBA=(0,BA,CRGB,BRGB,0,0,0)=BRGB*CRGB
ModulateColor_AddAlpha(调制色彩_加阿尔法)
调制变元,然后加第一变元的阿尔法:
RGBA=(0,BRGB,CRGB,BA,0,0,0)=BRGB*CRGB+BA
ModulateInvAlpha_AddColor(调制反向阿尔法_加色彩)
相似于ModulateAlpha_AddColor,但是它使用第一变元的阿尔法的反量:
RGBA=(ARGB,0,CA,CRGB,0,0,0)=(1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha(调制反向色彩_加阿尔法)
相似于ModulateColor_AddAlpha,但是它使第一色彩的反量:
RGBA=(ARGB,0,CA,CRGB,0,0,0)=(1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha(调制反向色彩_加阿尔法)
相似于ModulateColor_AddAlpha,但是它使第一色彩的反量:
RGBA=(ARGB,0,CRGB,CA,0,0,0)=(1-CRGB)*ARGB+CA
Specular Color and Texture(镜面色彩和纹理)
除了上述操作之外,通过使用多个级可以得到更复杂的混合。例如:
最终色彩=镜面纹理*镜面色彩+散射纹理*散射色彩
使用两级可以实施,如:
1. R=(0,TSPEC,CSPEC,0,0,0,0)=TSPEC*CSPEC
2. R=(0,TDIFF,CDIFF,0,0,0,0)=TSPEC*CSPEC+TDIFF*CDIFF
Embossing(浮雕)
这个例子用于浮雕:
最终色彩=(散射色彩+常数*(法线1-法线2))*材料纹理
使用3级可以实施,如:
1. R=(0,TNORM1,常数,CDIFF,0,0,0)=TNORM1*常数+CDIFF
2. 1.R=(0,TNORM2,常数,R,1,0,0)=(TNORM1-TNORM2)*常数+CDIFF
3. R=(R,0,TMAT,0,0,0,0,0)=((TNORM2)*常数+CDIFF)*TMAT
Detail Texture(纹理细节)
这个例子用于纹理细节。不同的纹理具有0.5的偏置。
最终色彩=基本纹理+(不同纹理A-0.5)+(不同纹理B=0.5)
可以实施,如:
1. R=(0,0,0,TBASE,0,0,0)=TBASE
2. R=(TDIFFA,0,0,R,0,0,0)=TBASE+TDIFFA-0.5
3. R=(TDIFFB,0,0,R,0,0,0)=TBASE+TDIFFA-0.5+TDIFFB-0.5
在示例实施例中,箝位块672可以提供下面任何箝位模式:
tev_alpha-env(模式) | 箝位 | 说明 |
TEV_MODE_LINEAR | TEV_CLAMP_HITEV_CLAMP_LO | S=(R>11023)?1023:R<-1024)?-1024:R)S+(R>255)?255:((R<0)?0:R) |
TEV_MODE_GE0 | TEV_CLAMP_HITEV_CLAMP_LO | S=(R>=0)?255:0S=(R>=0)?0:255 |
TEV_CLAMP_HITEV_CLAMP_LO | S=(R==0)?255:0S=(R==0)?0:255 | |
TEV_CLAMP_HITEV_CLAMP_LO | S=(R<=0)?255:0S=(R<=0)?0:255 |
阿尔法功能支持
示例实施例再循环光照模型602支持不同的阿尔法功能。注意在示例实施例中,阿尔法比较操作不是再循环级的一部分,而是在完成再循环之后执行的。见图11。在示例实施例中,阿尔法功能把源阿尔法和使用任何一个下述操作的基准阿尔法进行比较,所述各种操作如下:
·always(始终);
·never(从不);
·not equal(不等于);
·equal(等于);
·less(小于);
·greater than or equal(大于或等于);
·less or equal(小于或等于);
·greater than(大于)。
在示例实施例中组合两种功能,使用:
·AND(与);
·OR(或);
·XOR(异或);
·XNOR(异或非);
如果在象素四边形中所有有效象素的阿尔法测试都失败,则废弃四边形,因此不更新帧缓冲器702。下面是一些例子说明可以实施些什么:
例1
Asrc>Aref0 AND Asrc<Aref1
例2
Asrc>Aref0 OR Asrc<Aref1
可以使用再循环光照模型602的阿尔法功能(例如,在与非—再循环阿尔法比较的组合中)以提供模拟浓淡树的透明树。尤其,可以使用再循环光照模型602的阿尔法功能来提供在M个阿尔法输入上的N个逻辑阿尔法操作,其中N和M可以是任何整数。例如,可以使用阿尔法比较和阿尔法逻辑操作的组合来提供非光真实感效果(诸如卡通轮廓)。例如,见Law等人的题为“在图形系统中用于提供非—光真实感卡通轮廓的方法和设备”(代理人提要723-973)的共同受让的未定美国专利申请第
号和2000年8月23日提出的它的相应的临时申请第60/226,915号,在此引用该两专利申请作为参考。
示例Z纹理
通过使用纹理映射修改屏幕z值,使光照模型602用深度支持光标(sprites)。一旦启动,光照模型602把4个z值发送到象素核心程序700,每4个代替基准z和两个斜率。通过把z纹理象素加到4个基准z或用z纹理象素代替基准z而得到每个z值。见上面参考的共同一受让的z纹理专利申请。
图13示出包括光照模型602的纹理环境单元600的示例方框图。在示例实施例中的纹理环境单元600除了包括命令部分694和光照模型602之外还包括图象模糊操作符690和图象模糊混合器操作符692。有关块690和692的操作的详述,见Law等人的题为“在图形系统中用于改进图象模糊效果的方法和设备”(代理人参考号723-954)的共同受让的未定美国专利申请第
号和2000年8月23日提出的它的相应的临时申请第60/227,032号,在此引用该两专利申请作为参考。
用于多纹理的再循环光照模型的使用例子
图15示出可以怎样地把再循环光照模型602使用于多纹理。在示例实施例中,再循环纹理单元500能够显示相应于给定表面的纹理映射输出的序列。例如,它可以在一个实施中把多达8个不同的纹理映射到同一原始表面。再循环纹理单元500可以提供产生纹理映射输出的相应序列的直接(和间接)纹理操作。在示例实施例中,再循环光照模型602在每个映射纹理输出变成可得到时接收每个映射纹理输出,并把映射纹理输出和原始表面输出/阿尔法信息(从通过变换单元300执行的照明操作得到的)和/或其它以前产生的纹理映射进行混合。再循环光照模型602在流水线方式中执行它的混合操作,以致再循环光照模型602混合纹理单元500以前产生的纹理输出的同时,纹理单元正在产生在序列中的又一个纹理输出。
在示例实施例中,再循环光照模型602保留中间混合结果,以待进一步与再循环纹理单元500提供的另外的信息进行混合。纹理单元500产生在纹理映射输出的序列中最后一个纹理之后不久,再循环光照模型602可以执行相应的最终混合操作,并通过用于深度缓冲的图象模糊块600b输出混合结果,最后与帧缓冲器702的内容进行色彩混合,并显示。
图16示出使用在图6中示出的再循环光照模型602的示例多纹理过程。在图16的示例无一限制例子中,变换单元300产生纹理坐标数据(块1002)。然后系统50使所产生的纹理坐标数据与特定纹理映射相关联,并且纹理单元500从纹理映射(块1004)取得相应的纹理象素(纹理数据)。同时,配置再循环光照模型602以执行预定的混合/浓淡操作,并把所得到的纹理数据提供给用于混合(块1008)的再循环光照模型602。再循环光照模型602可以把所取得的纹理数据与某些其它输入和/或所保留的以前的结果(块1010)进行混合。例如,再循环光照模型602可能把所取得的纹理数据与通过照明块300e(相应于在每一顶点的基础上在多边形上执行Gouraud浓淡操作)产生的色彩或浑浊度进行混合。在某些情况中,混合操作1010可能进行把所取得的纹理数据与以前取得的纹理数据混合的操作。有时,混合操作1010可能在所取得的纹理数据上执行变换,或可能进行传递所取得的纹理数据的简单动作,以把所取得的纹理数据存储在再循环光照模型602中,用于接连着的混合操作。
再循环光照模型602临时存储混合操作1010的输出作为中间结果(块1012)。然后整个过程可以再循环任何次数以取得纹理数据的混合附加组。在示例实施例中,在纹理单元500执行块1004、1008的同时,再循环光照模型602可以执行块1010、1012,以取得附加的纹理映射。
图17示出使用再循环光照模型602的示例多—纹理流水线。图17示出,每次再循环光照模型602再循环,它就提供附加的受独立控制的混合级,所述混合级能够把新数据组与以前混合操作提供的任何或所有混合结果进行混合。
因为示例较佳实施例系统50是一个实时绘制系统,再循环纹理单元500可以再循环的次数受到它相对于图象帧之间的时间的每次再循环所取的时间量(例如,一秒的1/30或1/60)的限制。在一个实施例中,在单个绘制扫描中再循环纹理单元500可以执行的再循环的总次数可能是8次,虽然不同的实施可能提供不同的再循环次数。在示例实施例中,再循环光照模型602可以再循环的次数约等于纹理单元500可以再循环次数的两倍。可以使用再循环光照模型602提供的附加的再循环,以执行许多加强型和有趣的图象效果,例如包括:图象模糊、z纹理、环境映射、浮雕、纹理细节和其它图象效果。在纹理单元500不能使级得到纹理的期间,最好把输入到再循环光照模型602的纹理设置成零。
图18示出示例控制步骤,用于控制再循环光照模型602以提供多—纹理操作。在该特定例子中,主处理器110可以指定许多不同的顶点214点亮和/或通过变换单元300变换。变换单元300可以产生供纹理单元500应用的合适的纹理坐标,而光栅化器400可以根据照明计算使顶点光栅化。可以在根据许多纹理映射504的一系列纹理映射操作中使用如此产生的纹理坐标。可以把这些纹理映射结果顺序地提供给许多顺序的再循环光照模型602级,以提供多纹理混合。
示例寄存器接口
图19提供寄存器内容的详细示例定义。下面进一步示出在图19中示出的各种寄存器的更详细的说明:寄存器 名称 格式 说明
gen_mode ntev 4 指定当前纹理级计数(1-16)。
tev_color_env_i dest 2 指定目的地寄存器
0 | TEV_CDEST_CC0 | 色彩寄存器0 |
1 | TEV_CDEST_CC1 | 色彩寄存器1 |
2 | TEV_CDEST_CC2 | 色彩寄存器2 |
3 | TEV_CDEST_CC3 | 色彩寄存器3 |
shift 2 当在模拟混合模式中时,这个字段
指定使输出移位的量:
0 | TEV_SHIFT_0 | 无移位 |
1 | TEV_SHIFT_1 | 左移1位 |
2 | TEV_SHIFT_2 | 左移2位 |
3 | TEV_SHIFT_3 | 右移1位 |
当在比较模式中时,(偏置=3,仅revB),字段指定比较的大小和分量选择。
0 | TEV_SHIFT_R8 | 仅比较红通道。 |
1 | TEV_SHIFT_RG16 | 比较作为16位值的红/绿通道。 |
2 | TEV_SHIFT_RGB24 | 比较作为24位值的红/绿/蓝通道。 |
3 | TEV_SHIFT_RGB8 | 分别比较红、绿和蓝通道。 |
clamp 1 指定箝位操作(见第9部分)。
0 | TEV_CLAMP_HI | 箝位到-1024,+1023 |
1 | TEV_CLAMP_LO | 箝位到0.255 |
sub 1 当在模拟混合模式中时,这个字段指定混合结果的加或减:
0 | TEV_SUB_ADD | 输出=d+(1-C)*a+c*b+偏置 |
1 | TEV_SUB_SUB | 输出=d-(1-C)*a-c*b+偏置 |
当在比较模式中时,(偏置=3,仅revB),字段指定比较的大小和分量选择:
0 | TEV_SUB_GT | 输出=d+((a>b)?c:0) |
1 | TEV_SUB_EQ | 输出=d+((a==b)?c:0) |
bias 2 指定偏置的值。
0 | TEV_SHIFT_R8 | 仅比较红通道。 |
1 | TEV_SHIFT_RG16 | 比较作为16位值的红/绿通道。 |
2 | TEV_SHIFT_RGB24 | 比较作为24位值的红/绿/蓝通道。 |
3 | TEV_SHIFT_RGB8 | 分别比较红、绿和蓝通道。 |
clamp 1 指定箝位操作(见第9部分)。
sub 1 指定混合结果的加或减。
0 | TEV_CLAMP_HI | 箝位到-1024,+1023 |
1 | TEV_CLAMP_LO | 箝位到0.255 |
0 | TEV_SUB_ADD | 加混合结果 |
1 | TEV_CLAMP_SUB | 减混合结果 |
当在比较模式中时,(偏置=3,仅revB),段指定比较功能:
0 | TEV_SUB_GT | 输出=d+((a>b)?c:0) |
1 | TEV_SUB_EQ | 输出=d+((a==b)?c:0) |
bias 2 指定偏置的值。
0 | TEV_BIAS_ZERO | 0 |
1 | TEV_BIAS_PLUS | +0.5 |
2 | TEV_BIAS_MINUS | -0.5 |
3 | TEV_BIAS_COMPARE | 选择用于混合器的“比较”模式。(仅revB) |
sela 3 指定变元A:
0 | TEV_ASEL_A_CA0 | 寄存器0阿尔法 |
1 | TEV_ASEL_A_CA1 | 寄存器1阿尔法 |
2 | TEV_ASEL_A_CA2 | 寄存器2阿尔法 |
3 | TEV_ASEL_A_CA3 | 寄存器3阿尔法 |
4 | TEV_ASEL_A_TXA | 纹理阿尔法 |
5 | TEV_ASEL_A_RSA | 光栅化阿尔法 |
6 | TEV_ASEL_A_KK | 不变色彩(见kasel) |
7 | TEV_ASEL_A_KOO | 0.0 |
selb 3 指定变元B,selb与sela相似。
selc 3 指定变元C,selc与sela相似。
seld 3 指定变元D,seld与sela相似。
tsel 2 指定纹理色彩交换模式。
(rev A)
0 | TEV_BIAS_ZERO | 0 |
1 | TEV_BIAS_PLUS | +0.5 |
2 | TEV_BIAS_MINUS | -0.5 |
3 | TEV_BIAS_COMPARE | 选择用于混合器的“比较”模式。(仅revB) |
sela 4 指定变元A。
0 | TEV_CSEL_CC0 | 寄存器0色彩 |
1 | TEV_CSEL_CA0 | 寄存器0阿尔法 |
2 | TEV_CSEL_CC1 | 寄存器1色彩 |
3 | TEV_CSEL_CA1 | 寄存器1阿尔法 |
4 | TEV_CSEL_CC2 | 寄存器2色彩 |
5 | TEV_CSEL_CA2 | 寄存器2阿尔法 |
6 | TEV_CSEL_CC3 | 寄存器3色彩 |
7 | TEV_CSEL_CA3 | 寄存器3阿尔法 |
8 | TEV_CSEL_TXC | 纹理色彩 |
9 | TEV_CSEL_TXA | 纹理阿尔法 |
A | TEV_CSEL_RSC | 光栅化色彩 |
B | TEV_CSEL_RSA | 光栅化阿尔法 |
C | REVA:TEV_CSEL_K10REVB:TEV_CSEL_KK | 1.0不变色彩(见kcsel) |
D | TEV_CSEL_K05 | 0.5 |
E | TEV_CSEL_K25 | 0.25 |
F | TEV_CSEL_K00 | 0.0 |
selb 4 指定变元B,selb与sela相似。
selc 4 指定变元C,selc与sela相似。
seld 4 指定变元D,seld与sela相似。
tev_color_env_i dest 2 指定目的地寄存器
0 | TEV_ADEST_CC0 | 色彩寄存器0 |
1 | TEV_ADEST_CC1 | 色彩寄存器1 |
2 | TEV_ADEST_CC2 | 色彩寄存器2 |
3 | TEV_ADEST_CC3 | 色彩寄存器3 |
shift 2 指定移位量:
0 | TEV_SHIFT_0 | 无移位 |
1 | TEV_SHIFT_1 | 左移1位 |
2 | TEV_SHIFT_2 | 左移2位 |
当在比较模式中时,(偏置=3,仅revB),字段指定比较的大小和分量选择:
0 | TEV_SWAP_0 | RGBA=>RGBA |
1 | TEV_SWAP_R | RGBA=>RRRA |
2 | TEV_SWAP G | RGB1=>GGGA |
3 | TEV_SWAP_B | RGBA=>BBBA |
mode 2 指定箝位模式(见第9部分)。仅Rev.A.!
(RevA)
0 | TEV_MODE_LINEAR | 线性箝位。 |
1 | TEV_MODE_GE0 | 大于或等于0。 |
2 | TEV_MODE_EQ0 | 等于0。 |
3 | TEV_MODE_LE0 | 小于或等于0。 |
tsel,2 指定纹理和光栅化器色彩交换模式。
rsel(RevB)
0 | TEV_SWAP_0 | 使用交换模式0 |
1 | TEV_SWAP_R | 使用交换模式1 |
2 | TEV_SWAP_G | 使用交换模式2 |
3 | TEV_SWAP_B | 使用交换模式3 |
tev_r,as2.8 指定纹理当前色彩值。
registerl_i
tev_g,bs2.8 指定纹理当前色彩值。
registerh_i
tev_kr,ka 0.8指定不变色彩值。该特性仅施加于rev B。
kregisterl_i
tev_kg,kb 0.8指定不变色彩值。该特性仅施加于rev B。
kregisterh_i
tev_r,as2.8 指定纹理当前色彩值。
registerl_i
tev_range_中心 10指定用于距离调节的屏幕的x中心。
adj_c
emb1 启动距离调节。
0 | TEV_ENB_DISABLE | 禁止距离调节。 |
1 | TEV_ENB_ENABLE | 启动距离调节。 |
rev_range_adj_k r2k,u4.8 指定距离调节功能。
r2k+1
tev_fog_param_0 a s11e8 指定屏幕的“a”参数到眼睛空间转换函数:
tev_fog_param_1 b-mag u0.24指定屏幕的“b”参数到眼睛空间转换函数:
tev_fog_param_2 b-shf 5 指定预—偏移屏幕z的量。这等效于“b”参数的指数+1的值。
tev_fog_param_3 fsel 3 指定图象模糊类型如下:
0 | TEV_FSEL_OFF | 没有图象模糊。 |
1 | 保留 | |
2 | TEV_FSEL_LIN | 指数图象模糊 |
3 | 保留 | |
4 | TEV_FSEL_EXP | 指数图象模糊 |
5 | TEV_FSEL_EX2 | 指数平方图象模糊 |
6 | TEV_FSEL_BXP | 向后的指数图象模糊 |
7 | TEV_FSEL_BX2 | 向后的指数平方图象模糊 |
proj 1 指定我们是否有透视的或正交的投影。
0 | TEV_FOG_PERSP | 透视投影 |
1 | TEV_FOG_ORTHO | 正交投影 |
c s11e8 指定在距离调节之后从眼睛—空间Z减去的量。
tev_fog_r,g,b 8 指图象模糊色彩值。
color
tev_alphafunc op03 指定在什么情况下强迫象素的阿尔法0为1。
0 | TEV_AOP_NEVER | 从不 |
1 | TEV_AOP_LESS | 阿尔法<AF_VAL |
2 | TEV_AOP_EQUAL | 阿尔法=AF_VAL |
3 | TEV_AOP_LE | 阿尔法<=AF_VAL |
4 | TEV_AOP_GREATER | 阿尔法>AF_VAL |
5 | TEV_AOP_NOTEQUAL | 阿尔法!=AF_VAL |
6 | TEV_AOP_GE | 阿尔法>=AF_VAL |
7 | TEV_AOP_ALWAYS | 始终 |
op13 指定阿尔法操作1。相似于op0。
loicc 2 指定在组合两个阿尔法操作中的逻辑操作。
0 | TEV_LOGIC_AND | 与 |
1 | TEV_LOGIC_OR | 或 |
2 | TEV_LOGIC_XOR | 异或 |
3 | TEV_LOGIC_XNOR | 异或非 |
a0 8参考阿尔法0。
a1 8参考阿尔法1。
tev_env_z_0 zoff u24.0指定使用在z纹理中的z偏置。
tev_env_z_1 type 2 指定z纹理类型。
0 | TEV_Z_TYPE_U8 | u8.0 |
1 | TEV_Z_TYPE_U16 | u16.0 |
2 | TEV_Z_TYPE_U24 | u24.0 |
3 | 保留 |
op 2 启动z纹理。
0 | TEV_Z_OP_OFF | 禁止 |
1 | TEV_Z_OP_ADD | 加 |
2 | TEV_Z_OP_REP | 替代 |
3 | 保留 |
tev_ksel_i kcsel,5 对16个状态中的每一个选择不变色彩/定标。仅把该特性施加于rev B。
(Rev b) kasel
0 | TEV_KSEL_1 | 1.0 |
1 | TEV_KSEL_7_8 | 0.875 |
2 | TEV_KSEL_3_4 | 0.75 |
3 | TEV_KSEL_5-8 | 0.625 |
4 | TEV_KSEL_1_2 | 0.5 |
5 | TEV_KSEL_3_8 | 0.375 |
6 | TEV_KSEL_1_4 | .025 |
7 | TEV_KSEL_1-8 | 0.125 |
8 | ||
9 | ||
10 | ||
11 | ||
16 | TEV_KSEL_K0_R | 不变色彩0(r) |
17 | TEV_KSEL_K1_R | 不变色彩1(r) |
18 | TEV_KSEL_K2_R | 不变色彩2(r) |
19 | TEV_KSEL_K3_R | 不变色彩3(r) |
20 | TEV_KSEL_K0_R | 不变色彩0(g) |
21 | TEV_KSEL_K1_G | 不变色彩1(g) |
22 | TEV_KSEL K2_G | 不变色彩2(g) |
23 | TEV_KSEL_K3_G | 不变色彩3(g) |
24 | TEV_KSEL_K0_B | 不变色彩0(b) |
25 | TEV_KSEL_K1_B | 不变色彩1(b) |
26 | TEV_KSEL_K2_B | 不变色彩2(b) |
27 | TEV_KSEL_K3_B | 不变色彩3(b) |
28 | TEV_KSEL_K0_A | 不变色彩0(a) |
29 | TEV_KSEL_K1_A | 不变色彩1(a) |
30 | TEV_KSEL_K2_A | 不变色彩2(a) |
31 | TEV_KSEL_K3_A | 不变色彩3(a) |
xr,xg,指定4个交换模式中的一个。在每级期间,“tsel”选择纹理的
xb,xa,交换模式,而“rsel”选择光栅化色彩的交换模式。
红 | 绿 | 蓝 | 阿尔法 | ||||
xr | xg | xb | xa | ||||
00 | 红 | 00 | 红 | 00 | 红 | 00 | 红 |
01 | 绿 | 01 | 绿 | 01 | 绿 | 01 | 绿 |
10 | 蓝 | 10 | 蓝 | 10 | 蓝 | 10 | 蓝 |
11 | 阿尔法 | 11 | 阿尔法 | 11 | 阿尔法 | 11 | 阿尔法 |
在复位时,使这些值初始化如下(用于revA兼容性):
xg | xb | xa | ||
交换模式0 | 00 | 01 | 10 | 11 |
交换模式1 | 00 | 00 | 00 | 11 |
交换模式2 | 01 | 01 | 01 | 11 |
交换模式3 | 10 | 10 | 10 | 11 |
下面是示例应用程序编程接口调用:
GXSetTevOp
说明:这是一个方便的功能,设计成使纹理环境单元的初始编程更容易。这个宏调用带有预定义变元的GXSetTevColorIn、GXSetTevColorOp、GXSetTevAlphaIn和GXSetTevAlphaOp来实施熟悉的纹理组合功能。
为了启动再循环光照模型级的接连着的组,应用程序应该调用GXSetNumTevStages功能。
在下面的表中,Cv是级的输出色彩,Cr是以前级的输出色彩,而Ct是纹理色彩。Av是级的输出阿尔法,Ar是以前级的输出阿尔法,而At是纹理阿尔法。作为特殊情况,在第一再循环光照模型级处使用光栅化色彩(GX_CC_RASC)作为Cr和使用光栅化阿尔法(GX_CA_RASC)作为Ar,因为在那里没有以前级。
模式 | 色彩输出 | 阿尔法输出 |
GX_MODULATE(调制) | Cv=CrCt | Av=ArAt |
GX_DECAL | Cv=(1-At)Cr+AtCt | Av=Ar |
GX_REPLACE(替代) | Cv=Ct | Av=At |
GX_BLEND(混合) | Cv=(1-Ct)Cr+Ct | Av=AtAr |
GX_PASSCLR(传递清除) | Cv=Cr | Av=Ar |
变元:id=级识别符,mode=预定色彩组合模式。
示例用途:
void GXSetTevOp(GXTevStageID id,GXTevMode mode);
GXTevStageID
经计算的值
GX_TEVSTAGEO
GX_TEVSTAGE1
GX_TEVSTAGE2
GX_TEVSTAGE3
GX_TEVSTAGE4
GX_TEVSTAGE5
GX_TEVSTAGE6
GX_TEVSTAGE7
GX_TEVSTAGE8
GX_TEVSTAGE9
GX_TEVSTAGE10
GX_TEVSTAGE11
GX_TEVSTAGE12
GX_TEVSTAGE13
GX_TEVSTAGE14
GX_TEVSTAGE15
GX_MAX_TEVSTAGE
说明
纹理环境(再循环光照模型)级名称。
GXTevMode
经计算的值
GX_DECAL
GX_MODULATE
GX_REPLACE
GX_PASSCLR
GX_BLEND
说明:设置纹理环境控制。
6XSetNumTevStages
说明
该功能启动许多接连着的纹理环境(再循环光照模型)级。输出象素色彩(在图象模糊和混合之前)是最后级的结果。最后再循环光照模型级必须写入寄存器GX-TEVPREV,见GXSetTevColorOp和GXSetTevAlphaOp。至少应启动一个再循环光照模型级。如果启动Z-纹理,则在最后级上查找Z纹理,见GXSetZTexture.
使用GXSetTevOrder设置照明色彩、纹理坐标和纹理映射与再循环光照模型级的关联性。使用GXSetNumTexGens设置可得到的纹理坐标数目。使用GXSetNumChans设置可得到的色彩通道数目。
GXInit将把nStages设置成1作为默认值。
变元:nStages
活动再循环光照模型级的数目。最小值是1,最大值是16。
示例用途:void GXSetNumTevStages(u8 nStages);
GXSetTevColorIn
说明
这个功能设置纹理环境(再循环光照模型)色彩组合器单元的输入操作数。输入操作数a、b和c是RGB色彩的输入操作数,其中每个分量是无符号的8-位(0<=a,b,c<=255)。d输入操作数是RGB色彩,其中每个分量是有符号的10-位输入(-1024<=d<=1023)。
在输入操作数是阿尔法值(GX_CC_A0、GX_CC_A1、GX_CC_A2、GX_CC_APREV、GX_CC_TEXA、GX_CC_RASA)的情况中,在3个色彩通道上重复阿尔法值(R=A、G=A、B=A)。
使用功能GXSetTevColorOp设置通过这个再循环光照模型级执行的功能。
通过默认值把这个级的输出引导到寄存器GX-TEVPREV(见GXInit),但是可能通过GXSetTevColorOp直接设置。
也可以使用存储再循环光照模型级的输出所使用的寄存器作为输入,GX_CC_C0、GX_CC_C1、GX_CC_C2、GX_CC_CPREV。你可以使用GXSetTevColor或GXSetTevColorS10对这些带有不变色彩值的寄存器进行编程。
每个寄存器可以存储无符号的8-位数或有符号的10-位数每分量(RGB)。如果选择有符号的10-位数作为输入a、b、或c,则把数缩短到8-位。不作出转换该数的尝试,简单地废弃最高有效位。
输入操作数GX_CC_RASC和GX_CC_RASA是每一顶点照明公式的结果。输入操作数GX_CC_TEXC和GX_CC_TEXA是这个级的纹理输入。在通过设置操作数GX-TC_TEXRRR、GX-TC_TEXGGG或GX-TC_TEXBBB输入之前,纹理色彩输入GX_CC_TEXC可以使它的色彩分量进行交换。你可以选择每再循环光照模型级的交换操作数之一。在示例实施例中,在同一级中使用GX-TC_TEXRRR和GX-TC_TEXGGG两者是不合法的。
GXSetTevOrder与带有特定色彩和纹理的光照模型级相关联。
变元
级 | 再循环光照模型级的名称。 |
a | 输入色彩操作数,每分量无符号的8位。 |
b | 输入色彩操作数,每分量无符号的8位。 |
c | 输入色彩操作数,每分量无符号的8位。 |
d | 输入色彩操作数,每分量有符号的10位。 |
示例用途:
void GXSetTevColorIn(
GXTevStageID stage,
GXSetTevColorArg a,
GXSetTevColorArg b,
GXSetTevColorArg c,
GXSetTevColorArg d);
GXSetTevAlphaIn
说明
本功能对纹理环境(再循环光照模型)阿尔法组合器单元的一个级设置输入操作数。输入操作数a、b和c是无符号的8-位输入(0<=a,b,c<=255)。d输入操作数是有符号的10-位输入(-1024<=d<=1023)。
每个光照模型级执行下述功能:
reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
由op(操作)、bias(偏置)和scale(定标)描述的操作是可以使用GXSetTevAlphaOp功能进行编程的。
通过默认值引导该级的输出到寄存器GX-TEVPASS(见GXInit),但是可能通过GXSetTevAlphaOp直接设置。根据通过GXSetTevClampMode设置的箝位模式,可以把结果箝位到两个范围,0到255或-1024到1023。当输入a、b和c是来自有符号的10-位数(以前再循环光照模型级的结果或输入常数)时,只使用8个最低有效位。不作出转换该数的尝试,简单地废弃较高位。
也可以使用存储再循环光照模型级的输出所使用的寄存器作为输入,GX_CA_A0、GX_CA_A1、GX-CA_A2、GX_CC_APREV。你可以使用GXSetTevColor或GXSetTevColorS10对这些带有常数阿尔法值的寄存器进行编程。
输入操作数GX-CA-RASA是每一顶点照明公式的结果。输入操作数GX_CA_TEXA是该级的纹理阿尔法输入。你可以使用GXSetTevOrder选择与这些输入相当的色彩和纹理。
变元
级 | 级的名称。 |
a | 输入操作数,u8。 |
b | 输入操作数,u8。 |
c | 输入操作数,u8。 |
d | 输入操作数,s10。 |
示例用途:
void GXSetTevAlphaIn(
GXTevStageID stage,
GXSetTevAlphaArg a,
GXSetTevAlphaArg b,
GXSetTevAlphaArg c,
GXSetTevAlphaArg d);
GXSetTevColorOp
说明
这个功能对纹理环境(再循环光照模型)单元的这个级的色彩组合器功能设置op、scale、bias和箝位操作。该功能还指定输出寄存器,out_reg,它将包含色彩组合器功能的结果。色彩组合器功能为:
out_reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
使用GXSetTevColorIn功能设置输入参数a、b、c和d。输入a、b和c是无符号的8-位输入(0<=a,b,c<=255)。d输入是有符号的10-位输入(-1024<=d<=1023)。根据箝位启动和当前的箝位模式,结果out_reg也可以是有符号的10-位结果,见GXSetTevClampMode。
在所有再循环光照模型级中间共享再循环光照模型输出寄存器。还可以使用再循环光照模型输出寄存器作为不变色彩输入,所以应用程序应该当心地分配输入和输出寄存器,以致当执行特定的公式时不会发生碰撞。应用程序必须输出到在最后活动再循环光照模型级中的GX-TEVPREV。
功能GXSetTevOp提供较简单的方法,根据预定义的公式名称来设置GXSetTevColorIn和GXSetTevColorOp的参数。你不应该混淆GXSetTevOp和GXSetTevColorIn/GXSetTevColorOp的用途。
GXSetTevOp作出有关输出寄存器用途的某些假设,即,GX-TEVPREV始终是输出寄存器,并用于把以前再循环光照模型级的结果传递到下一个再循环光照模型级。
变元
级 | 再循环光照模型级的名称。 |
op | 再循环光照模型操作。 |
add_bias_scale | 偏置值。定标值。 |
clamp | 当GX TRUE时的箝位结果。 |
out_reg | 输出寄存器名称。最后活动再循环光照模型级输入到GX-TEVPREV。 |
示例用途:
void GXSetTevColorOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevAlphaOp
说明
这个功能对纹理环境(再循环光照模型)单元的这个级的阿尔法组合器功能设置op、scale、bias和箝位操作。该功能还指定输出寄存器,out_reg,它将包含阿尔法组合器功能的结果。阿尔法组合器功能为:
out_reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
使用GXSetTevAlphaIn功能设置输入参数a、b、c和d。输入a、b和c是无符号的8-位输入(0<=a,b,c<=255)。d输入是有符号的10-位输入(-1024<=d<=1023)。根据箝位启动和当前的箝位模式,结果out_reg也可以是有符号的10-位结果,见GXSetTevClampMode。
你必须使用GXSetTevStages启动接连号码的再循环光照模型级。最后的活动再循环光照模型级把它的输出写入寄存器GX_TEVPREV。
变元
级 | 再循环光照模型级的名称。 |
op | 再循环光照模型操作。 |
bias | 偏置值。 |
scale | 定标值。 |
clamp | 当GX_TRUE时的箝位结果。 |
out_reg | 输出寄存器名称。 |
示例用途:
void GXSetTevAlphaOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevColor
说明
使用该功能设置在纹理环境(再循环光照模型)单元中的不变色彩寄存器之一。所有再循环光照模型级可用这些寄存器。使用这些寄存器中的至少一个把一个再循环光照模型级的输出传递到在多纹理配置中的下一个级。应用程序负责分配这些寄存器以致在使用中不发生碰撞。该功能可用设置无符号的8-位色彩。设置有符号的10-位色彩使用GXSetTexColorS10。
变元
id=输出寄存器识别符。
color=不变色彩值。
示例用途:void GXSetTevColor(GXTevRegID id,GXColor color);
GXSetTevColorS10
说明
使用该功能设置在纹理环境(再循环光照模型)单元中的不变色彩寄存器之一。所有再循环光照模型级可用这些寄存器。使用这些寄存器中的至少一个把一个再循环光照模型级的输出传递到在多纹理配置中的下一个级。应用程序负责分配这些寄存器以致在使用中不发生碰撞。
该功能启动有符号的10-位数的色彩分量。设置无符号的8-位色彩(普通情况)使用GXSetTevColor。
变元
id=输出寄存器识别符。
color=不变色彩值。每个色彩分量可以具有-1024到+1023的范围。
示例用途:void GXSetTevColorS10(GXTevRegID id,GXColorS10 color);
GXSetTevClampMode
说明
该功能设置在纹理环境(再循环光照模型)单元中的这个级的箝位模式。如在下面表中示出,解释了GXSetTevColorOp和GXSetTevAlphaOp如何设置箝位控制的模式效应。R是TEV级的结果色彩。
GXInit把模式设置成GX_TC_LINEAR。
模式—阿尔法和色彩TEV共享 | 箝位—阿尔法和色彩TEV独立 | 说明 |
GX-TC-LINEAR | GX_FALSEGX_TRUE | 箝位,致使-1024<=R<=1023箝位,致使0<=R<=255 |
GX-TC-GE | GX_FALSEGX_TRUE | 输出=(R>=0)?255:0输出=(R>=0)?0:255 |
GX-TC-EQ | GX_FALSEGX_TRUE | 输出=(R==0)?255:0输出=(R==0)?0:255 |
GX-TC-LE | GX_FALSEGX_TRUE | 输出=(R<=0)?255:0输出=(R<=0)?0:255 |
级=Tev级识别符。
模式=箝位模式(可接受的值为GX_TC_LINEAR、GX_TC_GE、GX_TC_LE、GX_TC_EQ)。
示例用途:void GXSetTevClampMode(
GXTevStageID stage,
GXTevClampMode mode);
GXSetAlphaCompare
说明
这个功能设置使用来自最后活动纹理环境(再循环光照模型)级的阿尔法输出的阿尔法比较功能的参数。使用GXSetTevStages指定活动再循环光照模型级的数目。
在混合公式(见GXSetBlendMode)中可用使用阿尔法输出来控制如何使源和目的(帧缓冲器)象素组合。
阿尔法比较操作是:
alpha_pass=(alpha_src(comp0)ref0)(op)(alpha_src(comp1)ref1)
其中,alpha_src是来自最后活动再循环光照模型级的阿尔法。作为例子,你可以实施这些公式:
alpha_pass=(alpha_src>ref0)AND(alpha_src<ref1)
或
alpha_pass=(alpha_src>ref0)0R(alpha_src<ref1)
可以在纹理之前或之后发生Z比较,见GXSetCompLoc。在纹理之前发生Z比较的情况下,仅根据Z测试写入Z。如果Z测试和阿尔法测试两者都通过,则写入色彩。
当Z比较发生在纹理之后时,如果Z测试和阿尔法测试两者都通过,则写入色彩和Z。当使用纹理制作需要正确地Z缓冲的剪切形状(象广告牌树)时,你必须配置流水线使之在纹理之后Z缓冲。
变元
comp0=比较子功能0。
ref0=子功能0的基准值,8-位。
op=组合子功能0和子功能1的操作。可接受的值为:GX_AOP_AND,GX_AOP_OR,
GX_AOP_XOR,GX_AOP_XNOR。
comp1=比较子功能1。
ref1=子功能1的基准值,8-位。
示例用途:
void GXSetAlphaCompare(
GXCompare comp0,
u8 ref0,
GXAlphaOp op,
GXCompare comp1,
u8 ref1);
GXSetTevOrder
说明
这个功能指定可用于作为到这个纹理环境(再循环光照模型)级的输入的纹理和光栅化色彩。使用GXSetTexCoordGen功能从输入属性产生纹理坐标coord,并使用来查找以前通过GXLoadTexObj装载的纹理映射。还指定这个级的光栅化色彩。色彩是受到GXSetChanCtrl控制的每一顶点照明的结果。
注意,这个功能不启动再循环光照模型级。为了启动接连着编号的再循环光照模型级,在级GX_TEVSTAGE0处使用GXSetNumTevStages功能。
每个再循环光照模型即的操作是独立的。色彩操作受到GXSetTevColorIn和GXSetTevColorOp的控制。阿尔法操作受到GXSetTevAlphaIn和GXSetTevAlphaOp的控制。
使用GXSetNumTexGens设置所有活动再循环光照模型级可用的纹理坐标数目。使用GXSetNumChans设置所有活动再循环光照模型级可用的色彩通道数目。活动再循环光照模型级不应该参照比所产生的纹理坐标或色彩更多的纹理坐标或色彩。
使用GXSetTevOrder可以把单个纹理坐标广播到许多纹理,只要纹理是相同大小的:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD0,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD0,GX_TEXMAP1,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD0,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
你也可以使用在任何再循环光照模型级中产生的任何纹理坐标:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
如果在再循环光照模型级中没有使用纹理,则把coord和map设置成NULL(零):
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD2,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD_NULL,GX_TEXMAP_NULL,
GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
如果在再循环光照模型级中没有使用色彩,则把color设置成NULL:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,
GX-COLOR_NULL):
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
GXSetTevOrder将对根据在功能调用中的纹理映射的大小通过GXSetTExCoordGen产生的归一化纹理坐标进行定标。为了这个原因,只可以把纹理坐标广播到多个纹理映射,如果,而且仅在如果映射是相同大小的。在某些情况中,你可能想产生具有某个定标的纹理坐标,但是禁止纹理查找(当产生用于间接凸出映射的纹理坐标时产生这种情况)。为了实现这个,使用GX-TEXMAP_DISBLE标志:
GXSetTevOrder(GX_TECSTAGE1,GX_TEXCOORD0,GX_TEXMAP3
GX_TEXMAP_DISBLE,GX_COLOR_NULL);
这将使用GX-TEXMAP3对GX_TEXCOORD0进行定标,但是禁止查找GX-TEXMAP3。
GXInit描述默认再循环光照模型排序。
变元
stage=再循环光照模型级识别符(ID)。
coord=纹理坐标识别符。
map=纹理映射识别符。
color=色彩通道。可接收的值是:GX_COLOR0A0,GX_COLOR1A1,和GX_COLOR_NULL。
示例用途:
void GXSetTevOrder(
GXTevStageID stage,
GXTexCoordID coord,
GXTexMapID map,
GXChannelID color);
例子
本页示出纹理环境(TEV)设置的某些取样。
一个光栅化色彩
例如带有顶点色彩的多边形
例如顶点照明
这种配置通过使用PASSCLR操作直接传递光栅化色彩。不使用纹理。
//一个光栅化色彩
//假设通道COLOR0A0具有照亮色彩。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX TEXMAP NULL,
GX COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
一个纹理
两个简单的纹理映射
这种配置用于直接显示纹理色彩。没有光栅化色彩可以使用。
//一个纹理
//应该把纹理装载到GX_TEXMAP0。
//应该把合适的texcoord(纹理坐标)产生设置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_NULL);
GXSetTevOp(GX_TEVSTAGE0,GX_REPLACE);
通过光栅化色彩调制的一个纹理
例如照亮材料纹理
这种配置使用MODULATE(调制)操作。
//通过光栅化色彩调制的一个纹理
//假定通道COLOR0A0具有照亮色彩。
//应该把纹理装载到GX_TEXMAP0。
//应该把合适的texcoord产生设置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_MODULATE);
重叠在光栅化色彩上的一个纹理
例如在散射照亮表面上的高亮度映射
例如在照亮表面上的投影阴影
这种配置使用DECAL操作。纹理应该包含将用于进行混合的阿尔法值。
//通过光栅化色彩调制的一个纹理
//假定通道COLOR0A0具有照亮色彩。
//应该把纹理装载到GX_TEXMAP0。
//应该把合适的texcoord产生设置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_DECAL);
不变色彩
这种配置不使用来自照明单元的输出也不使用任何纹理。
//来自TEV寄存器的不变色彩
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR_NULL);
GXSetTevIn(//output=Register0(输出=寄存器0)
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_CO);
GXSetTevColorOp(
GX_TEVSTAGE0,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_DISABLE,
GX_TEVPREV);
GXSetTevColor(GX_TEVREG0,constColor);
两个光栅化色彩相加
例如散射照亮色彩+镜面照亮色彩
没有使用纹理。通过使用PASSCLR操作使第一级传递第一光栅化色彩。第二级使两个色彩相加,其中需要细节的设置。
//两个光栅化色彩相加
//将使用两个色彩通道COLOR0/COLOR1。
GXSetNumTevStages(2);
//级0简单地传递光栅化色彩。
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
//级1加第二色彩并从以前级输出。
GXSetTevOrder(
GX_TEVSTAGE1,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output(输出)=RASC+CPREV
GX_TEVSTAGE1,
GX_CC_ZERO,
GX_CC_RASC,
GX_CC_ONE,
GX_CC_CPREV);
GXSetTevColorOp(
GX_TEVSTAGE1,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE1,GX_TC_LINEAR);
光栅化色彩和阿尔法相加
例如散射照亮色彩+在阿尔法通道中处理的镜面照亮色彩
如果允许镜面色彩仅为白色,你可以使用用于镜面照亮色彩的阿尔法通道,将把镜面照亮色彩广播到TEV级上的每个RGB分量。由于这仅需要一级,我们可以得到比使用两个通道更佳的填充—速率。如果不保留阿尔法用于其它用途,则可以使用本方法。
//光栅化色彩和阿尔法相加
//可以独立地处理Color0/Alpha0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output(输出)=RASC+RASA
GX_TEVSTAGE0,
GX_CC_ZERO,
GX_CC_RASA,
GX_CC_ONE,
GX_CC_RASC);
GXSetTevColorOp(
GX_TEVSTAGE0,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE0,GX_TC_LINEAR);
其它示例兼容实施例
可以用不同于上述家用视频游戏控制台配置来实施上述系统50的某些部件。例如,可以在模仿系统50的不同配置的平台上或其它与之兼容的设备上运行为系统50写的图形应用程序和其它软件。如果其它平台可以成功地仿真、模拟和/或提供系统50的某些或全部硬件和软件资源,则其它平台将能够成功地执行软件。
作为一个例子,仿真器可以提供与系统50的硬件和/或软件配置(平台)不同的硬件和/或软件配置(平台)。仿真器系统可以包括软件和/或硬件部分,这些软件和/或硬件部分模拟系统(所述应用程序是为该系统写的)的软件和/或硬件部分。例如,仿真器系统可以包括诸如个人计算机之类的一般用途数字计算机,它执行模拟系统50的硬件和/或软件的软件仿真程序。
现在某些一般用途数字计算机(例如,IBM或MacIntosh个人计算机和兼容机)配备有3维图形卡,这些3维图形卡提供符合DirectX或其它标准3维图形命令API的3维图形流水线。还可以使它们配备有立体声声卡,这些声卡根据声音命令的标准组提供高质量的立体声。这种运行仿真软件的配备多媒体硬件的个人计算机可以具有足够的性能来接近系统50的图形和声音性能。仿真软件控制在个人计算机平台上的硬件资源,以模拟游戏编程员为之编写游戏软件的家用游戏控制平台的处理、3维图形、声音、外围设备和其它能力。
图20A示出全面的示例仿真过程,所述过程使用主机平台1201、仿真器部分1303和可执行在存储媒体62上提供的二进制图象的游戏软件。主机1201可以是一般用途或专门用途数字计算装置,诸如个人计算机、视频游戏控制台或任何带有足够计算能力的其它平台。仿真器1030可以是运行在主机平台1201上的软件和/或硬件,并提供命令、数据和其它信息从存储媒体62到一个可以通过主机1201处理的形式的实时转换。例如,仿真器1303从存储媒体62取得打算由系统50执行的“源”二进制—图象程序指令,并把这些程序指令转换成可以通过主机120l执行或处理的目标格式。
作为一个例子,在所写入的软件是为了在使用IBM PowerPC或其它专用处理器的平台上执行,而主机1201是使用不同(例如,Intel)处理器的个人计算机的情况下,仿真器1303从存储媒体62取得一个或一个序列的二进制—图象程序指令,并把这些程序指令转换成一个或多个等效的Intel二进制—图象程序指令。仿真器1303还取得和/或产生打算供图形和音频处理器114处理的图形命令和音频命令,并把这些命令转换成一个格式或数个格式,这些格式可以通过在主机1201上可得到的硬件和/或软件图形和音频处理资源进行处理。作为一个例子,仿真器1303可以把这些命令转换成可以通过主机1201的专用图形和/或声音硬件(例如,使用标准DirectX、OpenGL和/或声音API)处理的命令。
用于提供上述视频游戏系统的某些或全部特性的仿真器1303还可以配备有图形用户接口(GUI),所述接口使使用仿真器运行的游戏的各种任选和屏幕模式的选择简单化或自动化。在一个例子中,这种仿真器1303可以进一步包括比原来打算供所述主机平台用的软件具有增强的功能。
图20B示出适于与仿真器1303一起使用的仿真主机系统1201。系统1201包括处理单元1203和系统存储器1205。系统总线1207把包括系统存储器1205的各种系统部件耦合到处理单元1203。系统总线1207可以是数种总线结构类型(包括存储器总线或总线控制器、外围设备总线、以及使用许多总线结构中的任何一种的本地总线)中的任何一种。系统存储器1207包括只读存储器(ROM)1252和随机存取存储器(RAM)1254。在ROM 1252中存储基本输入/输出系统(BIOS)1256,它包括,诸如在启动期间,在个人计算机系统1201中的单元之间帮助传递信息的基本程序。系统1201进一步包括各种驱动器和相关联的计算机—可读出媒体。硬盘驱动器1209读自和写入(一般固定的)磁硬盘1211。附加的(可能任选的)磁盘驱动器1213读自和写入可取下的“软盘”或其它磁盘1215。光盘驱动器1217读自,和在某些配置中,写入可取下的诸如CDMA ROM或其它光学媒体之类的光盘1219。分别把硬盘驱动器1209和光盘驱动器1217通过硬盘驱动接口1221和光盘驱动接口1225连接到系统总线1207。驱动器和它们相关联的计算机—可读出媒体提供计算机—可读出指令、数据指令、程序模块、游戏程序和用于个人计算机系统1201的其它数据的非易失存储。在另一种配置中,还可以使用可以存储通过计算机存取的数据的其它类型计算机—可读出媒体,例如,盒式磁带、快闪存储器卡、数字视频盘、Bernoulli磁带盒、随机存取存储器(RAM)只读存储器(ROM)等。
在硬盘1211、可取下磁盘1215、光盘1219和/或系统存储器1205的ROM1252和/或RAM 1254上可以存储包括仿真器1303等的许多程序模块。这种程序模块可以包括提供图形和声音API、一个或多个应用程序、其它程序模块、程序数据和游戏数据的操作系统。用户可以通过诸如键盘1227、指示装置1229、话筒、摇杆、游戏控制器、卫星盘、扫描器等输入装置把命令和信息输入个人计算机系统1201。可以通过耦合到系统这些1207的串行端口接口1231把这些和其它输入装置连接到处理单元1203,但是也可以通过诸如并行端口、游戏端口、防火线总线或通用串行总线(USB)之类的其它接口连接。还把监视器1233或其它类型的显示装置通过诸如视频适配器1235之类的接口连接到系统总线1207。
系统1201还可以包括调制解调器1154或用于在诸如互联网之类的网络1152上建立通信的其它网络接口手段。把可以是内部的或外部的调制解调器1154通过串行端口接口1231连接到系统总线123。还可以提供网络接口1156,用于允许系统1201通过局域网1158与远程计算装置1150(例如,另一个系统1201)进行通信(或这种通信可以通过广域网1152或诸如拨号或其它通信手段之类的其它通信路径)。系统1201一般将包括其它外围输出装置,诸如打印机和其它标准外围装置。
在一个例子中,视频适配器1235可以包括根据3维图形命令提供快速3维图形绘制的3维图形流水线芯片组,所述3维图形命令是根据诸如微软DirectX 7.0或其它版本之类的标准3维图形应用程序编程器接口发出的。还把一组立体声扬声器1237通过诸如传统“声卡”之类的声音产生接口连接到系统总线1207,所述传统“声卡”根据总线1207提供的声音命令提供支持产生高质量立体声的硬件和嵌入式软件。这些硬件能力允许系统1201提供足够的图形和声音速度性能以再现存储在存储媒体62中的软件。
这里引用的所有上述参考文章仅供参考。
在已经联系当前认为最实用和最佳的实施例描述本发明的同时,可以理解本发明不限于这里所揭示的实施例,但是相反,打算包括在所附的 的范围内所包含的各种修改和等效的配置。
Claims (48)
1.在图形流水线中,把所选择的输入进行混合的硬件光照模型提供经计算的色彩或浑浊度输出,使所述输出反馈作为硬件光照模型的输入,用于接连着的混合操作。
2.如权利要求1所述的流水线,其特征在于,可以使光照模型的输出再循环以提供n个混合级。
3.如权利要求1所述的流水线,其特征在于,所述光照模型输出的再循环允许浓淡树型混合操作。
4.如权利要求1所述的流水线,其特征在于,所述光照模型在同一混合操作级中提供色彩混合和阿尔法混合两种操作。
5.如权利要求1所述的流水线,其特征在于,流水线包括耦合到光照模型的再循环纹理单元,其中,所述光照模型混合再循环纹理单元以前提供的纹理输出,而同时再循环纹理单元执行又一个纹理映射操作,以提供又一个供光照模型混合的纹理输出。
6.如权利要求1所述的流水线,其特征在于,光照模型包括可编程箝位器。
7.如权利要求1所述的流水线,其特征在于,光照模型包括可编程定标器。
8.如权利要求1所述的流水线,其特征在于,光照模型包括比较器。
9.如权利要求1所述的流水线,其特征在于,光照模型包括可编程色彩交换。
10.如权利要求1所述的流水线,其特征在于,使光照模型的输出可用于作为多个接连着的混合操作的输入。
11.如权利要求1所述的流水线,其特征在于,光照模型包括分立的混合电路,用于在同一混合操作级期间执行色彩混合和阿尔法混合两种操作。
12.如权利要求1所述的流水线,其特征在于,光照模型包括反馈机构,用于把输出提供给所述光照模型的输入。
13.如权利要求12所述的流水线,其特征在于,所述反馈机构包括一个或多个存储缓冲器,用于保留从混合操作来的输出;以及至少一个所述缓冲器具有连接到所述光照模型的输入的一个输出。
14.在一种图形系统中,一种多—纹理方法包括下列步骤:
(a)通过分量组合配置传递纹理映射数据以提供经组合的纹理分量输出;
(b)重新配置分量组合配置;以及
(c)通过重新配置但是是相同的分量组合配置传递所述经组合的纹理分量输出,以提供经组合的多—纹理分量输出。
15.如权利要求10所述的方法,其特征在于,使所述步骤(b)和(c)重复多次。
16.如权利要求10所述的方法,其特征在于,分量组合配置包括纹理色彩组合器。
17.如权利要求10所述的方法,其特征在于,分量组合配置包括阿尔法组合器。
18.一种用于提供多一纹理多边形的方法,所述方法包括下列步骤:
(a)产生第一纹理映射数据;
(b)通过组合器硬件传递第一纹理映射数据,以提供相应于第一纹理映射数据的第一输出;
(c)产生第二纹理映射数据;以及
(d)通过组合器硬件传递第二纹理映射数据和第一输出,以提供相应于第一和第二纹理映射数据的第二输出。
19.如权利要求14所述的方法,其特征在于,在一个混合级期间执行步骤(b),在比所述的第一混合级较晚的又一个混合级期间执行步骤(d)。
20.如权利要求18所述的方法,其特征在于,组合器硬件提供的纹理映射数据混合的接连着的级有10个以上。
21.在包括至少一个映射单元和包括组合器电路的纹理环境单元的一种图形绘制流水线中,其改进包括迭代地再使用组合器电路,以提供把多个纹理施加到在图象中显示的表面上的多个级。
22.如权利要求21所述的方法,其特征在于,迭代地再使用步骤包括使用组合器电路在第一混合周期/级对第一纹理象素色彩进行组合,并使用与第一周期/级不同的第二混合周期/级,使用相同的组合器电路对第二纹理象素色彩进行组合,第一和第二周期/级两者落在产生单个图象帧的周期中。
23.如权利要求21所述的方法,其特征在于,第一和第二周期/级是连续的。
24.如权利要求21所述的方法,其特征在于,组合器电路包括独立的色彩组合器电路和阿尔法组合器电路。
25.如权利要求21所述的方法,其特征在于,组合器电路计算
(D+(-1)sub*((1-c)*A+C*B)+bias)<<shift
其中,A、B、C、和D是从4个当前-色彩寄存器、光栅化色彩、纹理、阿尔法分量,0和1选择的。
26.在一种包括处理流水线(所述处理流水线至少一部分根据存储在相关联的存储器中的多边形顶点数据和纹理数据绘制和显示图象)的图形系统中,一种多纹理处理子系统,用于把相应于一个或多个不同纹理和/或纹理特征的纹理数据选择性地映射到所述绘制和显示图象的表面,所述多纹理处理子系统包括:
配置在流水线中的色彩/阿尔法-分量混合单元,以对纹理、光栅化色彩和/或阿尔法分量数据进行混合,以产生经计算的色彩,并具有启动再引入经计算的色彩到流水线的反馈机构,其中,通过迭代使用/再使用混合单元而得到多纹理的处理。
27.如权利要求26所述的多纹理处理子系统,其特征在于,混合单元包括至少一个乘法器和一个加法器,并配置成接收多达4个用于执行混合操作的输入变元。
28.在一种包括处理流水线(所述处理流水线至少一部分根据存储在相关联的存储器中的多边形顶点数据和纹理数据绘制和显示图象)的图形系统中,一种多纹理处理子系统,用于把相应于一个或多个不同纹理和/或纹理特征的纹理数据选择性地映射到所述绘制和显示图象的表面,所述多纹理处理子系统包括:
配置在流水线中的纹理环境单元,在预定的处理级期间处理纹理、色彩和/或阿尔法数据,以实现混合和/或纹理和/或色彩或阿尔法数据的混合,所述纹理环境单元包括具有反馈机构(所述反馈机构在所选择的临时处理级期间是可操作的)的色彩/阿尔法数据混合单元,其中,可得到当前处理级的输出作为到接连着的处理级的输入。
29.如权利要求28所述的多纹理处理子系统,其特征在于,把混合单元连接到至少一个存储寄存器,用于可得到当前处理级的输出作为到接连着的临时处理级的输入。
30.如权利要求28所述的多纹理处理子系统,其特征在于,纹理环境单元可以容纳多达16个接连着的临时处理级。
31.如权利要求28所述的多纹理处理子系统,其特征在于,反馈机构包括多个存储寄存器。
32.如权利要求28所述的多纹理处理子系统,其特征在于,混合单元包括至少一个乘法器和一个加法器,并配置成接收多达4个用于执行混合操作的输入变元。
33.在一种包括处理流水线(所述处理流水线至少一部分根据存储在相关联的存储器中的多边形顶点数据和纹理数据绘制和显示图象)的图形系统中,一种多纹理处理子系统,用于把相应于一个或多个不同纹理和/或纹理特征的纹理数据选择性地映射到所述绘制和显示图象的表面,所述多纹理处理子系统包括:
配置在流水线中的纹理环境单元,在预定的临时处理周期/级期间,处理输入纹理和光栅化色彩数据,以在输入纹理和光栅化色彩数据上提供独立的数学混合操作,所述纹理环境单元包括在所选择的临时处理周期/级期间操作的反馈机构,其中,可得到当前临时处理周期/级的输出作为接连着的临时处理周期/级的输入。
34.如权利要求33所述的多纹理处理子系统,其特征在于,输入纹理和光栅化色彩数据包括RGB和阿尔法数据。
35.如权利要求33所述的多纹理处理子系统,其特征在于,可得到纹理环境单元临时处理周期/级的输出作为到接连着的纹理环境临时处理级的输入。
36.如权利要求33所述的多纹理处理子系统,其特征在于,纹理环境单元可以容纳多达16个接连着的临时处理级。
37.如权利要求33所述的多纹理处理子系统,其特征在于,纹理环境单元进一步包括具有至少一个乘法器和一个加法器的混合单元。
38.如权利要求33所述的多纹理处理子系统,其特征在于,把混合单元配置成接收多达4个用于执行混合操作的变元。
39.在一种包括处理流水线(所述处理流水线至少一部分根据存储在相关联的存储器中的多边形顶点数据和纹理数据绘制和显示图象)的图形系统中,一种多纹理处理子系统,用于把相应于一个或多个不同纹理和/或纹理特征的纹理数据选择性地映射到所述绘制和显示图象的表面,以及一个纹理环境单元,用于处理输入纹理和光栅化色彩数据,以在所述输入纹理和光栅化色彩数据上提供独立的数学混合操作,一种用于处理多个纹理的方法包括下列步骤:
(a)在第一纹理环境单元临时处理周期/级期间,在第一组纹理和光栅化色彩数据上执行混合操作;以及
(b)提供所述第一临时处理周期/级的输出作为接连着的纹理环境单元临时处理周期/级的输入。
40.如权利要求39所述的用于处理多个纹理的方法,其特征在于,可以提供来自多达16个接连着的纹理环境临时处理级的输出作为到接连着的纹理环境单元临时处理周期/级的输入。
41.如权利要求39所述的用于处理多个纹理的方法,其特征在于,输入纹理和光栅化色彩数据包括RGB和阿尔法数据。
42.如权利要求28所述的多纹理处理子系统,其特征在于,可得到当前处理级的输出作为多个接连着的处理级的输入。
43.在包括用于选择性地对相应于一个或多个不同纹理和/或纹理特征的纹理数据进行取样的多纹理处理子系统的图形系统中,用于执行浓淡/混合操作硬件光照模型,接收第一纹理数据取样和来自所述多纹理处理子系统的接连着的纹理数据取样,并使一个输出(所述输出来自使用第一纹理数据取样而执行的浓淡/混合操作)再循环到所述光照模型(所述光照模型用于执行使用接连着的纹理数据取样的浓淡/混合操作)的一个输入和一个输出(来自在第一纹理数据取样上执行的浓淡/混合操作)。
44.一种包括多纹理处理子系统的图形流水线,所述多纹理处理子系统顺序地把多个纹理的取样提供给硬件光照模型(所述硬件光照模型在多纹理处理子系统的纹理取样输出上执行混合/浓淡操作),其中,所述硬件光照模型使混合/浓淡操作的结果输出进行再循环,用于用接连着的纹理取样输出执行所述结果输出的接连着的混合/浓淡操作。
45.至少一部分根据多边形顶点数据和纹理数据绘制和显示图象的一种图形处理流水线,包括:
再循环纹理流水线配置,它具有单个纹理地址坐标/数据处理单元、单个纹理取得单元、和纹理查找数据反馈路径,所述纹理数据查找反馈路径用于使所选择的取得纹理查找数据从纹理取得单元返回到纹理地址坐标/数据处理单元;以及
再循环浓淡树阿尔法/色彩混合器配置,它具有连接成接收纹理取得单元的输出的硬件光照模型以及从硬件光照模型的输出到光照模型的输入的一个反馈路径,所述反馈路径用于使所选择的混合色彩或浑浊度输出数据进行再循环,其中,再循环配置混合所选择的光照模型输入,以提供一个输出,使所述输出反馈作为光照模型的输入,用于接连着的混合操作。
46.如权利要求45所述的流水线,其特征在于,所述单个纹理地址坐标/数据处理单元使逻辑直接和间接纹理坐标数据的处理进行交错。
47.在图形系统中,一种多纹理处理子系统包括:
纹理配置,它具有单个纹理地址坐标/数据处理单元、单个纹理取得单元以及纹理查找数据反馈路径,所述纹理查找数据反馈路径用于使所取得的间接纹理查找数据从单个纹理取得单元再循环而返回到纹理地址坐标/数据处理单元;以及
再循环硬件光照模型,把它连接成接收纹理取得单元的输出,其中,光照模型混合所选择的接收到的输出,以提供经计算的色彩或浑浊度输出,使所述输出选择性地反馈而作为光照模型的输入,用于接连着的混合操作。
48.如权利要求47所述的图形系统,其特征在于,所述单个纹理地址坐标/数据处理单元使逻辑直接和间接纹理坐标数据的处理进行交错。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22688800P | 2000-08-23 | 2000-08-23 | |
US60/226,888 | 2000-08-23 | ||
US09/722,367 | 2000-11-28 | ||
US09/722,367 US7034828B1 (en) | 2000-08-23 | 2000-11-28 | Recirculating shade tree blender for a graphics system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1339764A true CN1339764A (zh) | 2002-03-13 |
Family
ID=26920956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN01122294A Pending CN1339764A (zh) | 2000-08-23 | 2001-08-23 | 用于图形系统的再循环浓淡树混合器 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7034828B1 (zh) |
EP (1) | EP1182618A3 (zh) |
JP (1) | JP4731028B2 (zh) |
KR (1) | KR20020015973A (zh) |
CN (1) | CN1339764A (zh) |
AU (1) | AU5785101A (zh) |
CA (1) | CA2355353C (zh) |
TW (1) | TWI244050B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1702692B (zh) * | 2004-05-03 | 2010-09-08 | 微软公司 | 提供增强的图形流水线的系统和方法 |
Families Citing this family (123)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7548238B2 (en) * | 1997-07-02 | 2009-06-16 | Nvidia Corporation | Computer graphics shader systems and methods |
US9007393B2 (en) * | 1997-07-02 | 2015-04-14 | Mental Images Gmbh | Accurate transparency and local volume rendering |
US7749089B1 (en) | 1999-02-26 | 2010-07-06 | Creative Kingdoms, Llc | Multi-media interactive play system |
US6761637B2 (en) | 2000-02-22 | 2004-07-13 | Creative Kingdoms, Llc | Method of game play using RFID tracking device |
US7445550B2 (en) | 2000-02-22 | 2008-11-04 | Creative Kingdoms, Llc | Magical wand and interactive play experience |
US7878905B2 (en) | 2000-02-22 | 2011-02-01 | Creative Kingdoms, Llc | Multi-layered interactive play experience |
US6724394B1 (en) * | 2000-05-31 | 2004-04-20 | Nvidia Corporation | Programmable pixel shading architecture |
US7002591B1 (en) * | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7066781B2 (en) | 2000-10-20 | 2006-06-27 | Denise Chapman Weston | Children's toy with wireless tag/transponder |
WO2002060185A1 (fr) | 2001-01-23 | 2002-08-01 | Seiko Epson Corporation | Appareil de saisie d'image et procede de saisie d'image |
US7564460B2 (en) * | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
GB2383248B (en) * | 2001-12-14 | 2005-12-07 | Imagination Tech Ltd | 3-dimensional computer graphics system |
US20070066396A1 (en) | 2002-04-05 | 2007-03-22 | Denise Chapman Weston | Retail methods for providing an interactive product to a consumer |
US6967566B2 (en) | 2002-04-05 | 2005-11-22 | Creative Kingdoms, Llc | Live-action interactive adventure game |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US7674184B2 (en) | 2002-08-01 | 2010-03-09 | Creative Kingdoms, Llc | Interactive water attraction and quest game |
US7570273B1 (en) | 2002-08-29 | 2009-08-04 | Nvidia Corporation | Accelerated rotation for displaying an image |
US8259121B2 (en) | 2002-10-22 | 2012-09-04 | Broadcom Corporation | System and method for processing data using a network |
US20040095348A1 (en) * | 2002-11-19 | 2004-05-20 | Bleiweiss Avi I. | Shading language interface and method |
US6933947B2 (en) * | 2002-12-03 | 2005-08-23 | Microsoft Corporation | Alpha correction to compensate for lack of gamma correction |
US9446319B2 (en) | 2003-03-25 | 2016-09-20 | Mq Gaming, Llc | Interactive gaming toy |
US7646817B2 (en) * | 2003-03-28 | 2010-01-12 | Microsoft Corporation | Accelerating video decoding using a graphics processing unit |
US7570267B2 (en) * | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US8432394B1 (en) | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US8416242B1 (en) | 2004-05-14 | 2013-04-09 | Nvidia Corporation | Method and system for interpolating level-of-detail in graphics processors |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US20060007234A1 (en) * | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US7079156B1 (en) | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
JP2005332195A (ja) * | 2004-05-19 | 2005-12-02 | Sony Computer Entertainment Inc | テクスチャユニット、画像描画装置、テクセル転送方法 |
US20060012604A1 (en) * | 2004-07-15 | 2006-01-19 | Avinash Seetharamaiah | Legacy processing for pixel shader hardware |
US7324106B1 (en) * | 2004-07-27 | 2008-01-29 | Nvidia Corporation | Translation of register-combiner state into shader microcode |
US7400325B1 (en) | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
US8189002B1 (en) * | 2004-10-29 | 2012-05-29 | PME IP Australia Pty, Ltd. | Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets |
US7821520B1 (en) * | 2004-12-10 | 2010-10-26 | Nvidia Corporation | Fragment processor having dual mode register file |
US7623132B1 (en) * | 2004-12-20 | 2009-11-24 | Nvidia Corporation | Programmable shader having register forwarding for reduced register-file bandwidth consumption |
US8004515B1 (en) * | 2005-03-15 | 2011-08-23 | Nvidia Corporation | Stereoscopic vertex shader override |
CA2613541A1 (en) * | 2005-07-01 | 2007-01-11 | Mental Images Gmbh | Computer graphics shader systems and methods |
JP4886691B2 (ja) * | 2005-07-26 | 2012-02-29 | 株式会社ディジタルメディアプロフェッショナル | 多層反射シェーディング画像生成方法及びコンピュータ |
JP4805633B2 (ja) * | 2005-08-22 | 2011-11-02 | 任天堂株式会社 | ゲーム用操作装置 |
US8313379B2 (en) * | 2005-08-22 | 2012-11-20 | Nintendo Co., Ltd. | Video game system with wireless modular handheld controller |
US7942745B2 (en) * | 2005-08-22 | 2011-05-17 | Nintendo Co., Ltd. | Game operating device |
US7927216B2 (en) | 2005-09-15 | 2011-04-19 | Nintendo Co., Ltd. | Video game system with wireless modular handheld controller |
JP4262726B2 (ja) | 2005-08-24 | 2009-05-13 | 任天堂株式会社 | ゲームコントローラおよびゲームシステム |
US8870655B2 (en) | 2005-08-24 | 2014-10-28 | Nintendo Co., Ltd. | Wireless game controllers |
US8308563B2 (en) * | 2005-08-30 | 2012-11-13 | Nintendo Co., Ltd. | Game system and storage medium having game program stored thereon |
US8157651B2 (en) | 2005-09-12 | 2012-04-17 | Nintendo Co., Ltd. | Information processing program |
JP4530419B2 (ja) * | 2006-03-09 | 2010-08-25 | 任天堂株式会社 | 座標算出装置および座標算出プログラム |
JP4151982B2 (ja) | 2006-03-10 | 2008-09-17 | 任天堂株式会社 | 動き判別装置および動き判別プログラム |
JP4684147B2 (ja) * | 2006-03-28 | 2011-05-18 | 任天堂株式会社 | 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム |
US8766995B2 (en) | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US8933933B2 (en) * | 2006-05-08 | 2015-01-13 | Nvidia Corporation | Optimizing a graphics rendering pipeline using early Z-mode |
US8207975B1 (en) * | 2006-05-08 | 2012-06-26 | Nvidia Corporation | Graphics rendering pipeline that supports early-Z and late-Z virtual machines |
US20070268289A1 (en) * | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) * | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) * | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) * | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) * | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US7973797B2 (en) * | 2006-10-19 | 2011-07-05 | Qualcomm Incorporated | Programmable blending in a graphics processing unit |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8243069B1 (en) * | 2006-11-03 | 2012-08-14 | Nvidia Corporation | Late Z testing for multiple render targets |
KR100791411B1 (ko) * | 2006-12-07 | 2008-01-07 | 한국전자통신연구원 | 그래픽스 처리장치 및 방법 |
JP5127242B2 (ja) | 2007-01-19 | 2013-01-23 | 任天堂株式会社 | 加速度データ処理プログラムおよびゲームプログラム |
CN101647044B (zh) * | 2007-04-11 | 2011-10-19 | 松下电器产业株式会社 | 图像生成装置以及图像生成方法 |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8392529B2 (en) | 2007-08-27 | 2013-03-05 | Pme Ip Australia Pty Ltd | Fast file server methods and systems |
US8073676B2 (en) * | 2007-09-21 | 2011-12-06 | Sony Computer Entertainment Inc. | Method and apparatus for emulation enhancement |
US9019287B2 (en) | 2007-11-23 | 2015-04-28 | Pme Ip Australia Pty Ltd | Client-server visualization system with hybrid data processing |
US8319781B2 (en) | 2007-11-23 | 2012-11-27 | Pme Ip Australia Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
WO2009067680A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Automatic image segmentation methods and apparartus |
US10311541B2 (en) | 2007-11-23 | 2019-06-04 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US9904969B1 (en) | 2007-11-23 | 2018-02-27 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US8296781B1 (en) * | 2007-12-11 | 2012-10-23 | Nvidia Corporation | System, method, and computer program product for determining application parameters based on hardware specifications |
US8276133B1 (en) | 2007-12-11 | 2012-09-25 | Nvidia Corporation | System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function |
US8280864B1 (en) | 2007-12-17 | 2012-10-02 | Nvidia Corporation | System, method, and computer program product for retrieving presentation settings from a database |
US20100053205A1 (en) * | 2008-09-03 | 2010-03-04 | Debra Brandwein | Method, apparatus, and system for displaying graphics using html elements |
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US9250926B2 (en) * | 2009-04-30 | 2016-02-02 | Microsoft Technology Licensing, Llc | Platform extensibility framework |
US9460546B1 (en) | 2011-03-30 | 2016-10-04 | Nvidia Corporation | Hierarchical structure for accelerating ray tracing operations in scene rendering |
JP5103543B2 (ja) * | 2011-05-16 | 2012-12-19 | 株式会社ディジタルメディアプロフェッショナル | コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置 |
US8970584B1 (en) | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9142043B1 (en) | 2011-06-24 | 2015-09-22 | Nvidia Corporation | System and method for improved sample test efficiency in image rendering |
US9147270B1 (en) | 2011-06-24 | 2015-09-29 | Nvidia Corporation | Bounding plane-based techniques for improved sample test efficiency in image rendering |
US9269183B1 (en) | 2011-07-31 | 2016-02-23 | Nvidia Corporation | Combined clipless time and lens bounds for improved sample test efficiency in image rendering |
US9098941B2 (en) | 2012-01-23 | 2015-08-04 | Ayasdi, Inc. | Systems and methods for graphical layout |
US8830254B2 (en) | 2012-01-24 | 2014-09-09 | Ayasdi, Inc. | Systems and methods for graph rendering |
US9305394B2 (en) | 2012-01-27 | 2016-04-05 | Nvidia Corporation | System and process for improved sampling for parallel light transport simulation |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9275377B2 (en) | 2012-06-15 | 2016-03-01 | Nvidia Corporation | System, method, and computer program product for determining a monotonic set of presets |
US9286247B2 (en) | 2012-07-06 | 2016-03-15 | Nvidia Corporation | System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality |
US10668386B2 (en) | 2012-07-06 | 2020-06-02 | Nvidia Corporation | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
US9250931B2 (en) | 2012-07-06 | 2016-02-02 | Nvidia Corporation | System, method, and computer program product for calculating settings for a device, utilizing one or more constraints |
US9092573B2 (en) | 2012-07-06 | 2015-07-28 | Nvidia Corporation | System, method, and computer program product for testing device parameters |
US9201670B2 (en) | 2012-07-06 | 2015-12-01 | Nvidia Corporation | System, method, and computer program product for determining whether parameter configurations meet predetermined criteria |
US10509658B2 (en) | 2012-07-06 | 2019-12-17 | Nvidia Corporation | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
US9171394B2 (en) | 2012-07-19 | 2015-10-27 | Nvidia Corporation | Light transport consistent scene simplification within graphics display system |
US9159158B2 (en) | 2012-07-19 | 2015-10-13 | Nvidia Corporation | Surface classification for point-based rendering within graphics display system |
US9251762B2 (en) | 2012-12-19 | 2016-02-02 | Microsoft Technology Licensing, Llc. | Runtime transformation of images to match a user interface theme |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
KR101736468B1 (ko) * | 2012-12-24 | 2017-05-29 | 한화테크윈 주식회사 | 영상 처리 장치 및 방법 |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US8976190B1 (en) | 2013-03-15 | 2015-03-10 | Pme Ip Australia Pty Ltd | Method and system for rule based display of sets of images |
US10540803B2 (en) | 2013-03-15 | 2020-01-21 | PME IP Pty Ltd | Method and system for rule-based display of sets of images |
US10070839B2 (en) | 2013-03-15 | 2018-09-11 | PME IP Pty Ltd | Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images |
US9509802B1 (en) | 2013-03-15 | 2016-11-29 | PME IP Pty Ltd | Method and system FPOR transferring data to improve responsiveness when sending large data sets |
US11183292B2 (en) | 2013-03-15 | 2021-11-23 | PME IP Pty Ltd | Method and system for rule-based anonymized display and data export |
US11244495B2 (en) | 2013-03-15 | 2022-02-08 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
US9477575B2 (en) | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
GB2518902B (en) * | 2013-10-07 | 2020-07-01 | Advanced Risc Mach Ltd | Early depth testing in graphics processing |
US9984478B2 (en) | 2015-07-28 | 2018-05-29 | PME IP Pty Ltd | Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images |
US11599672B2 (en) | 2015-07-31 | 2023-03-07 | PME IP Pty Ltd | Method and apparatus for anonymized display and data export |
US10089708B2 (en) * | 2016-04-28 | 2018-10-02 | Qualcomm Incorporated | Constant multiplication with texture unit of graphics processing unit |
US10909679B2 (en) | 2017-09-24 | 2021-02-02 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
US11256528B2 (en) * | 2018-10-26 | 2022-02-22 | Nvidia Corporation | Individual application window streaming suitable for remote desktop applications |
US10970911B2 (en) | 2019-02-21 | 2021-04-06 | Facebook Technologies, Llc | Graphics processing chip with machine-learning based shader |
Family Cites Families (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4275413A (en) | 1978-03-30 | 1981-06-23 | Takashi Sakamoto | Linear interpolator for color correction |
US4357624A (en) | 1979-05-15 | 1982-11-02 | Combined Logic Company | Interactive video production system |
US4491836A (en) | 1980-02-29 | 1985-01-01 | Calma Company | Graphics display system and method including two-dimensional cache |
US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
US4463380A (en) | 1981-09-25 | 1984-07-31 | Vought Corporation | Image processing system |
US4570233A (en) | 1982-07-01 | 1986-02-11 | The Singer Company | Modular digital image generator |
US4600919A (en) | 1982-08-03 | 1986-07-15 | New York Institute Of Technology | Three dimensional animation |
US4615013A (en) | 1983-08-02 | 1986-09-30 | The Singer Company | Method and apparatus for texture generation |
GB8322438D0 (en) | 1983-08-19 | 1983-10-12 | Marconi Avionics | Display systems |
US4586038A (en) | 1983-12-12 | 1986-04-29 | General Electric Company | True-perspective texture/shading processor |
US4808988A (en) | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
US4601055A (en) | 1984-04-10 | 1986-07-15 | The United States Of America As Represented By The Secretary Of Commerce | Image processor |
US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
US4829452A (en) | 1984-07-05 | 1989-05-09 | Xerox Corporation | Small angle image rotation using block transfers |
US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4695943A (en) | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
EP0184547B1 (en) | 1984-12-07 | 1991-11-21 | Dainippon Screen Mfg. Co., Ltd. | Processing method of image data and system therefor |
US4625289A (en) | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4710876A (en) | 1985-06-05 | 1987-12-01 | General Electric Company | System and method for the display of surface structures contained within the interior region of a solid body |
US5239624A (en) | 1985-06-19 | 1993-08-24 | Pixar | Pseudo-random point sampling techniques in computer graphics |
US4897806A (en) | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
FR2586838B1 (fr) | 1985-08-30 | 1989-07-28 | Labo Electronique Physique | Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions |
US4974177A (en) | 1985-10-04 | 1990-11-27 | Daikin Industries Ltd. | Mapping circuit of a CRT display device |
US4692880A (en) | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
JPS62192878A (ja) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
JPS62231380A (ja) | 1986-03-31 | 1987-10-09 | Namuko:Kk | 画像合成装置 |
US4785395A (en) | 1986-06-27 | 1988-11-15 | Honeywell Bull Inc. | Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement |
US4768148A (en) | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
US4817175A (en) | 1986-08-26 | 1989-03-28 | Schlumberger Systems And Services, Inc. | Video stream processing system |
US4855934A (en) | 1986-10-03 | 1989-08-08 | Evans & Sutherland Computer Corporation | System for texturing computer graphics images |
US4918625A (en) | 1986-12-19 | 1990-04-17 | Cae-Link Corporation | Method and apparatus for processing translucent objects |
US4965750A (en) | 1987-03-31 | 1990-10-23 | Hitachi, Ltd. | Graphic processor suitable for graphic data transfer and conversion processes |
US4833601A (en) | 1987-05-28 | 1989-05-23 | Bull Hn Information Systems Inc. | Cache resiliency in processing a variety of address faults |
US4935879A (en) | 1987-08-05 | 1990-06-19 | Daikin Industries, Ltd. | Texture mapping apparatus and method |
US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
US4965751A (en) | 1987-08-18 | 1990-10-23 | Hewlett-Packard Company | Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size |
US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US5144291A (en) | 1987-11-02 | 1992-09-01 | Matsushita Electric Industrial Co., Ltd. | Means for eliminating hidden surface |
US4888712A (en) | 1987-11-04 | 1989-12-19 | Schlumberger Systems, Inc. | Guardband clipping method and apparatus for 3-D graphics display system |
US4901064A (en) | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
US4945500A (en) | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US5361386A (en) | 1987-12-04 | 1994-11-01 | Evans & Sutherland Computer Corp. | System for polygon interpolation using instantaneous values in a variable |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US4974176A (en) | 1987-12-18 | 1990-11-27 | General Electric Company | Microtexture for close-in detail |
GB2214037A (en) | 1987-12-18 | 1989-08-23 | Ibm | Solid modelling system |
US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
DE68918886T2 (de) | 1988-04-08 | 1995-06-01 | Dainippon Screen Mfg | Verfahren zur Gewinnung der Aussenlinie eines Objektes in einem Bild. |
US4907174A (en) | 1988-06-02 | 1990-03-06 | Sun Microsystems, Inc. | Z-buffer allocated for window identification |
US5097427A (en) | 1988-07-06 | 1992-03-17 | Hewlett-Packard Company | Texture mapping for computer graphics display controller system |
US5315692A (en) | 1988-07-22 | 1994-05-24 | Hughes Training, Inc. | Multiple object pipeline display system |
US4996666A (en) | 1988-08-12 | 1991-02-26 | Duluk Jr Jerome F | Content-addressable memory system capable of fully parallel magnitude comparisons |
US5003496A (en) | 1988-08-26 | 1991-03-26 | Eastman Kodak Company | Page memory control in a raster image processor |
US4989138A (en) | 1988-09-02 | 1991-01-29 | Tektronix, Inc. | Single bus graphics data processing pipeline with decentralized bus arbitration |
JPH0727581B2 (ja) | 1988-09-09 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 図形処理装置 |
US5016183A (en) | 1988-09-13 | 1991-05-14 | Computer Design, Inc. | Textile design system and method |
US5018076A (en) | 1988-09-16 | 1991-05-21 | Chips And Technologies, Inc. | Method and circuitry for dual panel displays |
JP2685548B2 (ja) | 1988-11-28 | 1997-12-03 | 株式会社日立製作所 | ディジタル画像データの回転方法およびその装置 |
GB8828342D0 (en) | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
US5062057A (en) | 1988-12-09 | 1991-10-29 | E-Machines Incorporated | Computer display controller with reconfigurable frame buffer memory |
US5255353A (en) | 1989-02-28 | 1993-10-19 | Ricoh Company, Ltd. | Three-dimensional shadow processor for an image forming apparatus |
US5204944A (en) | 1989-07-28 | 1993-04-20 | The Trustees Of Columbia University In The City Of New York | Separable image warping methods and systems using spatial lookup tables |
EP0423653B1 (en) | 1989-10-13 | 1997-08-06 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for compensating for color in color images |
JPH0776991B2 (ja) | 1989-10-24 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Nurbsデータ変換方法及び装置 |
JP3005007B2 (ja) | 1989-12-21 | 2000-01-31 | キヤノン株式会社 | 画像符号化装置 |
US5056044A (en) | 1989-12-21 | 1991-10-08 | Hewlett-Packard Company | Graphics frame buffer with programmable tile size |
US5224208A (en) | 1990-03-16 | 1993-06-29 | Hewlett-Packard Company | Gradient calculation for texture mapping |
US5179638A (en) | 1990-04-26 | 1993-01-12 | Honeywell Inc. | Method and apparatus for generating a texture mapped perspective view |
US5163126A (en) | 1990-05-10 | 1992-11-10 | International Business Machines Corporation | Method for adaptively providing near phong grade shading for patterns in a graphics display system |
JPH05507166A (ja) | 1990-05-12 | 1993-10-14 | レディフュージョン・シミュレーション・リミテッド | イメージ発生装置 |
DE69122557T2 (de) | 1990-06-29 | 1997-04-24 | Philips Electronics Nv | Bilderzeugung |
US5241658A (en) | 1990-08-21 | 1993-08-31 | Apple Computer, Inc. | Apparatus for storing information in and deriving information from a frame buffer |
JP2725915B2 (ja) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US5268996A (en) | 1990-12-20 | 1993-12-07 | General Electric Company | Computer image generation method for determination of total pixel illumination due to plural light sources |
US5307450A (en) | 1991-02-19 | 1994-04-26 | Silicon Graphics, Inc. | Z-subdivision for improved texture mapping |
FR2673791B1 (fr) | 1991-03-08 | 1993-05-07 | Thomson Video Equip | Methode et dispositif pour, en image numerique, creer une bordure autour d'un sujet incruste sur un fond et generateur d'effets speciaux comportant un tel dispositif. |
JPH07122908B2 (ja) | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
US5415549A (en) | 1991-03-21 | 1995-05-16 | Atari Games Corporation | Method for coloring a polygon on a video display |
EP0739513B1 (en) | 1991-08-13 | 1999-10-27 | The Board Of Regents Of The University Of Washington | Method of transmitting of data |
TW225595B (zh) | 1991-09-03 | 1994-06-21 | Gen Electric | |
US5404445A (en) | 1991-10-31 | 1995-04-04 | Toshiba America Information Systems, Inc. | External interface for a high performance graphics adapter allowing for graphics compatibility |
US5353424A (en) | 1991-11-19 | 1994-10-04 | Digital Equipment Corporation | Fast tag compare and bank select in set associative cache |
US5345541A (en) | 1991-12-20 | 1994-09-06 | Apple Computer, Inc. | Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device |
US5377313A (en) | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
JP2760731B2 (ja) | 1992-04-30 | 1998-06-04 | 株式会社東芝 | グラフィックス互換性を可能にする高性能グラフィックスアダプタ用外部インターフェース回路 |
US5469535A (en) | 1992-05-04 | 1995-11-21 | Midway Manufacturing Company | Three-dimensional, texture mapping display system |
US5473736A (en) | 1992-06-08 | 1995-12-05 | Chroma Graphics | Method and apparatus for ordering and remapping colors in images of real two- and three-dimensional objects |
US5432900A (en) | 1992-06-19 | 1995-07-11 | Intel Corporation | Integrated graphics and video computer display system |
JPH0628485A (ja) | 1992-07-09 | 1994-02-04 | Toshiba Corp | テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法 |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
US5432895A (en) | 1992-10-01 | 1995-07-11 | University Corporation For Atmospheric Research | Virtual reality imaging system |
US5388206A (en) | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5408650A (en) | 1993-06-29 | 1995-04-18 | Digital Equipment Corporation | Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program |
US5490240A (en) | 1993-07-09 | 1996-02-06 | Silicon Graphics, Inc. | System and method of generating interactive computer graphic images incorporating three dimensional textures |
US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5461712A (en) | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
JP2673101B2 (ja) * | 1994-08-29 | 1997-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・グラフィクス装置 |
US5651106A (en) * | 1995-06-08 | 1997-07-22 | Hewlett-Packard Company | Method and apparatus for vertex sorting in a computer graphics system |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5867166A (en) * | 1995-08-04 | 1999-02-02 | Microsoft Corporation | Method and system for generating images using Gsprites |
US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US5854632A (en) * | 1996-10-15 | 1998-12-29 | Real 3D | Apparatus and method for simulating specular reflection in a computer graphics/imaging system |
JPH10269377A (ja) * | 1997-03-27 | 1998-10-09 | Toshiba Corp | 表示制御システムおよび3次元グラフィクスデータの表示制御方法 |
US6496190B1 (en) * | 1997-07-02 | 2002-12-17 | Mental Images Gmbh & Co Kg. | System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system |
JP2000155845A (ja) * | 1998-05-29 | 2000-06-06 | Mitsubishi Electronics America Inc | 記憶装置、デ―タフォ―マッタ、デ―タにアクセスする方法、デ―タの領域をクリアする方法、デ―タを圧縮する方法、デ―タをフォ―マット化する方法、グラフィックスシステムおよびグラフィックスシステムを動作させる方法 |
CA2337530C (en) * | 1998-07-16 | 2007-11-20 | The Research Foundation Of State University Of New York | Apparatus and method for real-time volume processing and universal 3d rendering |
US6236413B1 (en) * | 1998-08-14 | 2001-05-22 | Silicon Graphics, Inc. | Method and system for a RISC graphics pipeline optimized for high clock speeds by using recirculation |
US6333744B1 (en) * | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
-
2000
- 2000-11-28 US US09/722,367 patent/US7034828B1/en not_active Expired - Lifetime
-
2001
- 2001-03-22 JP JP2001081892A patent/JP4731028B2/ja not_active Expired - Lifetime
- 2001-08-07 AU AU57851/01A patent/AU5785101A/en not_active Abandoned
- 2001-08-17 CA CA2355353A patent/CA2355353C/en not_active Expired - Lifetime
- 2001-08-22 EP EP01307124A patent/EP1182618A3/en not_active Withdrawn
- 2001-08-23 KR KR1020010050975A patent/KR20020015973A/ko not_active Application Discontinuation
- 2001-08-23 CN CN01122294A patent/CN1339764A/zh active Pending
- 2001-08-23 TW TW090120695A patent/TWI244050B/zh not_active IP Right Cessation
-
2005
- 2005-10-04 US US11/242,138 patent/US7176919B2/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1702692B (zh) * | 2004-05-03 | 2010-09-08 | 微软公司 | 提供增强的图形流水线的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
AU5785101A (en) | 2002-02-28 |
US7176919B2 (en) | 2007-02-13 |
KR20020015973A (ko) | 2002-03-02 |
EP1182618A2 (en) | 2002-02-27 |
TWI244050B (en) | 2005-11-21 |
US20060125825A1 (en) | 2006-06-15 |
CA2355353C (en) | 2010-05-04 |
US7034828B1 (en) | 2006-04-25 |
JP4731028B2 (ja) | 2011-07-20 |
EP1182618A3 (en) | 2003-11-12 |
CA2355353A1 (en) | 2002-02-23 |
JP2002063590A (ja) | 2002-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1339764A (zh) | 用于图形系统的再循环浓淡树混合器 | |
CN1835022A (zh) | 使用3d模型生成2d过渡 | |
CN1094624C (zh) | 图像数据处理设备和方法 | |
CN1653487A (zh) | 具有边绘制单元的图形引擎以及合并有该图形引擎的电子装置及存储器 | |
CN1170171A (zh) | 带三维图形和数字音频信号处理协处理器的视频游戏系统 | |
CN1809843A (zh) | Model 3D构建的应用程序接口 | |
CN1691069A (zh) | 采用多图形处理器加速方格片元过滤的实时体绘制方法 | |
CN1845178A (zh) | 使用各向异性纹理映射的图像绘制方法和图像绘制设备 | |
CN1674049A (zh) | 图像处理装置及其方法 | |
CN1293518C (zh) | 具有割截与支援框线模式的三角形描绘方法与装置 | |
CN1656465A (zh) | 可缩放的高性能3d图形显示 | |
CN1198255C (zh) | 显示设备和显示方法 | |
CN1238819C (zh) | 三维字符生成设备及三维图形数据生成设备 | |
CN1705976A (zh) | 向量图形的标记语言和对象模型 | |
CN1795468A (zh) | 在基于扫描线的光栅图像处理器中跟踪深度的方法 | |
CN1601562A (zh) | 图像处理装置及其方法 | |
CN101055647A (zh) | 用于处理图像的方法、装置和计算机程序 | |
CN1922630A (zh) | 图象处理装置、图象处理系统、图象处理方法、图象处理程序及集成电路装置 | |
CN1774727A (zh) | 为像素确定覆盖掩模 | |
CN1288603C (zh) | 图像处理器及其组件、和渲染方法 | |
CN1272933A (zh) | 图像处理装置与图像处理方法、程序提供媒体、以及数据提供媒体 | |
CN1099655C (zh) | 图像绘制装置及图像绘制方法 | |
CN1445650A (zh) | 面向像素子分量的图像的硬件加强图形加速 | |
CN1645241A (zh) | 摄影装置、图像处理装置、摄影装置的图像处理方法 | |
CN1130275A (zh) | 产生图象数据的方法及其有关的记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |