JP2002063590A - グラフィクスシステム用再循環シェードツリーブレンダ - Google Patents

グラフィクスシステム用再循環シェードツリーブレンダ

Info

Publication number
JP2002063590A
JP2002063590A JP2001081892A JP2001081892A JP2002063590A JP 2002063590 A JP2002063590 A JP 2002063590A JP 2001081892 A JP2001081892 A JP 2001081892A JP 2001081892 A JP2001081892 A JP 2001081892A JP 2002063590 A JP2002063590 A JP 2002063590A
Authority
JP
Japan
Prior art keywords
texture
data
color
shader
blend
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.)
Granted
Application number
JP2001081892A
Other languages
English (en)
Other versions
JP4731028B2 (ja
Inventor
Robert A Drebin
エイ ドレビン ロバート
Timothy J Vanhook
ジェイ ヴァンフック ティモシー
Patrick Y Law
ワイ ロー パトリック
Mark M Leather
エム レザー マーク
Matthew Komsthoeft
コムソーフト マシュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of JP2002063590A publication Critical patent/JP2002063590A/ja
Application granted granted Critical
Publication of JP4731028B2 publication Critical patent/JP4731028B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Abstract

(57)【要約】 (修正有) 【課題】 複雑なシェードツリーを安価でコンパクトな
再循環シェータハードウェアで実現する。 【解決手段】 ハードウェアでアクセラレートされたプ
ログラマブルなテクスチャブレンダ/シェーダ装置から
なり、マルチステージのカラーおよびアルファを計算す
る。テクスチャ環境サブシステムは、頂点ベースのライ
ティング,テクスチャおよび定数(ラスタライズした)
カラーを結合して、フォギングおよび最終のピクセルブ
レンドの前に、ピクセルカラーを計算する。カラーおよ
びアルファ成分のブレンド演算は、マルチステージにわ
たって再使用する1組のカラー/アルファ結合器(シェ
ーダ)からなる1つのブレンドユニットによって独立し
て行う。すべてのステージで共用する1組の4つの選択
可能な現在カラー入力/出力レジスタがブレンドユニッ
トの出力に設け、計算したカラー結果を一時的にストア
し、ステージ間にパスする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はコンピュータグラフィ
クスに関し、特にたとえば家庭用ビデオゲームプラット
フォームのようなインタラクティブなグラフィクスシス
テムに関する。より特定的には、この発明は、マルチテ
クスチャリングおよび他の効果のためにシェードツリー
を実現する再循環シェーダハードウェアに関する。
【0002】
【発明の背景および発明の概要】多くの人々はかなりリ
アルな恐竜,エイリアン,生き生きとしたおもちゃおよ
び他の空想的な動物を含む映画をかつて見たことがあ
る。そのようなアニメーションはコンピュータグラフィ
クスによって可能とされた。そのような技術を用いて、
コンピュータグラフィクスのアーティストは、各オブジ
ェクトがどのように見えるべきかや時間の経過とともに
外見上どのように変化すべきかを特定し、コンピュータ
は、そのオブジェクトをモデル化してテレビジョンやコ
ンピュータスクリーンのようなディスプレイに表示す
る。コンピュータは、表示される映像の各部分を、場面
中の各オブジェクトの位置や向き,各オブジェクトを照
らすように見える照明の方向,各オブジェクトの表面テ
クスチャ,および他の要素に正確に基づいて、色付けし
また形作るために必要な多くのタスクを実行する。
【0003】コンピュータグラフィクスの生成は複雑で
あるので、ここ数年前のコンピュータによって生成され
た3次元(3D)グラフィクスは、ほとんど高価な特殊
なフライトシミュレータ,ハイエンドグラフィクスワー
クステーションおよびスーパーコンピュータに限られて
いた。大衆は映画や高価なテレビコマーシャルにおいて
これらのコンピュータシステムによって生成された映像
のいくつかを見たが、大部分の人はグラフィクスを生成
しているコンピュータに対して実際に相互作用をさせる
ことはできない。たとえば、Nintendo64(登録商標)や
今や利用可能であるパソコン用の種々の3Dグラフィク
スカードのような比較的安価な3Dグラフィクスプラッ
トフォームの利用によって、このすべてが変わった。今
や、家庭や会社の比較的安価なコンピュータグラフィク
スシステム上でエキサイティングな3Dアニメーション
やシミュレーションに対して相互作用を及ぼすことがで
きる。
【0004】グラフィクスシステムの設計者が過去に直
面した問題は、グラフィクスシステムにおけるシェーダ
をいかに効率的に実現するかということである。一般的
にいえば、シェーディングはライティング計算を行いか
つそれらからピクセルカラー/不透明性を決定する処理
である。大まかにいうと、共通的に使用できるシェーデ
ィングの3つの主たるタイプがあり、フラット(flat)シ
ェーディング,グロー(Gouraud)シェーディングおよび
フォン(Phong)シェーディングである。これらはポリゴ
ン毎の光計算,頂点毎の光計算およびピクセル毎の光計
算に対応する。広く多様なシェーディングモデルが作ら
れている。すべてのユーザを満足させかつすべてのアプ
リケーションに適合するシェーディングモデルはない。
したがって、プログラマの選択およびシェーディングモ
デルの規格に関する柔軟性を与えるために、いくつかの
設計方法が示唆されている。
【0005】RLクックによる「シェードツリー(Shade
Tree)」(SIGGRAPH84,223−231頁)
と呼ばれる論文は、クックは、シェードツリーと呼ばれ
るツリー表現としてシェーダが構築される特別な目的の
言語を記述している。一般的にいえば、シェードツリー
はノードのツリーであり、各ノードはそれの子どもから
パラメータを取りそれの親のためのパラメータを生成す
る。たとえば、パラメータは、イルミネーション計算式
の項(たとえば、鏡面ケースまたは表面法線)であって
よい。他のパラメータは大気効果(たとえば、霧)また
は投影を含む。レンダと人間とのインタフェースは、多
様な目的のためにユーザ定義シェーダおよびシステム定
義シェーダを提供するためにシェードツリーを用いる。
【0006】シェードツリーは非リアルタイムレンダリ
ンググラフィクスシステムにおいて広く用いられている
が、リアルタイムレンダリングのコンテキストにおいて
シェードツリーが提供する柔軟性を持たせようとする
と、問題が生じる。たとえば、家庭用ビデオゲームプラ
ットフォームやパーソナルコンピュータのグラフィクス
カードのような低価格のリアルタイムレンダリングシス
テムにおいてシェードツリーの柔軟性を与えることが強
く要望されている。
【0007】グラフィクスシステム設計者が直面してい
る他の問題は、1パスマルチテクスチャリングと呼ばれ
る特徴をいかに効率的に提供するかである。基本的に
は、テクスチャリングは表面の特性を効率的にモデリン
グするための技術である。たとえば、レンガ壁において
各個別のレンガやモルタルのジオメトリをモデリングす
るのに代えて、表面上にレンガ壁のイメージを電気的に
「貼り付ける」ことが可能である。そのようなテクスチ
ャリングの能力は、モデリングや処理コストにおける対
応的な増加なしに、イメージの複雑さを非常に大きくす
るために使用され得る。
【0008】マルチテクスチャリングとして知られてい
るテクスチャリングの拡張は、同じ表面に2つまたはそ
れ以上のテクスチャが付与されるのを許容する。たとえ
ば、外部空間から見た地球のイメージを作る場合を想定
する。この場合、地球を球体としてモデリングし、それ
に2つの異なるテクスチャを付与することができる。第
1のテクスチャは陸地や海のイメージであり、第2のテ
クスチャはそれを覆う雲のイメージであり得る。雲のテ
クスチャイメージを陸地や海のテクスチャイメージに対
して相対的に動かすことによって、非常にリアルでかつ
ダイナミックなテクスチャマッピングされたイメージを
作ることができる。
【0009】2つまたはそれ以上のテクスチャが同じレ
ンダリングパス中でアクセスされるマルチテクスチャリ
ングをいくつかのグラフィクスアクセラレータがサポー
トしている。たとえば、マイクロソフトのダイレクトX
6.0SBK(1998);セガル等の「オープンGL
グラフィクスシステム:A規格」(バージョン1.2.
1)(1998年3月)(www.OpenGL.org)を参照され
たい。或るPCグラフィクスアクセラレータカードは1
パスマルチテクスチャリングを提供する。しかしなが
ら、さらなる改良が可能である。
【0010】この発明は、マルチテクスチャリングおよ
び多数の他の柔軟性のあるブレンド効果のために使用さ
れ得る、一般化したシェードツリーブレンダを提供す
る。この発明によって提供される1つの局面によれば、
グラフィクスパイプライン中の再循環シェーダハードウ
ェアは多数の独立制御可能なブレンドステージを提供す
るように制御され得る。シェーダハードウェアは種々の
ブレンド演算の結果のための中間記憶を含む。シェーダ
ハードウェアは各ブレンドステージ毎に異なる入力を選
択しかつ異なる演算を行うことができる。したがって、
比較的低価格でかつコンパクトなシェーダハードウェア
が複雑なシェードツリーを任意に実現するために使用さ
れ得る。
【0011】この発明によって提供される他の局面によ
れば、第1テクスチャマッピング演算の結果が再構成可
能なシェーダに与えられる。このシェーダはその第1テ
クスチャマッピング演算に応答してブレンド演算を実行
する。シェーダは、次いで、再構成され、さらなるテク
スチャ演算の結果を受けるように接続される。再構成さ
れたシェーダはそれの先の結果をさらなるテクスチャ演
算の結果に結合してブレンドした出力を与える。
【0012】この発明によって提供された別の局面によ
れば、シェーダは任意的に複雑なシェーディングモデル
を実現するために、任意の所望回数再循環される。各再
循環または「ステージ」は、多数の所望のブレンド演算
の任意の1つを持ちかつ多様なカラー,不透明性もしく
はデプスのソースの選択したものをブレンドするように
プログラマブルである。再循環の回数はリアルタイムレ
ンダリングのタイミングの制約を考慮して具体的な実施
例によって制限されるが、妥当な数の再循環ステージ
(たとえば、15回)が多様な複雑なシェーディングモ
デルを実現するにおいて非常な柔軟性を提供する。
【0013】この発明によって提供される他の局面によ
れば、再循環シェードツリーピクセルブレンダはステー
ジ当たりの処理時間を最小化するためにハードウェアで
実現される。より詳しくいうと、この発明の好ましい実
施例は、比較的小さいチップ面積の多能なテクスチャ環
境処理サブシステムを提供し、そのサブシステムはハー
ドウェアでアクセラレートされたプログラマブルなテク
スチャシェーダ/ピクセルブレンダを含み、それは計算
したカラー,不透明性および他のデータを多数のサイク
ル/ステージに亘って循環させる。テクスチャ環境サブ
システムは頂点毎のライティング,テクスチャ,ラスタ
ライズしたカラー,不透明性,およびデプスを結合し、
表示のためのピクセルパラメータを形成する。カラー
(たとえば、RGB)およびアルファ成分についてのブ
レンダ演算は、テクスチャ環境サブシステム内におい
て、マルチテクスチャおよび他の効果を実現するために
多数の処理ステージに亘って再使用される1組のカラー
/アルファ結合器(シェーダ)のハードウェアを含むブ
レンドユニットによって独立的に処理される。選択可能
な現在のカラー/不透明性入力/出力レジスタが中間結
果をストアするために、すべてのステージについて共用
される。このシェーダハードウェアは各ステージ毎に再
構成され、1レンダリングパスでのマルチテクスチャリ
ングおよび他の効果をサポートする一連の区分可能なブ
レンド/シェーディング演算を提供する。
【0014】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の実施例の詳
細な説明から一層明らかとなろう。
【0015】
【実施例】図1は対話型(インタラクティブ)3Dコン
ピュータグラフィクスシステム50の一例を示す。シス
テム50は対話型3Dビデオゲームをステレオ音声とと
もにプレイするのに用いられ得る。これはまた多様な他
のアプリケーションにも用いられ得る。
【0016】この実施例において、システム50は3次
元世界のディジタル表現ないしモデルをインタラクティ
ブにかつリアルタイムに処理することができる。システ
ム50は、任意の視点から、その世界の一部または全部
を表示することができる。たとえば、システム50は、
手持ちコントローラ52aおよび52bまたは他の入力
デバイスからのリアルタイム入力に応答して、視点をイ
ンタラクティブに変化できる。このことによって、ゲー
ムプレーヤは、その世界内もしくは外の誰かの目を通し
てその世界を見ることができる。システム50は、リア
ルタイム3Dインタラクティブ表示を必要としないアプ
リケーション(たとえば2D表示の発生やおよび/また
はノンインタラクティブ表示)に使用できるが、高品質
の3D映像を非常に速く表示する能力は、非常にリアル
でエキサイティングなゲームプレイや他のグラフィクス
インタラクションを創造するのに使用され得る。
【0017】システム50を用いてビデオゲームまたは
他のアプリケーションをプレイするために、ユーザはま
ず、主ユニット54を、カラーテレビ56または他の表
示装置に、両者の間にケーブル58を接続することによ
って、接続する。主ユニット54はカラーテレビ56を
制御するためのビデオ信号およびオーディオ信号を発生
する。ビデオ信号はテレビジョン画面59上に表示され
ている映像を制御するものであり、オーディオ信号はテ
レビのステレオスピーカ61Lおよび61Rを通して音
声として再生される。
【0018】ユーザはまた主ユニット54を電源につな
ぐ必要がある。この電源は従来のACアダプタ(図示せ
ず)であってよく、そのACアダプタは家庭用の標準的
な壁ソケットに差し込まれ、家庭用電源を、主ユニット
54を駆動するのに適した低いDC電圧信号に変換す
る。他の実施例ではバッテリが用いられてもよい。
【0019】ユーザは主ユニット54を制御するために
手持ちコントローラ52aおよび52bを用いる。コン
トロール60は、たとえば、3D世界内においてテレビ
56に表示されているキャラクタが移動すべき方向(上
または下、左または右、近づいてまたは遠ざかって)を
指示するために使用され得る。コントロール60は、ま
た他のアプリケーションのための入力(たとえばメニュ
ー選択,ポインタ/カーソル制御,その他)を与える。
コントローラ52は多様な形態をとり得る。この実施例
においては、図示されるコントローラ52は、各々ジョ
イスティック,押しボタンおよび/または方向スイッチ
のようなコントロール60を含む。コントローラ52
は、ケーブルによって、もしくは電磁波(たとえば電波
または赤外線)を介してワイヤレスで、主ユニット54
に接続され得る。
【0020】ゲームのようなアプリケーションをプレイ
するために、ユーザはビデオゲームもしくはプレイした
いと思う他のアプリケーションをストアしている適宜の
記憶媒体62を選択し、その記憶媒体を主ユニット54
のスロット64に差し込む。記憶媒体62は、たとえ
ば、特別にエンコードされおよび/または記号化された
光学的ならびに/もしくは磁気的ディスクであってよ
い。ユーザは主ユニット54をオンするために電源スイ
ッチ66を操作し、主ユニットがその記憶媒体62にス
トアされているソフトウェアに基づいてビデオゲームも
しくは他のアプリケーションを実行し始めるようにす
る。ユーザは主ユニットに入力を与えるためにコントロ
ーラ52を操作する。たとえば、コントロール60を操
作することによってゲームもしくは他のアプリケーショ
ンをスタートさせる。他のコントロール60を動かすこ
とによって、動画キャラクタを異なる方向に移動させ、
または3D世界におけるユーザの視点を変化させる。記
憶媒体62にストアされている具体的なソフトウェアに
よって、コントローラ52上の種々のコントロール60
は異なる時間で異なる機能を達成することができる。 全体システムの例 図2はシステム50の例示的なコンポーネントのブロッ
ク図であり、重要なコンポーネントは、 ・主プロセサ(CPU)110, ・主メモリ112,および ・グラフィクス/オーディオプロセサ114 を含む。
【0021】この実施例において、主プロセサ110
(たとえばIBMパワーPC750の改良版)は、手持
ちコントローラ52(および/または他の入力デバイ
ス)からの入力をグラフィクス/オーディオプロセサ1
14を通して受ける。主プロセサ110はユーザ入力に
インタラクティブに応答し、光ディスクドライブのよう
な大容量記憶媒体アクセス装置106を介して、たとえ
ば外部記憶媒体62から供給されるビデオゲームもしく
は他のプログラムを実行する。一例として、ビデオゲー
ムプレイの状況では、主プロセサ110は、多様なイン
タラクティブ制御機能に加えて、衝突検出および動画処
理を実行する。
【0022】この実施例では、主プロセサ110は3D
グラフィクス/オーディオコマンドを発生し、それらを
グラフィクス/オーディオプロセサ114に送る。グラ
フィクス/オーディオプロセサ114はこれらのコマン
ドを処理し、ディスプレイ59上での可視映像を生成
し、ステレオスピーカ61Rおよび61Lもしくは他の
適宜の音声発生デバイス上でのステレオ音声を生成す
る。
【0023】実施例のシステム50はビデオエンコーダ
120を含み、このビデオエンコーダは、グラフィクス
/オーディオプロセサ114からの映像信号を受けて、
その映像信号をコンピュータモニタや家庭用テレビ56
のような標準的な表示装置上での表示に適したアナログ
および/またはディジタルビデオ信号に変換する。シス
テム100はまたオーディオコーデック(圧縮器/伸長
器)122を含み、このオーディオコーデックはディジ
タル化されたオーディオ信号を圧縮しかつ伸長するとと
もに、必要に応じてディジタルオーディオ信号のフォー
マットとアナログオーディオ信号のフォーマットとの間
で変換を行う。オーディオコーデック122はバッファ
124を介してオーディオ入力を受けることができ、処
理(たとえば、プロセサが生成したおよび/または大容
量記憶媒体アクセス装置106のストリームオーディオ
出力を介して受信した他のオーディオ信号とのミキシン
グ)するために、そのオーディオ入力をグラフィクス/
オーディオプロセサ114に与える。この実施例におけ
るグラフィクス/オーディオプロセサ114は、オーデ
ィオタスクに利用可能なオーディオメモリ126にオー
ディオ関連情報をストアすることができる。グラフィク
ス/オーディオプロセサ114は、結果的に得られるオ
ーディオ出力信号を、圧縮およびアナログ信号への変換
のために、オーディオコーデック122に与え、したが
ってそのオーディオ出力信号が(たとえばバッファアン
プ128Lおよび128Rを介して)スピーカ61Lお
よび61Rによって再生され得る。
【0024】グラフィクス/オーディオプロセサ114
はシステム100内に存在するであろう種々の付加的な
デバイスと通信する能力を有する。たとえば、パラレル
ディジタルバス130は大容量記憶媒体アクセス装置1
06および/または他のコンポーネントと通信するため
に用いられる。シリアル周辺バス132は多様な周辺機
器または、たとえば、 ・PROMおよび/またはRTC(リアルタイムクロッ
ク)134, ・モデム136もしくは他のネットワークインタフェー
ス(それはシステム100を、プログラム命令および/
またはデータがダウンロードもしくはアップロードされ
得るインターネットあるいは他のディジタルネットワー
クのようなテレコミュニケーションネットワーク138
に接続する),および ・フラッシュメモリ140 を含む他のデバイスと通信する。別の外部シリアルバス
142は、付加的な拡張メモリ144(たとえばメモリ
カード)もしくは他のデバイスと通信するために使用さ
れ得る。コネクタが種々のデバイスをバス130,13
2および142に接続するために使用され得る。 グラフィクス/オーディオプロセサの例 図3は実施例のグラフィクス/オーディオプロセサ11
4を示すブロック図である。或る実施例においては、グ
ラフィクス/オーディオプロセサ114はシングルチッ
プASICであってよい。この実施例においては、グラ
フィクス/オーディオプロセサ114は、 ・プロセサインタフェース150, ・メモリインタフェース/コントローラ152, ・3Dグラフィクスプロセサ154, ・オーディオディジタル信号プロセサ(DSP)15
6, ・オーディオメモリインタフェース158, ・オーディオインタフェース/ミキサ160, ・周辺コントローラ162,および ・表示コントローラ164 を含む。
【0025】3Dグラフィクスプロセサ154はグラフ
ィクス処理タスクを実行する。オーディオディジタル信
号プロセサ156はオーディオ処理タスクを実行する。
表示コントローラ164は主メモリ112からの映像情
報にアクセスし、表示装置102上での表示のためにそ
の映像情報をビデオエンコーダ120に与える。オーデ
ィオインタフェース/ミキサ160はオーディオコーデ
ック122をインタフェースし、また異なるソースから
のオーディオ(たとえば、大容量記憶媒体アクセス装置
106からのオーディオストリーム,オーディオDSP
156の出力,およびオーディオコーデック122を通
して受ける外部オーディオ入力)をミックスすることが
できる。プロセサインタフェース150は主プロセサ1
10およびグラフィクス/オーディオプロセサ114の
間のデータおよび制御インタフェースを提供する。
【0026】メモリインタフェース152はグラフィク
ス/オーディオプロセサ114とメモリ112との間の
データおよび制御インタフェースを提供する。この実施
例においては、主プロセサ110は、プロセサインタフ
ェース150およびグラフィクス/オーディオプロセサ
114の一部であるメモリインタフェース152を介し
て、主メモリ112にアクセスする。周辺コントローラ
162はグラフィクス/オーディオプロセサ114と上
で述べた種々の周辺機器との間のデータおよび制御イン
タフェースを提供する。オーディオメモリインタフェー
ス158はオーディオメモリ126とのインタフェース
を提供する。 グラフィクスパイプラインの例 図4は図3の3Dグラフィクスプロセサ154をより詳
細に示すグラフィクス処理システムを示す。この3Dグ
ラフィクスプロセサ154は、とりわけ、コマンドプロ
セサ200および3Dグラフィクスパイプライン180
を含む。主プロセサ110はデータストリーム(たとえ
ばグラフィクスコマンドストリームおよび表示リスト)
をコマンドプロセサ200に通信する。主プロセサ11
0はメモリレイテンシを最小化するために2レベルキャ
ッシュ112を有し、さらにまたグラフィクス/オーデ
ィオプロセサ114に向けられたキャッシュされていな
いデータストリームのための書込収集(write-gatherin
g)バッファ111を有する。この書込収集バッファ11
は部分キャッシュラインを全キャッシュラインに集め、
バスの最大使用時に、グラフィクス/オーディオプロセ
サ114からのデータを1つのキャッシュラインに送
る。
【0027】コマンドプロセサ200は主プロセサ11
0からの表示コマンドを受け、それらを解剖し、メモリ
コントローラ152を介して共用メモリ112からのそ
のコマンドを処理するに必要な付加的なデータを入手す
る。コマンドプロセサ200は、2Dおよび/または3
D処理およびレンダリングのために、頂点コマンドのス
トリームをグラフィクスパイプライン180に与える。
グラフィクスパイプライン180はこれらのコマンドに
基づいて映像を生成する。結果として得られた映像情報
は、表示コントローラ/ビデオインタフェースユニット
164によるアクセスのために主メモリ120に転送さ
れ得て、この映像情報は表示装置156上にパイプライ
ン180のフレームバッファ出力を表示する。
【0028】図5はグラフィクスプロセサ154を用い
て実行される処理を図解的に示すブロック論理フロー図
である。主プロセサ10は、グラフィクスコマンドスト
リーム210,表示リスト212および頂点アレイ21
4を主メモリ112にストアし、ポインタをバスインタ
フェース150を介してコマンドプロセサ200に送
る。主プロセサ110は主メモリ110内に割り付けら
れた1つ以上のグラフィクスFIFOバッファ210に
グラフィクスコマンドをストアする。このコマンドプロ
セサ200は、・同期/フロー制御および負荷バランス
のためにグラフィクスコマンドを受けかつバッファする
オンチップFIFOメモリバッファ216を介して主メ
モリ112からのコマンドストリーム, ・オンチップコールFIFOメモリバッファ218を介
して主メモリ112からの表示リスト212,および ・コマンドストリームからおよび/または主メモリ11
2の頂点アレイ214からの頂点アトリビュート を頂点キャッシュ220を介して取り込む。
【0029】コマンドプロセサ200はコマンド処理動
作200aを実行し、そのコマンド処理動作200aは
アトリビュート形式を浮動小数点フォーマットに変換
し、結果的に得られた完全頂点ポリゴンデータをレンダ
リング/ラスタライゼーションのためにグラフィクスパ
イプライン180に与える。プログラマブルメモリ調停
回路130(グラフィクスメモリ要求調停回路:図4)
は、グラフィクスパイプライン180,コマンドプロセ
サ200および表示コントローラ/ビデオインタフェー
スユニット164の間での共用主メモリ112へのアク
セスを調停する。
【0030】図4は、グラフィクスパイプライン180
が ・変換ユニット300, ・セットアップ/ラスタライザ400, ・テクスチャユニット500, ・テクスチャ環境ユニット600,および ・ピクセルエンジン700 を含むことを示す。
【0031】変換ユニット300は多様な2Dおよび3
D変換および他の動作300a(図5)を実行する。変
換ユニット300は変換処理300aに用いられるマト
リクスをストアするための1つ以上のマトリクスメモリ
300bを含む。変換ユニット300は、入来する頂点
毎のジオメトリをオブジェクト空間からスクリーン空間
へ変換し、そして入来するテクスチャ座標を変換しかつ
投影テクスチャ座標(300c)を計算する。変換ユニ
ット300はまたポリゴンクリッピング/カリング(cli
pping/culling)300dを実行する。変換ユニット30
0bによってまた達成される照明処理300eが、この
実施例では8つまでの独立した照明について、頂点毎に
照明計算を行う。変換ユニット300は、エンボス(emb
ossed)タイプのバンプマッピング効果およびポリゴンク
リッピング/カリング動作(300d)のために、テク
スチャ座標を発生する(300c)。
【0032】セットアップ/ラスタライザ400はセッ
トアップユニットを含み、このセットアップユニット
は、変換ユニット300からの頂点データを受け、三角
形セットアップ情報を、エッジラスタライゼーション,
テクスチャ座標ラスタライゼーションおよびカラーラス
タライゼーションを実行する1つ以上のラスタライザユ
ニット(400b)に送る。
【0033】テクスチャユニット500は、オンチップ
テクスチャメモリ(TMEM)502を含んでもよく、
たとえば、 ・主メモリ112からのテクスチャ504の抽出、 ・たとえばマルチテクスチャ処理,ポストキャッシュテ
クスチャ伸長,テクスチャフィルタリング,エンボシン
グ,投影テクスチャの使用を通しての陰影付け,および
アルファトランスパーレンシおよびデプスを用いるBL
ITを含むテクスチャ処理(500a)、 ・バンプマッピング,偽(pseudo)テクスチャおよびテク
スチャタイル(tiling)効果(500b)のためのテクス
チャ座標置換を計算するバンプマップ処理、および ・間接テクスチャ処理(500c) を含むテクスチャリングに関連する種々のタスクを実行
する。
【0034】ブロック500a,500bおよび500
cの動作に関する詳細について、実施例のグラフィクス
パイプライン回路および通常のかつ間接テクスチャルッ
クアップ動作を行う方法の詳細な説明が同時係属中の
「グラフィクスシステムにおける直接および間接テクス
チャ処理方法および装置」、特願2001−42667
に開示されていて、ここでは、参照によってその記述を
取り入れる。
【0035】グラフィクスパイプラインの好ましい実施
例の装置において、テクスチャユニット500は、1つ
のテクスチャアドレス座標/データ処理ユニットを用い
る「再循環」テクスチャパイプライン構成を使用して実
現され、テクスチャアドレス座標/データ処理ユニット
は、論理的直接および間接テクスチャ座標データの処理
をインタリーブし、1つのテクスチャ抽出ユニットから
の抽出した間接テクスチャルックアップデータをテクス
チャアドレス座標/データ処理ユニットへ再循環して戻
すためのテクスチャルックアップデータフィードバック
経路(500d)を提供する。
【0036】テクスチャユニット500は、テクスチャ
環境処理(600a)のために、テクスチャ環境ユニッ
ト600へフィルタリングしたテクスチャ値を出力す
る。テクスチャ環境ユニット600は、ポリゴンとテク
スチャカラー/アルファ/デプスをブレンドするととも
に、逆レンジベース(reverse range based)のフォグ効
果を達成するためにテクスチャフォギング処理(600
b)を行うことができる。テクスチャ環境ユニット60
0は、たとえば、カラー/アルファ変調,エンボシン
グ,詳細テクスチャリング,テクスチャスワッピング,
クランプ,およびデプスブレンドに基づく多様な他の環
境関連機能を行うためにマルチステージを提供し得る。
【0037】図5に示すように、実施例におけるテクス
チャ環境ユニット600aは再循環シェーダ602を含
む。この実施例における再循環シェーダ602はハード
ウェアベースの汎用ブレンダを含み、そのブレンダは多
数の選択した入力間でブレンドしかつブレンドした結果
を後続のブレンド演算においてさらにブレンドするため
に保持し得る。この実施例の再循環シェーダ602は多
数の異なるブレンド演算を実現できる再使用可能なブレ
ンド論理回路を含む。この実施例において、再循環シェ
ーダ602は多数の異なる個別の先行ブレンド結果を保
持し、これらの先にブレンドした結果の任意のものと新
たに与えられた値とをブレンドし得る。このことによっ
て、再循環シェーダ602は、連続再循環ステージを通
して、任意のシェードツリーを実現することができる。
たとえば、クックの「シェードツリー」、SIGGRA
PHProceedings、223−231頁(19
84年7月)を参照されたい。再循環シェーダ602が
実現できるシェードツリーの複雑さは、或るレンダリン
グパス内において再循環シェーダ602が再循環し得る
合計回数によって制限される。この実施例においては、
再循環シェーダ602は15までの再循環ステージを提
供し得るが、異なる実施例では異なる再循環ステージ数
を提供する。
【0038】テクスチャ環境ユニット600がブレンド
したカラー/アルファ/z出力を発生すると、ピクセル
エンジン700はデプス(z)比較(700a)および
フレームバッファピクセルブレンド(700b)を行
う。この実施例において、ピクセルエンジン700は内
蔵(オンチップ)フレームバッファメモリ702へデー
タをストアする。グラフィクスパイプライン180は、
フレームバッファおよび/またはテクスチャ情報を局所
的にストアするために、1つまたはそれ以上の内蔵DR
AMメモリを含む。z比較700aは、現在有効なモー
ドに依存して、グラフィクスパイプライン180におけ
る早い段階のステージで行われる(たとえば、z比較
は、もしアルファブレンドが要求されていないならば、
より早期に行われる)。ピクセルエンジン700は、表
示/ビデオインタフェースユニット164によるアクセ
スのために、オンチップフレームバッファ702を周期
的に主メモリ112へ書き込むコピー動作700cを含
む。このコピー動作はまた、動的なテクスチャ合成効果
のために、内蔵フレームバッファ702の内容を主メモ
リ112のテクスチャへコピーするために使用され得
る。エイリアス補正および他のフィルタリングがコピー
アウト動作中に行われ得る。グラフィクスパイプライン
180のフレームバッファ出力(これは最終的には主メ
モリ112にストアされる)は、各フレーム毎に、表示
/ビデオインタフェースユニット164によって読み出
される。表示コントローラ/ビデオインタフェース16
4は表示装置102上での表示のために、ディジタルR
GBピクセル値を与える。 再循環シェーダの例 図6は再循環シェーダ回路の実施例の高位ブロック図を
示し、図7は図6の再循環シェーダを用いて実現され得
るシェーダパイプラインの例の論理図を示す。図6に示
すように、再循環シェーダ602は多数の異なる入力を
受け、それの入力にフィードバックされ得る出力を生成
する。
【0039】より詳細いうと、この実施例の再循環シェ
ーダ602は以下の形式の入力の任意の間で選択する。
【0040】・ラスタライズしたカラー/アルファ ・テクスチャカラー/アルファ ・計算したカラー/アルファ ・その他 実施例において、ラスタライズしたカラー/アルファは
ラスタライザ400によって提供される。たとえば、ラ
スタライズしたカラー/アルファは、変換ユニット30
0によって頂点ベースで行われるライティング計算に基
づいてラスタライザ400によって決定されたグローシ
ェーディングされたピクセルである。テクスチャカラー
/アルファはテクスチャユニット500によって行われ
た直接または間接テクスチャマッピング演算の結果であ
り得る。再循環シェーダ602は、プログラマブルなブ
レンド演算に基づくこれらの値および/または定数の任
意のものあるいはすべてをブレンドして、それの出力に
計算したカラー/アルファ値を与える。この計算したカ
ラー/アルファ値は後続のブレンド演算における使用の
ために再循環シェーダ602への入力としてフィードバ
ックされ得る。
【0041】再循環シェーダ602の各々独立的に制御
される再循環が「ステージ」と呼ばれる。実施例におい
て、再循環シェーダ602はASIC中の高速ハードウ
ェアロジックによって実現される。多数の独立制御論理
ステージを提供する高速ハードウェアロジックの機能の
再循環によって、ハードウェアの複雑さや必要な集積回
路不動産を減じながら、任意の所望数のシェーディング
/ブレンドステージが許容される柔軟性を提供する。実
施例における再循環シェーダ602の各ステージはカラ
ー(RGB)およびアルファ(透明性)のために独立し
たブレンド演算を計算する。実施例におけるブレンド計
算は次のような多数の異なる演算から主プロセサ110
上で動作するアプリケーションによってプログラムされ
得る。
【0042】・変調(modulate) ・変調2x(modulate2x) ・変調4x(modulate4x) ・加算(add) ・加算符号(add sigh) ・加算符号2x(add sigh2x) ・減算(subtract) ・加算平滑(add smooth) ・ブレンド拡散アルファ(blend diffuse alpha) ・ブレンドテクスチャアルファ(blend texture alpha) ・ブレンド要素アルファ(blend factor alpha) ・ブレンド現在アルファ(blend current alpha) ・ブレンドテクスチャアルファ予乗算(blend texture a
lpha pre-maltiplied) ・変調アルファおよび加算カラー(modulate alpha and
color) ・変調カラーおよび加算アルファ(modulate color and
alpha) ・変調逆アルファおよび加算カラー(modulate inverse
alpha and color) ・変調逆カラーおよび加算アルファ(modulate inverse
color and alpha) ・鏡面カラーおよびテクスチャ(specular color and te
xture)(多ステージ) ・エンボス(embossing)(多ステージ) ・詳細テクスチャ(detail texture)(多ステージ) ・その他 図7は再循環シェーダ602によって提供され得る再循
環シェーディングパイプラインの例を示す。この論理パ
イプラインは多数の順次のブレンドステージを提供し、
その各々のステージは計算したカラー/アルファをテク
スチャカラー/アルファおよび/またはラスタライズし
たカラー/アルファとブレンドする。この実施例におい
て、ブレンド演算の16までの異なるステージが、補間
テクスチャおよびラスタカラー/アルファを受ける各ス
テージに設けられる。ラスタライザ400(図5参照)
のプログラムが、8つのテクスチャ座標セットの1つお
よび8つの物理的テクスチャ504の1つを特定して再
循環シェーダ602によって提供されるテクスチャ補間
のために使用する。ラスタライザ400はまた、或る再
循環シェーダ602のステージのために2つのラスタラ
イズしたカラーのどれが使用されるかを制御する。 再循環シェーダ回路の例 図8はテクスチャ環境ユニット600において使用する
に適した再循環シェーダ602の具体的回路のブロック
図を示す。図示する実施例において、再循環シェーダ6
02は、ブレンド演算器658によって演算されるべき
種々の異なる入力(たとえば、テクスチャカラー/アル
ファ,ラスタライズしたカラー/アルファ,および先の
ブレンド演算の結果)の中から選択するための多数の入
力マルチプレクサ656を含む。ブレンド演算器658
の結果はこの実施例における4つの中間レジスタ660
のいずれか1つにストアされる。これらのレジスタ66
0のいずれか1つは、次いで、後続のブレンドステージ
におけるさらなるブレンド演算のために入力マルチプレ
クサ656によって選択され得る。
【0043】実施例において、再循環シェーダ602は
各ブレンドステージ毎に、カラー成分演算および別のア
ルファ成分演算を行う。或るステージについていえば、
ブロック658によって行われる演算はカラー成分およ
びアルファ成分について異なる。カラー成分およびアル
ファ成分の演算は主プロセサ110上で動くアプリケー
ションによって独立して制御できる。再循環ステージ毎
に独立したカラーおよびアルファ演算制御を与えるこの
能力によって、再循環シェーダ602は、処理速度に関
して追加的なコストなしに、任意の複雑なアルファ(透
明性)ツリーの演算を行うことができる。再循環シェー
ダ602の最終ステージによって生成されたアルファ
は、アルファ比較ブロック662へ入力される。このア
ルファ比較演算662の結果は、たとえば、内蔵フレー
ムバッファ702へのカラーおよび/またはzの書込を
条件付きでマスクするために使用され得る。
【0044】この実施例において、最終ブレンドステー
ジの最終ブレンド出力はカラー出力および/またはアル
ファ閾値662のためにレジスタ660(4)にストア
される。zテクスチャ経路がまたzテクスチャリングの
ために設けられる。同時係属中の「Zテクスチャリン
グ」(特願2001− )を参照されたい。
ここでは、その記述を参照によって取り入れる。 入力マルチプレクサ構成の例 図9は再循環シェーダの入力マルチプレクサ構成656
の例を示す。図9に示すように、4つのマルチプレクサ
656a−656dの各々のものは次のものを含む多数
の異なるカラー入力の1つを選択する。
【0045】・レジスタ660(1)の内容 ・レジスタ660(2)の内容 ・レジスタ660(3)の内容 ・レジスタ660(4)の内容 ・テクスチャカラー ・テクスチャアルファ ・定数(レジスタ)カラー ・定数(レジスタ)アルファ ・ラスタライズしたカラー ・ラスタライズしたアルファ ・わずかの有用な固定定数 ・プログラマブルな定数 ・他のテクスチャカラーチャネルへコピーされたテクス
チャカラー成分(この特徴はドット積,輝度計算および
カラー空間変換に有用である) ・他の入力 マルチプレクサ656への入力制御は各再循環シェーダ
ステージ毎に独立して特定される。マルチプレクサ65
6の出力は、この実施例においては、8ビットの未符号
化(unsigned)値または10ビットの符号化(signed)値で
あり、他の具体例が異なる精度を提供することができ
る。 ブレンド計算/演算の例 図10はブレンド/シェーディング演算器658の例を
示す。この実施例においては、再循環シェーダ602
は、各ステージ毎に、数2で一般化される計算を行う。
【0046】
【数2】
【0047】実施例の計算ブロック664における引数
(arguments)A,B,CおよびDは次のものから選ばれ
る。
【0048】・4つのカラーレジスタ ・ラスタライズしたカラー(拡散または鏡面) ・テクスチャ ・上のカラーのアルファ成分または定義された定数 ・固定の定数 ・プログラマブルな定数 計算ブロック664はこの実施例においては値A,Bお
よびCで演算する。計算ブロック664の出力はオプシ
ョンとしての否定ブロック666を通してパスされ、加
算器668によって「D」マルチプレクサ656(d)
の出力および随意的なバイアス値と加算される。結果と
して得られた合計値は、出力および/または後続のさら
なるブレンドのために、レジスタ660(1),660
(2),660(3),660(4)のいずれか1つに
ストアされる前に、スケーラブロック670によってス
ケーリングされ、クランプブロック672によってクラ
ンプされる。
【0049】実施例において、スケーラブロック670
は0.5,1,2または4によってスケーリングし得る
が、他の実施例では他のスケーリング値を用いてもよ
い。クランプブロック672は多数の異なるクランプモ
デルをサポートする。実施例においては、入力値A,
B,Cは1つの具体例においては未符号化の8ビット値
であり、入力値Dは符号化10ビット値であり、クラン
プブロック672の出力は符号化10ビット値であり得
る。
【0050】図11は再循環シェーダ602のより詳細
な回路を示す。この実施例において、計算ブロック66
4は、ハードウェア乗算器664b,664c;「1−
f」補数ブロック664a;および加算器664dによ
って実現される。この実施例において、乗算器664b
はB入力およびC入力を乗算し、その結果的に得られた
積を加算器664の一方入力に与える。他の乗算器66
4cはA入力を値(1−C)によって乗算し、その結果
的に得られた積を加算器664dの他方入力に与える。
このハードウェアはブロック664によって計算される
ように図10に示される式を計算する。加算器664に
よって得られた結果的な積は符号反転ブロック666へ
出力される。
【0051】図11に示す実施例では、付加的な比較器
674が設けられ、マルチプレクサ656の出力Aおよ
びDを、マルチプレクサ656の出力Cおよびゼロ値
(マルチプレクサ676を介して)の間で選択するため
に使用される比較の結果と比較する。付加的なマルチプ
レクサ678がデータ経路に設けられ、符号演算器66
6の出力とマルチプレクサ676の出力(すなわち、比
較演算の結果)との間で選択する。そのような比較は、
1つの再循環ステージでブレンド計算および比較結果演
算をすべて行うことによって再循環ステージを節約する
ことができる。実施例におけるこの比較器674は8ビ
ット,16ビットまたは24ビットの比較を与えるよう
に1つ、2つもしくは3つのチャネルを同時に比較する
ことができる。
【0052】図11に示す実施例では、スケーリング演
算670は次のようなスケール値でのスケーリングを与
える。
【0053】・0.5 ・1 ・2 ・4 実施例では、異なるスケーリングブロック670a,6
70b,670c,670dがクランプブロック672
へ与えるためにマルチプレクサ670eによって選択さ
れる。
【0054】図11に示す実施例では、マルチプレクサ
656への入力は、オプションとして、ブロック664
による計算の前に、「カラースワップ」ブロック680
を通してパスされる。カラースワップブロック680は
各カラー成分(R,G,またはB)を他の2つのカラー
成分へブロードキャストするために使用される。図1
2,図13を参照されたい。この特徴は、たとえば、ド
ット積,輝度計算およびカラー空間変換のために使用さ
れ得る。
【0055】図11に示す実施例は固定的なあるいはプ
ログラマブルな定数のためのサポートを含む。1つの実
施例において、定数選択が、複数の固定的に定義された
値を用いるかあるいは複数のプログラマブルなカラーレ
ジスタ値を用いるかを特定する定数選択レジスタによっ
て決定された任意の定数値を選択するために使用され
る。そのようなプログラマブルな定数および固定定数
は、ブレンド演算における柔軟性を与える。他の実施例
では、代わって、少数の固定定数(たとえば、1.0)
が使用される。
【0056】図11のデータ経路はたとえば、ダイレク
トX6.0または7.0のD3Dによって特定されるよ
うな異なるブレンド演算のために設定され得る。たとえ
ば、以下の7つのパラメータが再循環シェーダ602の
ブレンドステージをプログラムするために使用される。
【0057】・引数A ・引数B ・引数C ・引数D ・減算 ・バイアス ・シフト 数3および数4はブレンド演算の例である。
【0058】SelectArg
【0059】
【数3】
【0060】Modulate, Modulate2x, Modulate4x
【0061】
【数4】
【0062】引数BおよびCの成分は一緒に乗算され
る。2または4のスケール値が数5で示すブライトニン
グ(blightening)のために使用され得る。
【0063】
【数5】
【0064】Add 引数の成分が数6のように一緒に加算される。
【0065】
【数6】
【0066】AddSigned,AddSigned2X 引数の成分が−0.5のバイアスに加算され、−0.5
から0.5までの値の有効範囲を作る。結果はブライト
ニングのために2によって乗算される。
【0067】
【数7】
【0068】Subtract 第2の引数の成分が第1の引数から減算される。
【0069】
【数8】
【0070】AddSmooth バイアス加算演算はグロー,フォグその他のために数学
的には正しい。しかしながら、それは突然飽和して輪郭
加工を生じさせる。よりよく見えるが、わずかに数学的
には正しくない方法は積を減算することである。
【0071】
【数9】
【0072】BlendDiffuseAlpha, BlendTextureAlpha,
BlendFactorAlpha, BlendCurrentAlpha 直線ブレンドが、頂点から補間されたアルファ(C=ラ
スタライズしたアルファ),現在のテクスチャからのア
ルファ(C=テクスチャアルファ),定数アルファ(C
=定数アルファ),および/または現在のカラーのアル
ファ(C=計算したアルファ)からのアルファを用いて
行われる。
【0073】
【数10】
【0074】BlendTextureAlphaPM 予め乗算したアルファを用いる直線ブレンド
【0075】
【数11】
【0076】ModulateAlpha_AddColor 第2の引数は第1のアルファによって変調され、その結
果は第1の引数に加算される。
【0077】
【数12】
【0078】ModulateColor_AddAlpha 引数が変調され、そして第1の引数のアルファが次いで
加算される。
【0079】
【数13】
【0080】ModulateInvAlpha_AddColor ModulateAlpha_AddColorと同様であるが、第1の引数の
アルファの反転を用いる。
【0081】
【数14】
【0082】ModulateInvColor_AddAlpha ModulateColor_AddAlphaと同様であるが、第1のカラー
の反転を用いる。
【0083】
【数15】
【0084】ModulateInvColor_AddAlpha ModulateColor_AddAlphaと同様であるが、第1のカラー
の反転を用いる。
【0085】
【数16】
【0086】SpecularColor and Texture 上の演算に加えて、より複雑化したブレンドが多数のス
テージを用いることによって達成され得る。たとえば
【0087】
【数17】最終カラー=鏡面テクスチャ*鏡面カラー+
拡散テクスチャ+拡散カラー DiffuseColor それは2つのステージを用いて実現され得る。
【0088】
【数18】
【0089】Embossing この例は埋め込みのためである。
【0090】
【数19】最終カラー=(拡散カラー+定数*(法線1
−法線2))*材質テクスチャ Texture 3つのステージを用いて実現され得る。
【0091】
【数20】
【0092】DetailTexture この例は詳細テクスチャリングのためのものであり、差
分テクスチャは0.5のバイアスを有する。
【0093】
【数21】最終カラー=基本テクスチャ+(差分テクス
チャA−0.5)+(差分テクスチャB=0.5) 次のようにして実現され得る。
【0094】
【数22】
【0095】実施例において、クランプブロック672
は表1に示すクランプモデルのどれかを提供する。
【0096】
【表1】
【0097】アルファ関数サポート 実施例の再循環シェーダは異なるアルファ値関数をサポ
ートしている。実施例において、アルファ比較演算は再
循環ステージの一部ではなく、再循環が完了した後に行
われることに留意されたい。図11参照。実施例におい
て、アルファ関数は、次の演算のどれか1つを用いてソ
ースアルファを基準アルファと比較する。
【0098】・常に(alwayss) ・決して(never) ・等しくない(not equal) ・等しい(equal) ・少し(less) ・大きいか等しい(greater than or equal) ・小さいか等しい(less than or equal) ・大きい(greater than) 2つの関数は次のものを用いて実施例において結合され
る。
【0099】・AND ・OR ・XOR ・XNOR ピクセルクォードラプレットにおける有効なピクセルの
すべてがアルファテストに失敗したとすると、クォード
ラプレットは捨てられ、フレームバッファ702が更新
されることはない。次のものは実現できる例である。
【0100】例1
【0101】
【数23】
【0102】例2
【0103】
【数24】
【0104】再循環シェーダ602のアルファの機能
(たとえば、非再循環アルファ比較との結合)がシェー
ドツリーに類似する透明ツリーを提供する。特に、再循
環シェーダ602のアルファ機能は、Mのアルファ入力
上のNの論理アルファ演算を行うために使用され得て、
NおよびMはいずれも整数である。アルファ比較とアル
ファ論理演算との結合は、漫画の線画のような写真写実
的ではない効果を提供する。同時係属中の「グラフィク
スシステムにおいて非写真的線画を提供するための方法
および装置」、特願2001− を参照され
たい。ここでは、それを参照することによってその記述
を取り入れる。 Zテクスチャリングの例 シェーダ602は、テクスチャマッピングを用いてスク
リーンz値を変更することによって、デプス付のスプラ
イトをサポートする。能動化されると、シェーダ602
は、基準zと2つのスロープ(slopes)に代えて、クォー
ドラプレット毎に4つのz値をピクセルエンジン700
へ送る。各z値は、zテクセルをクォードラプレットの
基準zに加算することによってもしくは基準zをzテク
セルによって置換することによって得られる。同時係属
中の先に述べたzテクスチャリングの出願を参照された
い。
【0105】図14はシェーダ602を含むテクスチャ
環境ユニット600のブロック図を示す。テクスチャ環
境ユニット600は、この実施例においては、コマンド
部694およびシェーダ602に加えて、フォグ演算器
690およびフォグブレンダ演算器692を含む。ブロ
ック690および692の動作に関する詳細について
は、同時係属中の「グラフィクスシステムにおいて改良
されたフォグ効果を提供するための方法および装置」、
特願2001− を参照されたい。ここで
は、参照によってそれの記述を取り入れる。
【0106】図15はフォグ演算のより詳細なブロック
図を示す。 マルチテクスチャリングのための再循環シェーダの使用
の例 図16はマルチテクスチャリングのために再循環シェー
ダ602がどのようにして使用され得るかを示す。この
実施例においては、再循環テクスチャユニット500
は、或る表面に対応する一連のテクスチャマッピング出
力を提示することができる。たとえば、同じプリミティ
ブ表面上に8つまでの異なるテクスチャをマッピングす
ることができる。再循環テクスチャユニット500は、
対応する一連のテクスチャマッピング出力を作成する直
接(および間接)テクスチャリング演算を提供すること
ができる。実施例においては、再循環シェーダ602
は、それが利用可能になったとき各マッピングされたテ
クスチャ出力を受け、そのマッピングされたテクスチャ
出力を変換ユニット300によって行われるライティン
グ演算から抽出されたプリミティブ表面カラー/アルフ
ァ情報および/または他の先に作成されたテクスチャマ
ッピングとブレンドする。再循環シェーダ602はパイ
プライン態様でそのブレンダ演算を行い、それによって
再循環シェーダは、テクスチャユニットがさらなるテク
スチャ出力をその順次に従って発生している間、テクス
チャユニット500によって先に発生されたテクスチャ
出力をブレンドする。
【0107】実施例において、再循環シェーダは、再循
環テクスチャユニット500によって与えられる付加的
な情報とのさらなるブレンドのために、中間ブレンド結
果を保持する。再循環テクスチャユニット500が一連
のテクスチャマッピング出力において最後のテクスチャ
マッピング出力を発生した直後に、再循環シェーダ60
2は対応する最終ブレンド演算を行い、そのブレンド結
果をデプスバッファリング,フレームバッファ702の
内容との最終カラーブレンドおよび表示のために、フォ
グブロック600bを介して出力する。
【0108】図17は図6に示す再循環シェーダ602
を用いるマルチテクスチャリングプロセスの例を示す。
図17に示す非制限の例においては、変換ユニット30
0はテクスチャ座標データを発生する(ブロック100
2)。そして、システム50は、次いで発生したテクス
チャ座標データを特定のテクスチャマップと関連付け、
テクスチャユニット500は対応するテクセル(テクス
チャデータ)をテクスチャマップから抽出する(ブロッ
ク1004)。なお、再循環シェーダ602は所定のブ
レンド/シェーディング演算を行うように構成され、抽
出したテクスチャデータはブレンドのために再循環シェ
ーダ602へ与えられる(ブロック1008)。再循環
シェーダ602は抽出したテクスチャデータをいくつか
の他の入力および/または保持している先の結果とブレ
ンドする(ブロック1010)。たとえば、再循環シェ
ーダ602は抽出したテクスチャデータを、頂点ベース
でのポリゴン上に行われたグローシェーディング演算に
対応する、ライティングブロック300eによって発生
されたカラーまたは不透明値でブレンドする。ブレンド
演算1010は、或る場合には、抽出したテクスチャデ
ータを先に抽出したテクスチャデータでブレンドするよ
うに演算する。ブレンド演算1010は、時々、その抽
出したテクスチャデータ上での変換を行い、もしくは、
後続のブレンド演算のために再循環シェーダ602内の
記憶装置のために抽出したテクスチャデータをそのまま
パスするように動作する。
【0109】再循環シェーダ602はブレンド演算10
10の出力を中間結果として一時的にストアする(ブロ
ック1012)。次いで、追加テクスチャデータセット
を抽出しかつブレンドするために、全プロセスが任意の
回数再循環される。実施例においては、再循環シェーダ
602はテクスチャユニット500がブロック1004
および1008を実行して追加的なテクスチャマッピン
グを抽出すると同時に、ブロック1010および101
2を実行する。
【0110】図18は再循環シェーダを用いたマルチテ
クスチャリングパイプラインの例を示す。図18は、再
循環シェーダ602が再循環するそれぞれのときに、再
循環シェーダ602が、新たなデータセットを先のブレ
ンド演算によって与えられる任意のまたはすべてのブレ
ンド結果でブレンドすることができる追加的でかつ独立
制御されるブレンドステージを提供する。
【0111】好ましい実施例のシステム50はリアルタ
イムレンダリングシステムであるので、再循環テクスチ
ャユニット500が再循環し得る回数はイメージフレー
ム間の時間(たとえば、1秒の1/30または1/6
0)に関連して各再循環に要する時間量によって制限さ
れる。1つの実施例では、再循環テクスチャユニット5
00が1レンダリングパスで実行可能な再循環の合計数
は、たぶん8である。しかしながら、異なる実施例では
異なる再循環数を与えるようにしてもよい。この実施例
において、再循環シェーダ602はテクスチャユニット
500が再循環し得るほぼ2倍の回数再循環できる。再
循環シェーダ602によって与えられる追加的な再循環
は、たとえばフォグ,zテクスチャリング,環境マッピ
ング,エンボシング,詳細テクスチャリングおよび他の
イメージ効果を含む多数の増強されたイメージ効果を行
うために使用され得る。再循環シェーダ602へのテク
スチャ入力は、好ましくは、テクスチャユニット500
が利用可能なテクスチャを作らないステージ中はゼロ(n
ull)にセットされる。
【0112】図19は、マルチテクスチャリング演算を
提供するために再循環シェーダ602を制御するための
制御ステップの例を示す。この具体例においては、主プ
ロセサは、点灯されるべきおよび/または変換ユニット
300によって変換されるべき多数の異なる頂点214
を特定する。変換ユニット300はテクスチャユニット
500へ与えるために適宜のテクスチャ座標を発生し、
ラスタライザ400はライティング計算に基づいて頂点
をラスタライズする。そのようにして発生されたテクス
チャ座標は多数のテクスチャマッピング504に基づく
一連のテクスチャマッピング動作において使用され得
る。これらのテクスチャマッピングの結果はマルチテク
スチャブレンドを提供するために、多数の順次の再循環
シェーダ602のステージに順次的に与えられる。 レジスタインタフェースの例 図20はレジスタの内容の詳細な定義の例である。以下
の表は図20に示す種々のレジスタの一層詳細な説明を
示すものである。
【0113】
【表2】
【0114】
【表3】
【0115】
【表4】
【0116】
【表5】
【0117】
【表6】
【0118】
【表7】
【0119】
【表8】
【0120】
【表9】
【0121】以下は実施例のアプリケーションのプログ
ラミングインタフェースコールの例である。 GXSetTevOp 説明:これはテクスチャ環境ユニットの初期プログラム
を簡単に作るために設計された便利な関数である。この
マクロは、なじみのあるテクスチャ結合関数を実現する
ために、予め定義した引数とともに、GXSetTevColorIn,
GXSetTevColorOp, GXSetTevAlphaIn,およびGXSetTevAl
phaOpをコールする。
【0122】連続する組の再循環シェーダステージをイ
ネーブルするために、アプリケーションはGXSetNumTevS
tages関数をコールする。
【0123】次表10において、Cvはステージのため
の出力カラーであり、Crは先のステージの出力カラー
であり、そしてCtテクスチャカラーである。Avはス
テージのための出力アルファであり、Arは先のステー
ジの出力アルファであり、そしてAtはテクスチャアル
ファである。特別な場合、最初の再循環シェーダステー
ジでは、先行するステージがないので、ラスタライズし
たカラー(GX_CC_RASC)がCrとして使用され、ラスタ
ライズしたアルファ(GX_CA_RASA)がArとして使用さ
れる。
【0124】
【表10】
【0125】引数:id=ステージid,mode=予
め定義したカラー結合モデル 使用例:void GXSetTevOp( GXTevStageID id, GXTevMod
e mode );GXTevStageID 以下の値を列挙する。
【0126】
【表11】
【0127】説明:テクスチャ環境(再循環シェーダ)
ステージの名称 GXTevMode 次の値を列挙する。
【0128】
【表12】
【0129】説明:テクスチャ環境制御を設定する。 GXSetNumTevStages 説明:この関数は、多数の連続するテクスチャ環境(再
循環シェーダ)ステージをイネーブルする。フォギング
およびブレンド前の出力ピクセルカラーは、最後のステ
ージからの結果である。最後の再循環ステージはレジス
タGX_TEVPREVへ書き込まなければならない(GXSetTevCo
lorOpおよび GXSetTevAlphaOp参照)。少なくとも1つ
の再循環ステージがイネーブルされる。もし、Zテクス
チャがイネーブルされると、Zテクスチャは最後のステ
ージでルックアップされる(GXSetZTexture参照)。
【0130】ライティングカラー,テクスチャ座標およ
びテクスチャマップの再循環シェーダステージとの関連
はGXSetTevOrderを用いて設定される。テクスチャ座標
の利用可能な数はGXSetNumTexGensを用いて設定され
る。利用可能なカラーチャネルの数はGXSetNumChansを
用いて設定される。
【0131】GXInitはnStagesをデフォルトとして1に
設定する。
【0132】引数:nStages アクティブな再循環シェーダステージの数。最小値は1
で最大値は16である。
【0133】使用例:void GXSetNumTevStages(u8nStag
es); GXSetTevColorIn 説明:この関数はテクスチャ環境(再循環シェーダ)の
カラー結合ユニットの入力オペランドを設定する。入力
オペランドa,bおよびcはRGBカラーであり、各成
分は未符号化8ビット(0≦a,b,c≦255)であ
る。d入力オペランドはRGBカラーであり、各成分は
符号化10ビット入力(−1024≦d≦1023)で
ある。
【0134】入力オペランドがアルファ値(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)にまたがって折り返される。
【0135】この再循環シェーダステージによって実現
される関数は関数GXSetTevColorOpを用いて設定され
る。
【0136】このステージの出力はデフォルトによって
レジスタGX_TEVPREV(GXInitを参照)に向けられるが、
GXSetTevColorOpによって明示的に設定されてもよい。
【0137】再循環シェーダステージの出力をストアす
るために使用されるレジスタはまた、入力GX_CC_C0, GX
_CC_C1, GX_CC_C2, GX_CC_CPREVとして使用され得る。G
XSetTevColorまたはGXSetTevColorS10を用いてこれらの
レジスタに一定のカラー値をプログラムすることもでき
る。
【0138】各レジスタは未符号化8ビット数もしくは
符号化10ビット数を成分(RGB)毎にストアするこ
とができる。符号化10ビット数が入力a,bまたはc
のために選択されると、その数は8ビットに切り縮めら
れる。その数を変換するために特別な試みはなく、単純
に最上位ビットが捨てられる。
【0139】入力オペランドGX_CC_RASCおよびGX_CC_RA
SAは、頂点毎のライティング計算の結果である。入力オ
ペランドGX_CC_TEXCおよびGX_CC_TEXAはこのステージの
ためのテクスチャ入力である。テクスチャカラー入力GX
_CC_TEXCは、オペランドGX_TC_TEXRRR, GX_TC_TEXGGGま
たは GX_TC_TEXBBBを設定することによる入力より前に
スワップされたカラー成分を有する。再循環シェーダス
テージ毎にスワップオペランドのいずれかを選択するこ
とができる。この実施例においては、同じステージでGX
_TC_TEXRRRおよびGX_TC_GGGの両方を用いることはでき
ない。
【0140】GXSetTevOrderはシェーダステージを具体
的なカラーおよびテクスチャに関連付ける。
【0141】引数
【0142】
【表13】
【0143】使用例:
【0144】
【表14】
【0145】GXSetTevAlphaIn 説明:この関数はテクスチャ環境(再循環シェーダ)の
アルファ結合ユニットの1つのステージのための入力オ
ペランドを設定する。入力オペランドa,bおよびcは
未符号化8ビット入力(0≦a,b,c≦255)であ
る。d入力オペランドは符号化10ビット入力(−10
24≦d≦1023)である。
【0146】各シェーダステージは数25を実現する。
【0147】
【数25】
【0148】op,biasおよびscaleによって記述される演
算はGXSetTevAlphaOp関数を使用してプログラマブルで
ある。
【0149】このステージの出力はデフォルトによって
レジスタGX_TEVPASS(GXInitを参照)に向けられるが、
GXSetTevAlphaOpによって明示的に設定されてもよい。
結果は、GXSetTevClampModeによって設定されたクラン
プモードに基づいて、2つの範囲、0〜255もしくは
−1024〜1023にクランプされ得る。入力a,b
またはcが符号化10ビット数(先の再循環シェーダス
テージの結果もしくは入力定数)である場合、下位8ビ
ットだけが使用される。この数を変換する特別な方法は
なく、単純に上位ビットが捨てられる。
【0150】再循環シェーダステージの出力をストアす
るために使用されるレジスタはまた入力GX_CA_A0, GX_C
A_A1, GX_CA_A2, GX_CA_APREVとして使用され得る。GXS
etTevColorまたはGXSetTevColorS10を用いてこれらのレ
ジスタに一定のアルファ値をプログラムすることもでき
る。
【0151】入力オペランドGX_CA_RASAは頂点毎のライ
ティング計算の結果である。入力オペランドGX_CA_TEXA
はこのステージのためのテクスチャアルファ入力であ
る。GXSetTevOrderを用いてこれらの入力に対応してカ
ラーおよびテクスチャを選択することができる。
【0152】引数
【0153】
【表15】
【0154】使用例:
【0155】
【表16】
【0156】GXSetTevColorOp 説明:この関数はテクスチャ環境(再循環シェーダ)ユ
ニットのこのステージのためのカラー結合器関数のため
にop,scale,biasおよびクランプ演算を設定する。この
関数はまた出力レジスタout_regを特定し、それはカラ
ー結合関数の結果を保持する。カラー結合関数は、数2
6で与えられる。
【0157】
【数26】
【0158】入力パラメータa,b,cおよびdはGXSe
tTevColorIn関数を用いて選択される。これらのA,B
およびC入力は未符号化8ビット入力(0≦a,b,c
≦255)である。d入力は符号化10ビット入力(−
1024≦d≦1023)である。結果out_regはまた
符号化10ビットの結果であり得て、クランプイネーブ
ルおよび現在のクランプモードに依存する(GXSetTevCl
ampModeを参照)。
【0159】再循環シェーダ出力レジスタはすべての再
循環シェーダステージで共用される。再循環シェーダ出
力レジスタはまた定数カラー入力として使用され、その
ために具体的な式を実現するときに衝突が起きないよう
に入力および出力レジスタを注意深く割り付ける必要が
ある。アプリケーションは、直前のアクティブな再循環
シェーダステージにおけるGX_TEVPREVに出力しなければ
ならない。
【0160】関数GXSetTevOpは予め定義した式の名称に
基づいて、GXSetTevColorInおよびGXSetTevColorOpのパ
ラメータを設定するより簡単な方法を提供する。GXSetT
evOpおよびGXSetTevColorIn/GXSetTevColorOpの使用を
混合してはならない。
【0161】GXSetTevOpは出力レジスタの使用について
いくつかの前提を作り、すなわち、GX_TEVPREVは常に出
力レジスタであり、先の再循環シェーダステージの結果
を次の再循環シェーダステージへパスするために使用さ
れる。
【0162】引数
【0163】
【表17】
【0164】使用例:
【0165】
【表18】
【0166】GXSetTevAlphaOp 説明:この関数はテクスチャ環境(再循環シェーダ)ユ
ニットのこのステージのためのアルファ結合器関数のた
めのop,scale,biasおよびクランプ演算を設定する。こ
の関数はまた、レジスタout_regを特定し、それはアル
ファ結合器関数の結果を保持する。アルファ結合器関数
は数27で与えられる。
【0167】
【数27】
【0168】入力パラメータa,b,cおよびdはGXSe
tTevAlphaInを用いて設定される。このa,bおよびc
入力は未符号化8ビット入力(0≦a,b,c≦25
5)である。d入力は符号化10ビット入力(−102
4≦d≦1023)である。結果out_regは符号化10
ビットの結果であり、クランプイネーブルおよび現在の
クランプモードに依存する(GXSetTevClampModeを参
照)。
【0169】GXSetTevStagesを使用して連続する数の再
循環シェーダステージをイネーブルしなければならな
い。直前のアクティブな再循環シェーダステージはその
出力をレジスタGX_TEVPREVに書き込む。
【0170】引数
【0171】
【表19】
【0172】使用例:
【0173】
【表20】
【0174】GXSetTevColor 説明:この関数はテクスチャ環境(再循環シェーダ)ユ
ニットにおいて定数カラーレジスタの1つを設定するた
めに使用される。これらのレジスタはすべての再循環シ
ェーダステージについて利用可能である。これらのレジ
スタの少なくとも1つが、マルチテクスチャ構成におい
て、1つの再循環シェーダステージの出力を次にパスす
るために使用される。アプリケーションは、レジスタの
使用において衝突が生じないようにこれらのレジスタを
割り付ける責任がある。
【0175】この関数は未符号化8ビットカラーであ
る。符号化10ビットカラーを使用するために、GXSetT
exColorS10を使用する。
【0176】
【表21】
【0177】GXSetTevColorS10 説明:この関数は、テクスチャ環境(再循環シェーダ)
ユニットにおいて定数カラーレジスタの1つを設定する
ために使用される。これらのレジスタはすべての再循環
シェーダステージについて利用可能である。これらのレ
ジスタの少なくとも1つは、マルチテクスチャ構成にお
いて、1つの再循環シェーダステージの出力を次へパス
するために使用される。アプリケーションは、これらの
レジスタの使用において衝突が生じないようにこれらの
レジスタを割り付ける責任がある。
【0178】この関数はカラー成分を符号化10ビット
数にすることができる。未符号化8ビットカラーを設定
するために、GXSetTevColorが使用される。
【0179】
【表22】
【0180】GXSetTevClampMode 説明 この関数はテクスチャ環境(再循環シェーダ)ユニット
においてこのステージのためのクランプモードを設定す
る。このモードはアルファおよびカラー結合器の両方の
ために使用される。このモードはGXSetTevColorOpおよ
び GXSetTevAlphaOpによって設定されるクランプ制御が
表23に示すように如何に解釈されるかを果たす。Rは
TEVステージの結果カラーである。
【0181】GXInitはモードをGX_TC_LINERに設定す
る。
【0182】
【表23】
【0183】
【表24】
【0184】
【表25】
【0185】GXSetAlphaCompare 説明:この関数は、直前のアクティブなテクスチャ環境
(再循環シェーダ)ステージからのアルファ出力を用い
るアルファ比較関数のためのパラメータを設定する。ア
クティブな再循環シェーダステージの数はGXSetTevStag
esを使用して特定される。
【0186】出力アルファはブレンド式(GXSetBlendMo
deを参照)において使用され、ソースおよび宛先(フレ
ームバッファ)ピクセルがどのように結合されるかを制
御する。
【0187】アルファ比較演算は数28で与えられる。
【0188】
【数28】
【0189】ここで、alpha_srcは直前のアクティブな
再循環シェーダステージからのアルファである。一例と
して、次のような式を実現できる。
【0190】
【数29】
【0191】または
【0192】
【数30】
【0193】Z比較はテクスチャリングの前または後の
いずれかで生じる(GXSetZCompLocを参照)。Z比較が
テクスチャリングの前に生じた場合、ZはZテストに基
づいてのみ書き込まれる。カラーは、Zテストおよびア
ルファテストを通過したときに書き込まれる。
【0194】Z比較がテクスチャリングの後に生じる場
合、Zテストおよびアルファテストを通過したときに、
カラーおよびZが書き込まれる。正しくZバッファを行
う必要がある形状切断(cutout shapes)(ビルボードツ
リーのような)をするためにテクスチャを用いるとき、
パイプラインをテクスチャリングの後にZバッファをす
るように構成しなければならない。
【0195】
【表26】
【0196】
【表27】
【0197】GXSetTevOrder 説明:この関数はこのテクスチャ環境(再循環シェー
ダ)ステージへの入力として利用可能なテクスチャおよ
びラスタライズしたカラーを特定する。テクスチャ座標
coordはGXSetTexCoordGen関数を用いて入力アトリビュ
ートから発生され、GXLoadTexObjによって先にロードさ
れたテクスチャマップをルックアップするために使用さ
れる。このステージのためにラスタライズするカラーが
また特定される。カラーは、GXSetChanCtrl関数によっ
て制御される頂点毎のライティングの結果である。
【0198】この関数は再循環シェーダステージをイネ
ーブルしないということに注意されたい。連続する数の
再循環シェーダステージをイネーブルするためには、ス
テージGX_TEVSTAGE0をスタートし、GXSetNumTevStages
関数を用いる。
【0199】各再循環シェーダステージの動作は独立し
ている。カラー演算はGXSetTevColorInおよびGXSetTevC
olorOpによって制御される。アルファ演算はGXSetTevAl
phaInおよびGXSetTevAlphaOpによって制御される。すべ
てのアクティブな再循環シェーダステージのために利用
可能なテクスチャ座標の数はGXSetNumTexGensを用いて
設定される。すべてのアクティブな再循環シェーダステ
ージのために利用可能なカラーチャネルの数はGXSetNum
Chansを使用して設定される。アクティブな再循環シェ
ーダステージはテクスチャ座標やカラーを参照すること
なく生成される。
【0200】GXSetTevOrderを用いることによって、1
つのテクスチャ座標を、テクスチャが同じサイズである
限り、多くのテクスチャにブロードキャストすることが
できる。
【0201】
【表28】
【0202】任意の再循環シェーダステージにおいて任
意に生成されたテクスチャ座標を使用することができ
る。
【0203】
【表29】
【0204】テクスチャが再循環シェーダステージにお
いて使用されていなければ、coordおよびmapをNULLに設
定する。
【0205】
【表30】
【0206】再循環シェーダステージにおいてカラーが
用いられないとき、colorをNULLに設定する。
【0207】
【表31】
【0208】GXSetTevOrderは関数コールにおいてテク
スチャマップのサイズに従ってGXSetTexCoordGenによっ
て作られた規格化テクスチャ座標をスケーリングする。
そのために、テクスチャ座標は、マップが同じサイズで
あるときにのみマルチテクスチャマップへブロードキャ
ストされる。或る場合においては、或るスケール値を有
するテクスチャ座標を発生したいなら、テクスチャルッ
クアップをディスエーブルする(このことによって間接
バンプマッピングのためのテクスチャ座標を発生す
る)。GX_TEXMAP_DISABLEフラグを使用して達成され
る。 GXSetTevOrder(GX#TEVSTAGE1, GX#TEXCOORD0, GX#TEXMA
P3| GX#TEXMAP#DISABLE, GX#COLOR#NULL); これはGX#TEXMAP3を用いるスケーリングGX#TEXCOORD0で
GX#TEXMAP3のルックアップをディスエーブルする。
【0209】GXInitはデフォルトの再循環シェーダ順を
記述する。
【0210】
【表32】
【0211】
【表33】
【0212】例:このページはテクスチャ環境(TE
V)設定のいくつかの例を示す。
【0213】ラスタライズしたカラー たとえば、頂点カラーを有するポリゴン たとえば、頂点ライティング この構成は、PASSCLR演算を用いることによってラスタ
ライズしたカラーチャネルを直接パスする。テクスチャ
は用いられない。
【0214】
【表34】
【0215】1つのテクスチャ たとえば、単純なテクスチャマッピング この構成はテクスチャカラーを直接表示することによっ
て使用される。ラスタライズしたカラーは用いられな
い。
【0216】
【表35】
【0217】ラスタライズしたカラーで変調された1つ
のテクスチャ たとえば、発光材料テクスチャ この構成はMODULATE演算を用いる。
【0218】
【表36】
【0219】ラスタライズしたカラー上にオーバレイさ
れた1つのテクスチャ たとえば、拡散光表面上のハイライトマップ たとえば、光表面上の投影陰影マップ この構成はDECAL演算を用いる。テクスチャはブレンド
のために使用されるアルファ値を含まなければならな
い。
【0220】
【表37】
【0221】定数カラー この構成はライティングユニットまたは任意のテクスチ
ャからの出力を用いる。
【0222】
【表38】
【0223】2つのラスタライズしたカラーの加算 たとえば、拡散光カラー+鏡面光カラー テクスチャを用いない。第1のステージはPASSCLRを用
いることによって第1のラスタライズしたカラーをパス
する。第2のステージは詳細な設定が必要な2つのカラ
ーを加算する。
【0224】
【表39】
【0225】ラスタライズしたカラーとアルファとの加
算 たとえば、拡散光カラー+アルファチャネルで処理した
鏡面光カラー もし鏡面カラーが白色についてのみ許容されているなら
ば、TEVステージ上の各RGB成分へブロードキャス
トされる鏡面光カラーのためにアルファチャネルを使用
してもよい。それは1つのステージだけが必要なので、
2つのチャネルを使用するより良好なフィルレート(fil
l-rate)を得ることができる。この方法は、アルファが
他の目的で予約されていなければ使用できる。
【0226】
【表40】
【0227】互換性のある他の実施例 上述のシステム50は上で述べた家庭用ビデオゲームコ
ンソールの構成以外としても実現できる。たとえば、或
るものは、システム50をエミュレートする異なる構成
を有するプラットフォームもしくはそれと同等のものに
おいて、システム50のために書かれたグラフィクスア
プリケーションや他のソフトウェアを実行させることが
できる。もし、他のプラットフォームがシステム50の
いくつかのもしくはすべてのハードウェアおよびソフト
ウェアリソースをエミュレートしシミュレートしおよび
/または提供することができれば、その他のプラットフ
ォームはそのソフトウェアを成功裏に実行することがで
きる。
【0228】一例として、エミュレータがシステム50
のハードウェアおよび/またはソフトウェア構成(プラ
ットフォーム)とは異なるハードウェアおよび/または
ソフトウェア構成(プラットフォーム)を提供できる。
そのエミュレータシステムは、それのためにアプリケー
ションソフトウェアが書かれているシステムのいくつか
のもしくはすべてのハードウェアおよび/またはソフト
ウェアコンポーネンツをエミュレートしもしくはシミュ
レートするソフトウェアおよび/またはハードウェアコ
ンポーネンツを含む。たとえば、エミュレータシステム
はパソコンのような汎用ディジタルコンピュータを含
み、それはシステム50のハードウェアおよび/または
ファームウェアをシミュレートするソフトウェアエミュ
レータプログラムを実行する。上述のオーディオシステ
ムのDSP処理がパソコンによってエミュレートされ得
る。
【0229】或る汎用ディジタルコンピュータ(たとえ
ばIBMやマッキントッシュのパソコンおよびそれらの
同等物)は、ダイレクトX(DirectX)または他の標準的
な3DグラフィクスコマンドAPIsに従った3Dグラ
フィクスパイプラインを提供する3Dグラフィクスカー
ドを備える。それらはまた、音声コマンドの標準的なセ
ットに基づいて高品質のステレオ音声を提供するステレ
オ音声カードを備える。エミュレータソフトウェアを実
行するそのようなマルチメディアのハードウェアを備え
るパソコンは、システム50のグラフィクスおよび音声
性能とほぼ等しい十分な性能を有する。エミュレータソ
フトウェアはパソコンプラットフォーム上のハードウェ
アリソースを制御して、それのためにゲームプログラマ
がゲームソフトウェアを書いた家庭用ビデオゲームコン
ソールプラットフォームの処理,3Dグラフィクス,音
声,周辺および他の能力をシミュレートする。
【0230】図21はホストプラットフォーム120
1,エミュレータコンポーネント1303および記憶媒
体62上のゲームソフトウェア実行可能バイナリ映像を
用いる全体のエミュレーション処理を図解する。ホスト
1201は、たとえばパソコン,ビデオゲームコンソー
ルあるいは十分な計算力を有する任意の他のプラットフ
ォームのような汎用または特定目的ディジタル計算装置
である。エミュレータ1303はそのホストプラットフ
ォーム1201上で走るソフトウェアおよび/またはハ
ードウェアであり、記憶媒体62からのコマンド,デー
タおよび他の情報のそのホスト1201によって実行可
能な形態へのリアルタイム変換を行う。たとえば、エミ
ュレータ1303は記憶媒体62からシステム50によ
って実行されるように意図された「ソース」であるバイ
ナリ映像プログラム命令を取り込み、これらのプログラ
ム命令をホスト1201によって実行されもしくは処理
され得るターゲットとなる形態に変換する。
【0231】一例として、ソフトウェアがIBMパワー
PCまたは他の特定のプロセサを用いるプラットフォー
ム上での実行のために書かれかつホスト1201が異な
る(たとえばインテル)プロセサを用いるパソコンであ
る場合、エミュレータ1203は記憶媒体1305から
の1つのもしくは一連のバイナリ映像プログラム命令を
取り込み、これらのプログラム命令を1つまたはそれ以
上の同等のインテルのバイナリ映像プログラム命令に変
換する。エミュレータ1203はまたグラフィクス/オ
ーディオプロセサ114によって処理されるように意図
されたグラフィクスコマンドおよびオーディオコマンド
を取り込みかつ/あるいは生成し、そしてホスト120
1上で利用可能なハードウェアおよび/またはソフトウ
ェアグラフィクス/オーディオ処理リソースによって処
理され得る形態にこれらのコマンドを変換する。一例と
して、エミュレータ1303はホスト1201の特別な
グラフィクスおよび/または音声ハードウェア(たとえ
ば標準的なダイレクトX,オープンGLおよび/または
音声APIs)によって処理され得るコマンドにこれら
のコマンドを変換する。
【0232】上で述べたビデオゲームシステムのいくつ
かのもしくはすべての特徴を与えるために用いられるエ
ミュレータ1303は、また、エミュレータを使ってゲ
ームを走らせている種々のオプションおよびスクリーン
モードの選択を簡単化しもしくは自動化するグラフィッ
クユーザインタフェース(GUI)を備える。一例にお
いて、そのようなエミュレータ1303はさらにそのソ
フトウェアが本来的に目的とされたホストプラットフォ
ームに比べてより増強された機能性を含むこともでき
る。
【0233】図22はエミュレータ1303で用いるに
適したエミュレーションホストシステム1201を図解
的に示す。このシステム1201は処理ユニット120
3およびシステムメモリ1205を含む。システムバス
1207がシステムメモリ1205を含む種々のシステ
ムコンポーネンツを処理ユニット1203に結合する。
システムバス1207は多様なバスアーキテクチャのい
ずれかを用いるメモリバスもしくはメモリコントロー
ラ,周辺バスおよびローカルバスを含むいくつかのタイ
プのバス構造の任意のものである。システムメモリ12
07はROM1252およびRAM1254を含む。起
動中においてのようにパソコンシステム1201中のエ
レメント(要素)間に情報を伝送する手助けをする基本
ルーチンを含む基本入力/出力システム(BIOS)1
256がROM1252中にストアされる。システム1
201はさらに種々のドライブおよび関連のコンピュー
タ読出可能な媒体を含む。ハードディスクドライブ12
09が(典型的には固定の)磁気ハードディスク121
1から読み出しそれへ書き込む。付加的な(たぶんオプ
ションとしての)磁気ディスクドライブ1213が着脱
可能な「フロッピィ」または他の磁気ディスク1251
から読み出しかつそれへ書き込む。光ディスクドライブ
1217はCD−ROMあるいは他の光学媒体のような
着脱自在な光ディスク1219から読み出しかつそれへ
書き込む。ハードディスクドライブ1209および光デ
ィスクドライブ1217は、ハードディスクドライブイ
ンタフェース1221および光ディスクドライブインタ
フェース1225によって、システムバス1207にそ
れぞれ接続される。これらのドライブおよびその関連す
るコンピュータ読出可能な媒体は、パソコンシステム1
201のためのコンピュータ読出可能な命令,データ構
造,プログラムモジュール,ゲームプログラムおよび他
のデータの不揮発性の記憶媒体を提供する。他の構成で
は、コンピュータによってアクセス可能なデータをスト
アすることができる他のタイプのコンピュータ読出可能
な媒体(たとえば磁気カセット,フラッシュメモリカー
ド,ディジタルビデオディスク,ベルヌーイカートリッ
ジ,RAM,ROMあるいはその他のもの)がまた使用
できる。
【0234】エミュレータ1303を含む多数のプログ
ラムモジュールがハードディスク1211,着脱可能な
磁気ディスク1215,光ディスク1219および/ま
たはシステムメモリ1205のROM1252および/
またはRAM1254にストアされ得る。このようなプ
ログラムモジュールはグラフィクス/音声APIs,1
つ以上のアプリケーションプログラム,他のプログラム
モジュール,プログラムデータおよびゲームデータを提
供するオペレーティングシステム(OS)を含む。ユー
ザは、キーボード1227,ポインティングデバイス1
229,マイクロフォン,ジョイスティック,ゲームコ
ントローラ,衛星アンテナ(satellite dish),スキャナ
あるいはその他のもののような入力デバイスを通して、
パソコンシステム1201にコマンドおよび情報を入力
することができる。これらのそして他の入力デバイス
は、システムバス1207に結合されたシリアルポート
インタフェース1231を通して処理ユニット1203
に接続され得るが、パラレルポート,ゲームポートファ
イヤワイヤバス(Fire Wire)もしくはユニバーサルシリ
アルバス(USB)のような他のインタフェースによっ
て接続されてもよい。モニタまたは他のタイプの表示デ
バイスがまたビデオアダプタ1235のようなインタフ
ェースを介してシステムバス1207に接続される。
【0235】システム1201はモデム1154または
インターネットのようなネットワーク1152を通して
の通信を確立するための他のネットワークインタフェー
ス手段を含む。内部もしくは外付けであってよいモデム
1154はシリアルポートインタフェース1231を介
してシステムバス123に接続される。システム120
1がローカルエリアネットワーク1158を介して遠隔
コンピュータ装置1150(たとえば他のシステム12
01)と通信するのを許容するために、ネットワークイ
ンタフェース1156がまた設けられてもよい(もしく
はそのような通信はダイヤルアップもしくは他の通信手
段のようなワイドエリアネットワーク1152もしくは
他の通信経路を介してもよい)。システム1201はプ
リンタのような周辺出力装置および他の標準的な周辺装
置を含む。
【0236】一例では、ビデオアダプタ1235は、マ
イクロソフト(Microsoft)のダイレクトX7.0、また
は他のバージョンのような標準的な3Dグラフィクスア
プリケーションプログラマインタフェースに基づいて発
行された3Dグラフィクスコマンドに応答して、高速の
3Dグラフィクスレンダリングを提供する3Dグラフィ
クスパイプラインチップセットを含んでもよい。1組の
スピーカ1237はまた、バス1207によって与えら
れる音声コマンドに基づいて高品質ステレオ音声を生成
するハードウェアおよび埋め込みソフトウェアを提供す
る従来の「音声カード」のような音声生成インタフェー
スを介して、システムバス1207に接続される。これ
らのハードウェア能力によって記憶媒体1305中にス
トアされているソフトウェアを再生するためにシステム
1201に十分なグラフィクスおよび音声の速度性能を
与えることができる。
【0237】上で言及したすべての書類が参照によって
ここに取り入れられる。
【0238】最も現実的かつ好ましい実施例であると現
在考えられているものに関連してこの発明が説明された
が、この発明は開示された実施例に限定されるものでは
なく、逆に、特許請求の範囲内に含まれる種々の変形例
や等価的な構成をカバーするように意図されていること
を理解されたい。
【図面の簡単な説明】
【図1】図1はインタラクティブコンピュータグラフィ
クスシステムの実施例を示す全体図である。
【図2】図2は図1実施例のコンピュータグラフィクス
システムのブロック図である。
【図3】図3は図2に示す実施例のグラフィクス/オー
ディオプロセサのブロック図である。
【図4】図4は図3に示す実施例の3Dグラフィクスプ
ロセサのブロック図である。
【図5】図4のグラフィクス/オーディオプロセサの例
示的な論理フロー図である。
【図6】図6は実施例の再使用可能な再循環シェーダを
示す。
【図7】図7は再循環シェーダを用いて実現された実施
例のシェーディングパイプラインを示す。
【図8】図8は実施例の再循環シェーダのブロック図を
示す。
【図9】実施例の再循環シェーダの入力マルチプレクサ
を示す。
【図10】図10は実施例の再循環シェーダの動作ブロ
ック図を示す。
【図11】図11は実施例の再循環シェーダの回路を示
す。
【図12】図12は実施例のカラースワップの特徴を図
解する。
【図13】図13は実施例のカラースワップの特徴を図
解する。
【図14】図14は実施例のテクスチャ環境ユニットを
示す。
【図15】図15は実施例のフォグ計算ユニットを示
す。
【図16】図16はマルチテクスチャのために再循環シ
ェーダがどのようにして使用され得るかの例を示す。
【図17】図17は再循環シェーダを用いる実施例のマ
ルチテクスチャリングプロセスを示す。
【図18】図18は再循環シェーダを用いる実施例のマ
ルチテクスチャパイプラインを示す。
【図19】図19は実施例のマルチテクスチャパイプラ
イン制御を示す。
【図20】図20は実施例のテクスチャ環境ユニットの
制御レジスタを示す。
【図21】図21は別の互換性のある実施例を示す。
【図22】図22は別の互換性のある実施例を示す。
【符号の説明】 50 …インタラクティブ3Dコンピュータグラフィク
スシステム 110 …主プロセサ 112 …主メモリ 114 …グラフィクス/オーディオプロセサ 180 …グラフィクスパイプライン 500 …テクスチャユニット 600 …テクスチャ環境ユニット 602 …再循環シェーダ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 パトリック ワイ ロー アメリカ合衆国 カリフォルニア州 ミル ピタス ジャクリンサークル 19 (72)発明者 マーク エム レザー アメリカ合衆国 カリフォルニア州 サラ トガ ウッドサイドドライブ 12187 (72)発明者 マシュー コムソーフト アメリカ合衆国 カリフォルニア州 サン タクララ #28 コルテスドライブ 2601 Fターム(参考) 2C001 BC05 BC06 BC08 CA02 CA04 CB01 CB03 CB08 CC01 CC08 5B057 AA20 CA01 CA08 CA13 CA17 CB01 CB08 CB13 CB16 CC04 CE17 CH05 CH08 5B080 CA04 FA02 FA03 FA17 GA15 GA22

Claims (48)

    【特許請求の範囲】
  1. 【請求項1】選択した入力をブレンドして計算したカラ
    ーまたは不透明出力を与え、そのカラーまたは出力が後
    続のブレンド演算のための入力として使用するためにフ
    ィードバックされるハードウェアシェーダを備える、グ
    ラフィクスパイプライン。
  2. 【請求項2】シェーダの出力はnのブレンドステージを
    提供するように再循環され得る、請求項1記載のパイプ
    ライン。
  3. 【請求項3】前記シェーダ出力の再循環によってシェー
    ドツリー形式の結合演算を可能にする、請求項1記載の
    パイプライン。
  4. 【請求項4】前記シェーダは同一のブレンド演算ステー
    ジにおいてカラーブレンド演算およびアルファブレンド
    演算の両方を提供する、請求項1記載のパイプライン。
  5. 【請求項5】シェーダに結合された再循環テクスチャユ
    ニットをさらに備え、再循環テクスチャユニットがシェ
    ーダによるブレンドのためのさらなるテクスチャ出力を
    提供するために別のテクスチャマッピング動作を行って
    いる間、前記シェーダは再循環テクスチャユニットによ
    って先に与えられたテクスチャ出力をブレンドする、請
    求項1記載のパイプライン。
  6. 【請求項6】シェーダはプログラマブルなクランパを含
    む、請求項1記載のパイプライン。
  7. 【請求項7】シェーダはプログラマブルなスケーラを含
    む、請求項1記載のパイプライン。
  8. 【請求項8】シェーダは比較器を含む、請求項1記載の
    パイプライン。
  9. 【請求項9】シェーダはプログラマブルなカラースワッ
    プを含む、請求項1記載のパイプライン。
  10. 【請求項10】シェーダの出力は複数の後続ブレンド演
    算のための入力として利用可能とされる、請求項1記載
    のパイプライン。
  11. 【請求項11】シェーダは同一ブレンド演算ステージ中
    にカラーブレンド演算とアルファブレンド演算とを行う
    別々のブレンド回路を含む、請求項1記載のパイプライ
    ン。
  12. 【請求項12】シェーダは前記シェーダの入力へ出力を
    与えるフィードバック機構を含む、請求項1記載のパイ
    プライン。
  13. 【請求項13】前記フィードバック機構はブレンド演算
    からの出力を保持するための1つまたはそれ以上の記憶
    バッファを含み、前記バッファの少なくとも1つは前記
    シェーダの入力へ接続された出力を有する、請求項12
    記載のパイプライン。
  14. 【請求項14】グラフィクスシステムにおけるマルチテ
    クスチャリング方法であって、 (a) 結合されかつテクスチャリングされた成分出力を与
    えるために、成分結合装置を通して、テクスチャマッピ
    ングデータをパスし、 (b) その成分結合装置を再構成し、そして (c) 結合されかつマルチテクスチャリングされた成分出
    力を与えるために再構成された同じ成分結合装置を通し
    て前記結合されかつテクスチャリングされた成分出力を
    パスする、方法。
  15. 【請求項15】前記ステップ(b) および(c) は複数回繰
    り返される、請求項14記載の方法。
  16. 【請求項16】成分結合装置はテクスチャカラー結合器
    を含む、請求項14記載の方法。
  17. 【請求項17】成分結合装置はアルファ結合器を含む、
    請求項14記載の方法。
  18. 【請求項18】マルチテクスチャリングされたポリゴン
    を提供する方法であって、 (a) 第1テクスチャマッピングデータを発生し、 (b) 第1テクスチャマッピングデータに対応する第1出
    力を与えるために第1テクスチャマッピングデータを結
    合器ハードウェアを通してパスし、 (c) 第2テクスチャマッピングデータを発生し、そして (d) 第1および第2テクスチャマッピングデータに対応
    する第2出力を与えるために結合器ハードウェアを通し
    て第2テクスチャマッピングデータおよび第1出力をパ
    スする、方法。
  19. 【請求項19】ステップ(b) はブレンドステージ中に行
    われ、ステップ(d) はそのブレンドステージより後の別
    のブレンドステージ中に行われる、請求項18記載の方
    法。
  20. 【請求項20】結合器ハードウェアはテクスチャマッピ
    ングデータのブレンドの10以上の連続ステージを提供
    する、請求項18記載の方法。
  21. 【請求項21】少なくとも1つのテクスチャマッピング
    ユニットおよび結合器回路を含むテクスチャ環境ユニッ
    トを備えるグラフィクスレンダリングパイプラインにお
    いて、 イメージ中に表示された表面へマルチテクスチャを付与
    するマルチステージを提供するために結合器回路を再使
    用するようにしたことを特徴とする、方法。
  22. 【請求項22】再使用ステップでは、第1ブレンドサイ
    クル/ステージ中に第1テクセルカラーを結合するため
    に結合器回路を使用し、同じ結合器回路を第1サイクル
    /ステージとは異なる第2ブレンドサイクル/ステージ
    を用いて第2テクセルカラーを結合するために使用し、
    第1および第2サイクル/ステージは1つのイメージフ
    レームを発生するための期間内に行われる、請求項21
    記載の方法。
  23. 【請求項23】第1および第2サイクル/ステージは連
    続的である、請求項21記載の方法。
  24. 【請求項24】結合器回路は独立のカラー結合器回路と
    アルファ結合器回路とを含む、請求項21記載の方法。
  25. 【請求項25】結合器回路は数1を計算する 【数1】 ただし、A,B,CおよびDは4つの現在のカラーレジ
    スタ,ラスタライズしたカラー,テクスチャ,アルファ
    成分が選択され、0または1である、請求項21記載の
    方法。
  26. 【請求項26】関連のメモリにストアされているポリゴ
    ン頂点データおよびテクスチャデータに少なくとも部分
    的に応答してイメージをレンダリングしかつ表示する処
    理パイプライン、および前記レンダリングされかつ表示
    されたイメージの表面へ1つまたはそれ以上の異なるテ
    クスチャおよび/またはテクスチャ特性に対応するテク
    スチャデータを選択的にマッピングするためのマルチテ
    クスチャ処理サブシステムを備えるグラフィクスシステ
    ムにおいて、 前記マルチテクスチャ処理サブシステムは、パイプライ
    ン内に構成され、テクスチャ,ラスタライズしたカラー
    および/またはアルファ成分データを結合して、計算し
    たカラーを生成するかつその計算したカラーのパイプラ
    イン中への再導入を可能にするフィードバック構成を有
    するカラー/アルファ成分ブレンドユニットを含み、マ
    ルチテクスチャリングの処理はブレンドユニットの繰り
    返しの使用/再使用によって達成されることを特徴とす
    る、グラフィクスシステム。
  27. 【請求項27】ブレンドユニットは少なくとも1つの乗
    算器と加算器とを含み、ブレンド演算を行うために4つ
    までの入力引数を受け入れるように構成される、請求項
    26記載のグラフィクスシステム。
  28. 【請求項28】関連のメモリにストアされているポリゴ
    ン頂点データおよびテクスチャデータに少なくとも部分
    的に応答してイメージをレンダリングしかつ表示する処
    理パイプライン、および前記レンダリングされかつ表示
    されたイメージの表面へ1つまたはそれ以上の異なるテ
    クスチャおよび/またはテクスチャ特性に対応するテク
    スチャデータを選択的にマッピングするためのマルチテ
    クスチャ処理サブシステムを備えるグラフィクスシステ
    ムにおいて、 前記マルチテクスチャ処理サブシステムは、パイプライ
    ン内に構成され、所定の処理ステージ中に入力テクスチ
    ャ,カラーおよび/またはアルファデータを処理してテ
    クスチャおよび/またはカラーもしくはアルファデータ
    のブレンドおよび/またはミキシングを達成するテクス
    チャ環境ユニットを含み、前記テクスチャ環境ユニット
    は、選択した一時的処理ステージ中に動作可能なフィー
    ドバック機構を有するカラー/アルファデータブレンド
    ユニットを含み、現在の処理ステージの出力が後続の処
    理ステージへの入力として利用可能とされることを特徴
    とする、グラフィクスシステム。
  29. 【請求項29】ブレンドユニットは、後続の一時的な処
    理ステージへの入力として現在の処理ステージの出力を
    利用可能にするために、少なくとも1つの記憶レジスタ
    に接続される、請求項28記載のグラフィクスシステ
    ム。
  30. 【請求項30】テクスチャ環境ユニットは16までの連
    続的な一時的処理ステージを含む、請求項28記載のグ
    ラフィクスシステム。
  31. 【請求項31】フィードバック機構は複数の記憶レジス
    タを含む、請求項28記載のグラフィクスシステム。
  32. 【請求項32】ブレンドユニットは少なくとも1つの乗
    算器と加算器とを含み、ブレンド演算を行うために4つ
    までの入力引数を受け入れるように構成される、請求項
    28記載のグラフィクスシステム。
  33. 【請求項33】関連のメモリにストアされているポリゴ
    ン頂点データおよびテクスチャデータに少なくとも部分
    的に応答してイメージをレンダリングしかつ表示する処
    理パイプライン、および前記レンダリングされかつ表示
    されたイメージの表面へ1つまたはそれ以上の異なるテ
    クスチャおよび/またはテクスチャ特性に対応するテク
    スチャデータを選択的にマッピングするためのマルチテ
    クスチャ処理サブシステムを備えるグラフィクスシステ
    ムにおいて、 前記マルチテクスチャ処理サブシステムは、パイプライ
    ン内に構成され、入力テクスチャおよびラスタライズし
    たカラーデータを処理して所定の一時的処理サイクル/
    ステージ中に入力テクスチャおよびラスタライズしたカ
    ラーデータ上で独立した数学的なブレンド演算を行い、
    前記テクスチャ環境ユニットは選択した一時的処理サイ
    クル/ステージ中に動作されるフィードバック機構を含
    み、現在の一時的処理サイクル/ステージの出力が後続
    の一時的処理サイクル/ステージへの入力として利用可
    能とされることを特徴とする、グラフィクスシステム。
  34. 【請求項34】入力テクスチャおよびラスタライズした
    カラーデータは、RGBおよびアルファデータを含む、
    請求項33記載のグラフィクスシステム。
  35. 【請求項35】テクスチャ環境ユニットの一時的処理サ
    イクル/ステージの出力は後続のテクスチャ環境ユニッ
    トの一時的処理ステージへの入力として利用可能とされ
    る、請求項33記載のグラフィクスシステム。
  36. 【請求項36】テクスチャ環境ユニットは16までの連
    続的な一時的処理ステージを含む、請求項33記載のグ
    ラフィクスシステム。
  37. 【請求項37】テクスチャ環境ユニットは少なくとも1
    つの乗算器と加算器とを有するブレンドユニットを含
    む、請求項33記載のグラフィクスシステム。
  38. 【請求項38】ブレンドユニットはブレンド演算を行う
    ために4つまでの入力引数を受け入れるように構成され
    る、請求項33記載のグラフィクスシステム。
  39. 【請求項39】関連のメモリにストアされているポリゴ
    ン頂点データおよびテクスチャデータに少なくとも部分
    的に応答してイメージをレンダリングしかつ表示する処
    理パイプライン、前記レンダリングされかつ表示された
    イメージの表面へ1つまたはそれ以上の異なるテクスチ
    ャおよび/またはテクスチャ特性に対応するテクスチャ
    データを選択的にマッピングするためのマルチテクスチ
    ャ処理サブシステムを備えるグラフィクスシステム、お
    よび入力テクスチャおよびラスタライズしたカラーデー
    タを処理して入力テクスチャおよびラスタライズされた
    カラーデータ上で独立した数学的なブレンド演算を提供
    するテクスチャ環境ユニットを備えるグラフィクスシス
    テムにおいて、 (a) 第1テクスチャ環境ユニット一時的処理サイクル/
    ステージ中に第1組のテクスチャおよびラスタライズし
    たカラーデータ上でブレンド演算を実行し、そして(b)
    第1一時的処理サイクル/ステージの出力を後続のテク
    スチャ環境ユニット一時的処理サイクル/ステージへの
    入力として与える、マルチテクスチャを処理する方法。
  40. 【請求項40】16までの連続テクスチャ環境一時的処
    理ステージからの出力が後続のテクスチャ環境ユニット
    一時的処理サイクル/ステージへの入力として与えられ
    る、請求項39記載の方法。
  41. 【請求項41】入力テクスチャおよびラスタライズした
    カラーデータはRGBおよびアルファデータを含む、請
    求項39記載の方法。
  42. 【請求項42】現在の処理ステージの出力は複数の後続
    の処理ステージへの入力として利用可能とされる、請求
    項28記載のグラフィクスシステム。
  43. 【請求項43】1つまたはそれ以上の異なるテクスチャ
    および/またはテクスチャ特性に対応するテクスチャデ
    ータを選択的にサンプリングするマルチテクスチャ処理
    サブシステム、および前記マルチテクスチャ処理サブシ
    ステムからの第1テクスチャデータサンプルおよび後続
    テクスチャデータサンプルを受けるシェーディング/ブ
    レンド演算を行い、第1テクスチャデータサンプルを用
    いて行われたシェーディング/ブレンド演算からの出力
    を後続テクスチャデータサンプルとその第1テクスチャ
    データサンプル上で行われたシェーディング/ブレンド
    演算からの出力とを用いてシェーディング/ブレンド演
    算を行うためにその入力として再循環させる、ハードウ
    ェアシェーダを備える、グラフィクスシステム。
  44. 【請求項44】ハードウェアシェーダにマルチテクスチ
    ャのサンプルを順次与えるマルチテクスチャ処理サブシ
    ステムを含み、シェーダはマルチテクスチャ処理サブシ
    ステムのテクスチャサンプル出力上でブレンド/シェー
    ディング演算を行い、さらにブレンド/シェーディング
    演算の結果的な出力を後続のテクスチャサンプル出力と
    ともにその結果的な出力の後続のブレンド/シェーディ
    ング演算を行うために再循環させる、グラフィクスパイ
    プライン。
  45. 【請求項45】ポリゴン頂点データおよびテクスチャデ
    ータに少なくとも部分的に応答してイメージをレンダリ
    ングしかつ表示するグラフィクス処理パイプラインであ
    って、 1つのテクスチャアドレス座標/データ処理ユニット,
    1つのテクスチャ抽出ユニット,およびテクスチャ抽出
    ユニットから選択して抽出したテクスチャルックアップ
    データをテクスチャアドレス座標/データ処理ユニット
    へ再循環して戻すためのテクスチャルックアップデータ
    フィードバック経路を有する再循環テクスチャパイプラ
    イン装置、およびテクスチャ抽出ユニットの出力を受け
    るように接続されたハードウェアシェーダと、選択して
    ブレンドしたカラーまたは不透明出力データを再循環さ
    せるためにハードウェアシェーダの出力からシェーダの
    入力へのフィードバック経路とを有する再循環シェード
    ツリーアルファ/カラーブレンダ装置を備え、 再循環装置は選択したシェーダ入力をブレンドして後続
    のブレンド演算のためのシェーダへの入力として使用す
    るためにフィードバックされる出力を提供する、グラフ
    ィクス処理パイプライン。
  46. 【請求項46】1つのテクスチャアドレス座標/データ
    処理ユニットは論理的直接および間接テクスチャ座標デ
    ータの処理をインタリーブする、請求項45記載のパイ
    プライン。
  47. 【請求項47】グラフィクスシステムにおけるマルチテ
    クスチャ処理サブシステムであって、 1つのテクスチャアドレス座標/データ処理ユニット,
    1つのテクスチャ抽出ユニット,および1つのテクスチ
    ャ抽出ユニットからの抽出した間接テクスチャルックア
    ップデータをテクスチャアドレス座標/データ処理ユニ
    ットへ再循環して戻すテクスチャルックアップデータフ
    ィードバック経路を有するテクスチャリング装置、およ
    びテクスチャ抽出ユニットの出力を受けるように接続さ
    れた再循環ハードウェアシェーダを備え、 シェーダは選択して受信した出力をブレンドして計算し
    たカラーまたは不透明出力を与え、それは後続のブレン
    ド演算のためのシェーダへの入力として使用するために
    選択的にフィードバックされる、グラフィクスシステ
    ム。
  48. 【請求項48】1つのテクスチャアドレス座標/データ
    処理ユニットは論理的直接および間接テクスチャ座標デ
    ータの処理をインタリーブする、請求項47記載のグラ
    フィクスシステム。
JP2001081892A 2000-08-23 2001-03-22 グラフィクスシステム用再循環シェードツリーブレンダ Expired - Lifetime JP4731028B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US22688800P 2000-08-23 2000-08-23
US60/226888 2000-08-23
US09/722367 2000-11-28
US09/722,367 US7034828B1 (en) 2000-08-23 2000-11-28 Recirculating shade tree blender for a graphics system

Publications (2)

Publication Number Publication Date
JP2002063590A true JP2002063590A (ja) 2002-02-28
JP4731028B2 JP4731028B2 (ja) 2011-07-20

Family

ID=26920956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001081892A Expired - Lifetime JP4731028B2 (ja) 2000-08-23 2001-03-22 グラフィクスシステム用再循環シェードツリーブレンダ

Country Status (8)

Country Link
US (2) US7034828B1 (ja)
EP (1) EP1182618A3 (ja)
JP (1) JP4731028B2 (ja)
KR (1) KR20020015973A (ja)
CN (1) CN1339764A (ja)
AU (1) AU5785101A (ja)
CA (1) CA2355353C (ja)
TW (1) TWI244050B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054891A (ja) * 2002-07-16 2004-02-19 Microsoft Corp グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
JP2008507037A (ja) * 2004-07-15 2008-03-06 インテル・コーポレーション ピクセルシェ−ダ・ハードウェアのためのレガシー処理
JP2009500730A (ja) * 2005-07-01 2009-01-08 メンタル イメージズ ゲーエムベーハー コンピュータ・グラフィック・シェイダー・システムおよび方法
JP2009072601A (ja) * 2007-09-21 2009-04-09 Sony Computer Entertainment Inc エミュレーション強化方法及び装置
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
JP2011181096A (ja) * 2011-05-16 2011-09-15 Digital Media Professional:Kk コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置
JP4886691B2 (ja) * 2005-07-26 2012-02-29 株式会社ディジタルメディアプロフェッショナル 多層反射シェーディング画像生成方法及びコンピュータ
JP7425064B2 (ja) 2019-02-21 2024-01-30 メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー 機械学習ベースシェーダをもつグラフィックス処理チップ

Families Citing this family (115)

* Cited by examiner, † Cited by third party
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
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
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
US6724394B1 (en) * 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
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
US7066781B2 (en) 2000-10-20 2006-06-27 Denise Chapman Weston Children's toy with wireless tag/transponder
JP4001015B2 (ja) 2001-01-23 2007-10-31 セイコーエプソン株式会社 画像入力装置及び画像入力方法
GB2383248B (en) * 2001-12-14 2005-12-07 Imagination Tech Ltd 3-dimensional computer graphics system
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
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
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8736620B2 (en) 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
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
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US8711155B2 (en) 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
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
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
JP2005332195A (ja) * 2004-05-19 2005-12-02 Sony Computer Entertainment Inc テクスチャユニット、画像描画装置、テクセル転送方法
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
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
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
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
US8232991B1 (en) 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
KR100791411B1 (ko) * 2006-12-07 2008-01-07 한국전자통신연구원 그래픽스 처리장치 및 방법
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
WO2008126392A1 (ja) * 2007-04-11 2008-10-23 Panasonic Corporation 画像生成装置及び画像生成方法
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
US9019287B2 (en) 2007-11-23 2015-04-28 Pme Ip Australia Pty Ltd Client-server visualization system with hybrid data processing
US9904969B1 (en) 2007-11-23 2018-02-27 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8319781B2 (en) 2007-11-23 2012-11-27 Pme Ip Australia Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8548215B2 (en) 2007-11-23 2013-10-01 Pme Ip Australia Pty Ltd Automatic image segmentation of a volume by comparing and correlating slice histograms with an anatomic atlas of average histograms
US10311541B2 (en) 2007-11-23 2019-06-04 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
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
US8296781B1 (en) * 2007-12-11 2012-10-23 Nvidia Corporation System, method, and computer program product for determining application parameters based on hardware specifications
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
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
US9153068B2 (en) 2011-06-24 2015-10-06 Nvidia Corporation Clipless time and lens bounds for improved sample test efficiency in image rendering
US8970584B1 (en) 2011-06-24 2015-03-03 Nvidia Corporation Bounding box-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
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
US9201670B2 (en) 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria
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
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
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
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
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
US10540803B2 (en) 2013-03-15 2020-01-21 PME IP Pty Ltd Method and system for rule-based display of sets of images
US8976190B1 (en) 2013-03-15 2015-03-10 Pme Ip Australia Pty Ltd Method and system for rule based display of sets of images
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
US11183292B2 (en) 2013-03-15 2021-11-23 PME IP Pty Ltd Method and system for rule-based anonymized display and data export
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
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
US11599672B2 (en) 2015-07-31 2023-03-07 PME IP Pty Ltd Method and apparatus for anonymized display and data export
US9984478B2 (en) 2015-07-28 2018-05-29 PME IP Pty Ltd Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877385A (ja) * 1994-08-29 1996-03-22 Internatl Business Mach Corp <Ibm> コンピュータ・グラフィクス装置
JPH096967A (ja) * 1995-06-08 1997-01-10 Hewlett Packard Co <Hp> 三角形を表わす画素データを生成する装置
JPH10269377A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 表示制御システムおよび3次元グラフィクスデータの表示制御方法
WO2000004505A1 (en) * 1998-07-16 2000-01-27 The Research Foundation Of State University Of New York Apparatus and method for real-time volume processing and universal 3d rendering
JP2000155845A (ja) * 1998-05-29 2000-06-06 Mitsubishi Electronics America Inc 記憶装置、デ―タフォ―マッタ、デ―タにアクセスする方法、デ―タの領域をクリアする方法、デ―タを圧縮する方法、デ―タをフォ―マット化する方法、グラフィックスシステムおよびグラフィックスシステムを動作させる方法

Family Cites Families (107)

* Cited by examiner, † Cited by third party
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
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
US5170468A (en) 1987-08-18 1992-12-08 Hewlett-Packard Company Graphics system with shadow ram update to the color map
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
EP0336430B1 (en) 1988-04-08 1994-10-19 Dainippon Screen Mfg. Co., Ltd. Method of extracting contour of subject image from original
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
DE69031202T2 (de) 1989-10-13 1998-02-19 Matsushita Electric Ind Co Ltd Verfahren und Gerät zur Farbkompensierung in Farbbildern
JPH0776991B2 (ja) 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
US5056044A (en) 1989-12-21 1991-10-08 Hewlett-Packard Company Graphics frame buffer with programmable tile size
JP3005007B2 (ja) 1989-12-21 2000-01-31 キヤノン株式会社 画像符号化装置
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
AU7747591A (en) 1990-05-12 1991-12-10 Rediffusion Simulation Limited Image generator
EP0464907B1 (en) 1990-06-29 1996-10-09 Philips Electronics Uk Limited Generating an image
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
WO1993004429A2 (en) 1991-08-13 1993-03-04 Board Of Regents Of The University Of Washington Method of generating multidimensional addresses in an imaging and graphics processing system
TW225595B (ja) 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
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
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877385A (ja) * 1994-08-29 1996-03-22 Internatl Business Mach Corp <Ibm> コンピュータ・グラフィクス装置
JPH096967A (ja) * 1995-06-08 1997-01-10 Hewlett Packard Co <Hp> 三角形を表わす画素データを生成する装置
JPH10269377A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 表示制御システムおよび3次元グラフィクスデータの表示制御方法
JP2000155845A (ja) * 1998-05-29 2000-06-06 Mitsubishi Electronics America Inc 記憶装置、デ―タフォ―マッタ、デ―タにアクセスする方法、デ―タの領域をクリアする方法、デ―タを圧縮する方法、デ―タをフォ―マット化する方法、グラフィックスシステムおよびグラフィックスシステムを動作させる方法
WO2000004505A1 (en) * 1998-07-16 2000-01-27 The Research Foundation Of State University Of New York Apparatus and method for real-time volume processing and universal 3d rendering

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054891A (ja) * 2002-07-16 2004-02-19 Microsoft Corp グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法
JP2009277258A (ja) * 2002-07-16 2009-11-26 Microsoft Corp グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法
JP4583720B2 (ja) * 2002-07-16 2010-11-17 マイクロソフト コーポレーション グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法
JP2005322224A (ja) * 2004-05-03 2005-11-17 Microsoft Corp 拡張グラフィックスパイプラインを提供するシステムおよび方法
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US9064334B2 (en) 2004-05-03 2015-06-23 Microsoft Technology Licensing, Llc Systems and methods for providing an enhanced graphics pipeline
JP2008507037A (ja) * 2004-07-15 2008-03-06 インテル・コーポレーション ピクセルシェ−ダ・ハードウェアのためのレガシー処理
JP2009500730A (ja) * 2005-07-01 2009-01-08 メンタル イメージズ ゲーエムベーハー コンピュータ・グラフィック・シェイダー・システムおよび方法
JP4886691B2 (ja) * 2005-07-26 2012-02-29 株式会社ディジタルメディアプロフェッショナル 多層反射シェーディング画像生成方法及びコンピュータ
JP2009072601A (ja) * 2007-09-21 2009-04-09 Sony Computer Entertainment Inc エミュレーション強化方法及び装置
JP2011181096A (ja) * 2011-05-16 2011-09-15 Digital Media Professional:Kk コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置
JP7425064B2 (ja) 2019-02-21 2024-01-30 メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー 機械学習ベースシェーダをもつグラフィックス処理チップ

Also Published As

Publication number Publication date
AU5785101A (en) 2002-02-28
EP1182618A3 (en) 2003-11-12
US7176919B2 (en) 2007-02-13
CN1339764A (zh) 2002-03-13
US7034828B1 (en) 2006-04-25
EP1182618A2 (en) 2002-02-27
US20060125825A1 (en) 2006-06-15
KR20020015973A (ko) 2002-03-02
JP4731028B2 (ja) 2011-07-20
TWI244050B (en) 2005-11-21
CA2355353A1 (en) 2002-02-23
CA2355353C (en) 2010-05-04

Similar Documents

Publication Publication Date Title
JP4731028B2 (ja) グラフィクスシステム用再循環シェードツリーブレンダ
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
JP4790150B2 (ja) 低価格のグラフィックスシステムにおけるシャドウマッピング
JP4863574B2 (ja) Zテクスチャリングを用いるイメージ生成方法
JP4698893B2 (ja) 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
JP4691273B2 (ja) グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法
US6618048B1 (en) 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
JP4658378B2 (ja) グラフィクスシステムにおいて環境を写し込んだバンプマッピングのための方法および装置
JP4719363B2 (ja) 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
US7061502B1 (en) Method and apparatus for providing logical combination of N alpha operations within a graphics system
JP4975159B2 (ja) グラフィックシステム、グラフィックス画像を生成する方法およびプログラムにおける無色光のライティング
JP2001134779A (ja) 三次元ビデオグラフィックスシステムにおける非写実的な漫画的な輪郭線提供方法およびその装置
JP4683760B2 (ja) 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム
JP4740490B2 (ja) グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP4740476B2 (ja) グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置
JP4698894B2 (ja) グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110303

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4731028

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term