JPH0573259A - 画像シエーデイング方法及び画像処理装置 - Google Patents

画像シエーデイング方法及び画像処理装置

Info

Publication number
JPH0573259A
JPH0573259A JP3230607A JP23060791A JPH0573259A JP H0573259 A JPH0573259 A JP H0573259A JP 3230607 A JP3230607 A JP 3230607A JP 23060791 A JP23060791 A JP 23060791A JP H0573259 A JPH0573259 A JP H0573259A
Authority
JP
Japan
Prior art keywords
shading
image
dimensional shape
size
triangle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3230607A
Other languages
English (en)
Inventor
Katsunori Suzuki
克徳 鈴木
Yasushi Fukunaga
泰 福永
Akihiro Katsura
晃洋 桂
Kazuyoshi Koga
和義 古賀
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP3230607A priority Critical patent/JPH0573259A/ja
Publication of JPH0573259A publication Critical patent/JPH0573259A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【目的】過度なシェーディング処理を排除する。 【構成】 画像シェーディング処理の対象となる三角形
の表示画面上のサイズがKpより小さい場合(22)
は、グ−ロウシェーディング処理を行い、三角形のサイ
ズがKpより大きい場合(22、23、24、25、)
は、その大きさに応じた分割数で、三角形をサブ三角形
に分割し、分割した各サブ三角形の各頂点の法線ベクト
ルを双一次補間によって求めた各サブ三角形の各頂点の
法線ベクトルより、各サブ三角形の各頂点の輝度を求め
る。そして、求めた各サブ三角形の各頂点の輝度を用い
て、各サブ三角形にグ−ロウシェーディング処理を行
う。 【効果】グ−ロウシェーディング処理の単位領域を、表
示上視認可能な程度の大きさに押さえることにより、視
覚上不要な処理を排除できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ワ−クステ−ションや
コンピュ−タやCAD装置等の画像処理装置における、
3次元グラフィックス処理において3次元形状画像をリ
アルに表現するために行われる画像シェーディング(陰
影付け)の技術に関するものである。
【0002】
【従来の技術】従来の、画像シェーディングの技術とし
ては、輝度値を補間するグ−ロ−・シェーディング(Go
uraud shading)と、法線ベクトルを補間して輝度値を
算出するフォン・シェーディング(Phong shading)が
知られている。
【0003】グ−ロ−・シェーディングの技術によれ
ば、高速な画像シェーディング処理が可能であるが、表
面がやや曇った感じになったり、マッハ・バンドやフラ
ットン・アウトが生ずるなど、満足できる画像が得られ
ない場合がある。
【0004】一方、フォン・シェーディングの技術によ
れば、非常に滑らかな画像シェーディングが可能である
が、各画素毎に法線ベクトルを双一次補間する必要があ
る為に計算量が多く高速な処理は困難である。
【0005】そこで、フォン・シェーディングの技術を
利用しつつも処理の高速性を高めた画像シェーディング
の技術として、擬似フォン・シェーディング(Pseudo P
hongshading)と、ファ−スト・フォン・シェーディング
(BishopのFast Phong shading)の技術が知られてい
る。
【0006】前記擬似フォン・シェーディングの技術
は、たとえば、特開平2-171877号公報に記載されてい
る。
【0007】この擬似フォン・シェーディングの技術に
よれば、「親」三角形によって曲面をモデル化し、この
親三角形を各辺の中点で4つのサブ三角形に分割し、フ
ォン・シェーディングの法線ベクトルを補間する技法に
より、各中点の法線ベクトルを親三角形の法線ベクトル
から補間する。そして、求めたサブ三角形の3つの頂点
の法線ベクトルの条件によって、グ−ロ−・シェーディ
ングが好適か否かをテストする。
【0008】そして、グ−ロ−・シェーディングが好適
である場合には、サブ三角形にグ−ロ−・シェーディン
グ処理を施す。好適でない場合には、サブ三角形を同様
に再分割し、再分割した新たなサブ三角形について、グ
−ロ−・シェーディングが好適か否かをテストし、グ−
ロ−・シェーディングが好適である場合には、再分割し
たサブ三角形にグ−ロ−・シェーディング処理を施す。
好適でない場合には、さらにサブ三角形を再分割する。
【0009】この様に擬似フォン・シェーディングによ
れば、法線ベクトルを補間するフォン・シェーディング
の適用回数を削減することで高速化を達成している。な
お、以上説明した擬似フォン・シェーディングにおいて
は、サブ三角形の各頂点の法線ベクトルの内積(3組の
うちの2組)または外積(3組のうちの2組)を算出
し、これをサブ三角形が表す曲面の曲率として、グ−ロ
−・シェーディングが好適であるか否かを判定してい
る。
【0010】ただし、グ−ロ−・シェーディングが好適
であるか否かを判定せずに、無条件に再分割を4回(4
分割を4回で256分割)繰り返す手法も知られてい
る。
【0011】一方、前記ファ−スト・フォン・シェーデ
ィングの技術は、たとえば、Gary Bishop とDavid M.
Weimerによる論文Computer Graphics,Volume 20,No.4,1
986,p.103-106に記載されている。
【0012】このファ−スト・フォン・シェーディング
の技術によれば、フォンの画素輝度 計算式 I=Ka・Iambi+Kd・Idiff+Ks・Ispec Idiff=L・N/(|L||N|) Ispec=(N・H)^nH=(E+L)/|E+L| (但し、Iambi:周囲光,Idiff:拡散反射光,Ispe
c:鏡面反射光,N:法線ベクトル,L:光源ベクトル
E:視線ベクトル,H:ハ−フウェイ・ベクトルKa,
Kd,Ksは各反射光係数) において、光源ベクトルLは一定として、すなわち平行
光源として、法線ベクトルNを N(x,y)=Ax+By+C (但し、 A,B,Cは三角形の各頂点の法線ベクトル
から決定する) と双1次補間する計算式を求める。(但し、双1次補間
式を求めるのみで、その式の値を求めるわけではない) 次に、拡散反射光Idiffの輝度値を、次にように前記法
線ベクトルNの双1次補間式をIdiffの輝度計算式に代
入してIdiffのスカラ−表現を求める。
【0013】Idiff(x,y)=(ax+by+c)/sqrt(dx^2+exy
+fy^2+gx+hy+i) (但し、sqrtは平方根,^2は2乗) a=L・A/|L|、 d=A・A, g=2A・Cb=L・B/|L|、 e=2A・B, h=2B・Cc=L・C/|L|、 f=B・B, i=C・C このように、Idiffの輝度値をベクトル表現の形からス
カラ−表現の形に変換したら、その変換結果を Idiff(x,y)=T5*x^2+T4*xy+T3*y^2+T2*x+T1*y+T0T5=
(3cg^2-4cdi-4agi)/{8i^2*sqrt(i)}T4=(3cgh-2cei-2bgi
-2ahi)/{4i^2*sqrt(i)}T3=(3ch^2-4cfi-4bhi) /{8i^2*
sqrt(i)}T2=(2ai-cg)/{2i*sqrt(i)}T1=(2bi-ch)/{2i*sq
rt(i)}T0=c/sq rt(i) と、テ−ラ−展開2次近似し、求めた近似式を用いて拡
散反射光Idiffの輝度値の近似解を算出する。
【0014】すなわち、フォンの画素輝度計算式をその
まま計算すると、ベクトルの計算となるため計算量が多
くなるため、ファ−スト・フォン・シェーディングの技
術では、フォンの輝度計算式をベクトル表現の形からス
カラ−表現の形に変換し、これのテ−ラ−展開2次近似
を求める。そして、このようにして求めたフォンの輝度
計算式のスカラ−表現のテ−ラ−展開2次近似式によっ
て、輝度計算を行う。このようにすることで、、変換途
中の各係数(aからiとT5からT0)の計算が必要となる
が、その三角形の2画素目以降は積和演算だけとなり、
ある程度の大きさ(画素数)をもつ三角形において、輝
度値の高精度な近似解を高速に計算が可能となる。
【0015】また、同様に、鏡面反射光Ispecの輝度値
の算出の場合には、法線ベクトルNと同様に視線ベクト
ルEの双1次補間式を求め、その結果からハ−フウェイ
・ベクトルHの双1次補間式を求め、前記法線ベクトル
Nの双1次補間式とハ−フウェイ・ベクトルHの双1次
補間式をIspecの輝度計算式に代入し、前記代入した結
果を、Idiffと同様に、ベクトル表現からスカラ−表現
に変換し、テ−ラ−展開2次近似をして、その結果得ら
れた近似式を用いて、輝度値の高精度な近似解を算出
し、計算の高速化を達成している。
【0016】
【発明が解決しようとする課題】しかし、前記擬似フォ
ン・シェーディングの技術によれば、再分割の条件判断
に、サブ三角形の各頂点の法線ベクトルNの内積または
外積を算出して判断するが、この内積、外積の算出の計
算量は多くの処理時間を要する。また、曲率の大きな図
形の場合には、再分割の効果が人間の目には見分けがつ
かない程度に十分に小さい三角形についても再分割を行
ってしまうという問題がある。
【0017】一方、前記ファ−スト・フォン・シェーデ
ィングの技術によれば、光源ベクトルLを一定、すなわ
ち平行光源として、輝度値の近似解を算出しているの
で、点光源についての画像シェーディングには適用でき
ないという問題がある。
【0018】そこで、本発明は、視覚上不要なシェーデ
ィング処理を排除できる画像シェーディング方法を提供
することを目的とする。
【0019】また、点光源についても高速に高品質な処
理を行うことのできる画像シェーディング方法を提供す
ることを目的とする。
【0020】
【課題を解決する為の手段】本発明は、前記目的達成の
ために、3次元形状画像の表示画面上の大きさに関する
評価値より3次元形状画像の表示画面上の大きさが所定
値より小さいと判断された場合は輝度値補間を用いた画
像シェーディング方法であるグ−ロ−・シェーディング
による陰影づけを行い、3次元形状画像の表示画面上の
大きさに関する評価値より3次元形状画像の表示画面上
の大きさが所定値より大きいと判断された場合は、その
判断された大きさに応じて、3次元形状画像を所定数の
サブ三角形に分割し、分割した各サブ三角形の頂点の法
線ベクトルを求め、求めた各サブ三角形の頂点の輝度を
求め、求めた三角形の頂点の輝度を用いて分割した各サ
ブ三角形について、それぞれ、グ−ロ−・シェーディン
グによる陰影づけを行うことを特徴とする画像シェーデ
ィング方法を提供する。
【0021】また、前記目的達成のために、本発明は、
3次元形状画像の陰影付けを行う画像シェーディング方
法であって、3次元形状画像の表示画面上の大きさに関
する評価値に応じて、内容の異なる複数の画像シェーデ
ィング方法の内のいずれか1つの画像シェーディング方
法を選択し、選択した画像シェーディング方法によっ
て、前記3次元形状画像の陰影付けを行うことを特徴と
する画像シェーディング方法を提供する。
【0022】また、本発明は、前記目的達成のために、
フォンの画素輝度計算式に基づいて、3次元形状画像内
の各画素の輝度値を求めて、3次元形状画像の陰影付け
を行う画像シェーディング方法であって、3次元形状画
像の各頂点の法線ベクトルの計算式と光源ベクトルの双
1次補間の計算式とを求め、求めた法線ベクトルの計算
式と光源ベクトルの双1次補間の計算式を、前記フォン
の画素輝度計算式に代入し、代入した結果をスカラ−表
現に変換し、スカラ−表現に変換した結果得られる計算
式をテ−ラ−展開を用いて近似し、近似した結果得られ
る近似式を用いて、前記3次元形状画像内の各画素の輝
度値を算出することを特徴とする画像シェーディング方
法を提供する。
【0023】なお、以上の各方法は、汎用の画像処理装
置において実行されるべき、CADソフト等のソフトウ
ェアパ−ッケ−ジとして提供することもできる。
【0024】
【作用】本発明に係る画像シェーディング方法によれ
ば、3次元形状画像の表示画面上の大きさに関する評価
値より3次元形状画像の表示画面上の大きさが所定値よ
り大きいと判断された場合にのみ、その判断された大き
さに応じて、3次元形状画像を所定数のサブ三角形に分
割してグ−ロ−・シェーディングによる陰影づけを行
う。
【0025】したがい、前記擬似フォン・シェーディン
グの技術において、再分割の効果が人間の目には見分け
がつかない程度に十分に小さい三角形についての再分割
を行ってしまうことを防ぐことができる。
【0026】また、本発明に係る画像シェーディング方
法によれば、3次元形状画像の表示画面上の大きさに関
する評価値を求め、求めた評価値に応じて、内容の異な
る複数の画像シェーディング方法の内のいずれか1つの
画像シェーディング方法を選択し陰影付けを行う。した
がい、画像シェーディングの処理に要する時間と、画像
シェーディングの表示画面上の効果とを平衡させること
ができる画像シェーディング方法によって、3次元形状
画像の陰影付けを行うことができる。
【0027】また、本発明に係る画像シェーディング方
法によれば、3次元形状画像の各頂点の法線ベクトルの
計算式のみならず、光源ベクトルの双1次補間の計算式
をも求め、求めた法線ベクトルの計算式と光源ベクトル
の双1次補間の計算式を、前記フォンの画素輝度計算式
に代入し、代入した結果をスカラ−表現に変換し、スカ
ラ−表現に変換した結果得られる計算式をテ−ラ−展開
を用いて近似し、近似した結果得られる近似式を用い
て、前記3次元形状画像内の各画素の輝度値を算出す
る。
【0028】したがい、点光源についても高速に高品質
なシェーディング処理を行うことができる。
【0029】
【実施例】以下、本発明の一実施例を説明する。
【0030】なお、以下の実施例においては、説明の便
宜上、画像シェーディング処理を施す図形を三角形とし
て説明する。
【0031】まず、図1に、本実施例に係る画像処理装
置の構成を示す。
【0032】図示するように、本実施例に係る画像処理
装置は、CPU(1),GP(2)(ジオメトリ・プロセッ
サ)、RP(6)(レンダリング・プロセッサ)、フレ−
ム・バッファ(7)、CRT(8)を有している。
【0033】また、GP(2)は、座標変換処理、クリッ
ピング処理、輝度計算、サイズ判断、分割処理等を行う
PU(5)(プロセッサ・ユニット)と、PU(5)によって
算出された画面上での三角形の大きさdX01、dX12、d
X20、dX-max、dY01、dY12、dY20、dY-maxを保持
するdXdYレジスタ・テ−ブル(4)と、三角形の大きさ
と比較する定数Kp、2Kp、4Kp、8Kp保持するKp
レジスタ・テ−ブル(3)を有している。
【0034】以下、この画像処理装置の画像シェーディ
ング処理動作について説明する。
【0035】まず、CPU(1)は、与えられたアプリケ
−ションを実行し、グラフィックス・コマンド(描画コ
マンド)をGP(2)に発行する。
【0036】GP(2)は発行されたグラフィックス・コ
マンドに従って、PU(5)で座標変換処理やクリッピン
グ処理等を行い、前記三角形の各頂点のCRT(8)の表
示画面上での座標P0(x0 y0)、P1(x1 y1)、P
2(x2 y2)を算出し、三角形の各頂点の法線ベクトル
N0(x0 y0 z0)、N1(x1 y1 z1)、N2(x2
y2 z2)を求め、これより各頂点の輝度値を算出す
る。
【0037】次に、PU(5)は、dX01=|x0−x1|、
dX12=|x1−x2|、dX20=|x2−x0|、dY01=
|y0−y1|、dY12=|y1−y2|、dY20=|y2−
y0|を算出し、表示画面上での三角形のサイズとしてd
X-max=max(dX01、dX12、dX20)、dY-max=m
ax(dY01、dY12、dY20)、dXdY-max=max(d
X-max、dY-max)を算出し、その値をdXdYレジスタ
・テ−ブル(4)に格納する。
【0038】そして、Kpレジスタ・テ−ブル(3)に保存
されている定数Kp、2Kp、4Kp、8Kpと、前記算出
した三角形のサイズを比較して、サブ三角形に分割する
必要があるか否かを判断する。
【0039】もし、サブ三角形に分割する必要がないな
ら、そのまま親三角形のデ−タをRP(6)(レンダリン
グ・プロセッサ)に送出する。
【0040】もし、サブ三角形に分割する必要があるな
らば、PU(5)で上記サイズから三角形の分割数を決
め、サブ三角形に分割する処理を行い、親三角形の各頂
点の法線ベクトルを補間して各サブ三角形の各頂点(親
三角形の分割点)の法線ベクトルを算出し、補間した法
線ベクトルに基づいて各サブ三角形の各頂点の輝度値を
算出し、各サブ三角形のデ−タをRP(6)に送出する。
【0041】RP(6)は、上記親三角形又はサブ三角形
のデ−タから各頂点の輝度値を補間して、三角形の辺と
内部の輝度値を求め、レンダリング処理を行いフレ−ム
・バッファに書き込む。フレ−ムバッファに書き込まれ
たレンダリング処理後に三角形は、CRT(8)の画面に
表示される。
【0042】以上のように、本実施例によれば、三角形
の大きさを評価関数として、サブ三角形に分割するか否
かの判断を行うので、定数Kpを適当に定めることによ
り、視覚上過度な、サブ三角形に分割しての処理を排除
することができる。
【0043】また、さらに、本実施例によれば三角形の
大きさを、各頂点の画面上の位置座標の差dX、dYに基
づいて判断しているので、三角形の大きさを高速に求め
ることができる。
【0044】なお、以上の実施例では、dX-max=ma
x(dX01、dX12、dX20)、dY-max=max(dY0
1、dY12、dY20)、dXdY-max=max(dX-max、d
Y-max)とし、3組のdX、dYで最大のdXdY-maxを正
確に算出して、三角形の大きさとしているが、画質が低
下しない範囲において、たとえば、dX-max=max(d
X01、dX12)、dY-max=max(dY01、dY12)、d
XdY-max=max(dX-max、dY-max)とし、2組のd
X、dYだけで三角形の大きさを判断するようにして、
計算を高速化するようにしてもよい。
【0045】また、画質が低下しない範囲において、d
X-max=max(dX01、dX12、dX20)とし、dXもし
くはdYのみで3三角形の大きさ判断して計算をより高
速化するようにしても良いし、dX-max=max(dX0
1、dX12)の様に、2つのdXもしくはdYだけで三角形
の大きさを判断するようにして、計算をより高速化する
ようにしてもよい。
【0046】また、画面上の三角形の大きさの判断方法
として、図5に示す三角形の外接四角形を利用するよう
にしても良い。
【0047】すなわち、上記外接四角形の大きさの評価
関数として、外接四角形の面積F(dX-max、dY-max)
=dX-max*dY-maxや、外接四角形の対角線の長さleng
thの2乗F(dX-max、dY-max)=dX-max^2*dY-max
^2、外接四角形の対角線の長さlengthF(dX-max、dY
-max)=sqrt(dX-max^2*dY-max^2)、あるいは、より
簡単で高速な外接四角形の長辺と短辺の長さの和F(d
X-max、dY-max)=dX-max+dY-max等より三角形の
大きさを判断するようにしても良い。
【0048】但し、これらの外接四角形に基づいた評価
関数を利用する場合は、比較する定数Kp、2Kp、4K
p、8Kpの値も適切に定めるようにする。
【0049】なお、前記外接四角形は、画面上の座標に
おいて前記三角形のクリッピング処理を行う際に算出し
た外接四角形をそのまま利用することができる。
【0050】以上のように、本実施例によれば、画質の
低下を伴うことなく、シェーディング所要時間を短縮す
ることができる。
【0051】さて、本実施例に係る画像処理装置は、前
記評価関数値に応じて、三角形もしくは分割した三角形
に対して、画像シェーディングを実行する。
【0052】以下、本実施例に係る画像シェーディング
処理動作の詳細について説明する。
【0053】図2に、本実施例に係る第1の画像シェー
ディング処理手順を示す。また、図4に処理対象となる
三角形を図示する。
【0054】本第1の画像シェーディング処理によれ
ば、ステップ(21)において、光強度反射係数等を初期設
定し、親三角形の各頂点の法線ベクトルからフォンの輝
度計算式に基づき、各頂点の輝度値を算出する。
【0055】また、親三角形の各頂点の画面上の座標P
0(x0 y0)、P1(x1 y1)、P2(x2 y2)より、
前記dX01、dX12、dX20、dX-max、dY01、dY12、d
Y20、dY-max、dXdY-maxをPU(5)で算出する(図4
参照)。
【0056】次に、ステップ(22)において、親三角形の
サイズdXdY-maxがKpより小さいかどうか条件判断を
行い、小さければ、分割の必要がなく、グ−ロ−・シェ
ーディングが好適であるので、RP(6)で親三角形の辺
と内部についてグ−ロ−・シェーディング処理をする。
【0057】そうでなければ、ステップ(23)において、
親三角形のサイズdXdY-maxが2Kpより小さいかどう
か条件判断を行い、小さければ、図4に示す様に親三角
形を各辺の中点で4つのサブ三角形に分割し、分割点
(サブ三角形の頂点)の法線ベクトルを上記親三角形の
各頂点の法線ベクトルから補間し、分割点(サブ三角形
の頂点)の輝度値を算出し、RP(6)でサブ三角形の辺
と内部についてグ−ロ−・シェーディング処理をする。
【0058】親三角形のサイズdXdY-maxが2Kpより
大きい場合は、ステップ(24)において、親三角形のサイ
ズdXdY-maxが4Kpより小さいかどうか条件判断を行
い、小さければ、親三角形を各辺の4つに分ける点で1
6個のサブ三角形に分割し、ステップ(23)と同様にサブ
三角形の頂点の法線ベクトルと輝度値を算出し、RP
(6)でグ−ロ−・シェーディング処理をする。
【0059】親三角形のサイズdXdY-maxが4Kpより
大きい場合は、ステップ(25)において、親三角形のサイ
ズdXdY-maxが8Kpより小さいかどうか条件判断を行
い、小さければ、まず、初めにステップ(24)と同様に親
三角形を16個のサブ三角形に分割し、次に、ステップ
(23)と同様に上記サブ三角形を4つのサブ三角形に再分
割し(全部で64分割)、以下同様にサブ三角形の頂点
の法線ベクトルと輝度値を算出し、RP(6)でグ−ロ−
・シェーディング処理をする。
【0060】親三角形のサイズdXdY-maxが8Kpより
大きい場合は、ステップ(26)において、サイズ判断を行
わず、ステップ(24)と同様に親三角形を16個のサブ三
角形に分割し、次に、もう一度ステップ(24)と同様に上
記サブ三角形を16個のサブ三角形に再分割し、(全部
で256分割)、以下同様に、サブ三角形の各頂点の法
線ベクトルと輝度値を算出し、RP(6)でグ−ロ−・シ
ェーディング処理をする。
【0061】以上のように、本第1の画像シェーディン
グ処理によれば、画面上の親三角形の大きさにより、親
三角形をサブ三角形に分割するか否かの条件判断を行う
ので、計算量の多い内積又は外積の計算をする必要がな
い。また、画面上で視覚上問題が無い程度まで十分に小
さい三角形をさらに分割して処理するという問題点をも
解決することができる。すなわち、画質の低下を伴うこ
となく、処理時間を短縮することができる。
【0062】また、Kpレジスタ・テ−ブル(3)の値を変
えることで、画像シェーディングの処理速度と品質を変
えることができる。
【0063】すなわち、たとえば、Kpの値を小さくす
れば、高品質なシェーディング処理を行うことができ、
一方、Kpの値を大きくすれば大きな三角形に分割さ
れ、シェーディング品質は若干低下するが、高速なシェ
ーディング処理を行うことができる。
【0064】以上、第1の画像シェーディング処理で
は、三角形のサイズが4Kpより大きい場合でも、図2
のステップ(25)、ステップ(26)により、三角形を64分
割、256分割し、グ−ロ−・シェーディング処理を行
った。
【0065】しかし、三角形のサイズが4Kpより大き
い場合には、ファ−スト・フォン・シェーディング処理
を行うようにしてもよい。
【0066】以下、この場合の処理動作を第2の画像シ
ェーディング処理として説明する。
【0067】図3に、本第2画像シェーディング処理の
処理手順を示す。
【0068】図示するように、まず、ステップ(31)に
おいて、光強度反射係数等を初期設定し、親三角形の各
頂点の法線ベクトルからフォンの輝度計算式に基づき、
各頂点の輝度値を算出する。
【0069】また、親三角形の各頂点の画面上のデバイ
ス座標P0(x0y0)、P1(x1 y1)、P2(x2 y
2)より、dX01、dX12、dX20、dX-max、dY01、dY1
2、dY20、dY-max、dXdY-maxをPU(5)で算出する。
【0070】次に、ステップ(32)において、親三角形
のサイズdXdY-maxがKpより小さいかどうか条件判断
を行う。そして、小さければ、グ−ロ−・シェーディン
グが好適であるので、分割を行わずに、RP(6)で親三
角形の辺と内部についてグ−ロ−・シェーディング処理
を行う。
【0071】親三角形のサイズdXdY-maxがKpより大
きければステップ(33)において、親三角形のサイズd
XdY-maxが2Kpより小さいかどうか条件判断を行う。
そして、小さければ、図4に示す様に親三角形を各辺の
中点で4つのサブ三角形に分割し、分割点(サブ三角形
の頂点)の法線ベクトルを親三角形の各頂点の法線ベク
トルから補間し、分割点(サブ三角形の頂点)の輝度値
を算出する。そして、算出した分割点の輝度値に基づい
て、RP(6)でサブ三角形の辺と内部についてグ−ロ−
・シェーディング処理をする。
【0072】親三角形のサイズdXdY-maxが2Kpより
大きければ、ステップ(34)において、親三角形のサイ
ズdXdY-maxが4Kpより小さいかどうか条件判断を行
う。そして、小さければ、親三角形を各辺の4つに分け
る点で16のサブ三角形に分割し、ステップ(33)と同
様にサブ三角形の頂点の法線ベクトルと輝度値を算出
し、RP(6)でグ−ロ−・シェーディング処理をする。
【0073】三角形のサイズが4Kpより大きい場合に
は、サブ三角形に分割せずにステップ(35)において、
ファ−スト・フォン・シェーディング処理を施す。
【0074】以上のように、本第2の画像シェーディン
グ処理によれば、表示画面における三角形の大きさによ
って、三角形が十分に小さい場合には、分割せずにグ−
ロ−・シェーディング処理を行い、中ぐらいの大きさの
場合には、サブ三角形に分割してグ−ロ−・シェーディ
ング処理を行い、ある程度大きい場合には、分割せずに
ファ−スト・フォン・シェーディング処理を行う。
【0075】なお、本第2の画像シェーディング処理に
おいても、画面上での親三角形の大きさとして、dX、d
Yの両方又は片方の3組又は2組でサイズ判断しても良
いし、デバイス座標での三角形の外接四角形の大きさの
評価関数値(面積、対角線の長さの2乗、長辺と短辺の
長さの和等)を利用しても良い。
【0076】以上のように、本第2の画像シェーディン
グ処理によれば、実際の画面上での三角形の大きさ又は
その外接四角形の大きさの評価関数値により、三角形に
適用するシェーディング方法を適切に選択することによ
り、画質の低下を伴うことなく、シェーディング所要時
間を短縮することができる。
【0077】以下、本実施例に係る画像処理装置が前記
第2の画像シェーディング処理において行うファ−スト
・フォン・シェーディング処理について説明する。
【0078】本実施例においては、先に「従来の技術」
の項で説明したBishopのファ−スト・フォン・シェーデ
ィングを、前記法線ベクトルNと同様に光源ベクトルL
も双1次補間することにより点光源についても適用可能
に拡張したファ−スト・フォン・シェーディング処理を
行う。
【0079】すなわち、前述したように、図4に示す三
角形P0P1P2において、各頂点の法線ベクトルがN0、
N1、N2である時、三角形の辺とその内部の法線ベクト
ルN(x、y)の双1次補間式は、N(x、y)=Ax+By
+C(但し、A、B、CはN0、N1、N2から決定す
る)と表される。
【0080】そして、各頂点での光源ベクトルがL0、
L1、L2である時、三角形の辺とその内部の光源ベクト
ルL(x、y)の双1次補間式は同様に、L(x、y)=D
x+Ey+F(但し、D、E、FはL0、L1、L2から決
定する)と表される。
【0081】そこで、先ず初めに、拡散反射光による輝
度値Idiffは、前記補間式をフォンの各画素の輝度計算
式に代入し、前記代入した結果をベクトル表現からスカ
ラ−表現に変換すると、 Idiff(x、y)=N(x、y)・L(x、y)/{|N(x、y)||L(x、y)|} =(Ax+By+C)・(Dx+Ey+F)/{|Ax+By+C||Dx+Ey+F|}(ax^2+bxy+cy^ 2+dx+ey+f)/sqrt{(gx^2+hxy+iy^2+jx+ky+l)(mx^2+nxy+oy^2 +px+qy+r)} となる(但し、 a、...、rは以下の様に算出する)。
【0082】 a=A・D、 g=A・A、 m=E・Eb=A・E+B・D、 h=2A・B、 n=D・Dc=B・E、 i=B・B、 o=2D・Ed=A・F+C・D、 j=2A・C、 p=2D・Fe=B・F+C・E、 k=2B・C、 q=2E・Ff=C・F、 l=C・C、 r=F・F、 前記スカラ−表現に変換した式をテ−ラ−展開を用いて
近似すると、その2次近似式は Idiff(x、y)=T5*x^2+T4*xy+T3*y^2+T2*x+T1*y+T0 となる(但し、T5、…、T0は以下の様に算出する)。
【0083】 T5=(8al^2*r^2-4djlr^2-4fglr^2+3fj^2*r^2-4dl^2*pr+2fjlpr-4fl^2*mr+3fl ^2*p^2)/{8l^2*r^2*sqrt(lr)}T4 =(4bl^2*r^2-2dklr^2-2ejlr^2-2fhlr^2+3fjkr^2-2dl^2*qr+fjlqr-2el^2*p r+fklpr-2fl^2*nr+3fl^2*pq)/{4l^2*r^2*sqrt(lr)}T3 =(8cl^2*r^2-4eklr^2-4filr^2+3fk^2*r^2-4el^2*qr+2fklqr-4fl^2*or+3fl ^2*q^2)/{8l^2*r^2*sqrt(lr)}T2 =(2dlr-fjr-flp)/{2lr*sqrt(lr)}T1 =(2elr-fkr-flq)/{2lr*sqrt(lr)}T0 =f/sqrt(lr) 以上により、前記近似式を計算することで、各画素の点
光源におけるファ−スト・フォン・シェーディングの拡
散反射光による輝度値Idiffを算出する。
【0084】次に、鏡面反射光による輝度値Ispecは、 Ispec=[(N・H)/{|N||H|}]^nH=E+L N:法線ベクトル、 H:ハ−フウェイ・ベクトルE:
視線ベクトル、 L:光源ベクトル、 n:定数 であり、法線ベクトルNと同様に、光源ベクトルLと視
線ベクトルEの双1次補間式は次の様になる。
【0085】 法線ベクトル:N(x、y)=Ax+By+C 光源ベクトル:L(x、y)=Dx+Ey+F 視線ベクトル:E(x、y)=Gx+Jy+K (但し、各頂点での視線ベクトルがE0、E1、E2であ
る時、G、J、Kは、 E0、E1、E2から決定す
る) すると、ハ−フウェイ・ベクトルH(x、y)は、 H(x、y)=(D+G)x+(E+J)y+(F+K) =Ux+Vy+W となり、前記式はハ−フウェイ・ベクトルH(x、y)の
双1次補間式が求まる。
【0086】ここで、 Ispec=Is^n、 Is=(N・H)/{|N||H|} とおくと、 Is(x、y)=N(x、y)・H(x、y)/{|N(x、y)||H(x、y)|} となり、Is(x、y)の式はIdiff(x、y)の式と同じ形に
なる。
【0087】よって、Is(x、y)は、Idiff(x、y)と同
様に Is(x、y)=N(x、y)・H(x、y)/{|N(x、y)||H(x、y)|} =(Ax+By+C)・(Ux+Vy+W)/{|Ax+By+C||Ux+Vy+W|} となり、Idiff(x、y)と同様に前記式をベクトル表現の
形からスカラ−表現の形に変形すると、 Is(x、y)=(ax^2+bxy+cy^2+dx+ey+f)/sqrt{(gx^2+hxy+iy^2+jx+ky+l)(mx^ 2+nxy+oy^2+px+qy+r)} (但し、 a、...、rは以下の様に算出する) a=A・U、 g=A・A、 m=V・Vb=A・V+B・U、 h=2A・B、 n=U・Uc=B・V、 i=B・B、 o=2U・Vd=A・W+C・U、 j=2A・C p=2U・We=B・W+C・V、 k=2B・C、 q=2V・Wf=C・W、 l=C・C、 r=W・W となる。Idiff(x、y)と同様に、スカラ−表現の形に変
形した式をテ−ラ−展開を用いて近似すると、その2次
近似式は、 Is(x、y)=T5*x^2+T4*xy+T3*y^2+T2*x+T1*y+T0 となり、Idiff(x、y)と同様に、Is(x、y)を算出で
き、 Ispec(x、y)=Is(x、y)^n より、前記式を計算することで、各画素の点光源におけ
る鏡面反射光による輝度値Ispecを算出できる。
【0088】以上のように、本実施例に係る点光源にも
適用可能に拡張した画像シェーディング処理によれば、
光源ベクトルL、及びハ−フウェイ・ベクトルHを、法
線ベクトルN、視線ベクトルEと同様に双1次補間した
補間式を、フォンの各画素の輝度計算式に代入し、代入
した結果をベクトル表現の形からスカラ−表現の形に変
換し、変換結果をテ−ラ−展開を用いて近似し、その近
似式を計算することにより、点光源の場合における、フ
ォン・シェーディング処理の輝度値の高精度な近似解の
算出を高速に行うことができる。
【0089】なお、本実施例においては、各式をテ−ラ
−展開2次近似式を用いて近似する場合について説明し
たが、より高次の近似(たとえば3次近似)を行うよう
にしてもよい。
【0090】さて、以上の実施例では、実際の画面上で
の三角形の大きさや外接四角形の大きさと設定されたK
pの値に応じて、所定の分割を行って、三角形の画像シ
ェーディング処理を実行しているが、このKpの値は、シ
ェーディング品質または速度(処理時間)を決めるシェ
ーディング・モ−ドの設定により定めるようにしてもよ
い。
【0091】すなわち、たとえば、高品質モ−ド(ハイ
・クオリティ・モ−ド)の設定により、Kpの値を小さ
く設定して分割数が多い画像シェーディング処理を実行
する。この場合は、処理速度はある程度、犠牲となるが
高品質の画像シェーディング処理を施すことができる。
【0092】また、高速モ−ド(ハイ・スピ−ド・モ−
ド)の設定により、Kpの値を大きく設定して、分割数
が少ない画像シェーディング処理を実行する。この場合
は、品質はある程度犠牲となるが高速なシェーディング
処理を施すことができる。
【0093】さて、以下に、モ−ド設定に用いることの
できるコマンドの簡単な例を示す。(なお、/*及び*/で
挟まれた部分は注釈である)。
【0094】 高品質モ−ドの場合 : /* 他のコマンド */ set_mode(HIGH_QUORITY) /* 高品質モ−ドの設定 */ polygon(p0、p1、p2) /* グラフィック・コマンド:三角形p0p1p2 */ : /* 他のコマンド */ 高速モ−ドの場合 : /* 他のコマンド */ set_mode(HIGH_SPEED) /* 高速モ−ドの設定 */ polygon(p0、p1、p2) /* 本グラフィック・コマンド:三角形p0p1p2 */ : /* 他のコマンド */ このようにすることで、モ−ドの設定を変更するだけ
で、必要に応じてシェーディングの品質と速度を変える
ことができる。
【0095】ここで、本実施例に係る画像処理装置の第
2の構成例を図6に示す。
【0096】図示するように、本第2の構成例に係る画
像処理装置は、CPU(11)と、GP0(12)、GP1(1
3)、GP2(14)、GP3(15)と、RP(16)と、フレ−ム
・バッファ(17)と、CRT(18)を有している。
【0097】ここで、GP0(12)、GP1(13)、GP2
(14)、GP3(15)は、先に図1に示した画像処理装置の
GP(2)に対応するものである。ただし、本第2の構成
例では、GPをマルチ・プロセッサ構成としている。
【0098】CPU(11)は、アプリケ−ションを実行
し、グラフィックス・コマンドを発行する。この時、コ
マンド0はGP0(12)に送出され、コマンド1はGP1
(13)に送出され、コマンド2はGP2(14)に送出され、
コマンド3はGP3(15)に送出される。次に、各GP
は、汎用のPU(5)と、dXdYレジスタ・テ−ブル(4)
と、Kpレジスタ・テ−ブル(3)とで、座標変換処理、ク
リッピング処理、輝度計算、サイズ判断、分割処理等を
行い、RP(16)にデ−タを送出する。
【0099】このように、本第2の構成例に係る画像処
理装置によれば、グラフィックス・コマンドをGP0(1
2)、GP1(13)、GP2(14)、GP3(15)のマルチ・プ
ロセッサ構成で並列に処理することで画像シェーディン
グ処理の処理速度を高速化している。
【0100】一方、CPUの処理能力に余裕がある場合
には、以上の説明においてGPが行っていた処理をCP
Uで行うこととし、GPを省略するようにしてもよい。
【0101】
【発明の効果】以上のように、本発明によれば、視覚上
不要なシェーディング処理を排除できる画像シェーディ
ング方法を提供することができる。
【0102】また、点光源についても高速に高品質な処
理を行うことのできる画像シェーディング方法を提供す
ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る画像処理装置の構成を
示すブロック図である。
【図2】本発明の一実施例に係る第1の画像シェーディ
ング処理の処理手順を示すフロ−チャ−トである。
【図3】本発明の一実施例に係る第2の画像シェーディ
ング処理の処理手順を示すフロ−チャ−トである。
【図4】本発明の一実施例に係る三角形の大きさの判断
手法の第1の例を示す説明図である。
【図5】本発明の一実施例に係る三角形の大きさの判断
手法の第2の例を示す説明図である。
【図6】本発明の一実施例に係る画像処理装置の他の構
成例を示すブロック図である。
【符号の説明】
1 CPU、 2 GP、 3 Kpレジスタ・テ−ブル、 4 dXdYレジスタ・テ−ブル、 5 PU 6 RP 7 フレ−ム・バッファ 8 CRT 11 CPU、 12 GP0、 13 GP1、 14 GP2、 15 GP3、 16 RP 17 フレ−ム・バッファ 18 CRT
───────────────────────────────────────────────────── フロントページの続き (72)発明者 古賀 和義 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】3次元形状画像の陰影付けを行う画像シェ
    ーディング方法であって、 3次元形状画像の表示画面上の大きさに関する評価値に
    応じて、内容の異なる複数の画像シェーディング方法の
    内のいずれか1つの画像シェーディング方法を選択し、
    選択した画像シェーディング方法によって、前記3次元
    形状画像の陰影付けを行うことを特徴とする画像シェー
    ディング方法。
  2. 【請求項2】請求項1記載の画像シェーディング方法で
    あって、 前記異なる複数の画像シェーディング方法は、輝度値補
    間を用いた画像シェーディング方法であるグ−ロ−・シ
    ェーディングと、法線ベクトル補間を用いた画像シェー
    ディングであるフォン・シェーディングもしくはファ−
    スト・フォン・シェーディングであって、3次元形状画
    像の表示画面上の大きさの評価値より3次元形状画像の
    表示画面上の大きさが所定値より小さいと判断される場
    合には、フォン・シェーディングもしくはファ−スト・
    フォン・シェーディングを選択して、前記3次元形状画
    像の陰影付けを行い、3次元形状画像の表示画面上の大
    きさの評価値より3次元形状画像の表示画面上の大きさ
    が所定値より大きいと判断される場合には、グ−ロ−・
    シェーディングを選択して、前記3次元形状画像の陰影
    付けを行うことを特徴とする画像シェーディング方法。
  3. 【請求項3】請求項2記載の画像シェーディング方法で
    あって、 3次元形状画像の表示画面上の大きさの評価値より3次
    元形状画像の表示画面上の大きさが所定値より大きいと
    判断された場合であって、 3次元形状画像の表示画面上の大きさの評価値より3次
    元形状画像の表示画面上の大きさが、前記所定値より大
    きな第2の所定値より大きいと判断された場合には、そ
    の判断された大きさに応じて、3次元形状画像を所定数
    のサブ三角形に分割し、分割した各サブ三角形につい
    て、それぞれ、グ−ロ−・シェーディングによる陰影づ
    けを行うことを特徴とする画像シェーディング方法。
  4. 【請求項4】3次元形状画像の陰影付けを行う画像シェ
    ーディング方法であって、 3次元形状画像の表示画面上の大きさに関する評価値よ
    り3次元形状画像の表示画面上の大きさが所定値より小
    さいと判断された場合は、輝度値補間を用いた画像シェ
    ーディング方法であるグ−ロ−・シェーディングによる
    陰影づけを行い、3次元形状画像の表示画面上の大きさ
    に関する評価値より3次元形状画像の表示画面上の大き
    さが所定値より大きいと判断された場合は、その判断さ
    れた大きさに応じて、3次元形状画像を所定数のサブ三
    角形に分割し、分割した各サブ三角形の頂点の法線ベク
    トルを求め、求めた各サブ三角形の頂点の輝度を求め、
    求めた三角形の頂点の輝度を用いて分割した各サブ三角
    形について、それぞれ、グ−ロ−・シェーディングによ
    る陰影づけを行うことを特徴とする画像シェーディング
    方法。
  5. 【請求項5】請求項1、2、3もしくは4記載の画像シ
    ェーディング方法であって、 前記評価値は、前記3次元形状画像に外接する外接矩形
    の大きさであることを特徴とする画像シェーディング方
    法。
  6. 【請求項6】フォンの画素輝度計算式に基づいて、3次
    元形状画像内の各画素の輝度値を求めて、3次元形状画
    像の陰影付けを行う画像シェーディング方法であって、 3次元形状画像の各頂点の法線ベクトルの計算式と光源
    ベクトルの双1次補間の計算式とを求め、求めた法線ベ
    クトルの計算式と光源ベクトルの双1次補間の計算式
    を、前記フォンの画素輝度計算式に代入し、代入した結
    果をスカラ−表現に変換し、スカラ−表現に変換した結
    果得られる計算式をテ−ラ−展開を用いて近似し、近似
    した結果得られる近似式を用いて、前記3次元形状画像
    内の各画素の輝度値を算出することを特徴とする画像シ
    ェーディング方法。
  7. 【請求項7】陰影付けを行った3次元形状画像を画面上
    に表示する画像処理装置であって、 3次元形状画像の表示画面上の大きさに関する評価値を
    求める評価手段と、処理内容の異なる複数の画像シェー
    ディング処理の内のいずれか1つの画像シェーディング
    処理を選択的に実行して、前記3次元形状画像の陰影付
    けを行うシェーディング手段と、前記評価手段が求めた
    評価値に応じて、前記シェーディング手段が実行する画
    像シェーディング処理を、前記処理内容の異なる複数の
    画像シェーディング処理の内から選択する選択手段とを
    有することを特徴とする画像処理装置。
  8. 【請求項8】請求項7記載の画像処理装置であって、 前記複数の画像シェーディング処理は、輝度値補間を用
    いた画像シェーディング処理であるグ−ロ−・シェーデ
    ィングと、法線ベクトル補間を用いた画像シェーディン
    グ処理であるフォン・シェーディングもしくはファ−ス
    ト・フォン・シェーディングであって、前記選択手段
    は、前記評価手段が求めた評価値より3次元形状画像の
    表示画面上の大きさが所定値より小さいと判断される場
    合には、フォン・シェーディングもしくはファ−スト・
    フォン・シェーディングを選択し、評価手段が求めた評
    価値より3次元形状画像の表示画面上の大きさが所定値
    より大きいと判断される場合には、グ−ロ−・シェーデ
    ィングを選択することを特徴とする画像処理装置。
  9. 【請求項9】請求項8記載の画像処理装置であって、 前記選択手段は、前記所定値を受付けるコマンドもしく
    は陰影付けの品質を指定するコマンドを受付け、受付け
    たコマンドに応じて前記所定値を決定することを特徴と
    する画像処理装置。
JP3230607A 1991-09-10 1991-09-10 画像シエーデイング方法及び画像処理装置 Pending JPH0573259A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3230607A JPH0573259A (ja) 1991-09-10 1991-09-10 画像シエーデイング方法及び画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3230607A JPH0573259A (ja) 1991-09-10 1991-09-10 画像シエーデイング方法及び画像処理装置

Publications (1)

Publication Number Publication Date
JPH0573259A true JPH0573259A (ja) 1993-03-26

Family

ID=16910409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3230607A Pending JPH0573259A (ja) 1991-09-10 1991-09-10 画像シエーデイング方法及び画像処理装置

Country Status (1)

Country Link
JP (1) JPH0573259A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947041B2 (en) 2001-06-08 2005-09-20 Sony Computer Entertainment Inc. Image processing method
JP2016212468A (ja) * 2015-04-28 2016-12-15 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および表示装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947041B2 (en) 2001-06-08 2005-09-20 Sony Computer Entertainment Inc. Image processing method
JP2016212468A (ja) * 2015-04-28 2016-12-15 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および表示装置

Similar Documents

Publication Publication Date Title
US5357599A (en) Method and apparatus for rendering polygons
KR100261076B1 (ko) 범프 맵핑과 퐁 쉐이딩을 동시에 수행하는 렌더링방법 및 장치
US6532013B1 (en) System, method and article of manufacture for pixel shaders for programmable shading
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US5786822A (en) Method and apparatus for mapping texture on an object displayed at a varying view angle from an observer
US7903112B2 (en) Drawing processing apparatus, texture processing apparatus, and tessellation method
US5877769A (en) Image processing apparatus and method
KR20050030595A (ko) 화상 처리 장치 및 그 방법
US5977984A (en) Rendering apparatus and method
JPH05307610A (ja) テクスチャマッピング方法およびその装置
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees
JPH0855239A (ja) グラフィカル・オブジェクトの可視性を判定するための方法および装置
JPH0916806A (ja) 立体画像処理装置
US20140071124A1 (en) Image processing apparatus
JPH07254072A (ja) テクスチャマッピング方法及び装置
US5499324A (en) Graphic display apparatus with improved shading capabilities
JPH09245191A (ja) 透明度変換方法及びその装置、画像処理装置
US6850244B2 (en) Apparatus and method for gradient mapping in a graphics processing system
EP0676724A2 (en) Texture mapping method and image processing apparatus
JP2883523B2 (ja) 画像合成装置及び画像合成方法
JP3979162B2 (ja) 画像処理装置およびその方法
JPH0573259A (ja) 画像シエーデイング方法及び画像処理装置
US6590582B1 (en) Clipping processing method
JP2000057372A (ja) 画像処理装置、画像処理方法及び記憶媒体
JPH0535883A (ja) 三次元画像生成方法