JPH0731741B2 - 画像情報処理装置と方法 - Google Patents

画像情報処理装置と方法

Info

Publication number
JPH0731741B2
JPH0731741B2 JP63271091A JP27109188A JPH0731741B2 JP H0731741 B2 JPH0731741 B2 JP H0731741B2 JP 63271091 A JP63271091 A JP 63271091A JP 27109188 A JP27109188 A JP 27109188A JP H0731741 B2 JPH0731741 B2 JP H0731741B2
Authority
JP
Japan
Prior art keywords
vertex
intensity
light
light intensity
color
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63271091A
Other languages
English (en)
Other versions
JPH01163884A (ja
Inventor
ジヨージ・ゴンザレス−ロペス
ブルース・カールトン・ヘンペル
ボブ・チャオ−チュ・リアング
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH01163884A publication Critical patent/JPH01163884A/ja
Publication of JPH0731741B2 publication Critical patent/JPH0731741B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A.産業上の利用分野 B.従来技術 C.発明が解決しようとする問題点 D.問題点を解決するための手段 E.実施例 F.発明の効果 A.産業上の利用分野 本発明は一般的には、コンピュータ・グラフィックスの
分野に関する。コンピュータ・グラフィックス・ディス
プレイ・システム(例えばCAD/CAMグラフィックス・ワ
ークステーション)は、科学、技術、製造、及び他のア
プリケーションの対象の映像を作成し表示するために広
く使用されている。
B.従来技術 上記のようなコンピュータ・グラフィック・システムに
おいては、対象物の面は通常ポリゴン(多角形)メッシ
ュであらわされる。ポリゴン・メッシュは、頂点と、辺
と、多角形の集合である。頂点は辺によって接続され、
ポリゴンは、辺または頂点の列であると考えることがで
きる。ディスプレイの表示スクリーン上に、ポリゴン・
メッシュよりも外観が写実的な対象物の視覚映像を表示
するために、隠れ面を除去し、可視面に陰影をつけ(Sh
ading)テクスチャを与える手続が開発された。
本発明は、グラフィクス・ワークステーションに陰影を
つける機能の実施に関し、より詳しくは照明(lihtin
g)モデルを使用した場合の陰影映像のコンピュータ処
理及び表示に関するものである。そのような照明モデル
で考慮され得る効果としては、周囲照明(ambient ligh
ting)、拡散及び鏡面反射効果、光源の数や位置や強度
や色合い、平行及び斜視的投影、モデリングしている対
象物の種々の部分の観察者からの距離による光の減衰
(デプス・キューイング)がある。
第6図には、グラフィックス・ワークステーションのた
めの陰影づけ(シェ−ディング)ハードウェアの一般的
なシステム・アーキテクチャが示されている。この全体
的な陰影づけ機能システム10は、照明モデル処理システ
ム12と、陰影処理システム14と、画素メモリ16と、表示
モニタ18を含んでいる。
照明モデル処理システム12は、特定の照明モデルの各ポ
リゴン毎の頂点の色強度(例えば赤、緑及び青成分)を
計算する。陰影処理システム14は、可視ポリゴン内の画
素の色強度を計算するために照明モデル処理システムか
らの情報を使用し、この情報を画素メモリ16に送る。表
示モニタ18は、画素メモリ16内に記憶された陰影イメー
ジを表示する。
従来のグラフィックス・ワークステーションにおいて
は、照明による効果の計算は、あるタイプの汎用コンピ
ュータによって実行されていた。この手法は、広く入手
可能な「常備」製品を使用するという利点はあるけれど
も、全体の処理が、単一の汎用処理要素によって実行さ
れるがゆえに、計算強度が低速であるという欠点があっ
た。
C.発明が解決しようとする問題点 本発明の主要な目的は、コンピュータ・グラフィックス
・ディスプレイ・システムにおける陰影機能の一部とし
て、従来のものよりも高い処理性能を示す照明モデル処
理を実行するための方法と装置を提供することにある。
本発明の他の目的は、高いイメージ品質と写美性と改善
された対話性を与える照明モデル処理システムを提供す
ることにある。
本発明のさらに他の目的は、容易にアセンブルされ、動
作が高速で効率的で汎用的である照明モデル処理システ
ムを提供することにある。
D.問題点を解決するための手段 本発明によれば、照明による影響の計算が、パイプライ
ン形式に接続されて動作する同一の複数の浮動小数点処
理要素によって実行される。使用されるパイプライン形
状は純粋に直列であってもよく、同一の処理要素の並列
配列を含むパイプラインのある段と直列でもよい。
計算の手間のかかる照明モデルの計算を実行するために
多重同一処理要素のパイプライン配列を使用することに
よって、処理速度が何倍もの向上が達成される。そして
システムが処理することができる毎秒のポリゴンの数が
劇的に増大することによって、所与の対象を表示するた
めにより微細なポリゴン・メッシュを使用することが可
能となり、より微細なメッシュの使用によって、より高
い写美度の影陰イメージが得られる。こうして、本発明
の使用によって提供される性能の向上は、ワークステー
ションのユーザーによりすぐれた対話性とより高品質の
イメージ品質として反映される。
本発明の照明モデル処理システムは、直列に接続された
パイプライン形式で動作する複数の浮動小数点処理段か
らなる。そして各段は好適には1つまたはそれ以上の同
一の浮動小数点プロセッサ(処理要素とも呼ばれる)を
有する。
各段は、他の段とは同時に特定の機能を実行する個別の
処理ユニットと考えることができ、以て顕著な処理速度
の向上がはかられる。
第1図は、パイプライン配列の4つの浮動小数点処理段
20、22、24及び26からなる照明モデル計算システム12の
第1の実施例を示すものである。これにおいて、第1の
段20及び第2の段22は照明モデル計算のために使用され
る。第3の段24は投影変換を実行し、視覚空間からスク
リーン空間へのマッピングを行うために採用され、第4
の段26は、デプス・キューイング(depth Cueing)、色
マッピング及び色クリッピングのために使用される。こ
れらの異なる段の機能については後でより詳細に説明す
る。その段の数ならびに順序、および機能の仕分けは、
第1図に示すものと異なっていてもよい。
第1図に示すように、照明モデル処理システム12への入
力は、 視覚空間におけるポリゴンの頂点の座標をあらわすx、
y、zと、 ポリゴンの各頂点における法線のX、Y、Z成分をあら
わすa、b、c、 からなる。
これらの入力は浮動小数点形式であり、グラフィックス
・ディスプレイ・システムの前段にある幾何プロセッサ
(図示しない)によって作成される。照明モデル処理シ
ステム12の出力は、 ポリゴンの頂点のスクリーン座標をあらわすXs、Ys、Zs
と、 ポリゴンの各頂点に表示すべき色強度値をあらC″R、
C″G、C″B(Rは赤成分、Gは緑成分、Bは青成分
をあらわす)からなる。
出力スクリーン頂点座標とRGB強度値は整数であり、強
度値はディスプレイ・システムの能力の範囲内にある。
第6図に示すように、陰影処理システム14には照明モデ
ル処理システム12の出力が与えられ、このとき頂点の強
度値は実質的にポリゴンの可視面に亘って挿入され、以
て対象の現実的に陰影イメージが表示される。
入力前処理 コンピュータ・グラフィックス・ディスプレイ・システ
ムは、モデルの対象の性質に応じて片面及び両面処理し
なくてはならない。本発明の照明モデル処理システムの
動作を簡易化するために、照明モデル処理システムへの
すべての入力ポリゴンが片面ポリゴンで法線が観察者の
方を向くように保証するべく上流の幾何プロセッサで前
処理段階が実施される。この前処理段階は、ソフトウェ
ア、ハードウェアまたはそれらの組合わせのどれかで実
施することができるものであって、次のようにして表面
の法線に基づき入来ポリゴンを処理する。
(1)片面 a.もしポリゴンの法線と、対象から視点へのベクトルの
点乗値(dot product)が正なら、そのポリゴンは前向
きであり、そのポリゴンのデータが入力として照明モデ
ル処理システムに送られる。
b.もしポリゴンの法線と、対象から視点へのベクトルの
点乗積が負であるなら、ポリゴンは後向きであり、その
ポリゴンは照明モデル処理システムに達する前に棄却さ
れる。
(2)両面 a.もしポリゴン法線と、対象から視点へのベクトルの点
乗積と、対象から視点への点乗積が正であるなら、その
ポリゴンは前向きであり、ポリゴンのデータは入力とし
て照明モデル処理システムに送られる。
b.もしポリゴン法線と、対象から視点へのベクトルの点
乗積が負であるなら、ポリゴンは後向きであり、それゆ
え頂点の法線が反転され、ポリゴンのデータの残りが入
力として照明モデル処理システムに送られる。
従って、照明モデル処理システムへの入力は次の書式を
もつ: x1、y1、z1(頂点1座標) a1、b1、c1(頂点1法線) x2、y2、z2(頂点2座標) a2、b2、c2(頂点2法線) など。
浮動小数点プロセッサ 本発明のパイプライン化された照明モデル処理システム
の各段は、1つまたはそれ以上の同一の浮動小数点プロ
セッサからなる。同一のプロセッサからなる共通の段
は、照明モデル処理システムの製造、組立、動作、プロ
グラミング、及び保守の効率の向上をもたらす。
本発明の照明モデル処理システムのための適切なプロセ
ッサ30が第2図に示されている。プロセッサ30は、最近
の好適な形式では、32ビット浮動小数点能力をもつVLSI
チップを有するグラフィック浮動小数点処理要素であ
る。
プロセッサ30は次のものを有する。
(a)浮動小数点乗算器32(好適には、2段と内部パイ
プラインと、逆数と平行根を計算するためのハードウェ
アをもつ)、 (b)浮動小数点加算器34(これは、乗算器32のための
アキュムレータとしても使用される)、 (C)制御プログラム、例えばマイクロコードのための
記憶38(例えばRAM)、 (d)制御論理40、 (e)インターフェースのための入力FIFO42及び出力FI
FO44、 (f)データを格納するためのレジスタのバンク46(64
個の32ビット・レジスタ)、 (g)コマンド、レジスタ48、 (h)複数のマルチプレクサ(mux)50、52、54、56及
び58。
プロセッサ30のこれらの素子は第2図に示すように接続
されている。シーケンサ36は、他の素子の動作を制御す
る一方で、プログラムの流れ、すなわち分岐、サブルー
チン呼出しのためにマイクロコード制御の下にある。
入出力データ・パスは33ビット幅であり、32ビット・デ
ータ・フィールドと、データ・フィールドがコマンドま
たは浮動小数点のどちらであるのか示す1ビット・フラ
グとからなる。データストリーム中のコマンドは、グラ
フィックス浮動小数点プロセッサに、あとに続く浮動小
数点データの使用方法を指令する。例えば、ポリゴンに
陰影づけさせるデータストリームは、「陰影ポリゴン」
コマンドに続く、陰影づけされるべきポリゴンを決定す
る浮動小数点データ(頂点及び頂点での法線)からな
る。
浮動小数点プロセッサの入力FIFOに入れられるデータ
は、あるタイプのフロント・エンド(front−end)プロ
セッサ、あるいは他の浮動小数点プロセッサによって作
成される。他の浮動小数点プロセッサによってデータが
作成された場合、そのプロセッサの出力FIFOが直接この
プロセッサの入力FIFOに接続される。
マイクロコードは、入力FIFO42からデータを読み、次の
機能を実行する。
(1)もしデータがコマンドであるなら、それは、正し
いマイクロコード・サブルーチンに分岐するために、デ
コーディングRAMへ渡される。この場合、そのデータは
コマンド・レジスタ48にも格納され、もしマイクロコー
ドがそのようにプログラムされているなら、出力FIFO44
に渡される。
(2)もし読取データが浮動小数点データであるなら、
それは (a)レジスタ・バンク46に格納されるかまたは、 (b)マルチプレクサの入力のうちの1つとしてマルチ
プレクサ32に渡されるかまたは、 (c)加算器(アキュムレータ)に対する入力のうちの
1つとして加算器34に渡されるかまたは、 (d)出力FIFO44に直接渡されるかまたは、 (e)無視される(使用されない)。
プロセッサ・データ・フロー 次のベクトル積算の例は、プロセッサ30内のデータの流
れがどのようであるかを理解するのに有用である。
例として、m1*x+m2*y+m3*zを計算するものと
し、m1、m2、m3は内部レジスタ中にあり、アスタリスク
“*”は掛け算をあらわし、入力データは次の通りであ
ったとする。
ベクトル積算(コマンド) x (データ) y (データ) z (データ) 処理は次のとおりである。
(1)入力FIFO42から32ビット・ワードを読む。
(2)「ベクトル積算」コマンドと出会ったとき(コマ
ンド・ビットがオンであり、32ビット・データ・フィー
ルドが特定の値であることによってハードウェアに通知
される)、マイクロコードは、マイクロコード記憶中
の、ベクトル積算を実行するサブルーチンへと分岐す
る。そのサブルーチンのアドレスは、分岐テーブルを介
してハードウェアによって取得される。
(3)サブルーチンは次のワード(この場合x)を読み
取る。データxは積算器の入力に渡され、積演算のため
にm1が積算器32の他方の入力に渡される。
(4)サブルーチンは次のワード(この場合y)を読み
取る。データyは積算器の入力に渡され、m2が、積演算
のために積算器の他方の入力に渡される。それと同時
に、積m1*xが積算器の第2の内部段に渡される。
(5)サブルーチンは次のワード(この場合z)を読み
取る。データzは積算器の入力に渡され、m3が積演算の
ため積算器の他方の入力に渡される。
それと同時に、積m1*xが加算器中に値0とともに累算
される。
(6)積m2*yが加算器34に渡され、m1*xに加算され
る。
(7)積m3*zが加算器に渡され、m1*x+m2*yに加
えられる。
本発明の照明モデル処理システムにおいては、典型的な
データストリークは次のとおりである。
陰影ポリゴン開始 (コマンド) x1 (頂点データ) y1 (頂点データ) z1 (頂点データ) a1 (頂点法線データ) b1 (頂点法線データ) c1 (頂点法線データ) x2 (頂点データ) y2 (頂点データ) z2 (頂点データ) a2 (頂点法線データ) b2 (頂点法線データ) c2 (頂点法線データ) xn (頂点データ) yn (頂点データ) zn (頂点データ) an (頂点法線データ) bn (頂点法線データ) cn (頂点法線データ) 陰影ポリゴン終了 (コマンド) 上述のデータストリームの処理は次のようにして実行さ
れる。
(1)マイクロコードがデータストリームの入力FIFO32
ビット・ワードから必要に応じて読み取る。
(2)「陰影ポリゴン開始」コマンドに出会ったとき
(コマンド・ビットがオンであることと、32ビット・デ
ータ・フィールドの特定の値によってハードウェアに通
知される)、マイクロコードはマイクロコード記憶中
の、陰影ポリゴン・データを処理するサブルーチンに分
岐する。このサブルーチンのアドレスは、ハードウェア
によって分岐テーブルを介して取得される。
(3)そのマイクロコード・サブルーチンは、必要に応
じてFIFOからデータを読み取り、それをサブルーチンの
設計構造に従い処理する。出力が発生されたとき、それ
は出力FIFOに入れられる。
(4)「陰影ポリゴン」コマンドが処理されたとき、浮
動小数点プロセッサが、陰影ポリゴンに必要な処理を完
了させる別のマイクロコード・ルーチンにジャンプす
る。
好適実施例/動的区画化 本発明の好適な実施例においては、多段パイプライン構
成の各段を実施するために単一のプロセッサが使用され
る。
第3図を参照すると、照明モデル処理システム60は、4
つの個別且つ同一の浮動小数点プロセッサ62、64、66及
び68からなり、それらはパイプライン状に動作するよう
に配列されている。第1及び第2のプロセッサ62及び64
は、照明モデル計算を実行する。第3のプロセッサ66は
投影変換を実行し視覚空間からスクリーン空間へのマッ
ピングを行う。第4のプロセッサ68は、デプス・キュー
イング、色マッピング及び色クリッピングを実行する。
性能を最適化するために、好適には関連する各々の浮動
小数点プロセッサ内のマイクロコードによって読み取ら
れる別のデータストリーム・コマンドによって、第1及
び第2のプロセッサ内の照明モデル計算の動的区画化を
行うための手段が設けられている。これは、その2つの
プロセッサ間の計算量のバランスを保つためのものであ
る。第1及び第2の浮動小数点プロセッサ間の照明モデ
ル計算の区画化は、モデル中の光源の数によって異な
る。例えば「陰影ポリゴン開始(単一光源)」データス
トリーム・コマンドによって示されるように単一の光源
しか存在しないから、第1の浮動小数点プロセッサ62が
周囲光と分散光の効果による光強度を決定し、第2の浮
動小数点プロセッサ64が鏡面光効果による光強度を決定
する。他方、複数光源の場合(第5図参照)、例えば
「陰影ポリゴン開始(複数光源)」データストリーム・
コマンドで指示されると、第1の浮動小数点62′が奇数
番目の光源による光強度(周囲、拡散及び鏡面)を決定
し、第2の浮動小数点プロセッサ64′が、偶数番目の光
源による光強度(周囲、拡散及び鏡面)決定する。この
ことは、これら2つの浮動小数点プロセッサの間で、実
行すべき作業を均等に分割し、以てパイプラインにボト
ルネックが生じるのを防止する。
より詳しく述べると、照明モデル中に単一の光源しかな
いとき(第3図参照)、 a.第1の浮動小数点プロセッサ62が各頂点毎に周囲光と
拡散反射による光の強度を計算し、この値を第2の浮動
小数点プロセッサに渡す。
b.第2の浮動小数点プロセッサ64が各頂点毎に鏡面反射
による光強度を計算し、この結果を第1の浮動小数点プ
ロセッサにより渡された値に加える。第2の浮動小数点
プロセッサは次に、そのデータを次の浮動小数点プロセ
ッサに送る。
C.第3の浮動小数点プロセッサ66が投影変換を実行し、
その座標データを視覚空間からディスプレイ・システム
のスクリーン空間にマップする。
d.第4の浮動小数点プロセッサ68が、デプス・キューイ
ング、色マッピング及び色クリッピングの計算を行う。
照明モデルに複数の光源が存在するときは、(第5図参
照)、次のとおりである。
a.第1の浮動小数点プロセッサ62′が各頂点毎に、奇数
番目(#1、#3、#5、#7など)の光源の周囲光、
拡散及び鏡面反射光による光強度を計算し、この値を第
2の浮動小数点プロセッサに渡す。
b.第2の浮動小数点プロセッサ64′が各頂点毎に、偶数
番目(#2、#4、#6、#8など)の光源の周囲光、
拡散光及び鏡面反射光による光強度を計算し、この結果
を、第1の浮動小数点プロセッサによって渡された値を
加える。そうして、第2の浮動小数点プロセッサ64′は
この値を第3の浮動小数点プロセッサに渡す。
c.第3の浮動小数点プロセッサ66が投影変換を実行し、
この座標データを視覚空間からディスプレイ・システム
のスクリーン空間にマップする。そしてこの値は次の浮
動小数点プロセッサに渡される。
d.第4の浮動小数点プロセッサ68がデプス・キューイン
グ、色クリッピング、及び色マッピングの計算を行う。
他の実施例 第4図は、本発明の照明モデル処理システムの他のハー
ドウェア実施例61を示すものである。この実施例におい
ては、システムの第1及び第2段のめいめいが、並列に
配列された3つの同一のプロセッサから成っている。こ
れらめいめいのプロセッサは、異なる色成分について動
作するように好都合に使用することができる。
例として、第4図には、単一光源モデリング・システム
が、示されており、ここで、第1段浮動小数点プロセッ
サ62Rが、赤成分に関する周囲および拡散光効果を計算
し、その結果の赤成分強度値を第2の浮動小数点プロセ
ッサ64Rに渡す。第2の浮動小数点プロセッサ64Rは、赤
成分の鏡面反射効果を計算し、それを浮動小数点プロセ
ッサ62Rから受け取った値に加算する。同様にして、第
1段浮動小数点プロセサ62Gおよび第2段浮動小数点プ
ロセッサ64Gが緑成分の照明モデル計算を実行し、一
方、第1段浮動小数点62Bおよび第2段浮動小数点プロ
セッサ64Bが青成分の照明モデル計算を実行する。シス
テムの他の要素(すなわち第3段および第4段)は第3
図と同一である。
一般照明モデル 説明の便宜上、ここではRGB(赤、緑、青)の色モデル
を使用する。しかし、本発明の原理は、CMY(シアン、
マジェンタ、黄)、YIQ、HSV(色合い、鮮明度、明暗
度)、HLS(色合い、輝度、鮮明度)などの他の色モデ
ルにも適用可能である。
同様に、本発明は、無限遠と想定される光源のみなら
ず、有限の距離にある光源にも適用でき、スポット照明
などの他の照明効果にも適用できる。
そこで、本発明の照明モデル処理システムのさまざまな
特定実施例を、個々のプロセッサをプログラムするため
に使用される擬似コードを参照して説明する。ここでは
斜視投影(有限距離の視点)の場合が詳細に説明され
る。また平行投影というより簡単な場合も、視点が無限
遠にあるときに起こる相違に言及することによって簡単
に説明する。しかし、先ず、光源の数や、表面特性や、
表面の位置や方向を考慮する一般化された照明モデルを
明らかにしておこう。
ここで採用されている視点座標系は、右手系である。観
察者がディスプレイ・スクリーンを見ると考えるとき、
x軸は右を指し示し、y軸は上を指し、z軸が観察者の
方を指し出す。それゆえ、z軸が視点座標である。
次に示すのは単一光源の場合の照明モデルのパラメータ
である。
IaR /*周囲光の赤強度*/ IaG /*周囲光の緑強度*/ IaB /*周囲光の青強度*/ IsoulR /*光源の赤強度/* IsoulG /*光源の緑強度/* IsoulB /*光源の青高度/* KaR /*陰影材質赤周囲定数/* KaG /*陰影材質緑周囲定数/* KaB /*陰影材質青周囲定数/* KdR /*陰影材質赤分散定数/* KdG /*陰影材質緑分散定数/* KdB /*陰影材質青分散定数/* Ks /*鏡面反射の陰影定数/* Kn /*陰影定数一鏡面反射の指数*/ 所与の頂点x、y、zと、頂点における表面に対する法
線N=(a、b、c)に対して、 Lを頂点から光源、すなわち点光源への方向の単位ベク
トルとし、 Rを反射の方向とし、 Vを視点への方向とする。
次に、頂点での陰影色/強度を次の3つの項の和で与え
る(ここではR成分しか示さないが、他の2つ、すなわ
ちG及びBも同様にあらわされる)。
(1)周囲光 IaR*KaR (2)拡散光 IsoulR*KdR*(L.N) /*L.Nは内積である*/ (3)鏡面反射 IsoulR*Ks((R.V)**Kn) 照明モデル中の光源は無限遠であると想定されている。
それらの位置は単位長さの方向ベクトルによって記述さ
れる。視点は無限遠である。
複数光源の場合、第2及び第3項に複数の項目を有する
ことになる。
さて、j個の光源(1≦j≦M)があると仮定しよう。
ここでMはこの特定の実施例で許される光源の最大の数
である。
頂点での陰影色/強度は次の3つの項目の和によって与
えられる(ここではR成分しか述べないけれども、他の
2つ、すなわちG及びBについても同様にあらわすこと
ができる)。
(1)周囲光 Iar*KaR (2)拡散反射 IsoulR*KdR(Ll.N)+…+ISoujR*kdR(Lj.N) /*L.Nは内積をあらわす*/ (3)鏡面反射 IsoulR*Ks*((Rl.V)**kn)+…+IsoujR+Ks:
((Rj.V)**Kn) 一般的な照明モデルの導出についてのより詳しい説明
は、Addison−Wesley社1984年刊、Foley & Van Dan
著、“対話的コンピュータ・グラフィックスの基礎(Fu
ndamentals of Interactive Computer Graphics)”、p
p.575−578にある。
次に本発明の照明モデル処理システムの特定の例につい
て説明する。先ず、次の場合について、第1及び第2の
プロセッサによって実行される照明モデルの計算を説明
する。
単一光源−視点が有限距離 単一光源−視点が無限距離 複数光源−視点が有限距離 複数光源−視点が無限距離 次に、第3のプロセッサによって実行されるマッピング
機能と、第4のプロセッサによって実行されるデプス・
キューイング、色マッピング、色クリッピング機能(こ
れらは前述のすべての場合について共通である)につい
て説明する。
以下の例において、ソフトウェアは擬似コードで書かれ
ており、単一のアスタリスク(*)は掛け算であり、二
重(**)はべき乗をあらわし、(<)というシンボル
は値の取得をあらわし、コメントは(/*)と(*/)
の間に挟まれたものである。
単一光源−有限距離の視点 これは、対象物から有限距離にある単一光源の斜視投影
の場合(すなわち、視点が対象物から有限の距離にあ
る)に関するものである。頂点の強度を計算する機能
は、2つの浮動小数点プロセッサ間で分割される。第1
の浮動小数点プロセッサは周囲光と分散光の項の強度を
計算し、第2の浮動小数点は鏡面反射光の強度を計算す
る。
第1の浮動小数点プロセッサへの入力は、次の6個のデ
ータからなる。
頂点の座標x、y、zと、頂点の表面に対する法線の座
標、すなわちa、b、c。
第1の浮動小数点プロセッサの、第2の浮動小数点プロ
セッサに対する出力は、各頂点毎に次の9個のワードか
らなる。
頂点の座標x、y、zと、 反射方向の成分rx、ry、rzと、 R、G及びBに対する部分強度地(周囲プラス分散効
果)。
この場合、第1及び第2の浮動小数点のための擬似コー
ドは次のとおりである。
Procedure Intensity_Single12(有限距離の視点) /*第1の浮動小数点プロセッサ*/ 入力: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ 出力: x,y,z /*頂点の座標*/ rx,ry,rz /*反射方向の成分*/ IntensR /*強度の赤成分*/ IntensG /*強度の緑成分*/ IntensB /*強度の青成分*/ 定数: IaR /*周囲光の赤強度*/ IaG /*周囲光の緑強度*/ IaB /*周囲光の青強度*/ IsoulR /*光源の赤強度*/ IsoulG /*光源の緑強度*/ IsoulB /*光源の青強度*/ KaR /*陰影材質赤周囲定数*/ KaG /*陰影材質緑周囲定数*/ KaB /*陰影材質青周囲定数*/ KdR /*陰影材質赤分散定数*/ KdG /*陰影材質緑分散定数*/ KdB /*陰影材質青分散定数*/ Ks /*鏡面反射の陰影定数*/ Kn /*cosの陰影定数−指数*/ uxl,uyl,uzl /*光源1*/ vx,vy,vz /*視点*/ 変数: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ wx,wy,wz /*頂点から光源へのベクトル*/ normw /*(wx,wy,wz)の長さ*/ rx,ry,rz /*反射方向*/ normr /*(rx,ry,rz)の長さ*/ tx,ty,tz /*頂点から視点へのベクトル*/ IntensR /*強度の赤成分*/ IntensG /*強度の緑成分*/ IntensB /*強度の青成分*/ normt /*(tx,ty,tz)の長さ*/ innproc /*光源からの頂点へのベクトル*/ /*単位法線の内積*/ shadcos /*鏡面反射のcos項*/ lighr /*一時変数*/ temp /*一時変数*/ lfinitel:/*「陰影ポリゴン(単一光源)」コマンドに
遭遇したとき*/ /*入力されるコード*/ (1)データの読取 (2)もしそれがGESP(陰影ポリゴン終了)コマンドな
ら、そのコマンドを出力して脱出; /*頂点のx,y,z座標を読みこんで、頂点から光源への
*/ /*ベクトルを計算*/ (3)xの読取、および wx<--uxl−x (4)xを第2の浮動小数点プロセッサに出力 (5)yの読取、および wy<--uxl−y (6)yを第2の浮動小数点プロセッサに出力 (7)zの読取、および wy<--uxl−y (8)yの第2の浮動小数点プロセッサに出力 wz<--uxl−z (9)aの読取 /*頂点の法線*/ (10)bの読取 (11)cの読取 (12)頂点から光源へのベクトルと単位法線との内積in
nproc<--wx*a+wy*b+wz*c /*鏡面反射の反射方向*/ (13)temp<--2*innproc (14)rx<--temp*a−wx (15)rxを第2の浮動小数点プロセッサに出力 (16)ry<--temp*b−wy (17)ryを第2の浮動小数点プロセッサに出力 (18)rz<--temp*c−wz (19)rzを第2の浮動小数点プロセッサに出力 (20)光源と頂点の間の距離 a.normw<--wx*wx+wy*wy+wz*wz b.normw<--sqrt(normw) (21)周囲光R−G−B成分 a.IntensR<--KaR*IaR b.IntensG<--KaG*IaG c.IntensB<--KaB*IaB (22)強度の計算に使用される定数 a.if innproc<--0 then light<--0; b.else light<--innproc/normw (23)強度計算(拡散反射) IntensR<--IntensR+IsoulrKdR light (24)IntensRを第2の浮動小数点プロセッサに出力 (25)強度計算(拡散反射) IntensG<--IntensG+IsoulG*KdG*light (26)IntensGを第2の浮動小数点プロセッサに出力 (27)強度計算(分散反射) IntensB<--IntensB+IsoulB*KdR*light (28)IntensBを第2の浮動小数点プロセッサに出力 (29)lfinitelへ Procedure Intensity_Single 22(有限距離の視点) /*第2の浮動小数点プロセッサ*/ 入力: x,y,z /*頂点の座標*/ IntensR /*周囲および拡散光による強度の赤成分*
/ IntensG /*周囲および拡散光による強度の緑成分*
/ IntensB /*周囲および拡散光による強度の青成分*
/ rx,ry,ry /*反射方向の成分*/ 出力: x,y,z /*頂点の座標*/ IntensR /*周囲および拡散光による強度の赤成分*
/ IntensG /*周囲および拡散光による強度の緑成分*
/ IntensB /*周囲および拡散光による強度の青成分*
/ 定数: IsoulR /*光源の赤強度*/ IsoulG /*光源の緑強度*/ IsoulB /*光源の青強度*/ KaR /*陰影材質赤周囲定数*/ KaG /*陰影材質緑周囲定数*/ KaB /*陰影材質青周囲定数*/ KdR /*陰影材質赤分散定数*/ KdG /*陰影材質緑分散定数*/ KdB /*陰影材質青分散定数*/ Ks /*鏡面反射の陰影定数*/ Kn /*陰影定数−鏡面反射の指数 uxl,uyl,uzl /*光源1*/ vx,vy,vz /*視点*/ 変数: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ wx,wy,wz /*頂点から光源へのベクトル*/ normw /*(wx,wy,wz)の長さ*/ rx,ry,rz /*反射方向*/ normr /*(rx,ry,rz)の長さ*/ tx,ty,tz /*頂点から視点へのベクトル*/ IntensR /*強度の赤成分*/ IntensG /*強度の緑成分*/ IntensB /*強度の青成分*/ normt /*(tx,ty,tz)の長さ*/ innproc /*光源からの頂点へのベクトル*/ /*単位法線の内積*/ shadcos /*鏡面反射のcos項*/ light /*一時変数*/ temp /*一時変数*/ lfinite2:/*「陰影ポリゴン(単一光源)コマンドに遭
遇したとき*/ /*入力されるコード*/ (1)データの読取 (2)もしそれがGESP(陰影ポリゴン終了)コマンドな
ら、そのコマンドを出力して脱出; /*頂点のx,y,z座標を読みこんで、頂点から光源への
*/ /*ベクトルを計算*/ (3)xの読取、/*頂点座標*/ (4)xを出力 (5)yの読取 (6)yの出力 (7)zの読取 (8)zの出力 /*次の2つのステップは、頂点から視点*/ /*への有限距離ベクトルにおける視点の*/ /*鏡面反射計算に使用される。*/ (9)視点から視点へのベクトル a.tx<--vx−x b.ty<--vy−y b.tz<--vz−z (10)視点と頂点の間の距離 a.normt<--tx*tx+ty*ty+tz*tz b.normt<--sqrt(normt) /*反射方向の成分を読取*/ (11)rxの読取 (12)ryの読取 (13)rzの読取 (14)反射方向のノルム normt<--rx*rx+ry*ry+rz*rz normt<--sqrt(normt) (15)反射角度のcosを計算 temp<--tx*tx+ty*ty+tz*tz a.if temp<0 then Shadcos<--0 b.else 1)temp<--temp/(normr*normt) 2)shadcos<--temp**kn 3)shadcos<--ks*shadcos (16)IntensRの読取 (17)鏡面反射の計算 IntensR<--IntensR+IsoulR*shadcos (18)IntensR出力 (19)IntensGの読取 (20)鏡面反射の計算 IntensG<--InsoulG*shadcos (21)IntensG出力 (22)IntensBの読取 (23)鏡面反射の計算 IntensB<--IntensB+IsoulB*shadcos (24)IntensB出力 (25)Ifinte2へ 単一光源−無限遠視点 視点が無限遠にある(平行投影)より簡単な場合は、視
点が有限距離にある上記の場合とは、鏡面反射による光
の計算の間の反射ベクトルの扱いにおいて異なるに過ぎ
ない。視点が無限遠である場合、視点方向は平行投影の
場合の(0,0,1)によって与えられる。
複数光源−有限距離の視点 この例では、光源の最大個数は10であると想定されてい
る。各頂点ごとの強度の計算するという機能は、2つの
浮動小数点プロセッサの間で分割される。第1の浮動小
数点プロセッサは光源#1,#3,#5などによる色強度を
処理し、第2の浮動小数点プロセッサは、光源#2,#4,
#6などによる色強度を処理する。
第1の浮動小数点プロセッサの擬似コードは、この場合
次のようになる。
Procedure Intensity_Multiple 12(有限距離の視点) /*第1の浮動小数点プロセッサ*/ 入力: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ 出力: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ IntensR /*強度の赤成分*/ IntensG /*強度の緑成分*/ IntensB /*強度の青成分*/ 定数: IaR /*周囲光の赤強度*/ IaG /*周囲光の緑強度*/ IaB /*周囲光の青強度*/ IsoulR /*光源#1の赤強度*/ Isou3R *光源#3の赤強度*/ Isou5R *光源#5の赤強度*/ Isou7R *光源#7の赤強度*/ Isou9R *光源#9の赤強度*/ IsoulG *光源#1の緑強度*/ Isou3G *光源#3の緑強度*/ Isou5G *光源#5の緑強度*/ Isou7G *光源#7の緑強度*/ Isou9G *光源#9の緑強度*/ Isou1B *光源#1の青強度*/ Isou3B *光源#3の青強度*/ Isou5B *光源#5の青強度*/ Isou7B *光源#7の青強度*/ Isou9B *光源#9の青強度*/ KdR /*陰影材質赤拡散定数*/ KdG /*陰影材質緑拡散定数*/ KdB /*陰影材質青拡散定数*/ KaR /*陰影材質赤周囲定数*/ KaG /*陰影材質緑周囲定数*/ KaB /*陰影材質青周囲定数*/ Ks /*鏡面反射の陰影定数*/ Kn /*陰影定数−鏡面反射の指数 ux1,uy1,uz1 /*光源1*/ vx3,vy3,vz3 /*光源3*/ ux5,uy5,uz5 /*光源5*/ ux7,uy7,uz7 /*光源7*/ ux9,uy9,uz9 /*光源9*/ vx,vy,vz /*視点*/ 変数: x,y,z /*頂点の座標*/ a,b,c /*単位法線の成分*/ wx,wy,wz /*頂点から光源へのベクトル*/ normw /*(wx,wy,wz)の長さ*/ rx,ry,rz /*反射方向*/ normr /*(rx,ry,rz)の長さ*/ tx,ty,tz /*頂点から視点へのベクトル*/ IntensR /*強度の赤成分*/ IntensG /*強度の緑成分*/ IntensB /*強度の青成分*/ normt /*(tx,ty,tz)の長さ*/ innproc /*光源からの頂点へのベクトル*/ /*単位法線の内積*/ shadcos /*鏡面反射のcos項*/ Lnum /*光源の数*/ lighr /*一時変数*/ temp /*一時変数*/ mfinitel:/*「陰影ポリゴン(複数光源)コマンドに遭
遇したとき*/ /*入力されるコード*/ a.データの読取 b.もしそれがGESP(陰影ポリゴム終了)コマンドなら、
そのコマンドを出力して脱出; /*頂点のx,y,z座標を読みこんで、頂点から光源への
*/ /*ベクトルを計算、これは有限距離の視*/ /*点の鏡面反射計算に使用される*/ c.xの読取、および tx<--vx1−x d.xを第2の浮動小数点プロセッサに出力 e.yの読取、および ty<--vy1−y f.yを第2の浮動小数点プロセッさに出力 g.zの読取、および tz<--vz1−y h.zを第2の浮動小数点プロセッサに出力 i.aの読取 /*頂点の法線*/ j.aを第2の浮動小数点プロセッサに出力 k.bの読取 l.bを第2の浮動小数点プロセッサに出力 m.cの読取 n.cを第2の浮動小数点プロセッサに出力 /*次のステップは、途有限距離の視点の鏡 /*面反射の計算に使用される*/ (1)視点と頂点の間の距離 (a)normt<--tx*tx+ty*ty+tz*tz (b)normt<--sqrt(normt) (2)周囲光R−G−B成分 (a)IntensR<--KaR*IaR (b)IntensG<--KaG*IaG (c)IntensB<--KaB*IaB (3)for j=1 to Lnum (a)拡散光 1)頂点から光源へのベクトル wx<--uxj−x wy<--uyj−y wz<--uzj−z 2)頂点から光源へのベクトルと単位法線との内積innp
roc<--wx*a+wy*b*wz*c 3)光源と頂点の間の距離 a)normw<--wx*wx+wy*wy+wz*wz b)normw<--sqrt(normw) 4)強度の計算に使用される定数 a)if innproc<--0 then light<…0z b)else light<--innproc/normw 5)強度計算(拡散反射) IntensR<--IntensR+IsoujR*KdR*light 6)強度計算(拡散反射) IntensG<--IntensG+IsoujG*KdG*light 7)強度計算(拡散反射) IntensB<--IntensB+IsoujB*KdB*light b)強度計算(鏡面反射) 1)反射方向 temp<--2*innproc rx<--temp*a−wx ry<--tempxb−wy rz<--temp c−wz 2)反射方向のノルム normr<--rx*tx+ry*ry+rz*rz normr<--sqrt(normr) 3)反射角度のcos計算 temp<--tx*tx+ty*ty+tz*tz (a) if temp<0 then shadcos<--0 (b) else i.temp<--temp/(normr*normt) ii.shadcos<--temp**kn iii.shadcos<--ks*shadcos 4)鏡面反射の計算 IntensR<--IntensR+IsoujR*shadcos 5)鏡面反射の計算 IntensG<--IntensG+IsoujG*shadcos 6)鏡面反射の計算 IntensB<--IntensB+IsoujB*shadcos (4)IntensRを第2の浮動小数点プロセッサに出力 (5)IntensGを第2の浮動小数点プロセッサに出力 (6)IntensBを第2の浮動小数点プロセッサに出力 (7)mfinitelへ この場合(複数光源−有限距離の視点)の第2の浮動小
数点プロセッサの擬似コードは、以下に示す相違点を除
いては上述の第1の浮動小数点プロセッサの擬似コード
と同一である。
(1)第1の浮動小数点プロセッサにより計算された反
射方向(視点への方向)が、入力として第2の浮動小数
点プロセッサに渡され、このため第2の浮動小数点プロ
セッサは、それを計算する必要がない。
(2)奇数番目の光源でなく偶数番目の光源(#2,#4,
#6など)による光の寄与分が計算される。
(3)各頂点での全光強度を計算するために(第1の浮
動小数点プロセッサから第2の浮動小数点プロセッサへ
入力として渡された)奇数番目の光源の寄与に、偶数番
目の光源による寄与が加算される。
複数光源−無限遠の視点 再述すると、視点が無限遠である(平行投影)場合は、
視点が有限距離にある場合と鏡面反射による光の計算の
間の反射ベクトルの扱いにおいて異なるにすぎない。視
点が無限菌である場合、視点方向が平行投影の場合の
(0.0.1)によって与えられるためZ成分のみが使用さ
れる。
第3のプロセッサー投影及びマッピング変換のための手
続き パイプラインのこの段は、次の2つのステップをここに
述べた順序で各ポリゴン頂点に対して実行するものであ
る。
(1)入力頂点が、3次元視覚空間から、次の特性をも
つ「投影」変換に従って、別の3次元空間に変形され
る。
(a)この変換によって生成されたx及びy軸は、視覚
平面上への頂点の投影である。
(b)この変換は平面度を保持する。すなわち、3次元
視覚空間内で同一平面上にある頂点に対して変換を加え
てもそれらはやはり出力3次元空間内で同一平面上にあ
る。
(2)変換された頂点は次に、「マッピング」変換によ
って視野平面へとマップされる。
斜視投影(対象から有限の距離の視点)の場合、投影変
換は次の式によって行なわれる。
ここで、(Xproj,Yproj)は、3次元視覚空間から(2
次元)視覚空間上への(X,Y,Z)の投影であり、dは視
点から視覚平面への距離である。Zの投影関数は、3次
元視覚空間内の平面の投影が依然として平面であり、Z
が増加するにつれてZprojも増加することを保証するよ
うに選択される。
さて、デプス・キューイング基準平面Z=Pf及びPbが投
影変換の出力空間中で決定される。
平行投影(視点が無限遠)の場合、視覚空間座標値自体
が投影値として使用される。すなわち、 Xproj=X Yproj=Y Zproj=Z 平行であれ斜視的であれ、投影変換の後にはマッピング
変換が続き、そこでは次の式が使用される。
Xscreen<--XVmin+Rx*(X−XCmin) Yscreen<--YVmin+Ry*(Y−YCmin) ここでXVminは、視野窓(イメージを表示するために使
用されるスクリーンの領域)の左側の境界であり、XCmi
nはクリッピング・ボリューム(視野窓にマップされる
ことになる視覚空間の領域)の左側の境界であり、YVmi
nは視野窓の下方の境界であり、YGminはクリッピング・
ボリュームの下方の境界であり、Rx及びRyは、視野窓の
サイズの、クリッピング・ボリュームのサイズに対する
X及びYの比率である。
投影およびマッピング手続きのための擬似コードは次の
とおりである。
Procedure Projection_and_Mapping 入力: x /*頂点視覚x座標*/ y /*頂点視覚y座標*/ z /*頂点視覚z座標*/ IntensR /*頂点の色(赤)*/ IntensG /*頂点の色(緑)*/ IntensR /*頂点の色(青)*/ 出力: Xs /*頂点スクリーンx座標*/ Ys /*頂点スクリーンy座標*/ Zproj /*頂点投影z座標*/ IntensR /*頂点の色(赤);変更なし*/ IntensG /*頂点の色(緑);変更なし*/ IntensR /*頂点の色(青);変更なし*/ 定数: Rx /*視野窓のxサイズの、クリッピン */ /*グ窓に対する比 */ Ry /*視野窓のyサイズの、クリッピン */ /*グ窓に対する比 */ XVmin /*視野窓の左端 */ XCmin /*クリッピング窓の左端 */ YVmin /*視野窓の下端 */ YCmin /*クリッピング窓の下端 */ 変数: Aux /*一時変数*/ Proj_and map: (1)次のデータ読取 (2)もしそれがGESP(陰影ポリゴン終了)コマンドな
ら、そのコマンドを出力して脱出; (3)xを読取ってXprojに入れる /*平行の場合のXprojを計算*/ (4)yを読取ってYprojに入れる*/ /*平行の場合のYprojを計算*/ (5)zを読取ってZprojに入れる /*平行の場合のZprojを計算*/ (6)もし視点が無限遠にある(平行投影モード)なら
mappingへ行く (7)Aux<--Zproj/d /*斜視の場合のZprojを計算*/ (8)Aux<--Aux+1 (9)Zproj<--(−1)/Aux (10)Xproj<--x*Zproj /*斜視の場合のXprojを計算*/ (11)Yproj<--y*Zproj /*斜視の場合のYprojを計算*/ mapping: (12)Aux<--Xproj−XCmin /*スクリーンx値であるXsを計算*/ (13)Aux<--Aux*Rx (14)Xs<--Aux+XVmin (15)Xsを出力 (16)Aux<--Yproj−YCmin /*スクリーンy値であるYsを計算*/ (17)Aux<--Aux*Ry (18)Ys<--Aux+YVmin (19)Ysを出力 (20)Zprojを出力 (21)IntensRを読取 (22)IntensRを出力 (23)IntensGを読取 (24)IntensGを出力 (25)IntensBを読取 (26)IntensBを出力 (27)proj_and_mapへ デプス・キューイング、色マッピング及び色クリッピン
グを実行するための手続き−第4のプロセッサ 第4のプロセッサ中では次のようなステップが実施され
る。
(1)デプス・キューイング(視覚者からの点の距離の
関数として点の光強度を変更する)。
(2)色マッピング(照明及びデプス・キューイング処
理の結果として計算された光強度を、後述するディスプ
レイ・システムの動的色機能にマップする処理)。
(3)色クリッピング(ディスプレイ・システムの動的
色機能によってサポートされる最大強度を超える強度を
最大強度値に置き換える処理)。
デプス・キューイング この処理においては、頂点で照明モデルによって計算さ
れたRGB強度が、ワークステーションをユーザに、スク
リーン上のイメージのどの部分が視点から最も遠いかを
示す視覚キュー(cue)として特定の色値と混合され
る。このことは、出力色強度を、頂点のZ座標の関数と
して変更する混合関数により行われる。すなわち、 Ci=w*Intensi+(1−w)*Cdi ここで、Intensiは、頂点における入力色の成分であ
り、 Cdiは、混合がなされる色強度の成分であり、 Ciは、頂点の出力色強度の成分である。
さて、i=R、G及びBとし、 Pfを前方基準面のZ値とし、 Pbを後方基準面のZ値とし、 Sfを前方倍率とし、 Sbを後方倍率とすると、 混合関数の変数Wは、投影及びマッピング段階で生成さ
れたZ値であるZprojの関数として次のように定義され
る。
w=Sf;Zproj>Pfのとき W=Sb;Zproj<Pbのとき 色マッピング 照明及びデプス・キューイング処理によって計算された
色強度は、システムの表示ハードウェアによって表示す
ることのできる色強度のダイナミッグ・レンジとは無関
係である。照明モデル計算段を、グライックス・ワーク
ステーション中のそれに続く表示ハードウェアに結合す
るために、この段は、表示ハードウェア中で利用しうる
ダイナミック色レンジに適合させるべく各個別の色成分
に一次変換を施す。すなわち、新しい色の値C′i(i
=R、G及びB)は次の式により得られる。
C′i=ai Ci+bi(i=R、G、B) ここでaiとbiは、表示ハードウェアに適切な色マッピン
グ・パラメータである。
色クリッピング マッピング段階の後でさえも、照明段によって計算され
た強度が、表示ハードウェアによってサポートされてい
る最大強度を超えてしまうことがある。そこで色クリッ
ピング段階の目的は、色ハードウェアに渡された色強度
が最大許容値を超えないことを確かめることにある。こ
れにより、照明計算段の間に生じる大きい色値によって
ひき起こされる飽和の問題を回避することができる。
新しい色値C″i(i=R、G及びB)は次の式により
与えられる。
C″i=MTN(Bhi、C′i)(i=R、G、B) ここでBhiは色成分iの最大許容値であり、C′iは、
色マッピング段階からの出力色成分である。さらに、こ
の段階は、表示色強度の浮動小数点表現を、表示ハード
ウェアによって必要とされる整数表現に変換する。
具体的実施例 デプス・キューイングと色マッピング段階はどちらも一
次関数であるから、このパイプライン段で実行しなくて
はならなんい計算の数を減少すべくそれらを1つの演算
に結合することができる。このため、結合される式の次
のパラメータが、前以って、すなわちこれらの段階の制
御パラメータが特定された時点で計算される。式は次の
とおりのである。
Qfi=ai*Sf Qbi=ai*Sb Ai=ai*F Bi=ai*(Sb−F*Pb) hi=ai*Cdi+bi ここでiはP、G及びBであり、 これらのパラメータを前以って計算しておいて、次の一
連の計算を実行する。
(1)giを、zとデプス・キューイング・パラメータ
と、表示ハードウェアの関連として計算する。
すなわち、 gi=Ai*Zproj+Bi;Pf=Zproj>=Pb(i=R、G、
B)のとき gi=Qfi;Zproj>Pfのとき gi=Qfi;Zproj>Pfのとき (2)マップされたデプス・キュー色強度C′iを、入
力Ciと前に計算したgiとhiの関数として計算する。すな
わち、 C′i=gi(Ci−Cdi)+hi(i=R、G、B)。
(3)次に、マップされたデプス・キュー色強度C′i
をクリップし、それを後の表示ハードウェアの使用のた
めに生成表現に変換する。
C″i=TRUNC(MTN(Bhi、C′i))(i=R、G、
B) ここで関数TRUNCは、浮動小数点値を整数表現に変換す
るものである。
デプス・キューイング、色マッピング及び色クリッピン
グ手続きを実施するために適当な擬似コードは次のとお
りである。
Procedure Depth_Color 入力: Xs /*頂点スクリーン座標*/ Ys /*頂点スクリーン座標*/ Zproj /*頂点投影z座標*/ IntensR /*頂点色(赤)*/ IntensG /*頂点色(緑)*/ IntensB /*頂点色(青)*/ 出力: Xs /*頂点スクリーン座標*/ Ys /*頂点スクリーン座標*/ Zproj /*頂点投影z座標*/ C″R /*頂点色(赤)*/ C″G /*頂点色(緑)*/ C″B /*頂点色(青)*/ 定数: QfR /*制御パラメータがロードさ */ れたときに計算される定数 */ QfG /*制御パラメータがロードさ */ れたときに計算される定数 */ QfB /*制御パラメータがロードさ */ れたときに計算される定数 */ QbR /*制御パラメータがロードさ */ れたときに計算される定数 */ QbG /*制御パラメータがロードさ */ れたときに計算される定数 */ QbB /*制御パラメータがロードさ */ れたときに計算される定数 */ AR /*制御パラメータがロードさ */ れたときに計算される定数 */ AG /*制御パラメータがロードさ */ れたときに計算される定数 */ AB /*制御パラメータがロードさ */ れたときに計算される定数 */ BR /*制御パラメータがロードさ */ れたときに計算される定数 */ BG /*制御パラメータがロードさ */ れたときに計算される定数 */ BB /*制御パラメータがロードさ */ れたときに計算される定数 */ hR /*制御パラメータがロードさ */ れたときに計算される定数 */ hG /*制御パラメータがロードさ */ れたときに計算される定数 */ hB /*制御パラメータがロードさ */ れたときに計算される定数 */ BhR /*最大許容赤強度 BhG /*最大許容縁強度 */ BhB /*最大許容青強度 */ Pf /*前方基準平面のz値 */ Pb /*後方基準平面のz値 */ 変数: Aux /*一次変数 */ プログラムの流れ (1)各頂点ごとに D0 (2)Xs読取 (3)Xs出力 (4)Ys読取 (5)Ys出力 (6)Zproj読取 (7)Zproj出力 For i=R,G,B D0 (8)Ci読取 (9)Aux=qi/*Zprojの関数としてqiを計算*/ (10)Aux=Aux*(Ci−Cdi)+hi/*Ciの計算*/ (11)Aux=MTN(Bhi,Aux) (12)Aux=TRUNC(Aux) (13)Auxを出力 (14)Enddo (15)Enddo F.発明の効果 以上の説明から明らかなように、本発明によれば、パイ
プライン構成の浮動小数点プロセッサにより、コンピュ
ータ・グラフィックスにおける照明モデルのきわめて高
い処理速度を達成することができる。
【図面の簡単な説明】
第1図は、本発明の照明モデル処理システムの実施例の
ブロック図、 第2図は、本発明のプロセッサの好適な実施例のブロッ
ク図、 第3図は、本発明の照明モデル処理システムの単一光源
構成のブロック図、 第4図は、本発明の照明モデル処理システムの別の単一
光源構成のブロック図、 第5図は、本発明の照明モデル処理システムの複数光源
構成のブロック図、 第6図は、コンピュータ・グラフィックス・ワークステ
ーションの一般的な陰影(シェーディング)機能のハー
ドウェア構成のブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ボブ・チャオ−チュ・リアング アメリカ合衆国ニューヨーク州ウエスト・ ハーレイ、レイアン・ドライブ、ボックス 522番地

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・グラフィックス・ディスプ
    レイ・システムの表示画面上に、視覚空間における位置
    が既知である複数の頂点で規定されるメッシュ状のポリ
    ゴンにより視覚空間に表現される対象物の陰影像を表示
    するために照明モデルを処理する装置において、 複数の同一の浮動小数点プロセッサを有し、ポリゴンの
    頂点の視覚空間における座標およびポリゴンの各頂点に
    おける法線を表すデータを受取り、これに基づき前記頂
    点の前記ディスプレイ・スクリーン上の座標および前記
    頂点の各々に関連するスクリーン色強度値を指定モデル
    について計算するパイプライン処理装置よりなり、 前記パイプライン処理装置は、前記頂点の各々に対し
    て、周囲照明ならびに拡散および鏡面反対効果による第
    1組の色強度値を計算する第1プロセッサと、前記第1
    組の色強度値を受取ってデプス・キューイング、カラー
    ・マッピングおよびカラー・クリッピングを与える第2
    プロセッサと、投影変換を行い且つ各頂点の座標を視覚
    空間からスクリーン空間へマッピングする第3プロセッ
    サを含むことを特徴とする照明モデル情報処理装置。
  2. 【請求項2】前記複数のプロセッサの間で計算処理量の
    負担をバランスさせるように照明モデルに応じて前記複
    数のプロセッサ間で計算処理の負担を動的に割当てる区
    画化手段を更に含む、請求項1の照明モデル情報処理装
    置。
  3. 【請求項3】光源からの光を考慮した照明モデルに従っ
    てコンピュータ・グラフィックス・システムの表示画面
    に表示するために、複数の頂点座標および各頂点に垂直
    なベクトルにより表される対象物を、表示画面座標に変
    換された複数の頂点座標および各頂点毎の光強度値で表
    される対象物にグラフィックス・コマンドの応答して変
    換するグラフィックス対象物処理方法であって、 各頂点における周囲照明および拡散反射による第1光強
    度を計算する段階と、 各頂点における鏡面反射による第2光強度を計算する段
    階と、 前記第1および第2光強度を合計して頂点光強度を計算
    する段階と、 前記頂点および頂点光強度を前記表示画面上に表示する
    ために表示画面座標に変換する段階と、 よりなるグラフィックス対象物処理方法。
  4. 【請求項4】コンピュータ・グラフィックス・ディスプ
    レイ・システムの表示画面上に表示するために、複数の
    頂点座標および頂点法線により表され、光源により照明
    されるグラフィックス対象物を変換する方法であって、 光源の数および各光源の位置に基づいて照明モデルを選
    択する段階と、 光源が1つの場合、周囲照明および拡散反射による、頂
    点における第1光強度を判定する段階と、 光源が1つの場合、前記第1光強度に付加された、鏡面
    反射による、頂点における第2光強度を判定し、以後の
    頂点に対しては前記第2光強度の判定を前記第1光強度
    の判定と同時に行う段階と、 光源が2以上の場合、第1組の光源による周囲照明、拡
    散反射および鏡面反射による、頂点における第3光強度
    を判定する段階と、 光源が2以上の場合、前記第3光強度に付加された、第
    2組の光源による周囲照明、拡散反射および鏡面反射に
    よる、頂点における第4光強度を判定し、以後の頂点に
    対しては前記第4光強度の判定を前記第3光強度の判定
    と同時に行う段階と、 前記頂点の座標および光強度を表示表面に表示するため
    に表示画面座標に変換する段階と、 前記表示画面に使用されるカラー・マップに基づいて前
    記光強度を変換する段階と、 前記カラー光強度を最大許容値にクリップする段階と、 前記グラフィックス対象物のすべてに頂点について前記
    各段階を反復する段階と、 よりなるグラフィックス対象物変換方法。
JP63271091A 1987-10-30 1988-10-28 画像情報処理装置と方法 Expired - Lifetime JPH0731741B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/115,467 US4866637A (en) 1987-10-30 1987-10-30 Pipelined lighting model processing system for a graphics workstation's shading function
US115467 1993-09-01

Publications (2)

Publication Number Publication Date
JPH01163884A JPH01163884A (ja) 1989-06-28
JPH0731741B2 true JPH0731741B2 (ja) 1995-04-10

Family

ID=22361599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63271091A Expired - Lifetime JPH0731741B2 (ja) 1987-10-30 1988-10-28 画像情報処理装置と方法

Country Status (5)

Country Link
US (1) US4866637A (ja)
EP (1) EP0314341B1 (ja)
JP (1) JPH0731741B2 (ja)
CA (1) CA1304824C (ja)
DE (1) DE3853336T2 (ja)

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749B1 (en) * 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
US5222203A (en) * 1989-01-20 1993-06-22 Daikin Industries, Ltd. Method and apparatus for displaying translucent surface
JP2774627B2 (ja) * 1989-12-28 1998-07-09 株式会社日立製作所 画像表示方法及びその装置
SE464265B (sv) * 1990-01-10 1991-03-25 Stefan Blixt Grafikprocessor
DE69129995T2 (de) * 1990-01-23 1998-12-24 Hewlett-Packard Co., Palo Alto, Calif. Dezentrales Verarbeitungsgerät und Verfahren zur Anwendung in globaler Wiedergabe
JPH0476680A (ja) * 1990-05-14 1992-03-11 Mitsubishi Electric Corp 回転体のグラフィック表示方法
JPH04122544A (ja) * 1990-05-14 1992-04-23 Mitsubishi Electric Corp 施盤の切削シミュレーション方法
EP0459761A3 (en) * 1990-05-31 1993-07-14 Hewlett-Packard Company Three dimensional computer graphics employing ray tracking to compute form factors in radiosity
US5253339A (en) * 1990-07-26 1993-10-12 Sun Microsystems, Inc. Method and apparatus for adaptive Phong shading
GB9026232D0 (en) * 1990-12-03 1991-01-16 Ige Medical Systems Image processing system
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
TW225595B (ja) * 1991-09-03 1994-06-21 Gen Electric
US5706415A (en) * 1991-12-20 1998-01-06 Apple Computer, Inc. Method and apparatus for distributed interpolation of pixel shading parameter values
US5388841A (en) * 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
WO1993020529A1 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation System and method for generating 3d color images with simulated light sources
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US6034674A (en) * 1992-06-30 2000-03-07 Discovision Associates Buffer manager
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US5809270A (en) * 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6417859B1 (en) 1992-06-30 2002-07-09 Discovision Associates Method and apparatus for displaying video data
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5784631A (en) 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6067417A (en) * 1992-06-30 2000-05-23 Discovision Associates Picture start token
US6079009A (en) * 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
EP0578950A3 (en) * 1992-07-15 1995-11-22 Ibm Method and apparatus for converting floating-point pixel values to byte pixel values by table lookup
US5357599A (en) * 1992-07-30 1994-10-18 International Business Machines Corporation Method and apparatus for rendering polygons
US5821940A (en) * 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
US5315701A (en) * 1992-08-07 1994-05-24 International Business Machines Corporation Method and system for processing graphics data streams utilizing scalable processing nodes
GB2271257A (en) * 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
TW241196B (ja) * 1993-01-15 1995-02-21 Du Pont
US5606650A (en) * 1993-04-22 1997-02-25 Apple Computer, Inc. Method and apparatus for storage and retrieval of a texture map in a graphics display system
US5402533A (en) * 1993-04-22 1995-03-28 Apple Computer, Inc. Method and apparatus for approximating a signed value between two endpoint values in a three-dimensional image rendering device
IL109462A0 (en) * 1993-04-30 1994-07-31 Scitex Corp Ltd Method for generating artificial shadow
US5583974A (en) * 1993-05-10 1996-12-10 Apple Computer, Inc. Computer graphics system having high performance multiple layer Z-buffer
WO1994027240A1 (en) * 1993-05-10 1994-11-24 Apple Computer, Inc. Computer graphics system having high performance multiple layer z-buffer
US5974189A (en) * 1993-05-24 1999-10-26 Eastman Kodak Company Method and apparatus for modifying electronic image data
DE69418646T2 (de) * 1993-06-04 2000-06-29 Sun Microsystems, Inc. Gleitkommaprozessor für einen hochleistungsfähigen dreidimensionalen Graphikbeschleuniger
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5768629A (en) * 1993-06-24 1998-06-16 Discovision Associates Token-based adaptive video processing arrangement
JPH09501786A (ja) * 1993-08-24 1997-02-18 タリジェント インコーポレイテッド オブジェクト指向シェーディング
US5613052A (en) * 1993-09-02 1997-03-18 International Business Machines Corporation Method and apparatus for clipping and determining color factors for polygons
US5742292A (en) * 1993-10-29 1998-04-21 Kabushiki Kaisha Toshiba System and method for realistically displaying images indicating the effects of lighting on an object in three dimensional space
CA2145379C (en) * 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
CA2145361C (en) * 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
CA2145365C (en) * 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
US5808627A (en) * 1994-04-22 1998-09-15 Apple Computer, Inc. Method and apparatus for increasing the speed of rendering of objects in a display system
GB9417138D0 (en) 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
US5764228A (en) * 1995-03-24 1998-06-09 3Dlabs Inc., Ltd. Graphics pre-processing and rendering system
US5798770A (en) * 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
US5764243A (en) * 1995-03-24 1998-06-09 3Dlabs Inc. Ltd. Rendering architecture with selectable processing of multi-pixel spans
US6025853A (en) * 1995-03-24 2000-02-15 3Dlabs Inc. Ltd. Integrated graphics subsystem with message-passing architecture
US5835096A (en) * 1995-03-24 1998-11-10 3D Labs Rendering system using 3D texture-processing hardware for accelerated 2D rendering
GB9511568D0 (en) * 1995-06-07 1995-08-02 Discovision Ass Signal processing apparatus and method
JPH096424A (ja) * 1995-06-19 1997-01-10 Mitsubishi Electric Corp Cad/cam装置及び加工シミュレーション方法
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
US5739819A (en) * 1996-02-05 1998-04-14 Scitex Corporation Ltd. Method and apparatus for generating an artificial shadow in a two dimensional color image
DE19606357A1 (de) * 1996-02-12 1997-08-14 Gmd Gmbh Bildverarbeitungsverfahren zur Darstellung von spiegelnden Objekten und zugehörige Vorrichtung
JP3226153B2 (ja) * 1996-03-18 2001-11-05 シャープ株式会社 マルチメディアデータ表示装置
US5745125A (en) * 1996-07-02 1998-04-28 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
JP3387750B2 (ja) * 1996-09-02 2003-03-17 株式会社リコー シェーディング処理装置
US5854632A (en) * 1996-10-15 1998-12-29 Real 3D Apparatus and method for simulating specular reflection in a computer graphics/imaging system
US6016149A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
US6014144A (en) * 1998-02-03 2000-01-11 Sun Microsystems, Inc. Rapid computation of local eye vectors in a fixed point lighting unit
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6977649B1 (en) 1998-11-23 2005-12-20 3Dlabs, Inc. Ltd 3D graphics rendering with selective read suspend
US6417858B1 (en) * 1998-12-23 2002-07-09 Microsoft Corporation Processor for geometry transformations and lighting calculations
US6333744B1 (en) * 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages
US6181352B1 (en) 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
WO2001029768A2 (en) 1999-10-18 2001-04-26 S3 Incorporated Multi-stage fixed cycle pipe-lined lighting equation evaluator
US6411301B1 (en) 1999-10-28 2002-06-25 Nintendo Co., Ltd. Graphics system interface
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6452600B1 (en) 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6597357B1 (en) * 1999-12-20 2003-07-22 Microsoft Corporation Method and system for efficiently implementing two sided vertex lighting in hardware
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6664963B1 (en) * 2000-05-31 2003-12-16 Nvidia Corporation System, method and computer program product for programmable shading using pixel shaders
US6724394B1 (en) 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6606689B1 (en) 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6664958B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Z-texturing
US7134960B1 (en) 2000-08-23 2006-11-14 Nintendo Co., Ltd. External interfaces for a 3D graphics system
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
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6609977B1 (en) 2000-08-23 2003-08-26 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6639595B1 (en) 2000-08-23 2003-10-28 Nintendo Co., Ltd. Achromatic lighting in a graphics system and method
US6580430B1 (en) 2000-08-23 2003-06-17 Nintendo Co., Ltd. Method and apparatus for providing improved fog effects in a graphics system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6697074B2 (en) 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
FR2826769B1 (fr) * 2001-06-29 2003-09-05 Thales Sa Procede d'affichage d'informations cartographiques sur ecran d'aeronef
US6781594B2 (en) * 2001-08-21 2004-08-24 Sony Computer Entertainment America Inc. Method for computing the intensity of specularly reflected light
US7003588B1 (en) 2001-08-22 2006-02-21 Nintendo Co., Ltd. Peripheral devices for a video game system
EP1442390B1 (en) * 2001-10-10 2017-09-13 Sony Computer Entertainment America LLC System and method for environment mapping
US7219352B2 (en) 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7451457B2 (en) 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US7308139B2 (en) * 2002-07-12 2007-12-11 Chroma Energy, Inc. Method, system, and apparatus for color representation of seismic data and associated measurements
US7006090B2 (en) * 2003-02-07 2006-02-28 Crytek Gmbh Method and computer program product for lighting a computer graphics image and a computer
US7106326B2 (en) * 2003-03-03 2006-09-12 Sun Microsystems, Inc. System and method for computing filtered shadow estimates using reduced bandwidth
JP2005057738A (ja) * 2003-07-18 2005-03-03 Canon Inc 信号処理装置、信号処理方法及びプログラム
US7139002B2 (en) * 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
US7158668B2 (en) * 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US8133115B2 (en) 2003-10-22 2012-03-13 Sony Computer Entertainment America Llc System and method for recording and displaying a graphical path in a video game
US20060071933A1 (en) 2004-10-06 2006-04-06 Sony Computer Entertainment Inc. Application binary interface for multi-pass shaders
US7636126B2 (en) 2005-06-22 2009-12-22 Sony Computer Entertainment Inc. Delay matching in audio/video systems
US7965859B2 (en) 2006-05-04 2011-06-21 Sony Computer Entertainment Inc. Lighting control of a user environment via a display device
US7880746B2 (en) 2006-05-04 2011-02-01 Sony Computer Entertainment Inc. Bandwidth management through lighting control of a user environment via a display device
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
WO2008060948A2 (en) * 2006-11-10 2008-05-22 Sandbridge Technologies, Inc. Method and system for parallelization of pipelined computations
US8922565B2 (en) * 2007-11-30 2014-12-30 Qualcomm Incorporated System and method for using a secondary processor in a graphics system
US8081019B2 (en) * 2008-11-21 2011-12-20 Flextronics Ap, Llc Variable PFC and grid-tied bus voltage control
US10786736B2 (en) 2010-05-11 2020-09-29 Sony Interactive Entertainment LLC Placement of user information in a game space
US9342817B2 (en) 2011-07-07 2016-05-17 Sony Interactive Entertainment LLC Auto-creating groups for sharing photos
CN105023249B (zh) * 2015-06-26 2017-11-17 清华大学深圳研究生院 基于光场的高光图像修复方法及装置
US11756254B2 (en) 2020-12-08 2023-09-12 Nvidia Corporation Light importance caching using spatial hashing in real-time ray tracing applications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5513582A (en) * 1978-07-13 1980-01-30 Sanyo Electric Co Ltd Color television receiver
US4241341A (en) * 1979-03-05 1980-12-23 Thorson Mark R Apparatus for scan conversion
CA1141468A (en) * 1979-06-15 1983-02-15 Martin J.P. Bolton Visual display apparatus
US4646075A (en) * 1983-11-03 1987-02-24 Robert Bosch Corporation System and method for a data processing pipeline
US4658247A (en) * 1984-07-30 1987-04-14 Cornell Research Foundation, Inc. Pipelined, line buffered real-time color graphics display system
JPH0746391B2 (ja) * 1984-09-14 1995-05-17 株式会社日立製作所 図形シエ−デイング装置
US4819192A (en) * 1985-02-26 1989-04-04 Sony Corporation Method of displaying image
US4737921A (en) * 1985-06-03 1988-04-12 Dynamic Digital Displays, Inc. Three dimensional medical image display system

Also Published As

Publication number Publication date
DE3853336D1 (de) 1995-04-20
DE3853336T2 (de) 1995-09-28
EP0314341A2 (en) 1989-05-03
JPH01163884A (ja) 1989-06-28
EP0314341A3 (en) 1991-07-24
EP0314341B1 (en) 1995-03-15
CA1304824C (en) 1992-07-07
US4866637A (en) 1989-09-12

Similar Documents

Publication Publication Date Title
JPH0731741B2 (ja) 画像情報処理装置と方法
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
US6628290B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
US5185856A (en) Arithmetic and logic processing unit for computer graphics system
US6333744B1 (en) Graphics pipeline including combiner stages
JP2682559B2 (ja) 物体の画像をディスプレイ装置上に表示する装置及び方法並びにコンピュータ・グラフィックス表示システム
US5995111A (en) Image processing apparatus and method
US6624823B2 (en) Graphics system configured to determine triangle orientation by octant identification and slope comparison
US5740343A (en) Texture compositing apparatus and method
US5230039A (en) Texture range controls for improved texture mapping
US6664963B1 (en) System, method and computer program product for programmable shading using pixel shaders
US8223149B2 (en) Cone-culled soft shadows
EP0933729A2 (en) Three-dimensional graphics accelerator
US8169439B2 (en) Scalar precision float implementation on the “W” lane of vector unit
US20040061700A1 (en) Image processing apparatus and method of same
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
US20090106526A1 (en) Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing
Bimber et al. Compensating indirect scattering for immersive and semi-immersive projection displays
US9495724B2 (en) Single precision vector permute immediate with “word” vector write mask
US7133052B1 (en) Morph map based simulated real-time rendering
US20030076320A1 (en) Programmable per-pixel shader with lighting support
US9064336B2 (en) Multiple texture compositing
US7116333B1 (en) Data retrieval method and system
US6483504B1 (en) Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US5623527A (en) Method and apparatus for determining an integer power of a floating point number