JP3762487B2 - 図形描画装置 - Google Patents
図形描画装置 Download PDFInfo
- Publication number
- JP3762487B2 JP3762487B2 JP23760896A JP23760896A JP3762487B2 JP 3762487 B2 JP3762487 B2 JP 3762487B2 JP 23760896 A JP23760896 A JP 23760896A JP 23760896 A JP23760896 A JP 23760896A JP 3762487 B2 JP3762487 B2 JP 3762487B2
- Authority
- JP
- Japan
- Prior art keywords
- color
- calculation
- value
- unit
- light source
- 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
Images
Landscapes
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータグラフィックス分野の図形描画装置に関する。
描画処理において、色計算は計算量が多いため大きなウエイトを占める。さらに、コンピュータグラフィックスは多くの分野で利用されるようになり、より高速な描画処理が望まれている。
【0002】
【従来の技術】
図4は反射色計算の説明図であり、図4(a)は拡散反射の反射モデル図、図4(b)は鏡面反射の反射モデル図、図4(c)は色計算に使用するベクトルの説明である。
【0003】
図4(a)において、拡散反射の反射光は、入射光に対して全ての方向に散乱される光である。
図4(b)において、鏡面反射の反射光は、物体とのなす角度αの入射光が物体表面から反射される光である。なお、点線で示す広がりOeは反射光の鏡面集中度を示している。この鏡面集中度Oeは、その値が大きくなると集中度が良くなり広がりの幅が小さくなる。
【0004】
図4(c)において、色計算に使用するベクトルを示しており、対象物体から光源方向への単位ベクトルをVl、対象物体から法線方向への単位ベクトルをVn、対象物体から正反射方向への単位反射ベクトルをVr、対象物体から視線(視点)方向への単位ベクトルをVeとする。
【0005】
(1):色計算の説明
コンピュータグラフィックスにおいて、平行光源に対する物体の反射色は、一般的に以下のようにして計算する。なお、*は積を示している。
【0006】
物体の反射色=拡散反射色+鏡面反射色・・・・・・・・・・・・・・式1
拡散反射色=Kd*Od*Lc*DotProduct(Vn,Vl)・・・・・式2
鏡面反射色=Ks*Os*Lc*DotProduct(Ve,Vr)Oe・・・・式3
Vr=2*DotProduct(Vn,Vl)*Vn−Vl・・・・・・・・・式4
ここで、
Kd:拡散反射係数
Ks:鏡面反射係数
Od:対象の拡散色
Os:対象の鏡面色
Oe:対象の鏡面集中度
Lc:光源の色
Vn:対象の単位法線ベクトル
Vl:対象から光源への単位ベクトル
Ve:対象から視点への単位ベクトル
Vr:対象からの単位反射ベクトル
DotProduct(a,b):ベクトルaとベクトルbの内積
この色計算を図形の各頂点(例えば、図形が3角形であれば3つの頂点)に対して行ない、計算された色を線形補間して描画(スキャン)することによって、平行光源に対する物体の反射を表現できる。また、平行光源が複数定義されているときは、各光源に対して色計算を行ない、それぞれの和をとるようにする。
【0007】
(2):平行光源に対する色計算の流れの説明
図5は従来の平行光源に対する色計算の流れの説明図である。以下、図5の処理S21〜処理S28に従って説明する。なお、「W」は、繰り返しを意味している。
【0008】
S21:図形の全ての頂点に対して処理S22と処理S23を繰り返す。
S22:反射色の合計をクリアする。
S23:全ての平行光源に対して処理S24〜処理S28を繰り返す。
【0009】
S24:拡散反射色を次のようにして計算する。
拡散反射色=Kd*Od*Lc*DotProduct(Vn,Vl)
S25:対象からの単位反射ベクトルVrを次のようにして計算する。
【0010】
Vr=2*DotProduct(Vn,Vl)*Vn−Vl
S26:鏡面反射色を次のようにして計算する。
鏡面反射色=Ks*Os*Lc*DotProduct(Ve,Vr)Oe
S27:前記処理S24と処理S26より次のように反射色を計算する。
【0011】
反射色=拡散反射色+鏡面反射色
S28:前の反射色の合計に今回の反射色を加算する。
反射色の合計+=反射色(反射色の合計=反射色の合計+反射色)
【0012】
【発明が解決しようとする課題】
前記のような従来のものにおいては、色計算の計算量が多いため、描画処理において大きなウエイトを占めていた。
本発明は、このような従来の課題を解決し、ある図形の平行光源に対する反射色の計算を、高速にできるようにすることを目的とする。
【0013】
【課題を解決するための手段】
図1は本発明の原理説明図であり、図1(a)は装置構成の説明、図1(b)は色計算に使用するベクトルの説明である。図1中、1はモデリング変換部、2は色計算部、3aは内積保存部、6は視野変換部、7はクリッピング部、8はデプスキューイング部、9は描画部、10aは表示部、Vlは対象から光源への単位ベクトル、Vnは対象から法線方向への単位法線ベクトル、Vrは対象から正反射方向への単位反射ベクトル、Veは対象から視点への単位ベクトルである。
【0014】
本発明は前記従来の課題を解決するため次のように構成した。
(1):拡散反射係数と、対象の拡散色と、光源の色と、前記対象の単位法線ベクトルVnと対象から光源への単位ベクトルVlの内積値とから拡散反射色を計算し、鏡面反射係数と、前記対象の鏡面色と、前記光源の色と、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積値と、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積値と、前記対象から視点への単位ベクトルVeと前記対象から光源への単位ベクトルVlの内積値とから鏡面反射色を計算し、前記拡散反射色と前記鏡面反射色を加算して前記対象の反射色を計算する色計算部2とを有する図形描画装置において、平行光源で、かつ、平行投影のときに、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積値と、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積値と、前記対象から視点への単位ベクトルVeと前記対象から光源への単位ベクトルVlの内積値とをそれぞれ保持する内積保存部3aを備え、前記色計算部2は、前記保持した前記各内積値を繰り返し使用する。
【0015】
(2):前記(1)の図形描画装置において、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積値は、前記拡散反射色の計算で求めた値を前記内積保存部3aに保持し、前記鏡面反射色の計算で再利用する。
【0016】
(3):前記(1)の図形描画装置において、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積値は、前記鏡面反射色の計算時、前記平行光源が複数定義されている場合、ある頂点で一度求めた値を前記内積保存部3aに保持し、全ての前記平行光源での色計算にこの値を使用する。
【0017】
(4):前記(1)の図形描画装置において、前記対象から視点への単位ベクトルVeと前記対象から光源への単位ベクトルVlの内積値は、ある光源で一度求めた値を前記内積保存部3aに保持し、全ての頂点の前記鏡面反射色の計算でこの値を使用する。
【0018】
(5):前記(1)の図形描画装置において、ある図形の各頂点で前記拡散反射係数Kdと前記対象の拡散色Odが同じであるとき、前記頂点毎の色計算の前にKd×Odを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。
【0019】
(6):前記(5)の図形描画装置において、前記平行光源が一個のみのとき、前記Kd×Odの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。
【0020】
(7):前記(1)の図形描画装置において、ある図形の各頂点で前記鏡面反射係数Ksと前記対象の鏡面色Osが同じであるとき、前記頂点毎の色計算の前にKs×Osを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。
【0021】
(8):前記(7)の図形描画装置において、前記平行光源が一個のみのとき、前記Ks×Osの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。
【0022】
(9):前記(1)の図形描画装置において、ある図形の各頂点で前記拡散反射係数Kdが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKd×Lcを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。
【0023】
(10):前記(1)の図形描画装置において、ある図形の各頂点で前記鏡面反射係数Ksが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKs×Lcを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。
【0024】
(11):前記(1)の図形描画装置において、ある図形の各頂点で前記対象の単位法線ベクトルVnが同じであるとき、前記頂点毎の色計算の前に、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積を計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。
【0025】
(12):前記(1)の図形描画装置において、ある図形の各頂点で前記対象の単位法線ベクトルVnが同じで、かつ、前記平行光源が一個であるとき、前記頂点毎の色計算の前に、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積を計算した値を保持しておき、全ての前記頂点の前記拡散反射色及び前記鏡面反射色の計算でこの値を使用する。
【0026】
(作用)
前記構成に基づく作用を説明する。
色計算部2で物体の反射色を計算する図形描画装置において、平行光源で、かつ、平行投影のときに、内積保存部3aに、対象の単位法線ベクトルVnと対象から光源への単位ベクトルVlの内積値と、対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積値と、前記対象から視点への単位ベクトルVeと前記対象から光源への単位ベクトルVlの内積値とをそれぞれ保持し、前記色計算部2は、前記各内積値を繰り返し使用する。このため、色計算の処理量を削減することができ、描画処理を高速化することができる。
【0027】
また、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積値は、前記拡散反射色の計算で求めた値を前記内積保存部3aに保持し、前記鏡面反射色の計算で再利用する。このため、前記鏡面反射色の計算を高速化することができる。
【0028】
さらに、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積値は、前記鏡面反射色の計算時、平行光源が複数定義されている場合、ある頂点で一度求めた値を前記内積保存部3aに保持し、全ての平行光源での色計算にこの値を使用する。このため、平行光源が複数定義されている場合の前記鏡面反射色の計算を高速化することができる。
【0029】
また、前記対象から視点への単位ベクトルVeと前記対象から光源への単位ベクトルVlの内積値は、ある光源で一度求めた値を前記内積保存部3aに保持し、全ての頂点の前記鏡面反射色の計算でこの値を使用する。このため、前記鏡面反射色の計算をより高速化することができる。
【0030】
さらに、ある図形の各頂点で前記拡散反射係数Kdと前記対象の拡散色Odが同じであるとき、前記頂点毎の色計算の前にKd×Odを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。このため、前記拡散反射色の計算を高速化することができる。
【0031】
また、前記平行光源が一個のみのとき、前記Kd×Odの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。このため、この時の前記拡散反射色の計算を高速化することができる。
【0032】
さらに、ある図形の各頂点で前記鏡面反射係数Ksと前記対象の鏡面色Osが同じであるとき、前記頂点毎の色計算の前にKs×Osを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。このため、この時の前記鏡面反射色の計算を高速化することができる。
【0033】
また、前記平行光源が一個のみのとき、前記Ks×Osの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。このため、この時の前記鏡面反射色の計算を高速化することができる。
【0034】
さらに、ある図形の各頂点で前記拡散反射係数Kdが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKd×Lcを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用する。このため、この時の前記拡散反射色の計算を高速化することができる。
【0035】
また、ある図形の各頂点で前記鏡面反射係数Ksが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKs×Lcを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。このため、この時の前記鏡面反射色の計算を高速化することができる。
【0036】
さらに、ある図形の各頂点で前記対象の単位法線ベクトルVnが同じであるとき、前記頂点毎の色計算の前に、前記対象から視点への単位ベクトルVeと前記対象の単位法線ベクトルVnの内積を計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用する。このため、この時の前記鏡面反射色の計算を高速化することができる。
【0037】
また、ある図形の各頂点で前記対象の単位法線ベクトルVnが同じで、かつ、前記平行光源が一個であるとき、前記頂点毎の色計算の前に、前記対象の単位法線ベクトルVnと前記対象から光源への単位ベクトルVlの内積を計算した値を保持しておき、全ての前記頂点の前記拡散反射色及び前記鏡面反射色の計算でこの値を使用する。このため、この時の前記拡散反射色及び前記鏡面反射色の計算を高速化することができる。
【0038】
【発明の実施の形態】
図2、図3は本発明の実施の形態を示した図であり、図2は図形描画装置の説明図、図3は平行光源に対する色計算の流れの説明図である。以下、図面に基づいて本発明の実施の形態を説明する。
【0039】
(1):図形描画装置の説明
図2において、図形描画装置には、モデリング変換部1、色計算部2、内積1保存部3、内積2保存部4、内積3保存部5、視野変換部6、クリッピング部7、デプスキューイング部8、描画部9、CRT10が設けてある。
【0040】
モデリング変換部1は、入力された図形の各頂点を色計算のために、図形が定義されているモデリング座標系MCから光源が定義されている世界座標系WCに変換するものである。
【0041】
色計算部2は、世界座標系WCに変換された図形の各頂点とあらかじめ定義された光源から反射色を計算する。このとき、視野変換が平行投影、かつ、平行光源であるなら本願手法(後で詳述する)の高速計算を行う。光源が平行光源以外のものを含むときは、平行光源を本願手法で計算し、他の光源を従来の手法で計算し、最後に和をとるものである。
【0042】
内積1保存部3は、内積1〔=DotProduct(Vn,Vl)〕を保存するものである。内積2保存部4は、内積2〔=DotProduct(Ve,Vn)〕を保存するものである。内積3保存部5は、内積3〔=DotProduct(Ve,Vl)〕を保存するもので、全ての平行光源に対して平行光源数だけ設けてある。
【0043】
視野変換部6は、各頂点の座標を世界座標系WCからデバイス座標系DCに変換するものである。クリッピング部7は、図形をクリッピング枠でクリッピングするものである。デプスキューイング部8は、各座標値のZ値(奥行き値)に応じて各頂点の色を変更する(例えば、奥に行くほど暗くする)。
【0044】
描画部9は、図形の頂点色を線形補間しながらCRTに描画するものである。CRT10は、陰極線管を使用した表示部である。
なお、図2の例において、色計算部2は、他の処理部と独立しているので、これらの処理部にサブセット(例えば、デプスキューイング部8を省略した装置にする等)、あるいは、別の組み合わせ(例えば、クリッピング部7とデプスキューイング部8の処理順序を逆にする等)の応用が可能である。
【0045】
(2):描画処理の高速化の説明
この発明は、ある図形の平行光源に対する反射色の計算を、従来の計算より高速化するものである。まず、高速化を行う条件を定義する。
【0046】
(条件1)光源は、平行光源である。
(条件2)平行投影である(視点が無限遠点にある)。
この条件から、前記式1〜式4の成分に対して、次のことが言える。
【0047】
(a):前記条件1から、対象から光源への単位ベクトルVlは全ての頂点で同じである。
(b):前記条件2から、対象から視点への単位ベクトルVeは全ての頂点で同じである。
【0048】
次に、前記式3のDotProduct(Ve,Vr)を、前記式4を用いて展開し、次のように変形する。
DotProduct(Ve,Vr)=2*DotProduct(Vn,Vl)*DotProduct(Ve,Vn)−DotProduct(Ve,Vl)・・・・・・・・・・・・・・・式5
この式5を分析すると、次のことがわかる。
【0049】
(A)DotProduct(Vn,Vl)は、前記式2でも現れる。
(B)DotProduct(Ve,Vn)は、光源には無関係である。
(C)DotProduct(Ve,Vl)は、ある光源においては全ての頂点で同じ値になる。
【0050】
以上のことから、色計算の処理量を以下のような手法により削減する。
(a):前記(A)から、
拡散反射色の計算において、この項〔DotProduct(Vn,Vl)〕の値を保持しておき、鏡面反射色の計算で再利用する。
【0051】
(b):前記(B)から、
複数の光源に対し、各光源毎に計算する必要がないため、一度計算した値を保持しておき、全ての平行光源に対する計算時にこの値を使用することができる。
【0052】
(c):前記(C)から、
一度計算した値を保持しておき、同一平面上にある一つの図形面を構成する全ての頂点の計算の際にこの値を使用することができる。
【0053】
以上の手法を実施することにより、描画処理が高速化できる。
(3):色計算の流れの説明
図3は平行光源に対する色計算の流れの説明図である。以下、図3の処理S1〜処理S16に従って説明する。ここでは、平行光源数をnとし、平行光源i=0、1、・・・n−1とする。
【0054】
S1:色計算部2は、平行投影かどうかを判断する。
S2:色計算部2は、前記処理S1の判断で、平行投影でない場合は従来の計算方法により色計算を行ない、この処理を終了する。
【0055】
S3:色計算部2は、前記処理S1の判断で、平行投影の場合は、全ての平行光源に対して処理S4と処理S5を繰り返す(平行光源i=0、1、・・・n−1の平行光源数n回繰り返す)。
【0056】
S4:色計算部2は、各平行光源に対して次の内積3の計算をする。
内積3[i]=DotProduct(Ve,Vl)
S5:色計算部2は、前記処理S4で計算した内積3[i]を内積3保存部5に保存する。
【0057】
S6:色計算部2は、図形の全ての頂点に対して処理S7〜処理S10を繰り返す。
S7:色計算部2は、反射色の合計をクリアする。
【0058】
S8:色計算部2は、次の内積2の計算をする。
内積2=DotProduct(Ve,Vn)
S9:色計算部2は、前記処理S8で計算した内積2を内積2保存部4に保存する。
【0059】
S10:色計算部2は、全ての平行光源に対して処理S11〜処理S16を繰り返す(n=平行光源数;i=0、1、・・・n−1)。
S11:色計算部2は、次の内積1の計算をする。
【0060】
内積1=DotProduct(Vn,Vl)
S12:色計算部2は、前記処理S11で計算した内積1を内積1保存部3に保存する。
【0061】
S13:色計算部2は、内積1保存部3の内積1を使用して拡散反射色を次のように計算する。
拡散反射色=Kd*Od*Lc*内積1
S14:色計算部2は、内積1保存部3の内積1、内積2保存部4の内積2、内積3保存部5の内積3[i]を使用して鏡面反射色を次のように計算する。
【0062】
鏡面反射色=Ks*Os*Lc*(2*内積1*内積2−内積3[i])Oe
S15:色計算部2は、前記処理S14と処理S15の計算結果から次のように反射色を計算する。
【0063】
反射色=拡散反射色+鏡面反射色
S16:色計算部2は、前の反射色の合計に今回の反射色を加算する。全部で平行光源数n回の反射色の合計を行って、一つの頂点の処理が終了することになる。
【0064】
反射色の合計+=反射色(反射色の合計=反射色の合計+反射色)
(4):他の実施の形態
a:ある図形の各頂点で拡散反射係数Kdと拡散色Odが同じであるとき、頂点毎の色計算の前にKd×Odを計算した値を保存部(図示せず)に保持し、全ての頂点の拡散反射色の計算でこの値を使用することができる。このように、一つの面では材質が同じでしかも拡散反射係数Kdと拡散色Odが同じことが多いため、この時の拡散反射色の計算を高速化することができる。
【0065】
b:ある図形の各頂点で鏡面反射係数Ksと鏡面色Osが同じであるとき、頂点毎の色計算の前にKs×Osを計算した値を保存部(図示せず)に保持し、全ての頂点の鏡面反射色の計算でこの値を使用することができる。このように、一つの面では材質が同じで鏡面反射係数Ksと鏡面色Osが同じことが多いため、この時の鏡面反射色の計算を高速化することができる。
【0066】
c:平行光源が一個のみのときで、拡散反射係数Kdと拡散色Odが同じであるとき、Kd×Odの値に光源の色Lcを乗じた値を保存部(図示せず)に保持し、全ての頂点の拡散反射色の計算でこの値を使用することができる。このため、この時の拡散反射色の計算を高速化することができる。
【0067】
d:平行光源が一個のみのときで、鏡面反射係数Ksと鏡面色Osが同じであるとき、Ks×Osの値に光源の色Lcを乗じた値を保存部(図示せず)に保持し、全ての頂点の鏡面反射色の計算でこの値を使用することができる。このため、この時の鏡面反射色の計算を高速化することができる。
【0068】
e:ある図形の各頂点で拡散反射係数Kdが同じで、かつ、平行光源が一個であるとき、頂点毎の色計算の前にKd×Lcを計算した値を保存部(図示せず)に保持し、全ての頂点の拡散反射色の計算でこの値を使用することができる。このため、この時の拡散反射色の計算を高速化することができる。
【0069】
f:ある図形の各頂点で鏡面反射係数Ksが同じで、かつ、平行光源が一個であるとき、頂点毎の色計算の前にKs×Lcを計算した値を保存部(図示せず)に保持し、全ての頂点の鏡面反射色の計算でこの値を使用することができる。このため、この時の鏡面反射色の計算を高速化することができる。
【0070】
g:ある図形の各頂点で単位法線ベクトルVnが同じであるとき、頂点毎の色計算の前にDotProduct(Ve,Vn)を計算した値を保存部(図示せず)に保持し、全ての頂点の鏡面反射色の計算でこの値を使用することができる。このため、この時の鏡面反射色の計算を高速化することができる。
【0071】
h:ある図形の各頂点で単位法線ベクトルVnが同じで、かつ、平行光源が一個であるとき、頂点毎の色計算の前にDotProduct(Vn,Vl)を計算した値を保存部(図示せず)に保持し、全ての頂点の拡散反射色及び鏡面反射色の計算でこの値を使用することができる。このため、この時の拡散反射色及び鏡面反射色の計算を高速化することができる。
【0072】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
(1):色計算部で物体の反射色を計算する図形描画装置において、平行光源で、かつ、平行投影のときに、内積保存部に、対象の単位法線ベクトルVnと対象から光源への単位ベクトルVlの内積値と、対象から視点への単位ベクトルVeと対象の単位法線ベクトルVnの内積値と、対象から視点への単位ベクトルVeと対象から光源への単位ベクトルVlの内積値とをそれぞれ保持し、前記色計算部は、前記各内積値を繰り返し使用するため、色計算の処理量を削減することができ、描画処理を高速化することができる。
【0073】
(2):対象の単位法線ベクトルVnと対象から光源への単位ベクトルVlの内積値は、拡散反射色の計算で求めた値を内積保存部に保持し、鏡面反射色の計算で再利用するため、鏡面反射色の計算を高速化することができる。
【0074】
(3):対象から視点への単位ベクトルVeと対象の単位法線ベクトルVnの内積値は、鏡面反射色の計算時、平行光源が複数定義されている場合、ある頂点で一度求めた値を内積保存部に保持し、全ての平行光源での色計算にこの値を使用するため、平行光源が複数定義されている場合の鏡面反射色の計算を高速化することができる。
【0075】
(4):対象から視点への単位ベクトルVeと対象から光源への単位ベクトルVlの内積値は、ある光源で一度求めた値を内積保存部に保持し、全ての頂点の鏡面反射色の計算でこの値を使用するため、鏡面反射色の計算をより高速化することができる。
【0076】
(5):ある図形の各頂点で拡散反射係数Kdと対象の拡散色Odが同じであるとき、頂点毎の色計算の前にKd×Odを計算した値を保持しておき、全ての頂点の拡散反射色の計算でこの値を使用するため、この時の拡散反射色の計算を高速化することができる。
【0077】
(6):平行光源が一個のみのとき、Kd×Odの値にさらに光源の色Lcを乗じた値を保持しておき、全ての頂点の拡散反射色の計算でこの値を使用するため、この時の拡散反射色の計算を高速化することができる。
【0078】
(7):ある図形の各頂点で鏡面反射係数Ksと対象の鏡面色Osが同じであるとき、頂点毎の色計算の前にKs×Osを計算した値を保持しておき、全ての頂点の鏡面反射色の計算でこの値を使用するため、この時の鏡面反射色の計算を高速化することができる。
【0079】
(8):平行光源が一個のみのとき、Ks×Osの値にさらに光源の色Lcを乗じた値を保持しておき、全ての頂点の鏡面反射色の計算でこの値を使用するため、この時の鏡面反射色の計算を高速化することができる。
【0080】
(9):ある図形の各頂点で拡散反射係数Kdが同じで、かつ、光源の色Lcの平行光源が一個であるとき、頂点毎の色計算の前にKd×Lcを計算した値を保持しておき、全ての頂点の拡散反射色の計算でこの値を使用するため、この時の拡散反射色の計算を高速化することができる。
【0081】
(10):ある図形の各頂点で鏡面反射係数Ksが同じで、かつ、光源の色Lcの平行光源が一個であるとき、頂点毎の色計算の前にKs×Lcを計算した値を保持しておき、全ての頂点の鏡面反射色の計算でこの値を使用するため、この時の鏡面反射色の計算を高速化することができる。
【0082】
(11):ある図形の各頂点で対象の単位法線ベクトルVnが同じであるとき、頂点毎の色計算の前に、対象から視点への単位ベクトルVeと対象の単位法線ベクトルVnの内積を計算した値を保持しておき、全ての頂点の鏡面反射色の計算でこの値を使用するため、この時の鏡面反射色の計算を高速化することができる。
【0083】
(12):ある図形の各頂点で対象の単位法線ベクトルVnが同じで、かつ、平行光源が一個であるとき、頂点毎の色計算の前に、対象の単位法線ベクトルVnと対象から光源への単位ベクトルVlの内積を計算した値を保持しておき、全ての頂点の拡散反射色及び鏡面反射色の計算でこの値を使用するため、この時の拡散反射色及び鏡面反射色の計算を高速化することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】実施の形態における図形描画装置の説明図である。
【図3】実施の形態における平行光源に対する色計算の流れの説明図である。
【図4】反射色計算の説明図である。
【図5】従来の平行光源に対する色計算の流れの説明図である。
【符号の説明】
1 モデリング変換部
2 色計算部
3a 内積保存部
6 視野変換部
7 クリッピング部
8 デプスキューイング部
9 描画部
10a 表示部
Vl 対象から光源への単位ベクトル
Vn 対象から法線方向への単位法線ベクトル
Vr 対象から正反射方向への単位反射ベクトル
Ve 対象から視点への単位ベクトル
Claims (12)
- 拡散反射係数と、対象の拡散色と、光源の色と、前記対象の単位法線ベクトルと前記対象から光源への単位ベクトルの内積値とから拡散反射色を計算し、
鏡面反射係数と、前記対象の鏡面色と、前記光源の色と、前記対象の単位法線ベクトルと前記対象から光源への単位ベクトルの内積値と、前記対象から視点への単位ベクトルと前記対象の単位法線ベクトルの内積値と、前記対象から視点への単位ベクトルと前記対象から光源への単位ベクトルの内積値とから鏡面反射色を計算し、
前記拡散反射色と前記鏡面反射色を加算して前記対象の反射色を計算する色計算部とを有する図形描画装置において、
平行光源で、かつ、平行投影のときに、前記対象の単位法線ベクトルと前記対象から光源への単位ベクトルの内積値と、前記対象から視点への単位ベクトルと前記対象の単位法線ベクトルの内積値と、前記対象から視点への単位ベクトルと前記対象から光源への単位ベクトルの内積値とをそれぞれ保持する内積保存部を備え、
前記色計算部は、前記保持した各内積値を繰り返し使用することを特徴とした図形描画装置。 - 前記対象の単位法線ベクトルと前記対象から光源への単位ベクトルの内積値は、前記拡散反射色の計算で求めた値を前記内積保存部に保持し、
前記鏡面反射色の計算で再利用することを特徴とした請求項1記載の図形描画装置。 - 前記対象から視点への単位ベクトルと前記対象の単位法線ベクトルの内積値は、前記鏡面反射色の計算時、前記平行光源が複数定義されている場合、ある頂点で一度求めた値を前記内積保存部に保持し、全ての前記平行光源での色計算にこの値を使用することを特徴とした請求項1記載の図形描画装置。
- 前記対象から視点への単位ベクトルと前記対象から光源への単位ベクトルの内積値は、ある光源で一度求めた値を前記内積保存部に保持し、全ての頂点の前記鏡面反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- ある図形の各頂点で前記拡散反射係数Kdと前記対象の拡散色Odが同じであるとき、前記頂点毎の色計算の前にKd×Odを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- 前記平行光源が一個のみのとき、前記Kd×Odの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用することを特徴とした請求項5記載の図形描画装置。
- ある図形の各頂点で前記鏡面反射係数Ksと前記対象の鏡面色Osが同じであるとき、前記頂点毎の色計算の前にKs×Osを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- 前記平行光源が一個のみのとき、前記Ks×Osの値にさらに前記光源の色Lcを乗じた値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用することを特徴とした請求項7記載の図形描画装置。
- ある図形の各頂点で前記拡散反射係数Kdが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKd×Lcを計算した値を保持しておき、全ての前記頂点の前記拡散反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- ある図形の各頂点で前記鏡面反射係数Ksが同じで、かつ、前記光源の色Lcの平行光源が一個であるとき、前記頂点毎の色計算の前にKs×Lcを計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- ある図形の各頂点で前記対象の単位法線ベクトルが同じであるとき、前記頂点毎の色計算の前に、前記対象から視点への単位ベクトルと前記対象の単位法線ベクトルの内積を計算した値を保持しておき、全ての前記頂点の前記鏡面反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
- ある図形の各頂点で前記対象の単位法線ベクトルが同じで、かつ、前記平行光源が一個であるとき、前記頂点毎の色計算の前に、前記対象の単位法線ベクトルと前記対象から光源への単位ベクトルの内積を計算した値を保持しておき、全ての前記頂点の前記拡散反射色及び前記鏡面反射色の計算でこの値を使用することを特徴とした請求項1記載の図形描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23760896A JP3762487B2 (ja) | 1996-09-09 | 1996-09-09 | 図形描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23760896A JP3762487B2 (ja) | 1996-09-09 | 1996-09-09 | 図形描画装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1083461A JPH1083461A (ja) | 1998-03-31 |
JP3762487B2 true JP3762487B2 (ja) | 2006-04-05 |
Family
ID=17017845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23760896A Expired - Fee Related JP3762487B2 (ja) | 1996-09-09 | 1996-09-09 | 図形描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3762487B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3269814B2 (ja) * | 1999-12-03 | 2002-04-02 | 株式会社ナムコ | 画像生成システム及び情報記憶媒体 |
KR100824055B1 (ko) | 2006-07-18 | 2008-04-21 | 엠텍비젼 주식회사 | 3차원 정반사 조명 처리 장치 및 방법 |
-
1996
- 1996-09-09 JP JP23760896A patent/JP3762487B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1083461A (ja) | 1998-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3588351B2 (ja) | 透明オブジェクトのリアルタイムな影を作成するためのシステムおよび方法 | |
JPH07120434B2 (ja) | ボリュームレンダリングを行う方法及び装置 | |
JP3391864B2 (ja) | 画像データ処理方法及び装置及びグラフィックシステム | |
JP3352181B2 (ja) | 画像データ処理方法および装置 | |
KR0180253B1 (ko) | 도형 묘화 장치 및 도형 묘화 방법 | |
TWI483214B (zh) | 用於移動模糊及景深的背面圖元刪除技術 | |
Wan et al. | Boundary cell-based acceleration for volume ray casting | |
EP1227443B1 (en) | System and method for fast and smooth rendering of lit, textured spheres | |
US5280569A (en) | Three dimensional model describing method | |
JPH11175752A (ja) | 画像処理装置及び画像処理方法 | |
JP3762487B2 (ja) | 図形描画装置 | |
US6285376B1 (en) | Triangle traversing method and a rasterizer adopting the same | |
US7015930B2 (en) | Method and apparatus for interpolating pixel parameters based on a plurality of vertex values | |
US6333742B1 (en) | Spotlight characteristic forming method and image processor using the same | |
US7280108B2 (en) | Bicubic surface rendering | |
JPH0772915B2 (ja) | 図形シェーディング装置 | |
US6429866B1 (en) | Three-dimensional graphics drawing apparatus calculating tone of pixel based on tones of pixels at prescribed intervals, method thereof and medium recorded with program therefor | |
US5821942A (en) | Ray tracing through an ordered array | |
JP3059739B2 (ja) | 曲線描画機能を備えた情報処理装置および処理方法 | |
JP2000057372A (ja) | 画像処理装置、画像処理方法及び記憶媒体 | |
US8363053B2 (en) | Method and apparatus for rendering outline of multimedia character image | |
JPH10302080A (ja) | 図形描画装置 | |
JPH02129770A (ja) | 画像処理装置,それを用いたシステムおよび画像処理方法 | |
Komatsu et al. | A fast ray frustum-triangle intersection algorithm with precomputation and early termination | |
JPH04205485A (ja) | A―バッファ法における隠面処理方法およびその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060113 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100120 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120120 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130120 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |