JP3387750B2 - シェーディング処理装置 - Google Patents
シェーディング処理装置Info
- Publication number
- JP3387750B2 JP3387750B2 JP23202096A JP23202096A JP3387750B2 JP 3387750 B2 JP3387750 B2 JP 3387750B2 JP 23202096 A JP23202096 A JP 23202096A JP 23202096 A JP23202096 A JP 23202096A JP 3387750 B2 JP3387750 B2 JP 3387750B2
- Authority
- JP
- Japan
- Prior art keywords
- light source
- value
- vector
- source vector
- register
- 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 - Fee Related
Links
- 239000013598 vector Substances 0.000 claims description 140
- 238000010586 diagram Methods 0.000 description 25
- 238000001514 detection method Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 3
- 101100388212 Arabidopsis thaliana DSP3 gene Proteins 0.000 description 2
- 101100141323 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RNR2 gene Proteins 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
よる画像生成に関し、CRT画面などにシェーディング
処理して画像を表示するシェーディング処理装置に関す
る。 【0002】 【従来の技術】コンピュータグラフィックスの分野にお
いては、立体を構成する各面に対して、光源位置や周囲
環境条件によりポリゴンに陰影(シェーディング)を付
加し、より現実的な立体の表現が試みられている。 【0003】従来、リアルタイムにコンピュータグラフ
ィックスのシェーディング、ライティング処理を行うも
のとして、平行光源によるシェーディング処理が演算処
理量が少ないため、良く使用されている。平行光源を用
い、シェーディング処理演算を高速に行うシェーディン
グ処理方法が特開昭61−103277号公報、特開昭
62−204386号公報等に開示されている。 【0004】従来、リアルタイムのコンピュータグラフ
ィックス処理装置は、デジタル・シグナル・プロセッサ
(DSP)などで実現するソフトウェアで行われること
が多い。しかしながら、点光源やスポットライトなどの
ような多くの演算を必要とする処理は、DSPなどで実
現するソフトウェアではかなりの時間を必要としてい
た。 【0005】特に、点光源を用いたシェーディング処理
においては、ポリゴン端点と点光源からの正規化された
単位光ベクトルを求めるときに、下記数1に示すよう
に、光ベクトルを正規化するためのルート演算が必要で
ある。このルート演算は多くの演算時間を必要とする。 【0006】 【数1】 DX=LPX−PX …(1) LNX=DX/{(DX)2+(DY)2+(DZ)2}1/2 …(2) DY=LPY−PY …(3) LNY=DY/{(DX)2+(DY)2+(DZ)2}1/2 …(4) DZ=LPZ−PZ …(5) LNZ=DZ/{(DX)2+(DY)2+(DZ)2}1/2 …(6) 【0007】ここで、DXは光ベクトルのX値、PXは
ポリゴン端点のXアドレス値、LPXは点光源のXアド
レス値、LNXは正規化された光ベクトルのX値、DY
は光ベクトルのY値、PYはポリゴン端点のYアドレス
値、LPYは点光源のYアドレス値、LNYは正規化さ
れた光ベクトルのY値、DZは光ベクトルのZ値、PZ
はポリゴン端点のZアドレス値、LPZは点光源のZア
ドレス値、LNZは正規化された光ベクトルのZ値であ
る。 【0008】 【発明が解決しようとする課題】上記した数1に示すル
ート演算処理をハードウェアで構成する場合には、基本
的に多くのハードウェアを必要とする。 【0009】ところで、通常フルカラーではR,G,B
各8ビットの精度で十分であり、シェーディング処理に
おいては、あまり多くの精度を必要にしていない。 【0010】この発明は、上述した従来の問題点に鑑み
なされたものにして、光源ベクトルのビット長を情報量
をあまり削らずに減らし、正規化された光源ベクトルを
小さい演算装置で可能にし、高速でハードウェアの小さ
いシェーディング処理装置を提供することを目的とす
る。 【0011】 【課題を解決するための手段】この発明は、光源座標と
ポリゴン端点座標から点光源の正規化された光源ベクト
ルを求める光源ベクトル生成手段と、この光源ベクトル
生成手段により算出した光源ベクトルとポリゴンの法線
ベクトルとの内積に拡散反射の係数を掛けて拡散反射に
よる光強さを求める拡散反射手段と、この拡散反射処理
手段からの拡散反射係数と視線ベクトルに基づき鏡面反
射係数を求める鏡面反射処理手段と、拡散反射処理手段
で求めた拡散反射係数と鏡面反射処理手段で求めた鏡面
反射係数から光強度を求めポリゴン面または端点のシェ
ーディングされた色情報を算出するシェーディング処理
装置であって、前記光源ベクトル生成手段は、光源座標
の座標値とポリゴン端点座標の座標値との差分値を取り
正規化されていない光源ベクトルの各成分の値を求める
手段と、求めた光源ベクトルの各成分の値のMSB側か
ら”1”が現れるまでの”0”値をカウントする手段
と、このカウント手段により求めた”0”のカウント値
の最小値を求める最小値算出手段と、この最小値算出手
段により求めた最小値により光源ベクトルの各成分の値
をシフトするシフト手段と、このシフト手段によりシフ
トされた光源ベクトルの各成分の値から所定の上位ビッ
トを取りビット長を縮小するビット長縮小化手段と、こ
の縮小化された光源ベクトルを用いて光源ベクトルを正
規化する正規化手段と、を備えたことを特徴とする。 【0012】 【0013】上記したように、ビット長を小さくして且
つ高品質の点光源/スポットライトなどの処理を行うた
めに、ビット長縮小化手段を使用することにより、ビッ
ト長の小さいルート演算装置により、高速でハードウェ
アの小さいシェーディング処理装置を提供することがで
きる。 【0014】 【発明の実施の形態】以下、この発明の実施の形態につ
き図面を参照して説明する。図1は、この発明のシェー
ディング処理装置を備えた画像描画装置の全体構成を示
すブロック図である。 【0015】この画像描画装置は、CPU1がメインメ
モリ2に格納されたプログラムに基づき全体を制御す
る。CPU1と各ブロックとはバス8にて接続されてい
る。幾何変換/シェーディング処理装置3はリアルタイ
ムのコンピュータグラフィックス処理に必要な視点の座
標とオブジェクト座標とそのオブジェクトを構成するポ
リゴンの端点座標と視線の方向からスクリーン面に投影
される2次元のポリゴンの座標を求める幾何変換処理
と、光源座標とその光源の種類(点光源、平行光源、ス
ポットライトなど)とオブジェクトの座標とそのオブジ
ェクトを構成するポリゴン端点の座標とポリゴン端点の
持つ法線ベクトルなどからポリゴン面やポリゴン端点の
輝度を求めるシェーディング処理を行う。この幾何変換
/シェーディング処理装置3の演算に用いる各座標等の
データはメモリ2に格納されている。 【0016】幾何変換/シェーディング処理装置3にて
演算されたポリゴン端点の2次元X,Y座標とR,G,
B値は描画処理装置4に与えられる。描画処理装置4は
受け取ったポリゴン端点の2次元X,Y座標とR,G,
B値などからCRT6に描画するポリゴンの画像データ
を演算で求め、求めた画像データをフレームメモリ5に
書き込む。この実施の形態においては、アナログスティ
ックなど人の操作をCPU1へ伝えるマンマシンインタ
ーフェース7が設けられている。 【0017】図2は、幾何変換/シェーディング処理装
置3を、DSP3aとシェーディング処理装置3bで構
成し、幾何変換とシェーディングパラメータ生成をセッ
トで行うものである。この図2に示す装置においては、
シェーディング処理として光源ベクトル生成はDSP3
aの演算では処理時間がかかるため、シェーディング処
理装置3bとして別装置としている。シェーディング処
理装置3b及び光源ベクトル生成装置については図3及
び図4に詳しく説明する。 【0018】図3はシェーディング処理装置のブロック
図である。DSP3aより光源座標とポリゴン端点座標
が光源ベクトル生成装置30に与えられる。この光源ベ
クトル生成装置30は光源座標とポリゴン端点座標から
点光源の正規化された光源ベクトルを求める。求めた光
源ベクトルは拡散反射処理装置40に与えられる。拡散
反射処理装置40は、ポリゴンの法線ベクトルと光源ベ
クトルとの内積を求めることにより拡散反射の係数を求
める。 【0019】拡散反射処理装置40で求めた内積値が鏡
面反射処理装置50及びRGB生成装置60に与えられ
る。鏡面反射処理装置50は、拡散反射処理装置40か
らの内積値とポリゴンの法線ベクトルによりポリゴン面
またはポリゴン端点の反射ベクトルを求め、さらに光源
ベクトルとの減算により鏡面反射の視線ベクトルと反射
光の内積値を求めて鏡面反射係数を求め、RGB生成装
置60に与える。以上の演算は図11に示すような視野
座標上で行っているため、視線ベクトルはX,Y,Z=
0,0,1と決まっているため、この実施の形態におけ
る鏡面反射処理装置50は簡略化している。 【0020】RGB生成装置60は、拡散反射処理装置
40で求めた光源ベクトルとボリゴンの法線ベクトルの
内積にR,G,B成分の拡散反射係数をそれぞれ乗算
し、各R,G,Bの拡散反射値を求める。更にRGB生
成装置60は鏡面反射処理装置50で求めた光源反射ベ
クトルと視線ベクトルとの内積にRGB成分の鏡面反射
係数をそれぞれ乗算し、各R,G,Bの鏡面反射値を求
め、光源の属性がスポットライトであれば図12に示す
ようにスポットライトのスポットライトベクトルと光源
ベクトルとの内積を求め、スポットライトの光強度と
し、各R,G,Bの拡散反射値と鏡面反射値を加えたも
のにこの光強度をそれぞれ乗算し、且つR,G,Bの環
境光を加算したものをそのポリゴン面または端点のR,
G,B色として求める。 【0021】図4は光源ベクトル生成装置を示すブロッ
ク図である。DSP3aより与えられた図12に示すよ
うな光源座標(LPX,LPY,LPZ)の座標値とポ
リゴン端点座標(PX,PY,PZ)の座標値を光源座
標−ポリゴン座標差分演算装置31で差分値を取り、数
1で示すように、正規化されていない光源ベクトル(D
X,DY、DZ)を求め、この光源ベクトル(DX,D
Y、DZ)をbit(ビット)長縮小化装置34に与え
る。 【0022】bit(ビット)長縮小化装置34は、図
13に示すように、光源座標−ポリゴン座標差分演算装
置31で求めた正規化されていない光源ベクトルのX,
Y,Z成分のMSB側から”1”が現れるまでの”0”
値をカウントし、その最小値を求める。この実施の形態
では、同図(a)に示すように、”0”検出がXが7、
Yが5、Zが10であるので、この場合は最小値は5で
ある。この最小値から1つ少なくした分だけシフトす
る。この実施の形態では同図(b)に示すように、(5
−1)bit(ビット)シフトさせる。そして、上位8
ビットのみ取り、16ビットの光源ベクトルの情報量を
8ビットに縮小化する。このように8ビット化すること
により、光源ベクトルの情報量をあまり削らずにビット
長を縮小化することができる。 【0023】この縮小化された光源ベクトルを用いて正
規化装置36にて、数1に基づき光源ベクトルを正規化
する。即ち、bit(ビット)長縮小化装置34で求め
たビット長の縮小されたX,Y,Zの光源ベクトル値を
2乗し、加算した後、平方根演算を行い、その値により
除算することにより正規化された光源ベクトル(LN
X,LNY,LNZ)が算出される。 【0024】次に、光源ベクトル生成装置30の各装置
の具体例を図5ないし図7に従い説明する。 【0025】図5は、光源座標−ポリゴン端点座標差分
演算装置31の具体的回路を示す回路図である。DSP
3aより光源点座標(LPX,LPY,LPZ)が与え
られ、レジスタ311に光源点座標のXアドレス値(L
PX)が、レジスタ312に光源点座標のYアドレス値
(LPY)が、レジスタ313に光源点座標のZアドレ
ス値(LPZ)がそれぞれ格納される。また、DSP3
aよりポリゴン端点座標(PX,PY,PZ)が与えら
れ、レジスタ314にポリゴン端点座標のXアドレス値
(PX)が、レジスタ315にポリゴン端点座標のYア
ドレス値(PY)が、レジスタ316にポリゴン端点座
標のZアドレス値(PZ)がそれぞれ格納される。 【0026】レジスタ311に格納された光源点座標の
Xアドレス値(LPX)とレジスタ314に格納された
ポリゴン端点座標のXアドレス値(PX)とが減算器3
17に与えられ、この減算器317にて光源座標とポリ
ゴン端点座標の差分値の演算、即ち、LPX−PXの演
算が行われ、この演算結果である正規化されていないX
方向の光ベクトル値(DX)をレジスタ320に格納す
る。また、レジスタ312に格納された光源点座標のY
アドレス値(LPY)とレジスタ315に格納されたポ
リゴン端点座標のYアドレス値(PY)とが減算器31
8に与えられ、この減算器318にて光源座標とポリゴ
ン端点座標の差分値、即ち、LPY−PYの演算が行わ
れ、この演算結果である正規化されていないY方向の光
ベクトル値(DY)をレジスタ321に格納する。更
に、レジスタ313に格納された光源点座標のZアドレ
ス値(LPZ)とレジスタ316に格納されたポリゴン
端点座標のZアドレス値(PZ)とが減算器319に与
えられ、この減算器319にて光源座標とポリゴン端点
座標の差分値、即ち、LPZ−PZの演算が行われ、こ
の演算結果である正規化されていないZ方向の光ベクト
ル値(DZ)をレジスタ322に格納する。レジスタ3
20、321、322に格納された正規化されていない
光源ベクトル値(DX,DY,DZ)はbit(ビッ
ト)長縮小化装置34へ与えられる。 【0027】図6は、bit(ビット)長縮小化装置3
4の具体的回路を示す回路図である。光源座標−ポリゴ
ン端点座標差分演算装置31から与えられた正規化され
ていない光源ベクトル値(DX,DY,DZ)はレジス
タ341、342、343にそれぞれ与えられる。レジ
スタ341に格納されたX方向の光源ベクトル値(D
X)は正数化回路344に与えられる。この正数化回路
344はレジスタ341に格納された光源ベクトル値
(DX)が負であれば正に変換し、その値をZER
O(”0”)検出回路347及びマルチプレクサ350
に与える。図13(a)に示すように、ZERO検出回
路347ではMSBから”1”が表れるまでの”0”の
値をカウントし、その数を最小値(MIN)検出回路3
51に与える。 【0028】また、レジスタ342に格納されたY方向
の光源ベクトル値(DY)は正数化回路345に与えら
れる。この正数化回路345はレジスタ342に格納さ
れた光源ベクトル値(DY)が負であれば正に変換し、
その値をZERO(”0”)検出回路348及びマルチ
プレクサ350に与える。図13(a)に示すように、
ZERO検出回路348ではMSBから”1”が表れる
までの”0”の値をカウントし、その数を最小値(MI
N)検出回路351に与える。 【0029】更に、レジスタ343に格納されたZ方向
の光源ベクトル値(DZ)は正数化回路346に与えら
れる。この正数化回路346はレジスタ343に格納さ
れた光源ベクトル値(DZ)が負であれば正に変換し、
その値をZERO(”0”)検出回路349及びマルチ
プレクサ350に与える。図13(a)に示すように、
ZERO検出回路349ではMSBから”1”が表れる
までの”0”の値をカウントし、その数を最小値(MI
N)検出回路351に与える。 【0030】MIN値検出回路351はZERO検出回
路347、348、349の出力する値から最小値を求
め、シフター352にその値を送る。シフター352
は、図13(b)に示すように、MIN値検出回路35
1から受けた値だけ、マルチプレクサ350から与えら
れる光源ベクトル値(DX,DY,DZ)をシフトし、
レジスタ353、354、355に与える。このレジス
タ353,354,355は、図13(c)に示すよう
に、この実施の形態では8ビットのレジスタであり、マ
ルチプレクサ350から与えられるシフトされた光源ベ
クトルの上位8ビットのみ取り込み、ビット長が縮小さ
れた光源ベクトル(DX,DY,DZ)がレジスタ35
3,354,355に格納する。このように、このbi
t(ビット)長縮小化回路34にて、16ビットのビッ
ト長が8ビットに縮小される。この縮小化された光源ベ
クトル(DX,DY,DZ)が正規化装置36に送られ
る。 【0031】図7は、正規化装置36の具体的回路を示
す回路図である。bit(ビット)長縮小化装置34に
て縮小化された光源ベクトル(DX,DY,DZ)が2
乗演算装置361、362、363及びマルチプレクサ
366に与えられる。2乗演算装置361では、縮小化
された光源ベクトル(DX)を2乗すると共に、その値
を加算演算装置364に与え、2乗演算装置362で
は、縮小化された光源ベクトル(DY)を2乗すると共
に、その値を加算演算装置364に与え、2乗演算装置
363では、縮小化された光源ベクトル(DZ)を2乗
すると共に、その値を加算演算装置364に与える。加
算演算装置364では、(DX)2+(DY)2+(D
Z)2の加算演算が行われ、この値が平方根処理装置3
65に与えられる。平方根処理装置365では、{(D
X)2+(DY)2+(DZ)2}の平方根が取られ、こ
の値が除算器365の一方に与えられる。除算器367
の他方にはマルチプレクサ366を介してDX,DY,
DZが与えられ、この除算器367にて、LNX=DX
/{(DX)2+(DY)2+(DZ)2}1/2 、LNY
=DY/{(DX)2+(DY)2+(DZ)2}1/2、L
NZ=DZ/{(DX) 2+(DY)2+(D
Z)2}1/2)の演算が行われ、正規化された光源ベクト
ル値(LNX,LNY,LNZ)がレジスタ368、3
69、370に格納され、格納された光源ベクトル値
(LNX,LNY,LNZ)が拡散反射処理装置40に
与えられる。 【0032】この正規化装置36は、bit(ビット)
長縮小化回路34で16ビットのビット長を8ビットに
縮小しているので、18ビット長の演算装置で構成でき
る。これに対して、16ビットのままのデータであれ
ば、35ビット長の演算になり演算回路が大型化する。 【0033】図8は、拡散反射処理装置40の具体的回
路を示す回路図である。正規化装置36から送られてき
た正規化された光源ベクトル値(LNX,LNY,LN
Z)レジスタ401、402、403に格納される。そ
して、ポリゴン端点の法線ベクトル(NX,NY,N
Z)がレジスタ404、405、406にそれぞれ格納
される。レジスタ401に格納された光源ベクトルのX
値(LNX)とレジスタ404に格納された法線ベクト
ルのX値(NX)が乗算器407に与えられ、この乗算
器407で乗算した値が加算器410に与えられる。ま
た、レジスタ402に格納された光源ベクトルのY値
(LNY)とレジスタ405に格納された法線ベクトル
のY値(NY)が乗算器408に与えられ、この乗算器
408で乗算した値が加算器410に与えられる。更
に、レジスタ403に格納された光源ベクトルのZ値
(LNZ)とレジスタ406に格納された法線ベクトル
のZ値(NZ)が乗算器409に与えられ、この乗算器
409で乗算した値が加算器410に与えられる。この
乗算器407、408、409と加算器410により光
源ベクトルとポリゴン端点の法線ベクトルの内積が求め
られ、この内積値がレジスタ411に格納され、RGB
生成装置60及び鏡面反射処理装置50に与えられる。 【0034】図9は、鏡面反射処理装置50の具体的回
路を示す回路図である。拡散反射処理装置40より与え
られた光源ベクトルとポリゴン端点の法線ベクトルの内
積値(INNER)がレジスタ501に格納され、ポリ
ゴン端点の法線ベクトルのZ値(NZ)がレジスタ50
2に格納される。レジスタ501に格納された内積値
(INNER)とレジスタ502に格納された法線ベク
トルのZ値(NZ)が乗算器503に与えられる。この
乗算器503にて、内積値(INNER)と法線ベクト
ルのZ値(NZ)が乗算され、その値が演算器504に
与えられる。この演算器504は×2演算器であり、ポ
リゴンの端点の光の反射ベクトルのZ値を算出する。こ
の算出されたZ値は減算器506の一方に与えられる。
減算器506の他方には、レジスタ505に格納された
光源ベクトルのZ値(LNZ)が与えられ、この減算器
506にて、減算することにより、鏡面反射の視線ベク
トルと反射光の内積値(INNER2)が求められ、こ
の値がレジスタ507に格納され、RGB生成装置60
に与えられる。 【0035】図10は、RGB生成装置60の具体的回
路を示す回路図である。光源ベクトル生成装置からの正
規化された光源ベクトル(LNX,LNY,LNZ)が
レジスタ601、602、603にそれぞれ格納され
る。スポットライトベクトル(SPNX,SPNY,S
PNZ)がレジスタ604、605、606にそれぞれ
格納される。レジスタ601に格納された光源ベクトル
のX値(LNX)とレジスタ604に格納されたスポッ
トライトベクトルのX値(SPNX)が乗算器607に
与えられ、両者の乗算結果が加算器610に与えられ
る。また、レジスタ602に格納された光源ベクトルの
Y値(LNY)とレジスタ605に格納されたスポット
ライトベクトルのY値(SPNY)が乗算器608に与
えられ、両者の乗算結果が加算器610に与えられる。
レジスタ603に格納された光源ベクトルのZ値(LN
Z)とレジスタ606に格納されたスポットライトベク
トルのZ値(SPNZ)が乗算器609に与えられ、両
者の乗算結果が加算器610に与えられる。この乗算器
607、608、609及び加算器610により、光源
ベクトルとスポットライトベクトルの内積値が算出さ
れ、その値が乗算器612の一方に与えられる。乗算器
612の他方にはレジスタ611に格納されたスポット
ライトの光の強度が与えられる。このレジスタ611に
与えられた光の強度はマルチプレクサ613にも与えら
れる。 【0036】乗算器612では、スポットライト光の強
度と、図12に示すように、スポットライトベクトルと
光源ベクトルとの内積の乗算から光源ベクトルの強度を
求め、この値をマルチプレクサ613に与える。マルチ
プレクサ613は光の属性がスポットライトか否かによ
り切り替える。スポットライトの時には乗算器612か
らの出力をスポットライトでないときにはレジスタ61
1からの出力を選択し、乗算器631に与える。 【0037】拡散反射処理装置からのポリゴン端点の法
線ベクトルと光ベクトルとの内積値(INNER)がレ
ジスタ614に格納され、各RGBの拡散反射係数(D
IFR,DIFG,DIFB)がレジスタ615,61
6,617にそれぞれ格納される。レジスタ614に格
納された内積値(INNER)は乗算器619の一方に
与えられる。レジスタ615,616,617にそれぞ
れ格納された各RGBの拡散反射係数(DIFR,DI
FG,DIFB)はマルチプレクサ618に与えられ、
マルチプレクサ618は各RGBの拡散反射係数(DI
FR,DIFG,DIFB)を切り替えて乗算器619
の他方に与える。乗算器619は各RGBの拡散反射値
を演算し、その演算結果を加算器626に与える。 【0038】鏡面反射処理装置からの反射光と視線ベク
トルとの内積値(INNER2)がレジスタ620に格
納され、各RGBの鏡面反射係数(SPR,SPG,S
PB)がレジスタ621,622,623にそれぞれ格
納される。レジスタ620に格納された内積値(INN
ER2)は乗算器625の一方に与えられる。レジスタ
621,622,623にそれぞれ格納された各RGB
の鏡面反射係数(SPR,SPG,SPB)はマルチプ
レクサ624に与えられ、マルチプレクサ624は各R
GBの鏡面反射係数(SPR,SPG,SPB)を切り
替えて乗算器625の他方に与える。乗算器625は各
RGBの鏡面反射値を演算し、その演算結果を加算器6
26に与える。加算器626は拡散反射値と鏡面反射値
とを加算し、その値を乗算器631に与える。乗算器6
31にて拡散反射値と鏡面反射値との加算値に光強度を
乗算し、その値を加算器632に与える。 【0039】一方、RGBの各環境光強度(AMR,A
MG,AMB)はレジスタ627、628、629に格
納される。レジスタ627、628、629に格納され
た各環境光強度(AMR,AMG,AMB)はマルチプ
レクサ630により切り替えられて加算器632に与え
られる。 【0040】加算器632は拡散反射値と鏡面反射値と
の加算値に光強度を乗算した値とマルチプレクサ630
により切り替えられたRGBの各環境光強度(AMR,
AMG,AMB)とが加算され、その値がマルチプレク
サ633に与えられる。マルチプレクサ633はシェー
ディングされたRGBを切り替え、R値をレジスタ63
4に与え、G値をレジスタ635に与え、B値をレジス
タ636に与えてRGBの生成を行い、その値を描画処
理装置4に与える。 【0041】このようにして、RGB値のシェーディン
グ処理を従来ソフトウェア等で行われていたものを、光
源ベクトル生成装置のビット長縮小化装置を使用するこ
とにより、小さいハードウェア量で高速な点光源処理と
スポットライト処理を行うことができる。 【0042】上記した実施の形態においては、シェーデ
ィングしたRGB値を算出しているが、RGBを算出す
る変わりにシェーディングした輝度値を求めるように構
成することもできる。 【0043】この場合には、RGB生成装置の変わりに
輝度値生成装置によりシェーディング処理を行えばよ
い。図14に輝度値生成装置の具体的回路図を示し、そ
の構成につき説明する。光源ベクトル生成装置からの正
規化された光源ベクトル(LNX,LNY,LNZ)が
レジスタ601、602、603にそれぞれ格納され
る。スポットライトベクトル(SPNX,SPNY,S
PNZ)がレジスタ604、605、606にそれぞれ
格納される。レジスタ601に格納された光源ベクトル
のX値(LNX)とレジスタ604に格納されたスポッ
トライトベクトルのX値(SPNX)が乗算器607に
与えられ、両者の乗算結果が加算器610に与えられ
る。また、レジスタ602に格納された光源ベクトルの
Y値(LNY)とレジスタ605に格納されたスポット
ライトベクトルのY値(SPNY)が乗算器608に与
えられ、両者の乗算結果が加算器610に与えられる。
レジスタ603に格納された光源ベクトルのZ値(LN
Z)とレジスタ606に格納されたスポットライトベク
トルのZ値(SPNZ)が乗算器609に与えられ、両
者の乗算結果が加算器610に与えられる。この乗算器
607、608、609及び加算器610により、光源
ベクトルとスポットライトベクトルの内積値が算出さ
れ、その値が乗算器612の一方に与えられる。乗算器
612の他方にはレジスタ611に格納されたスポット
ライトの光の強度が与えられる。このレジスタ611に
与えられた光の強度はマルチプレクサ613にも与えら
れる。 【0044】乗算器612では、スポットライト光の強
度と、図13に示すように、スポットライトと光線ベク
トルのcosθの関係から光源ベクトルの強度を求め、
この値をマルチプレクサ613に与える。マルチプレク
サ613は光の属性がスポットライトか否かにより切り
替える。スポットライトの時には乗算器612からの出
力をスポットライトでないときにはレジスタ611から
の出力を選択し、乗算器631に与える。 【0045】拡散反射処理装置からのポリゴン端点の法
線ベクトルと光ベクトルとの内積値(INNER)がレ
ジスタ614に格納され、輝度値Iの拡散反射係数(D
IFI)がレジスタ615aに格納される。レジスタ6
14に格納された内積値(INNER)は乗算器619
の一方に与えられる。レジスタ615aに格納された輝
度値Iの拡散反射係数(DIFI)は乗算器619の他
方に与える。乗算器619は輝度値Iの拡散反射値を演
算し、その演算結果を加算器626に与える。 【0046】鏡面反射処理装置からの反射光と視線ベク
トルとの内積値(INNER2)がレジスタ620に格
納され、輝度値Iの鏡面反射係数(SPI)がレジスタ
621aに格納される。レジスタ620に格納された内
積値(INNER2)は乗算器625の一方に与えられ
る。レジスタ621aに格納された輝度値Iの鏡面反射
係数(SPI)は乗算器625の他方に与える。乗算器
625は輝度値Iの鏡面反射値を演算し、その演算結果
を加算器626に与える。加算器626は拡散反射値と
鏡面反射値とを加算し、その値を乗算器631に与え
る。乗算器631にて拡散反射値と鏡面反射値との加算
値に光強度を乗算し、その値を加算器632に与える。 【0047】一方、輝度値Iの各環境光強度(AMI)
はレジスタ627aに格納される。レジスタ627aに
格納された各環境光強度(AMI)は加算器632に与
えられる。 【0048】加算器632は拡散反射値と鏡面反射値と
の加算値に光強度を乗算した値と輝度値Iの環境光強度
(AMI)とが加算され、その値がレジスタ640に与
られ、その値を描画処理装置4に与える。 【0049】このようにして、輝度値のシェーディング
処理を従来ソフトウェア等で行われていたものを、光源
ベクトル生成装置のビット長縮小化装置を使用すること
により、小さいハードウェア量で高速な点光源処理とス
ポットライト処理を行うことができる。 【0050】 【発明の効果】以上説明したように、この発明は、ビッ
ト長を小さくして且つ高品質の点光源/スポットライト
などの処理を行うために、ビット長縮小化手段を使用す
ることにより、ビット長の小さいルート演算装置によ
り、高速でハードウェアの小さいシェーディング処理装
置を提供することができる。
像描画装置の全体構成を示すブロック図である。 【図2】この発明のシェーディング処理装置を備えた画
像描画装置の全体構成を示し、幾何変換/シェーディン
グ処理装置を、DSPとシェーディング処理装置で構成
した画像描画装置のブロック図である。 【図3】図2に示すシェーディング処理装置のブロック
図である。 【図4】この発明の光源ベクトル生成装置を示すブロッ
ク図である。 【図5】この発明の光源ベクトル生成装置における光源
座標−ポリゴン端点座標差分演算装置の具体的回路を示
す回路図である。 【図6】この発明の光源ベクトル生成装置におけるbi
t(ビット)長縮小化装置の具体的回路を示す回路図で
ある。 【図7】この発明の光源ベクトル生成装置における正規
化装置の具体的回路を示す回路図である。 【図8】この発明のシェーディング処理装置における拡
散反射処理装置の具体的回路を示す回路図である。 【図9】この発明のシェーディング処理装置における鏡
面反射処理装置の具体的回路を示す回路図である。 【図10】この発明のシェーディング処理装置における
RGB生成装置の具体的回路を示す回路図である。 【図11】この発明が適用される視野座標を示す模式図
である。 【図12】光源点、光源ベクトル、スポットライト及び
ポリゴン端点の関係を示す図である。 【図13】この発明の(bit)ビット長縮小化装置の
動作を示す模式図である。 【図14】この発明のシェーディング処理装置における
輝度値生成装置の具体的回路を示す回路図である。 【符号の説明】 1 CPU 2 メインメモリ 3 幾何変換/シェーディング処理装置 4 描画処理装置 5 フレームメモリ 6 CRT 30 光源ベクトル生成装置 40 拡散反射処理装置 50 鏡面反射処理装置 60 RGB生成装置 31 光源座標−ポリゴン端点座標差分演算装置 34 bit(ビット)長縮小化装置 36 正規化装置
Claims (1)
- (57)【特許請求の範囲】 【請求項1】 光源座標とポリゴン端点座標から点光源
の正規化された光源ベクトルを求める光源ベクトル生成
手段と、この光源ベクトル生成手段により算出した光源
ベクトルとポリゴンの法線ベクトルとの内積に拡散反射
の係数を掛けて拡散反射による光強さを求める拡散反射
手段と、この拡散反射処理手段からの拡散反射係数と視
線ベクトルに基づき鏡面反射係数を求める鏡面反射処理
手段と、拡散反射処理手段で求めた拡散反射係数と鏡面
反射処理手段で求めた鏡面反射係数から光強度を求めポ
リゴン面または端点のシェーディングされた色情報を算
出するシェーディング処理装置であって、 前記光源ベクトル生成手段は、光源座標の座標値とポリ
ゴン端点座標の座標値との差分値を取り正規化されてい
ない光源ベクトルの各成分の値を求める手段と、求めた
光源ベクトルの各成分の値のMSB側から”1”が現れ
るまでの”0”値をカウントする手段と、このカウント
手段により求めた”0”のカウント値の最小値を求める
最小値算出手段と、この最小値算出手段により求めた最
小値により光源ベクトルの各成分の値をシフトするシフ
ト手段と、このシフト手段によりシフトされた光源ベク
トルの各成分の値から所定の上位ビットを取りビット長
を縮小するビット長縮小化手段と、この縮小化された光
源ベクトルを用いて光源ベクトルを正規化する正規化手
段と、を備えたことを特徴とするシェーディング処理装
置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23202096A JP3387750B2 (ja) | 1996-09-02 | 1996-09-02 | シェーディング処理装置 |
US08/919,304 US6081274A (en) | 1996-09-02 | 1997-08-28 | Shading processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23202096A JP3387750B2 (ja) | 1996-09-02 | 1996-09-02 | シェーディング処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1079046A JPH1079046A (ja) | 1998-03-24 |
JP3387750B2 true JP3387750B2 (ja) | 2003-03-17 |
Family
ID=16932709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23202096A Expired - Fee Related JP3387750B2 (ja) | 1996-09-02 | 1996-09-02 | シェーディング処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6081274A (ja) |
JP (1) | JP3387750B2 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999026201A1 (en) * | 1997-11-14 | 1999-05-27 | Koninklijke Philips Electronics N.V. | Computer graphics bump mapping method and device |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
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 |
US20030063383A1 (en) * | 2000-02-03 | 2003-04-03 | Costales Bryan L. | Software out-of-focus 3D method, system, and apparatus |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
JP4443012B2 (ja) | 2000-07-27 | 2010-03-31 | 株式会社バンダイナムコゲームス | 画像生成装置、方法および記録媒体 |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US7576748B2 (en) | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
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 |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
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 |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6825851B1 (en) | 2000-08-23 | 2004-11-30 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
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 |
US6781594B2 (en) * | 2001-08-21 | 2004-08-24 | Sony Computer Entertainment America Inc. | Method for computing the intensity of specularly reflected light |
AU2002335799A1 (en) * | 2001-10-10 | 2003-04-22 | Sony Computer Entertainment America Inc. | System and method for environment mapping |
US7459098B2 (en) * | 2002-08-28 | 2008-12-02 | Kyocera Corporation | Dry etching apparatus, dry etching method, and plate and tray used therein |
JP4133369B2 (ja) * | 2003-01-27 | 2008-08-13 | 株式会社リコー | 画像処理装置、方法及びプログラム |
JP4313130B2 (ja) * | 2003-09-18 | 2009-08-12 | 株式会社リコー | 画像形成装置、画像形成方法、およびその方法をコンピュータで実行するプログラム |
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 |
JP4400401B2 (ja) * | 2004-09-30 | 2010-01-20 | セイコーエプソン株式会社 | 電気光学装置とその駆動方法及び電子機器 |
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 |
US9563980B2 (en) * | 2005-11-18 | 2017-02-07 | Autodesk, Inc. | Grip manipulatable shadows in 3D models |
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 |
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 |
JP2013084224A (ja) | 2011-10-12 | 2013-05-09 | Ricoh Co Ltd | 画像処理装置 |
JP5862267B2 (ja) | 2011-12-14 | 2016-02-16 | 株式会社リコー | 画像処理装置および画像処理方法、ならびに、画像形成装置 |
JP6221637B2 (ja) | 2013-02-19 | 2017-11-01 | 株式会社リコー | 画像処理装置および画像処理方法、ならびに、画像形成装置 |
JP6252225B2 (ja) | 2014-02-17 | 2017-12-27 | 株式会社リコー | 画像処理装置、画像処理方法及び画像形成装置 |
US10255323B1 (en) | 2015-08-31 | 2019-04-09 | Google Llc | Quantization-based fast inner product search |
JP6821924B2 (ja) | 2016-03-02 | 2021-01-27 | 株式会社リコー | 画像処理装置、画像処理方法 |
US10719509B2 (en) * | 2016-10-11 | 2020-07-21 | Google Llc | Hierarchical quantization for fast inner product search |
JP7040058B2 (ja) | 2018-01-31 | 2022-03-23 | 株式会社リコー | 符号化装置 |
US11392596B2 (en) | 2018-05-14 | 2022-07-19 | Google Llc | Efficient inner product operations |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4646075A (en) * | 1983-11-03 | 1987-02-24 | Robert Bosch Corporation | System and method for a data processing pipeline |
US4808988A (en) * | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
JPH0746391B2 (ja) * | 1984-09-14 | 1995-05-17 | 株式会社日立製作所 | 図形シエ−デイング装置 |
JPS61103277A (ja) * | 1984-10-26 | 1986-05-21 | Hitachi Ltd | 図形シエ−デイング装置 |
JPH0814854B2 (ja) * | 1985-10-11 | 1996-02-14 | 株式会社日立製作所 | 三次元図形表示装置 |
JPH0772915B2 (ja) * | 1986-03-05 | 1995-08-02 | 株式会社日立製作所 | 図形シェーディング装置 |
US5063375A (en) * | 1987-07-27 | 1991-11-05 | Sun Microsystems, Inc. | Method and apparatus for shading images |
US4866637A (en) * | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US4945500A (en) * | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US5369737A (en) * | 1988-03-21 | 1994-11-29 | Digital Equipment Corporation | Normalization of vectors associated with a display pixels of computer generated images |
US5777608A (en) * | 1989-03-10 | 1998-07-07 | Board Of Regents, The University Of Texas System | Apparatus and method for in-parallel scan-line graphics rendering using content-searchable memories |
US5253339A (en) * | 1990-07-26 | 1993-10-12 | Sun Microsystems, Inc. | Method and apparatus for adaptive Phong shading |
US5550641A (en) * | 1991-05-15 | 1996-08-27 | Gentech Corporation | System and method for rendering images |
US5307449A (en) * | 1991-12-20 | 1994-04-26 | Apple Computer, Inc. | Method and apparatus for simultaneously rendering multiple scanlines |
US5706415A (en) * | 1991-12-20 | 1998-01-06 | Apple Computer, Inc. | Method and apparatus for distributed interpolation of pixel shading parameter values |
JP2682559B2 (ja) * | 1992-09-30 | 1997-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 物体の画像をディスプレイ装置上に表示する装置及び方法並びにコンピュータ・グラフィックス表示システム |
US5739820A (en) * | 1992-11-19 | 1998-04-14 | Apple Computer Inc. | Method and apparatus for specular reflection shading of computer graphic images |
US5704024A (en) * | 1995-07-20 | 1997-12-30 | Silicon Graphics, Inc. | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map |
US5880736A (en) * | 1997-02-28 | 1999-03-09 | Silicon Graphics, Inc. | Method system and computer program product for shading |
-
1996
- 1996-09-02 JP JP23202096A patent/JP3387750B2/ja not_active Expired - Fee Related
-
1997
- 1997-08-28 US US08/919,304 patent/US6081274A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1079046A (ja) | 1998-03-24 |
US6081274A (en) | 2000-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3387750B2 (ja) | シェーディング処理装置 | |
US6437781B1 (en) | Computer graphics system having per pixel fog blending | |
US4709231A (en) | Shading apparatus for displaying three dimensional objects | |
US5808619A (en) | Real-time rendering method of selectively performing bump mapping and phong shading processes and apparatus therefor | |
Segal et al. | Fast shadows and lighting effects using texture mapping | |
US6624812B1 (en) | Method and apparatus for providing shading in a graphic display system | |
JP2923648B2 (ja) | 物体の色特性を発生する方法と装置 | |
CA2236071C (en) | Texture compositing apparatus and method | |
EP0262619B1 (en) | Shading circuit for shading a plurality of polygons which constitute a solid model, and method of shading the same | |
EP0817126B1 (en) | Method and apparatus implementing high resolution rendition of Z-buffered primitives | |
US6593923B1 (en) | System, method and article of manufacture for shadow mapping | |
KR19990072375A (ko) | 고정소수점라이팅유닛의로컬눈벡터의고속계산 | |
US5739820A (en) | Method and apparatus for specular reflection shading of computer graphic images | |
US5990894A (en) | Method for implementing the power function DP and computer graphics system employing the same | |
WO2001029768A2 (en) | Multi-stage fixed cycle pipe-lined lighting equation evaluator | |
US5892516A (en) | Perspective texture mapping circuit having pixel color interpolation mode and method thereof | |
JP4456070B2 (ja) | 光反射強度計算回路 | |
CN111739074A (zh) | 一种场景多点光源渲染方法及装置 | |
US7397479B2 (en) | Programmable multiple texture combine circuit for a graphics processing system and method for use thereof | |
JP3233376B2 (ja) | シェーディング処理装置 | |
JPH03127278A (ja) | カラー画像処理方法及び装置 | |
EP0817130A2 (en) | Apparatus and method for calculating specular lighting | |
JP2007128180A (ja) | 演算処理装置 | |
KR19990078036A (ko) | 유효한부동점제트버퍼링을구현하기위한방법및장치 | |
JP3034716B2 (ja) | 形状表現方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100110 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110110 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120110 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130110 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140110 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |