JPH0634239B2 - 3次元画像表示装置 - Google Patents
3次元画像表示装置Info
- Publication number
- JPH0634239B2 JPH0634239B2 JP13834086A JP13834086A JPH0634239B2 JP H0634239 B2 JPH0634239 B2 JP H0634239B2 JP 13834086 A JP13834086 A JP 13834086A JP 13834086 A JP13834086 A JP 13834086A JP H0634239 B2 JPH0634239 B2 JP H0634239B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- basic
- csg
- pixel
- buffer memory
- 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
Links
Landscapes
- Image Generation (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、多面体の色彩陰影付画像をラスター走査型C
RT上に生成表示する3次元画像表示装置に関するもの
である。
RT上に生成表示する3次元画像表示装置に関するもの
である。
(従来の技術) 3次元の色彩陰影付画像をラスター走査型CRT上に生
成表示する方式として、多面体モデルのzバッファ法を
用いた表示処理方法がある。その表示処理手順を以下に
述べる。
成表示する方式として、多面体モデルのzバッファ法を
用いた表示処理方法がある。その表示処理手順を以下に
述べる。
(I)形状モデリング……物体形状を3次元世界座標系
内に定義する。多面体モデルでは、物体形状を頂点、稜
線、面の座標値やその隣接関係により表現する。物体表
面が曲面を含む場合は、曲面を多角形に分割して近似す
る。多面体モデルの作成法は後に述べる。
内に定義する。多面体モデルでは、物体形状を頂点、稜
線、面の座標値やその隣接関係により表現する。物体表
面が曲面を含む場合は、曲面を多角形に分割して近似す
る。多面体モデルの作成法は後に述べる。
(II)投影変換……世界座標系内に投影面、視点、投影
方法(平行投影か中心投影か)を指定し、投影面上に設
定した画面枠を基準とした3次元の画面座標系に投影変
換する。
方法(平行投影か中心投影か)を指定し、投影面上に設
定した画面枠を基準とした3次元の画面座標系に投影変
換する。
世界座標系から画面座標系への投影変換は、座標軸の回
転、平行移動、画面座標へのスケーリング、及び透視変
換の合成されたもので、後に述べるように4×4の行列
乗算と透視除算からなる。視点から画面枠を通して見た
投影面の背後の空間部分は画面座標系の直方体の内部に
写像される。画面座標系のz値を深度と呼び、隠面消去
に用いる。多面体モデルでは、多面体のすべての頂点を
投影変換すればよい。投影変換では直線は直線に変換さ
れ、内分比を変えないという性質をもつので画面座標系
内部での線形内挿計算により、もとの多面体の稜線や面
を描画でき、深度も1点1点正しく求められる。座標変
換の結果、クリッピングや裏面除去を行うことがある。
クリッピングは投影面上に矩形の窓を設定し、投影図の
窓枠内部のみを表示するために、多面体を囲む各々の多
角形について窓枠の外部にはみ出した多角形の全体また
は一部を除去する処理である。裏面除去は、視点から見
て明らかに不可視となる裏面の多角形を検出し除去する
処理である。
転、平行移動、画面座標へのスケーリング、及び透視変
換の合成されたもので、後に述べるように4×4の行列
乗算と透視除算からなる。視点から画面枠を通して見た
投影面の背後の空間部分は画面座標系の直方体の内部に
写像される。画面座標系のz値を深度と呼び、隠面消去
に用いる。多面体モデルでは、多面体のすべての頂点を
投影変換すればよい。投影変換では直線は直線に変換さ
れ、内分比を変えないという性質をもつので画面座標系
内部での線形内挿計算により、もとの多面体の稜線や面
を描画でき、深度も1点1点正しく求められる。座標変
換の結果、クリッピングや裏面除去を行うことがある。
クリッピングは投影面上に矩形の窓を設定し、投影図の
窓枠内部のみを表示するために、多面体を囲む各々の多
角形について窓枠の外部にはみ出した多角形の全体また
は一部を除去する処理である。裏面除去は、視点から見
て明らかに不可視となる裏面の多角形を検出し除去する
処理である。
(III)走査変換……画面座標系で頂点の系列として表
現された多角形を塗りつぶして表示するために、該多角
形を画素の系列に変換する。それには、多角形の頂点座
標からその稜線上の画素を補間して生成し、さらに多角
形の内部の画素を補間して生成する。隠面消去のために
は、画素毎に投影面から当該多角形に至る深度zも計算
する。
現された多角形を塗りつぶして表示するために、該多角
形を画素の系列に変換する。それには、多角形の頂点座
標からその稜線上の画素を補間して生成し、さらに多角
形の内部の画素を補間して生成する。隠面消去のために
は、画素毎に投影面から当該多角形に至る深度zも計算
する。
(IV)隠面消去を伴う画像表示……複数個の多角形が表
示画面上で重なる場合には視点に最も近い多角形を優先
的に表示する必要がある。この隠面消去を画素単位に行
うのがzバッファ法である。zバッファ法では、2次元
の画素アドレス(x,y)に対して、三原色強度R,G,B
を記憶する画像メモリ(フレームバッファとも呼ぶ)の
他に、深度zを記憶するzバッファメモリ(デプスバッ
ファとも呼ぶ)を使用し、予め画像メモリを背景色で、
zバッファメモリを深度の最大値zmaxで満たしてお
く。多角形を走査変換して三原色及び深度をもつ一連の
画素(Xi,yi,zi,Ri,Gi,Bi)i=1,2,3,…に展開した
時、画像メモリの(xi,yi)番地に三原色強度Ri,Gi,Bi
を書き込む前に、zバッファメモリの(xi,yi)番地の
深度zM(xi,yi)を読み出してziと比較し、zi<
zMのときに限り前記Ri,Gi,Biの書き込みを行うと共
に、zM(xi,yi)の値をziで更新する。従ってzバッ
ファメモリは画素毎に現在までに描画された値も視点に
近い多角形の深度を記憶し、以後これより深度の大きい
多角形の画素が来てもその書き込みを禁止する機能を有
する。すべての多角形の走査変換されたすべての画素に
ついて以上の処理を順次実行すれば、最終的に正しく隠
面消去され、可視画素の深度が付与された3次元画像が
RM,GM,BM,zMで得られる。(R,G,B)の値の付与の仕方と
しては、多角形毎に異なる値を予め与えられる方法、光
源が指定された時点で多角形毎に反射強度を計算し陰影
を付けて表示する方法、頂点毎に反射強度を計算し多角
形内部で補間して滑らかな陰影を付ける方法等がある。
示画面上で重なる場合には視点に最も近い多角形を優先
的に表示する必要がある。この隠面消去を画素単位に行
うのがzバッファ法である。zバッファ法では、2次元
の画素アドレス(x,y)に対して、三原色強度R,G,B
を記憶する画像メモリ(フレームバッファとも呼ぶ)の
他に、深度zを記憶するzバッファメモリ(デプスバッ
ファとも呼ぶ)を使用し、予め画像メモリを背景色で、
zバッファメモリを深度の最大値zmaxで満たしてお
く。多角形を走査変換して三原色及び深度をもつ一連の
画素(Xi,yi,zi,Ri,Gi,Bi)i=1,2,3,…に展開した
時、画像メモリの(xi,yi)番地に三原色強度Ri,Gi,Bi
を書き込む前に、zバッファメモリの(xi,yi)番地の
深度zM(xi,yi)を読み出してziと比較し、zi<
zMのときに限り前記Ri,Gi,Biの書き込みを行うと共
に、zM(xi,yi)の値をziで更新する。従ってzバッ
ファメモリは画素毎に現在までに描画された値も視点に
近い多角形の深度を記憶し、以後これより深度の大きい
多角形の画素が来てもその書き込みを禁止する機能を有
する。すべての多角形の走査変換されたすべての画素に
ついて以上の処理を順次実行すれば、最終的に正しく隠
面消去され、可視画素の深度が付与された3次元画像が
RM,GM,BM,zMで得られる。(R,G,B)の値の付与の仕方と
しては、多角形毎に異なる値を予め与えられる方法、光
源が指定された時点で多角形毎に反射強度を計算し陰影
を付けて表示する方法、頂点毎に反射強度を計算し多角
形内部で補間して滑らかな陰影を付ける方法等がある。
以上の表示方式はハードウェアによる高速処理に向いて
おり、画像メモリの他に座標変換器、走査変換器、zバ
ッファメモリを備えた3次元画像表示装置が提案されて
いる。第18図にこの種の従来の3次元画像表示装置の
構成を示す。同図において、ホストプロセッサ21は後
述するように表現変換の処理における多大な計算を実行
し、その結果をホストインタフェース22を介して表示
装置側に送出する。制御プロセッサ23は装置各部を制
御して前述した一連の表示処理を実行させる。図形メモ
リ24は多面体データを記憶し、座標変換器25は頂点
の投影変換を行い、走査変換器26は多角形の走査変換
を行い、メモリ更新器27はzバッファメモリ29を使
って隠面消去を行いながら画像メモリ28に3次元画像
を作り、CRT30に表示させる。画像メモリ28及び
zバッファメモリ29の役割は既述したとおりである。
おり、画像メモリの他に座標変換器、走査変換器、zバ
ッファメモリを備えた3次元画像表示装置が提案されて
いる。第18図にこの種の従来の3次元画像表示装置の
構成を示す。同図において、ホストプロセッサ21は後
述するように表現変換の処理における多大な計算を実行
し、その結果をホストインタフェース22を介して表示
装置側に送出する。制御プロセッサ23は装置各部を制
御して前述した一連の表示処理を実行させる。図形メモ
リ24は多面体データを記憶し、座標変換器25は頂点
の投影変換を行い、走査変換器26は多角形の走査変換
を行い、メモリ更新器27はzバッファメモリ29を使
って隠面消去を行いながら画像メモリ28に3次元画像
を作り、CRT30に表示させる。画像メモリ28及び
zバッファメモリ29の役割は既述したとおりである。
次に多面体モデルの作成方法について従来採られていた
方法を説明する。第19図は2つの直方体AとBの空間
的な論理演算によって合成される多面体の形状を示す図
で、同図(a)はAとBの位置関係を示し、同図(b)は論理
和A∨B、同図(c)は論理積A∧B、同図(d)は論理差A
−Bによる結果である。通常は、システムの利用者が
A,Bのような基本立体の形状と寸法、移動と回転の
両、論理演算記号を入力すると、多面体モデリングシス
テムは両多面体を座標変換して位置関係を設定し、両多
面体の交差稜線をすべて求め、目的とする合成体を囲む
多角形をすべて求めることにより多面体モデルを作成す
る。出来上がった多面体にさらに第3,第4の基本立体
や別の合成体を逐次合成して次第に複雑な形状の多面体
を形成して行く。第20図は4つの基本立体A1,A2,A3,A
4の合成方法の一例を示す図で、CSG(Constructive
Solid Geometory)表現またはCSGトリーと呼ばれる
立体表現法である。これに対し、多面体を囲む多角形の
集合による表現は境界表現(Boundary Representatio
n)と呼ばれる。CSG表現から境界表現への変換を行
う処理には多大の計算量が必要であるから、通常はこの
処理を第18図のホストプロセッサ21において実行
し、境界表現による多面体データとしてホストインタフ
ェース22から図形メモリ24に転送し、表示装置側で
投影変換以後の表示処理を行っている。
方法を説明する。第19図は2つの直方体AとBの空間
的な論理演算によって合成される多面体の形状を示す図
で、同図(a)はAとBの位置関係を示し、同図(b)は論理
和A∨B、同図(c)は論理積A∧B、同図(d)は論理差A
−Bによる結果である。通常は、システムの利用者が
A,Bのような基本立体の形状と寸法、移動と回転の
両、論理演算記号を入力すると、多面体モデリングシス
テムは両多面体を座標変換して位置関係を設定し、両多
面体の交差稜線をすべて求め、目的とする合成体を囲む
多角形をすべて求めることにより多面体モデルを作成す
る。出来上がった多面体にさらに第3,第4の基本立体
や別の合成体を逐次合成して次第に複雑な形状の多面体
を形成して行く。第20図は4つの基本立体A1,A2,A3,A
4の合成方法の一例を示す図で、CSG(Constructive
Solid Geometory)表現またはCSGトリーと呼ばれる
立体表現法である。これに対し、多面体を囲む多角形の
集合による表現は境界表現(Boundary Representatio
n)と呼ばれる。CSG表現から境界表現への変換を行
う処理には多大の計算量が必要であるから、通常はこの
処理を第18図のホストプロセッサ21において実行
し、境界表現による多面体データとしてホストインタフ
ェース22から図形メモリ24に転送し、表示装置側で
投影変換以後の表示処理を行っている。
(発明が解決しようとする問題点) しかしながら、以上述べたような処理方式では2つの多
面体の交差稜線を求めるために両多面体を囲む多角形の
すべての組合わせについて3次元的な交差を調べる必要
があるので、利用者が多面体のCSG表現を入力してか
らその3次元画像を得るまでに多大の時間を費やすこと
になり、この応答性の悪さが対話型の多面体モデリング
システムの1つの大きな問題点であった。
面体の交差稜線を求めるために両多面体を囲む多角形の
すべての組合わせについて3次元的な交差を調べる必要
があるので、利用者が多面体のCSG表現を入力してか
らその3次元画像を得るまでに多大の時間を費やすこと
になり、この応答性の悪さが対話型の多面体モデリング
システムの1つの大きな問題点であった。
本発明はこのような従来技術の問題点を解決するために
なされたものであって、応答性の優れた多面体モデリン
グシステムを構築できるように、CSG表現多面体を直
接表示できる3次元画像表示装置を提供することを目的
とする。
なされたものであって、応答性の優れた多面体モデリン
グシステムを構築できるように、CSG表現多面体を直
接表示できる3次元画像表示装置を提供することを目的
とする。
(問題点を解決するための手段) 本発明の2次元画像表示装置は、前記従来技術の問題点
を解決するため、多面体のCSG表現データとその構成
要素である基本立体データとを記憶する第1の図形メモ
リと、基本立体データに対し、当該CSG表現及び視点
情報にしたがって座標変換及び投影変換を施す座標変換
器と、変換された基本立体データを記憶する第2の図形
メモリと、基本立体を囲む多角形を走査変換して三原色
強度及び深度をもつ画素データに分解する走査変換器
と、画面上の画素毎に3次元画像の三原色強度を記憶す
る画像メモリと、画素毎に深度を一時記憶する第1のz
バッファメモリと、CSG表現における基本立体のうち
の1つだけの前方面または後方面を走査変換したときの
構成画素の深度のみを一時記憶する第2のzバッファメ
モリと、可視となる画素をCSG表現の論理式にしたが
って検出するために、その基本立体の前方面または後方
面の構成画素の各々につきそれが他の基本立体の内部か
外部かを判定してその結果を記憶する論理演算メモリ
と、深度の付与された画素データを隠面消去しつつ画像
メモリ及び第1のzバッファメモリに書き込む操作、及
びCSG論理演算のために第2のzバッファメモリ及び
論理演算メモリの制御を行うメモリ更新器とを設け、可
視とされた基本立体の構成画素に対し三原色強度及び深
度を求め、該データを隠面消去しつつ画像メモリ及び第
1のzバッファメモリに書き込むことにより、CSG表
現による多面体の3次元画像を表示するようにしたもの
である。
を解決するため、多面体のCSG表現データとその構成
要素である基本立体データとを記憶する第1の図形メモ
リと、基本立体データに対し、当該CSG表現及び視点
情報にしたがって座標変換及び投影変換を施す座標変換
器と、変換された基本立体データを記憶する第2の図形
メモリと、基本立体を囲む多角形を走査変換して三原色
強度及び深度をもつ画素データに分解する走査変換器
と、画面上の画素毎に3次元画像の三原色強度を記憶す
る画像メモリと、画素毎に深度を一時記憶する第1のz
バッファメモリと、CSG表現における基本立体のうち
の1つだけの前方面または後方面を走査変換したときの
構成画素の深度のみを一時記憶する第2のzバッファメ
モリと、可視となる画素をCSG表現の論理式にしたが
って検出するために、その基本立体の前方面または後方
面の構成画素の各々につきそれが他の基本立体の内部か
外部かを判定してその結果を記憶する論理演算メモリ
と、深度の付与された画素データを隠面消去しつつ画像
メモリ及び第1のzバッファメモリに書き込む操作、及
びCSG論理演算のために第2のzバッファメモリ及び
論理演算メモリの制御を行うメモリ更新器とを設け、可
視とされた基本立体の構成画素に対し三原色強度及び深
度を求め、該データを隠面消去しつつ画像メモリ及び第
1のzバッファメモリに書き込むことにより、CSG表
現による多面体の3次元画像を表示するようにしたもの
である。
(作用) 本発明によれば以上のように3次元画像表示装置を構成
したので、各技術手段は次のように作用する。
したので、各技術手段は次のように作用する。
第1の図形メモリは基本立体データ及び多面体のCSG
表現データを記憶する。座標変換器は第1の図形メモリ
から基本立体データを読み出し、それに座標変換及び投
影変換を施す。変換された基本立体データは第2の図形
メモリに記憶される。走査変換器は基本立体を囲む多角
形を走査変換して三原色強度及び深度の画素データを得
る。この画素データは、メモリ更新器の働きにより、画
像メモリ及び第1のzバッファメモリに隠面消去しなが
ら書き込まれる。すなわち画像メモリは画面上の画素毎
に3次元画像の3原色強度を記憶し、第1のzバッファ
メモリは画素毎に深度を記憶する。ところで本発明では
第2の図形メモリに記憶されている変換された基本立体
データより多面体を合成するわけであるが、この合成の
ため、第2のzバッファメモリは基本立体のうちの1つ
だけの前方面または後方面を走査変換した画素の深度の
みを記憶し、一方論理演算メモリは1の基本立体の各画
素につきそれが他の基本立体の内部か外部かを判定した
結果を保持する。そしてメモリ更新器の働きにより、こ
れらの情報を参照しつつ可視となる画素がCSG論理演
算にしたがって求められる。そしてメモリ更新器の操作
により、可視と判定された基本立体の三原色強度及び深
度のデータが隠面消去を行いながら画像メモリ及び第1
のzバッファメモリに正しく書き込まれる。したがっ
て、CSG表現から境界表現への変換をせずに多面体画
像を直接表示できるようになり、前記従来技術の問題点
が解決される。
表現データを記憶する。座標変換器は第1の図形メモリ
から基本立体データを読み出し、それに座標変換及び投
影変換を施す。変換された基本立体データは第2の図形
メモリに記憶される。走査変換器は基本立体を囲む多角
形を走査変換して三原色強度及び深度の画素データを得
る。この画素データは、メモリ更新器の働きにより、画
像メモリ及び第1のzバッファメモリに隠面消去しなが
ら書き込まれる。すなわち画像メモリは画面上の画素毎
に3次元画像の3原色強度を記憶し、第1のzバッファ
メモリは画素毎に深度を記憶する。ところで本発明では
第2の図形メモリに記憶されている変換された基本立体
データより多面体を合成するわけであるが、この合成の
ため、第2のzバッファメモリは基本立体のうちの1つ
だけの前方面または後方面を走査変換した画素の深度の
みを記憶し、一方論理演算メモリは1の基本立体の各画
素につきそれが他の基本立体の内部か外部かを判定した
結果を保持する。そしてメモリ更新器の働きにより、こ
れらの情報を参照しつつ可視となる画素がCSG論理演
算にしたがって求められる。そしてメモリ更新器の操作
により、可視と判定された基本立体の三原色強度及び深
度のデータが隠面消去を行いながら画像メモリ及び第1
のzバッファメモリに正しく書き込まれる。したがっ
て、CSG表現から境界表現への変換をせずに多面体画
像を直接表示できるようになり、前記従来技術の問題点
が解決される。
(実施例) 以下本発明の一実施例について詳細に説明する。
第1図は本実施例の3次元画像表示装置の構成を示すブ
ロック図である。図中1はホストプロセッサ、2はホス
トインタフェース、3は制御プロセッサ、4は第1の図
形メモリ、5は第2の図形メモリ、6は座標変換器、7
は走査変換器、8はメモリ更新器、9は画像メモリ、1
0は第1のzバッファメモリ、11は第2のzバッファ
メモリ、12は論理演算メモリである。この装置を第1
8図の従来の装置と比較すると、第2の図形メモリ5、
第2のzバッファメモリ11及び論理演算メモリ12を
追加した点が主として相違している。第1図の3次元画
像表示装置を使用すれば境界表現の多面体モデルの他、
CSG表現の多面体モデルの画像も生成できる。以下、
CSG表現された多面体を本装置を使用して表示処理す
る手順を詳細に説明する。
ロック図である。図中1はホストプロセッサ、2はホス
トインタフェース、3は制御プロセッサ、4は第1の図
形メモリ、5は第2の図形メモリ、6は座標変換器、7
は走査変換器、8はメモリ更新器、9は画像メモリ、1
0は第1のzバッファメモリ、11は第2のzバッファ
メモリ、12は論理演算メモリである。この装置を第1
8図の従来の装置と比較すると、第2の図形メモリ5、
第2のzバッファメモリ11及び論理演算メモリ12を
追加した点が主として相違している。第1図の3次元画
像表示装置を使用すれば境界表現の多面体モデルの他、
CSG表現の多面体モデルの画像も生成できる。以下、
CSG表現された多面体を本装置を使用して表示処理す
る手順を詳細に説明する。
第1図の第1の図形メモリ4には表示すべきすべての3
次元図形データが記憶されている。これらの図形データ
は通常は3次元世界座標系で既述されており、順次読み
出されて座標変換器6による投影変換と走査変換器7に
よる走査変換を施され、メモリ更新器8の働きにより画
像メモリ9及び第1のzバッファメモリ10に深度の付
与された3次元画像として合成されて行く。CSG表現
の多面体はこれらの図形の1表現形態として発生するも
ので、このときCSG多面体を画像メモリ9に正しく合
成表示する必要がある。
次元図形データが記憶されている。これらの図形データ
は通常は3次元世界座標系で既述されており、順次読み
出されて座標変換器6による投影変換と走査変換器7に
よる走査変換を施され、メモリ更新器8の働きにより画
像メモリ9及び第1のzバッファメモリ10に深度の付
与された3次元画像として合成されて行く。CSG表現
の多面体はこれらの図形の1表現形態として発生するも
ので、このときCSG多面体を画像メモリ9に正しく合
成表示する必要がある。
CSG表現の多面体は第20図に例示されるような木
(トリー)構造をもつ。CSGトリーの葉に位置する
「基本立体」は第3図のように定義される。第3図(a)
のように基本立体に固定した座標系O−XYZにおい
て、基本立体の各頂点V1〜V8の座標を第3図(b)の
ように定義し、基本立体を囲む各面S1〜S6を第3図
(c)のように頂点の系列として定義する。各面は多角形
であって基本立体の外部から見て反時計回りになるよう
に頂点を順に並べたものとする。第20図のCSGトリ
ーの枝に位置する「変換」は基本立体または合成途中の
立体(以下これらを単に立体と呼ぶ)の座標変換を指定
するもので、拡大,縮小,平行移動,回転の組合せが許
される。この変換は次式のようなベクトルとマトリクス
の乗算である。
(トリー)構造をもつ。CSGトリーの葉に位置する
「基本立体」は第3図のように定義される。第3図(a)
のように基本立体に固定した座標系O−XYZにおい
て、基本立体の各頂点V1〜V8の座標を第3図(b)の
ように定義し、基本立体を囲む各面S1〜S6を第3図
(c)のように頂点の系列として定義する。各面は多角形
であって基本立体の外部から見て反時計回りになるよう
に頂点を順に並べたものとする。第20図のCSGトリ
ーの枝に位置する「変換」は基本立体または合成途中の
立体(以下これらを単に立体と呼ぶ)の座標変換を指定
するもので、拡大,縮小,平行移動,回転の組合せが許
される。この変換は次式のようなベクトルとマトリクス
の乗算である。
第20図のCSGトリーの節に位置する「合成」は座標
変換を受けた2つの立体に和,積,差のいずれかの2項
論理演算を施すものである。第20図では基本立体A1,A
2に「合成1」が施され、基本立体A3,A4に「合成2」が
施され、これらの合成体にさらに「合成3」が施されて
最終的な合成体が得られる。「変換7」はこの合成体を
世界座標系内のしかるべき位置に置き、または運動させ
る機能をもつ。この合成体はさらに「投影変換」を受け
て画面上に表示される。ところが、この合成体の表面は
基本立体A1,A2,A3,A4のいずれかの表面であるから、第
2図に示すように基本立体A1,A2,A3,A4を個別に画面座
標系まで変換した立体をそれぞれA1S,A2S,A3S,A4Sと
し、これらの変換された基本立体を第20図と同じ合成
手続きにより合成すればよい。
変換を受けた2つの立体に和,積,差のいずれかの2項
論理演算を施すものである。第20図では基本立体A1,A
2に「合成1」が施され、基本立体A3,A4に「合成2」が
施され、これらの合成体にさらに「合成3」が施されて
最終的な合成体が得られる。「変換7」はこの合成体を
世界座標系内のしかるべき位置に置き、または運動させ
る機能をもつ。この合成体はさらに「投影変換」を受け
て画面上に表示される。ところが、この合成体の表面は
基本立体A1,A2,A3,A4のいずれかの表面であるから、第
2図に示すように基本立体A1,A2,A3,A4を個別に画面座
標系まで変換した立体をそれぞれA1S,A2S,A3S,A4Sと
し、これらの変換された基本立体を第20図と同じ合成
手続きにより合成すればよい。
画面座標系に変換された基本立体データA1S,A2S,A3S,A
4Sは第2の図形メモリ5に記憶される。画面座標系os-x
syszsにおける基本立体データの1つ(例えばA1S)を
選び第4図に例示する。第4図(a)は同座標系における
A1Sの空間位置を示す図である。第4図(b)の頂点座標
は次式により求められる。
4Sは第2の図形メモリ5に記憶される。画面座標系os-x
syszsにおける基本立体データの1つ(例えばA1S)を
選び第4図に例示する。第4図(a)は同座標系における
A1Sの空間位置を示す図である。第4図(b)の頂点座標
は次式により求められる。
〔xsiysizsiwsi〕=〔XiYiZi1〕・M1・M5・M7・Mp 但し、i=1,2,…,8 … ここにM1,M5,M7,Mpはそれぞれ「変換1」,「変換
5」,「変換7」,「投影変換」を表わす4×4の行列
であって、M1,M5,M7は式における行列と同じ形をも
つ。Mpは平行投影の場合は式における行列と同じ形
をもつが、中心投影の場合は第4列が〔0,0,0,1〕では
ない。基本立体A1の座標変換を行うにはまず行列同志
の乗算を行って M1S=M1・M5・M7・Mp … を求めておき、行列M1Sを乗算する。M1Sは平行投影の
場合は式の行列と同じ形をもつから式の結果はwsi
=1となるが、中心投影の場合はwsi=1が成立せず、
次式による除算 を行い、これらの商の値を改めてxsi,ysi,zsiとする必
要がある。
5」,「変換7」,「投影変換」を表わす4×4の行列
であって、M1,M5,M7は式における行列と同じ形をも
つ。Mpは平行投影の場合は式における行列と同じ形
をもつが、中心投影の場合は第4列が〔0,0,0,1〕では
ない。基本立体A1の座標変換を行うにはまず行列同志
の乗算を行って M1S=M1・M5・M7・Mp … を求めておき、行列M1Sを乗算する。M1Sは平行投影の
場合は式の行列と同じ形をもつから式の結果はwsi
=1となるが、中心投影の場合はwsi=1が成立せず、
次式による除算 を行い、これらの商の値を改めてxsi,ysi,zsiとする必
要がある。
第4図(c)は画面座標系に変換された基本立体の各面S
iに関するデータで、各面Siにつき、頂点系列の他、
三原色強度Ri,Gi,Bi及び外向き法線ベクトルのzs方向
成分n′ziをもっている。(R,G,B)の値として陰影を
付ける場合には、多面体全体に一定の色相(r,g,b)を
指定し、多面体が世界座標系内に置かれた時、ある光源
から照射した光の反射強度Iiを多面体の各面Siに対
して計算し、 Ri=r×Ii,Gi=g×Ii,Bi=b×Ii
… をもって(Ri,Gi,Bi)とする。この処理は以下の手順で
行われる。まず、 〔xwiywizwi1〕=〔XiYiZi1〕・M1・M5・M7
… により、基本立体データを世界座標系まで座標変換す
る。その結果を第5図に示す。多面体の各面Siの反射
強度Iiはその面に立てた法線と光の入射方向との傾角
(入射角)θiの余弦によって決まるから、各面Siの
単位法線ベクトルni=(nxi,nyi,nzi)を求め、これ
と光源方向への単位ベクトルl=(lx,ly,lz)から Ii=Iocosθi=Io(lxnxi+lynyi+lznzi) …
を求める。ここにIoは光源の強度、θiは入射角を示
す。面の法線ベクトルはその上の3点の座標値から計算
される。例えば第5図(a)に示すように面S1の外向き
単位法線ベクトルn1=(nx1,ny1,nz1)を求めるに
は、反時計回りの3つの頂点V1,V2,V3を用いて
次のように計算する。
iに関するデータで、各面Siにつき、頂点系列の他、
三原色強度Ri,Gi,Bi及び外向き法線ベクトルのzs方向
成分n′ziをもっている。(R,G,B)の値として陰影を
付ける場合には、多面体全体に一定の色相(r,g,b)を
指定し、多面体が世界座標系内に置かれた時、ある光源
から照射した光の反射強度Iiを多面体の各面Siに対
して計算し、 Ri=r×Ii,Gi=g×Ii,Bi=b×Ii
… をもって(Ri,Gi,Bi)とする。この処理は以下の手順で
行われる。まず、 〔xwiywizwi1〕=〔XiYiZi1〕・M1・M5・M7
… により、基本立体データを世界座標系まで座標変換す
る。その結果を第5図に示す。多面体の各面Siの反射
強度Iiはその面に立てた法線と光の入射方向との傾角
(入射角)θiの余弦によって決まるから、各面Siの
単位法線ベクトルni=(nxi,nyi,nzi)を求め、これ
と光源方向への単位ベクトルl=(lx,ly,lz)から Ii=Iocosθi=Io(lxnxi+lynyi+lznzi) …
を求める。ここにIoは光源の強度、θiは入射角を示
す。面の法線ベクトルはその上の3点の座標値から計算
される。例えば第5図(a)に示すように面S1の外向き
単位法線ベクトルn1=(nx1,ny1,nz1)を求めるに
は、反時計回りの3つの頂点V1,V2,V3を用いて
次のように計算する。
NX1=(yw2-yw1)(Zw3-zw1)−(yw3-yw1)(Zw2-
zw1) … Ny1=(zw2-zw1)(xw3-xw1)−(zw3-zw1)(xw2-
xw1) … Nz1=(xw2-xw1)(yw3-yw1)−(xw3-xw1)(yw2-
yw1) … 各面Siの外向き法線ベクトルと反射強度の結果を第5
図(c)に示す。θi>180°の場合、式による反射強度
Iiが負の値をとり、その面は光源に対して裏となる
が、符号を反転した非負値−Iiはその面の内面を照射
する場合の反射強度を示している。こうして求められた
符号付の反射強度Iiに式により(r,g,b)を乗じた
ものが第4図(c)における(Ri,Gi,Bi)である。また、
平行投影の場合には、法線ベクトルを次式により画面座
標系に投影変換し、 〔n′xi n′yi n′zi 1〕 =〔nxi nyi nzi 1〕・Mp … によって、中心投影の場合には画面座標系に投影変換さ
れた頂点座標を用いて式〜によって、n′ziのみを
求めて第4図(c)に示すように記憶すれば、n′ziの符
号は基本立体の外面が視点に対して表か裏かを示してい
る。n′zi<0のときこの面は視点側を向いている表面
であるから前方面と呼び、n′zi>0のときこの面は視
点と反対側を向いている裏面であるから後方面と呼ぶ。
単一の多面体では前方面のみを表示すればよいが、CS
G表現多面体では第19図(d)における立体Bのように
基本立体の後方面が合成体の表面になり得るから、この
ような基本立体については後方面を表示する必要があ
る。
zw1) … Ny1=(zw2-zw1)(xw3-xw1)−(zw3-zw1)(xw2-
xw1) … Nz1=(xw2-xw1)(yw3-yw1)−(xw3-xw1)(yw2-
yw1) … 各面Siの外向き法線ベクトルと反射強度の結果を第5
図(c)に示す。θi>180°の場合、式による反射強度
Iiが負の値をとり、その面は光源に対して裏となる
が、符号を反転した非負値−Iiはその面の内面を照射
する場合の反射強度を示している。こうして求められた
符号付の反射強度Iiに式により(r,g,b)を乗じた
ものが第4図(c)における(Ri,Gi,Bi)である。また、
平行投影の場合には、法線ベクトルを次式により画面座
標系に投影変換し、 〔n′xi n′yi n′zi 1〕 =〔nxi nyi nzi 1〕・Mp … によって、中心投影の場合には画面座標系に投影変換さ
れた頂点座標を用いて式〜によって、n′ziのみを
求めて第4図(c)に示すように記憶すれば、n′ziの符
号は基本立体の外面が視点に対して表か裏かを示してい
る。n′zi<0のときこの面は視点側を向いている表面
であるから前方面と呼び、n′zi>0のときこの面は視
点と反対側を向いている裏面であるから後方面と呼ぶ。
単一の多面体では前方面のみを表示すればよいが、CS
G表現多面体では第19図(d)における立体Bのように
基本立体の後方面が合成体の表面になり得るから、この
ような基本立体については後方面を表示する必要があ
る。
次に画面座標系に変換された基本立体データA1S,A2S,A
3S,A4Sを使って合成体の画像を構成する方法を説明す
る。以後の説明では、A1S,A2S,A3S,A4Sを改めてA1,A2,A
3,A4と書き、画面座標系においてA1,A2,A3,A4はいずれ
も凸多面体であると仮定する。また、画面座標系はo−
xyzと記す。
3S,A4Sを使って合成体の画像を構成する方法を説明す
る。以後の説明では、A1S,A2S,A3S,A4Sを改めてA1,A2,A
3,A4と書き、画面座標系においてA1,A2,A3,A4はいずれ
も凸多面体であると仮定する。また、画面座標系はo−
xyzと記す。
まず最も簡単な場合として、2つの凸多面体A1,A2の
和,差,積の表示方法を順に述べる。第6図は和A1∨
A2の、y座標が一定の走査線を含む水平面(走査平
面)による断面図である。多面体A1,A2の断面は凸多角
形であって、斜線を施した領域が多面体A1∨A2の内
部である。この図の白丸印及び黒丸印・は多面体A1
及びA2の前方面のみを走査変換した1行分の深度の付
与された画素を示している。視点はz軸上負の無限遠点
にあるから・印の画素が可視、印が不可視となる。ま
たA1,A2の後方面が不可視となることは第6図から明ら
かである。従ってA1∨A2を表示するには、まずA1
の前方面を順次走査変換して画像メモリ9及び第1のz
バッファメモリ10に隠面消去を伴う書き込みを行い、
次にA2の前方面について同じ処理を行えばよい。
和,差,積の表示方法を順に述べる。第6図は和A1∨
A2の、y座標が一定の走査線を含む水平面(走査平
面)による断面図である。多面体A1,A2の断面は凸多角
形であって、斜線を施した領域が多面体A1∨A2の内
部である。この図の白丸印及び黒丸印・は多面体A1
及びA2の前方面のみを走査変換した1行分の深度の付
与された画素を示している。視点はz軸上負の無限遠点
にあるから・印の画素が可視、印が不可視となる。ま
たA1,A2の後方面が不可視となることは第6図から明ら
かである。従ってA1∨A2を表示するには、まずA1
の前方面を順次走査変換して画像メモリ9及び第1のz
バッファメモリ10に隠面消去を伴う書き込みを行い、
次にA2の前方面について同じ処理を行えばよい。
第7図は2つの凸多面体A1,A2の積A1∧A2の走査平
面による断面図を示している。第7図(a)はA1の前方
面の画素を印及び・印で示し、このうちA2の内部に
ある・印の画素がA1∧A2の前方面上にあることを示
している。第7図(b)はA2の前方面のうち・印の画素
がA1∧A2の前方面上にあることを示している。従っ
て合成体A1∧A2を表示するには、A1とA2の前方
面を走査変換し、第7図(a),(b)における・印の画素を
検出し、第1図の画像メモリ9及び第1のzバッファメ
モリ10に隠面消去を伴う書き込みを行えばよい。・印
の画素を選び出すためには、第2のzバッファメモリ1
1、及び論理演算メモリ12を使用する。
面による断面図を示している。第7図(a)はA1の前方
面の画素を印及び・印で示し、このうちA2の内部に
ある・印の画素がA1∧A2の前方面上にあることを示
している。第7図(b)はA2の前方面のうち・印の画素
がA1∧A2の前方面上にあることを示している。従っ
て合成体A1∧A2を表示するには、A1とA2の前方
面を走査変換し、第7図(a),(b)における・印の画素を
検出し、第1図の画像メモリ9及び第1のzバッファメ
モリ10に隠面消去を伴う書き込みを行えばよい。・印
の画素を選び出すためには、第2のzバッファメモリ1
1、及び論理演算メモリ12を使用する。
A1の前方面のうち、A2の内部を検出し表示する手順
を第8図に示す。最初にステップ101で第2のzバッ
ファメモリ11全体をz座標の最大値zmaxで満たす。
次にステップ102でA1の前方面を走査変換し、画素
列(Xi,yi,zi)i=1,2,…を得たとき、第2のzバッフ
ァメモリ11の(xi,yi)番地にziを書き込む。すな
わちzi→zs(xi,yi)とする。次にステップ103
で論理演算メモリ12全体を0で満たす。そして、ステ
ップ104でA2の前方面を走査変換し、画素列(xi,y
i,zi)i=1,2,…を得たとき、第2のzバッファメモリ
11の(xi,yi)番地の内容zs(xi,yi)とziを比較
し、zizs(xi,yi)が成立すれば論理演算メモリ
12の(xi,yi)番地の値Cs(xi,yi)を1だけ増加さ
せる。次にステップ105でA2の後方面を走査変換
し、画素列(xi,yi,zi)i=1,2,…を得たとき、zi
zs(xi,yi)が成立すればCs(xi,yi)を1だけ減少
させる。その結果、A1の前方面の画素のうち、A2の
前方面の背後にあり、かつA2の後方面の手前にあるも
ののみがCs=1の値を有し、その他の画素はCs=0
となる。すなわち第7図の・印の画素はCs=1とな
る。そこでステップ106で多面体A1の前方面を再び
走査変換し、三原色強度と深度を含む画素列(xi,yi,
zi,Ri,Gi,Bi)i=1,2,…を得たとき、Cs(xi,yi)=
1かつzi<zM(xi,yi)ならばzi→zM(xi,
yi),Ri→RM(xi,yi),Gi→GM(xi,yi),B
i→BM(xi,yi)の書き込みを行う。その結果、A1
の前方面のうちA2の内部及び境界の部分が隠面消去を
伴って画像メモリ9及び第1のzバッファメモリ10に
書き込まれる。以後、このような隠面消去を伴うメモリ
書き込みを単に「表示する」と記す。
を第8図に示す。最初にステップ101で第2のzバッ
ファメモリ11全体をz座標の最大値zmaxで満たす。
次にステップ102でA1の前方面を走査変換し、画素
列(Xi,yi,zi)i=1,2,…を得たとき、第2のzバッフ
ァメモリ11の(xi,yi)番地にziを書き込む。すな
わちzi→zs(xi,yi)とする。次にステップ103
で論理演算メモリ12全体を0で満たす。そして、ステ
ップ104でA2の前方面を走査変換し、画素列(xi,y
i,zi)i=1,2,…を得たとき、第2のzバッファメモリ
11の(xi,yi)番地の内容zs(xi,yi)とziを比較
し、zizs(xi,yi)が成立すれば論理演算メモリ
12の(xi,yi)番地の値Cs(xi,yi)を1だけ増加さ
せる。次にステップ105でA2の後方面を走査変換
し、画素列(xi,yi,zi)i=1,2,…を得たとき、zi
zs(xi,yi)が成立すればCs(xi,yi)を1だけ減少
させる。その結果、A1の前方面の画素のうち、A2の
前方面の背後にあり、かつA2の後方面の手前にあるも
ののみがCs=1の値を有し、その他の画素はCs=0
となる。すなわち第7図の・印の画素はCs=1とな
る。そこでステップ106で多面体A1の前方面を再び
走査変換し、三原色強度と深度を含む画素列(xi,yi,
zi,Ri,Gi,Bi)i=1,2,…を得たとき、Cs(xi,yi)=
1かつzi<zM(xi,yi)ならばzi→zM(xi,
yi),Ri→RM(xi,yi),Gi→GM(xi,yi),B
i→BM(xi,yi)の書き込みを行う。その結果、A1
の前方面のうちA2の内部及び境界の部分が隠面消去を
伴って画像メモリ9及び第1のzバッファメモリ10に
書き込まれる。以後、このような隠面消去を伴うメモリ
書き込みを単に「表示する」と記す。
次に、A2の前方面のうち、A1の内部を検出し表示す
る。その手順は第8図においてA1とA2を交換したも
のである。以上により多面体A1∧A2が表示される。
る。その手順は第8図においてA1とA2を交換したも
のである。以上により多面体A1∧A2が表示される。
第9図は2つの凸面体A1,A2の差A1−A2の走査平面
上の断面を示している。同図(a)はA1の前方面のうち
A2の外部にある画素・印がA1−A2の前方面である
ことを示し、同図(b)はA2の後方面のうちA1の内部
にある画素・印がA1−A2の前方面であることを示し
ている。A1の前方面のうちA2の外部を表示する手順
は第8図のステップ106において、Cs=0かつzi
<zMのとき、zi,Ri,Gi,Biの書き込みを行えばよい。
A2の後方面のA1の内部を表示する方法も同様であ
る。この場合、A2の内面はA1−A2の外面になって
いる。
上の断面を示している。同図(a)はA1の前方面のうち
A2の外部にある画素・印がA1−A2の前方面である
ことを示し、同図(b)はA2の後方面のうちA1の内部
にある画素・印がA1−A2の前方面であることを示し
ている。A1の前方面のうちA2の外部を表示する手順
は第8図のステップ106において、Cs=0かつzi
<zMのとき、zi,Ri,Gi,Biの書き込みを行えばよい。
A2の後方面のA1の内部を表示する方法も同様であ
る。この場合、A2の内面はA1−A2の外面になって
いる。
合成体の表面の三原色強度Ri,Gi,Biの値を決定するには
以下の注意が必要である。第4図(c)に記載されている
(Ri,Gi,Bi)の値は基本立体の外面に対する三原色強度
を符号付きで示しているので、その基本立体の外面を表
示する場合には、(Ri,Gi,Bi)の値が非負であればその
まま、(Ri,Gi,Bi)が負であれば(0,0,0)に設定す
る。また、A1−A2におけるA2のようにその基本立
体の内面を表示する場合には、(Ri,Gi,Bi)の符号を反
転して(-Ri,-Gi,-Bi)とし、これらの値が非負であれ
ばそのまま、負であれば(0,0,0)に設定する。しかし
この方法では光源に対して裏向きの面は黒レベルで表示
されることになるので、これを次のような方法で避け
る。光源からの直射光Ioによる散乱反射強度Io co
sθiに一定の周囲光強度I′oを加え、式の代わり
に I1=Io cosθi+I′o … を反射強度とする。多面体の色相(r,g,b)にI′oを
乗じた R′o=r×I′o,G′o=g×I′o,B′o=b
×I′o … を前記のように得られた非負の強度(Ri,Gi,Bi)に加算
した(Ri+R′o,Gi+G′o,Bi+B′o)を
周囲光の加味された三原色強度として画像メモリ9に書
き込む。一般に合成体の構成要素である各基本立体の外
面を表示すべきか内面を表示すべきかは、後述するよう
にCSGトリーを座標系に変換したとき、基本立体に反転
記号が付いているか否かより決定できるから、上記の各
面の三原色強度の計算は座標変換直後に実行し、その結
果を第4図(c)の(Ri,Gi,Bi)として第2の図形メモリ
5に記憶すればよい。
以下の注意が必要である。第4図(c)に記載されている
(Ri,Gi,Bi)の値は基本立体の外面に対する三原色強度
を符号付きで示しているので、その基本立体の外面を表
示する場合には、(Ri,Gi,Bi)の値が非負であればその
まま、(Ri,Gi,Bi)が負であれば(0,0,0)に設定す
る。また、A1−A2におけるA2のようにその基本立
体の内面を表示する場合には、(Ri,Gi,Bi)の符号を反
転して(-Ri,-Gi,-Bi)とし、これらの値が非負であれ
ばそのまま、負であれば(0,0,0)に設定する。しかし
この方法では光源に対して裏向きの面は黒レベルで表示
されることになるので、これを次のような方法で避け
る。光源からの直射光Ioによる散乱反射強度Io co
sθiに一定の周囲光強度I′oを加え、式の代わり
に I1=Io cosθi+I′o … を反射強度とする。多面体の色相(r,g,b)にI′oを
乗じた R′o=r×I′o,G′o=g×I′o,B′o=b
×I′o … を前記のように得られた非負の強度(Ri,Gi,Bi)に加算
した(Ri+R′o,Gi+G′o,Bi+B′o)を
周囲光の加味された三原色強度として画像メモリ9に書
き込む。一般に合成体の構成要素である各基本立体の外
面を表示すべきか内面を表示すべきかは、後述するよう
にCSGトリーを座標系に変換したとき、基本立体に反転
記号が付いているか否かより決定できるから、上記の各
面の三原色強度の計算は座標変換直後に実行し、その結
果を第4図(c)の(Ri,Gi,Bi)として第2の図形メモリ
5に記憶すればよい。
次に3つの凸多面体A1,A2,A3の合成体の表示方法を種々
の合成式について説明する。第10図(a)はA1∨A2
∨A3の走査平面による断面を示しており、これを表示
するにはA1,A2,A3の外面を順次走査変換して表示すれば
よい。第10図(b)はA1∧A2∧A3の断面を示して
おり、これを表示するには、A1の外面のA2∧A3内
部、A2の外面のA3∧A1内部、A3の外面のA1∧
A2内部を順に表示すればよい。この操作を次式のよう
に表わす。
の合成式について説明する。第10図(a)はA1∨A2
∨A3の走査平面による断面を示しており、これを表示
するにはA1,A2,A3の外面を順次走査変換して表示すれば
よい。第10図(b)はA1∧A2∧A3の断面を示して
おり、これを表示するには、A1の外面のA2∧A3内
部、A2の外面のA3∧A1内部、A3の外面のA1∧
A2内部を順に表示すればよい。この操作を次式のよう
に表わす。
A1∧A2∧A3=A1⊆(A2∧A3)+A2⊆(A1∧A3)+A3⊆(A
1∧A2) … ここにA1⊆(A2∧A3)はA1の外面のうちA2∧
A3の内部を示しており、+記号はこれによって結合さ
れた各項を順次表示すべきことを示している。A1⊆
(A2∧A3)を第2のzバッファメモリ11及び論理
演算メモリ12を使って求める手順を第11図に示す。
以下の説明では、論理演算メモリ12の1画素に対する
1語を16ビットとして第12図に示すようにCs,Cs1,C
s2,…,Cs8に区分したものを使用する。まずステージ
201で多面体A1の前方面を描き、その深度をzsに
書き込む。ステージ202でA2の前方面及び後方面を
描き、A1の各画素がA2の内部にあるか外部にあるか
を判定し、その結果をCs1に書き込む。ステージ203
でA3の前方面及び後方面を描き、A1の各画素がA3
の内部にあるか外部にあるかを判定し、その結果をCs2
に書き込む。ステージ204でCs1∧Cs2→Csなる論
理演算を画素毎に実行し、A2∧A3の内部にある画素
を検出する。ステージ205でA1の前方面のR,G,B,z
を求め、Cs=1の画素のみを表示する。A2,A3につい
ても同様の方法で表示する。
1∧A2) … ここにA1⊆(A2∧A3)はA1の外面のうちA2∧
A3の内部を示しており、+記号はこれによって結合さ
れた各項を順次表示すべきことを示している。A1⊆
(A2∧A3)を第2のzバッファメモリ11及び論理
演算メモリ12を使って求める手順を第11図に示す。
以下の説明では、論理演算メモリ12の1画素に対する
1語を16ビットとして第12図に示すようにCs,Cs1,C
s2,…,Cs8に区分したものを使用する。まずステージ
201で多面体A1の前方面を描き、その深度をzsに
書き込む。ステージ202でA2の前方面及び後方面を
描き、A1の各画素がA2の内部にあるか外部にあるか
を判定し、その結果をCs1に書き込む。ステージ203
でA3の前方面及び後方面を描き、A1の各画素がA3
の内部にあるか外部にあるかを判定し、その結果をCs2
に書き込む。ステージ204でCs1∧Cs2→Csなる論
理演算を画素毎に実行し、A2∧A3の内部にある画素
を検出する。ステージ205でA1の前方面のR,G,B,z
を求め、Cs=1の画素のみを表示する。A2,A3につい
ても同様の方法で表示する。
第10図(c)は(A1∧A2)−A3の断面を示す。こ
れを表示するにはA1の外面のA2∧3内部、A2の
外面のA1∧3内部、A3の内面のA1∧A2内部を
順に表示すればよい。この操作は次式のように表わされ
る。
れを表示するにはA1の外面のA2∧3内部、A2の
外面のA1∧3内部、A3の内面のA1∧A2内部を
順に表示すればよい。この操作は次式のように表わされ
る。
(A1∧A2)−A3=A1⊆(A2∧3)+A2⊆(A1∧3)+3⊆
(A1∧A2) … ここにA1⊆(A2∧3)における3は多面体A3
の外部領域を示しており、3⊆(A1∧A2)におけ
る3は多面体A3の内面を示している。内面を表示す
るにはその後方面のみを表示すればよい。A1⊆(A2
∧3)をzs及びCsを使って求める手順は第11図
におけるステージ204をCs1∧s2→Csと変更した
ものである。
(A1∧A2) … ここにA1⊆(A2∧3)における3は多面体A3
の外部領域を示しており、3⊆(A1∧A2)におけ
る3は多面体A3の内面を示している。内面を表示す
るにはその後方面のみを表示すればよい。A1⊆(A2
∧3)をzs及びCsを使って求める手順は第11図
におけるステージ204をCs1∧s2→Csと変更した
ものである。
第10図(d),(e),(f),(g),(h)の合成体はそれぞれ
以下の操作で表示される。
以下の操作で表示される。
A1−A2)−A3=A1∧2∧3=A1⊆(2∧3)+2⊆(A1
∧3)+3⊆(A1∧3) …… A1∨A2)∧A3=A1⊆A3+A2⊆A3+A3⊆
(A1∨A2) …… (A1∧A2)∨A3=A1⊆A2+A2⊆A1+A3
…… (A1∨A2)−A3=A1⊆3+A2⊆3+3
⊆(A1∨A2) …… A1−(A2−A3)=A1∧2∨A3)=A1⊆(2∨A3)+2⊆A
1+A3⊆A1 …… 第10図(b)〜(h)の太線は式〜によって表示すべき
基本立体の境界面を示したもので前方面,後方面の区別
はしていない。
∧3)+3⊆(A1∧3) …… A1∨A2)∧A3=A1⊆A3+A2⊆A3+A3⊆
(A1∨A2) …… (A1∧A2)∨A3=A1⊆A2+A2⊆A1+A3
…… (A1∨A2)−A3=A1⊆3+A2⊆3+3
⊆(A1∨A2) …… A1−(A2−A3)=A1∧2∨A3)=A1⊆(2∨A3)+2⊆A
1+A3⊆A1 …… 第10図(b)〜(h)の太線は式〜によって表示すべき
基本立体の境界面を示したもので前方面,後方面の区別
はしていない。
次に、4個の多面体のCSGトリーの表示方法を一例を
あげて説明する。第13図(a)は4個の凸多面体A1,
A2,A3,A4の論理式 F=(A1∨A2)−(A3∧A4) … による合成体FのCSGトリーを示す。表示処理は次の
3ステップから成る。
あげて説明する。第13図(a)は4個の凸多面体A1,
A2,A3,A4の論理式 F=(A1∨A2)−(A3∧A4) … による合成体FのCSGトリーを示す。表示処理は次の
3ステップから成る。
(1)CSGトリーの標準形への変換 (2)反転表,関数表,干渉表の作成 (3)基本立体の順次表示処理 この中で(1),(2)の処理は、基本立体毎の座標変換以前
に実行してもよい。
に実行してもよい。
第13図(a)のCSGトリーを標準形に変換した結果を
第13図(b)に示す。これは式の論理式を次式のよう
に差演算を含まない形に変換したもののCSGトリーで
ある。
第13図(b)に示す。これは式の論理式を次式のよう
に差演算を含まない形に変換したもののCSGトリーで
ある。
F=(A1∨A2)∧(3∨4) … 標準形への変換方法を第14図に示す。まずCSGトリ
ー中のすべての差演算を第14図(a)のように積演算と
反転演算に分解する。次にこれによって生じた反転演算
記号をトリーに沿って基本立体まで移動する。第14図
(b),(c)に示すようにトリーの節で和や積に出合った
ら、ドモルガンの法則に従って和を積に、積を和に変え
ることにより、分岐しながら移動できる。第14図(d)
に示すようにトリーの枝で別の反転演算に出合ったなら
ば相殺消去する。最後に第14図(e)に示すように反転
演算子の付いている基本立体Aiを反転記号iを使っ
て表現する。
ー中のすべての差演算を第14図(a)のように積演算と
反転演算に分解する。次にこれによって生じた反転演算
記号をトリーに沿って基本立体まで移動する。第14図
(b),(c)に示すようにトリーの節で和や積に出合った
ら、ドモルガンの法則に従って和を積に、積を和に変え
ることにより、分岐しながら移動できる。第14図(d)
に示すようにトリーの枝で別の反転演算に出合ったなら
ば相殺消去する。最後に第14図(e)に示すように反転
演算子の付いている基本立体Aiを反転記号iを使っ
て表現する。
第13図(b)の標準形CSGトリーを使って、反転表,
関数表,干渉表を作成した結果を第15図に示す。第1
5図(a)の反転表は基本立体毎に、反転=1,非反転=
0の区別を示す。第15図(b)の関数表は式または式
を真理値表として展開したものである。第16図はこ
の関数表を図示したものであり、A1〜A4の包含関係
とそれにより区分された各領域にA4A3A2A1の4ビットの
符号を記入し、Fが真となる領域に斜線を施したもので
ある。この図から合成体Fを表示する操作は次式で表わ
される。
関数表,干渉表を作成した結果を第15図に示す。第1
5図(a)の反転表は基本立体毎に、反転=1,非反転=
0の区別を示す。第15図(b)の関数表は式または式
を真理値表として展開したものである。第16図はこ
の関数表を図示したものであり、A1〜A4の包含関係
とそれにより区分された各領域にA4A3A2A1の4ビットの
符号を記入し、Fが真となる領域に斜線を施したもので
ある。この図から合成体Fを表示する操作は次式で表わ
される。
F=A1⊆(3∨4)+A2⊆(3∨4)+3⊆(A1∨A2)+
4⊆(A1∨A2) …… すなわちA1の外面の3∨4内部,A2の外面の
3∨4内部、A3の内面のA1∨A2内部、A4の内
面のA1∨A2内部を順次表示すればよい。第16図の
太線は式に従って表示すべき基本立体の境界部分を示
している。式でA1とA2が相互干渉を不要としてい
るのは第13図(b)でA1とA2が和演算∨で結ばれて
いるためであり、A3とA4との関係も同様である。こ
のような基本立体間の相互干渉を示す表が干渉表であ
り、結果を第15図(c)に示す。これを作成するには、
対角要素が0,非対角要素が1の行列を作り、第13図
(b)のCSGトリーにおいてA1からFに向かって進
み、和演算ノードに出合ったらその和の相手側に属する
すべてのAiとの関係を不干渉とすべく行列の対応要素
に0を書き込む。これをA2,A3,A4についても行う。
4⊆(A1∨A2) …… すなわちA1の外面の3∨4内部,A2の外面の
3∨4内部、A3の内面のA1∨A2内部、A4の内
面のA1∨A2内部を順次表示すればよい。第16図の
太線は式に従って表示すべき基本立体の境界部分を示
している。式でA1とA2が相互干渉を不要としてい
るのは第13図(b)でA1とA2が和演算∨で結ばれて
いるためであり、A3とA4との関係も同様である。こ
のような基本立体間の相互干渉を示す表が干渉表であ
り、結果を第15図(c)に示す。これを作成するには、
対角要素が0,非対角要素が1の行列を作り、第13図
(b)のCSGトリーにおいてA1からFに向かって進
み、和演算ノードに出合ったらその和の相手側に属する
すべてのAiとの関係を不干渉とすべく行列の対応要素
に0を書き込む。これをA2,A3,A4についても行う。
第15図の3つの表を用いて基本立体の順次表示を行う
手順を第17図に示す。これは3つの多面体のCSGト
リーの表示手順を4個の多面体の場合に拡張したもので
ある。ステップ303及び317では第15図(a)の反
転表を参照し、Aiの前方面または後方面のいずれかを
走査変換する。ステップ309では第15図(c)の干渉
表を参照し、値が0ならばAiとAjの干渉処理を省略
する。ステップ316では式の合成規則に従ってCs1,
Cs2,Cs3,Cs4の論理演算を行っているがそれには第15
図(b)の関数表をメモリ更新器8内に記憶しておき、A
1=Cs1,A2=Cs2,A3=Cs3,A4=Cs4として
この表を索引し、Fの値を求め、Csに書き込めばよ
い。第12図のCs1〜Cs8を使用すれば、最大8個まで
の基本立体から合成された合成体を以上述べた処理手順
で表示することができる。例えば、8個の基本立体から
なる合成体であれば、CSGトリーの標準形への変換、
反転表、関数表、干渉表の作成の後、第17図におい
て、ステップ305に記載の「Cs1〜Cs4を1で満た
す」を「Cs1〜Cs8を1で満たす」と変更し、ステップ
307に記載の「Cs1〜Cs4を0で満たす」を「Cs1〜
Cs8を0で満たす」と変更し、ステップ314に記載の
「j=4」を「j=8」と変更し、ステップ318に記
載の「j=4」を「j=8」と変更し、ステップ316
は、Cs1〜Cs8を用いて与えられた合成体の論理式の値
を求めて結果をCsとするように変更すればよい。
手順を第17図に示す。これは3つの多面体のCSGト
リーの表示手順を4個の多面体の場合に拡張したもので
ある。ステップ303及び317では第15図(a)の反
転表を参照し、Aiの前方面または後方面のいずれかを
走査変換する。ステップ309では第15図(c)の干渉
表を参照し、値が0ならばAiとAjの干渉処理を省略
する。ステップ316では式の合成規則に従ってCs1,
Cs2,Cs3,Cs4の論理演算を行っているがそれには第15
図(b)の関数表をメモリ更新器8内に記憶しておき、A
1=Cs1,A2=Cs2,A3=Cs3,A4=Cs4として
この表を索引し、Fの値を求め、Csに書き込めばよ
い。第12図のCs1〜Cs8を使用すれば、最大8個まで
の基本立体から合成された合成体を以上述べた処理手順
で表示することができる。例えば、8個の基本立体から
なる合成体であれば、CSGトリーの標準形への変換、
反転表、関数表、干渉表の作成の後、第17図におい
て、ステップ305に記載の「Cs1〜Cs4を1で満た
す」を「Cs1〜Cs8を1で満たす」と変更し、ステップ
307に記載の「Cs1〜Cs4を0で満たす」を「Cs1〜
Cs8を0で満たす」と変更し、ステップ314に記載の
「j=4」を「j=8」と変更し、ステップ318に記
載の「j=4」を「j=8」と変更し、ステップ316
は、Cs1〜Cs8を用いて与えられた合成体の論理式の値
を求めて結果をCsとするように変更すればよい。
(発明の効果) 以上、詳細に説明したように本発明による3次元画像表
示装置を用いれば、CSG表現から境界表現への変換を
せずに直接表示することが可能となり、多面体間の交差
を陽に求めるための大量で複雑な処理が不要となる。本
発明の装置によるCSG多面体の表示処理は、座標変換
器、多角形の走査変換器のような従来のハードウェアで
装備されている高速な演算装置やメモリの増設手段を用
いて実現できるので、高速化が可能である。従って本発
明はソリッドモデリングシステムの利用者が試行錯誤的
に繰り返し設定するCSG表現モデルをディスプレイを
介して対話的に検証するのに適している。また、本発明
によれば、所望の形状が得られた時点で改めてホストプ
ロセッサ等が時間をかけて境界表現に変換すればよく、
境界表現の多面体も従来の処理手順により高速に表示す
ることができる。
示装置を用いれば、CSG表現から境界表現への変換を
せずに直接表示することが可能となり、多面体間の交差
を陽に求めるための大量で複雑な処理が不要となる。本
発明の装置によるCSG多面体の表示処理は、座標変換
器、多角形の走査変換器のような従来のハードウェアで
装備されている高速な演算装置やメモリの増設手段を用
いて実現できるので、高速化が可能である。従って本発
明はソリッドモデリングシステムの利用者が試行錯誤的
に繰り返し設定するCSG表現モデルをディスプレイを
介して対話的に検証するのに適している。また、本発明
によれば、所望の形状が得られた時点で改めてホストプ
ロセッサ等が時間をかけて境界表現に変換すればよく、
境界表現の多面体も従来の処理手順により高速に表示す
ることができる。
第1図は本発明に係る3次元画像表示装置の構成を示す
ブロック図、第2図は変形したCSGトリーを示す図、
第3図は基本立体の定義法の説明図、第4図は画面座標
系に変換された基本立体データの説明図、第5図は世界
座標系に変換された基本立体データの説明図、第6図は
多面体の和の断面図、第7図は多面体の積の断面図、第
8図は多面体の積の表示処理手順を示すフローチャー
ト、第9図は多面体の差の断面図、第10図は3個の多
面体のCSG演算を示す断面図、第11図は3個の多面
体のCSGトリーの表示処理手順を示すフローチャー
ト、第12図は論理演算メモリの区分を示す図、第13
図は4個の多面体のCSGトリー例を示す図、第14図
はCSGトリーの標準形への変換法の説明図、第15図
はCSGトリーの表示に用いられる表を示す図、第16
図は基本立体の包含関係を示す図、第17図は4個の基
本立体のCSGトリーの表示処理手順を示すフローチャ
ート、第18図は従来の3次元画像表示装置の構成を示
すブロック図、第19図は従来の多面体モデル作成方法
の説明図、第20図は基本立体の合成方法の説明図であ
る。 1……ホストプロセッサ、 2……ホストインタフェース、 3……制御プロセッサ、4……第1の図形メモリ、 5……第2の図形メモリ、6……座標変換器、 7……走査変換器、8……メモリ更新器、 9……画像メモリ、 10……第1のzバッファメモリ、 11……第2のzバッファメモリ、 12……論理演算メモリ。
ブロック図、第2図は変形したCSGトリーを示す図、
第3図は基本立体の定義法の説明図、第4図は画面座標
系に変換された基本立体データの説明図、第5図は世界
座標系に変換された基本立体データの説明図、第6図は
多面体の和の断面図、第7図は多面体の積の断面図、第
8図は多面体の積の表示処理手順を示すフローチャー
ト、第9図は多面体の差の断面図、第10図は3個の多
面体のCSG演算を示す断面図、第11図は3個の多面
体のCSGトリーの表示処理手順を示すフローチャー
ト、第12図は論理演算メモリの区分を示す図、第13
図は4個の多面体のCSGトリー例を示す図、第14図
はCSGトリーの標準形への変換法の説明図、第15図
はCSGトリーの表示に用いられる表を示す図、第16
図は基本立体の包含関係を示す図、第17図は4個の基
本立体のCSGトリーの表示処理手順を示すフローチャ
ート、第18図は従来の3次元画像表示装置の構成を示
すブロック図、第19図は従来の多面体モデル作成方法
の説明図、第20図は基本立体の合成方法の説明図であ
る。 1……ホストプロセッサ、 2……ホストインタフェース、 3……制御プロセッサ、4……第1の図形メモリ、 5……第2の図形メモリ、6……座標変換器、 7……走査変換器、8……メモリ更新器、 9……画像メモリ、 10……第1のzバッファメモリ、 11……第2のzバッファメモリ、 12……論理演算メモリ。
Claims (1)
- 【請求項1】多面体のCSG表現データとその構成要素
である基本立体データとを記憶する第1の図形メモリ
と、 基本立体データに対し、該CSG表現及び視点情報にし
たがって座標変換及び投影変換を施す座標変換器と、 変換された基本立体データを記憶する第2の図形メモリ
と、 基本立体を囲む多角形を走査変換して三原色強度及び深
度をもつ画素データに分解する走査変換器と、 画面上の画素毎に3次元画像の三原色強度を記憶する画
像メモリと、画素毎に深度を一時記憶する第1のzバッ
ファメモリと、 CSG表現における基本立体のうちの1つだけの前方面
または後方面を走査変換したときの構成画素の深度のみ
を一時記憶する第2のzバッファメモリと、 該基本立体の前方面または後方面の構成画素の各々につ
きそれが他の基本立体の内部か外部かを判定してその結
果を記憶する論理演算メモリと、 深度の付与された画素データを隠面消去しつつ画像メモ
リ及び第1のzバッファメモリに書き込む操作、第2の
zバッファメモリ及び論理演算メモリの制御を行なうメ
モリ更新器とを設け、 メモリ更新器は、 (a)前記多面体のCSG表現を変換して作成される基
本立体毎の反転表、基本立体間の干渉表、CSG論理式
の関数表をもち、 (b)予め前記画像メモリを背景色で、第1のzバッフ
ァメモリを深度の最大値で満たし、 (c)CSG表現を構成する1つの特定の基本立体を前
記反転表の値に従って、前方面または後方面のいずれか
を走査変換し、深度分布を第2のzバッファメモリに作
成し、 (d)前記(c)の処理で前方面を走査変換した場合は
論理演算メモリの内外判定結果部分を1で満たし、前記
(c)の処理で後方面を走査変換した場合は論理演算メ
モリの内外判定結果部分を0で満たし、 (e)前記干渉表の値に従って該基本立体と干渉する他
の基本立体の各々について前方面と後方面を走査変換
し、 (f)前記第2のzバッファメモリに記憶された深度
が、該前方面及び後方面の間にあるか否かを論理演算メ
モリの判定用カウンタを用いて画素毎に判定し、判定結
果を論理演算メモリの内外判定結果部分に書き込み、 (g)該内外判定結果の組合せの値を用いて前記関数表
の関数値を画素毎に求め、関数値が1である可視画素と
0である不可視画素とに判別し、 (h)前記特定の基本立体の前方面または後方面を再び
走査変換して三原色強度及び深度を求め、前記関数値が
1である可視画素について、深度が第1のzバッファメ
モリの対応する画素の深度より小さい場合に第1のzバ
ッファメモリ及び画像メモリの値を更新することによ
り、前記特定の基本立体の表面の一部を表示し、 (i)前記(c)〜(h)の処理を、CSG表現の全基
本立体について順次行なうことにより、 CSG表現による多面体の3次元画像を表示することを
特徴とする3次元画像表示装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13834086A JPH0634239B2 (ja) | 1986-06-16 | 1986-06-16 | 3次元画像表示装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13834086A JPH0634239B2 (ja) | 1986-06-16 | 1986-06-16 | 3次元画像表示装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62296282A JPS62296282A (ja) | 1987-12-23 |
| JPH0634239B2 true JPH0634239B2 (ja) | 1994-05-02 |
Family
ID=15219627
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13834086A Expired - Lifetime JPH0634239B2 (ja) | 1986-06-16 | 1986-06-16 | 3次元画像表示装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0634239B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5027292A (en) * | 1989-04-19 | 1991-06-25 | International Business Machines Corporation | Multiple depth buffers for graphics and solid modelling |
-
1986
- 1986-06-16 JP JP13834086A patent/JPH0634239B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS62296282A (ja) | 1987-12-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5325472A (en) | Image displaying system for interactively changing the positions of a view vector and a viewpoint in a 3-dimensional space | |
| El-Hakim et al. | A multi-sensor approach to creating accurate virtual environments | |
| JP3184327B2 (ja) | 3次元グラフィックス処理方法及びその装置 | |
| KR970003325B1 (ko) | 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템 | |
| US5357599A (en) | Method and apparatus for rendering polygons | |
| JPH0757117A (ja) | テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム | |
| JPH06231275A (ja) | 画像シミュレーション方法 | |
| JPH0916806A (ja) | 立体画像処理装置 | |
| WO2000002165A1 (fr) | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees | |
| JPH0727579B2 (ja) | グラフィクス処理装置及び方法並びにピクセル・メモリ装置 | |
| US5745667A (en) | 3d graphics apparatus using texture images with displacement information | |
| JPH10508715A (ja) | コンピューターグラフィック模型化システム | |
| JP2832463B2 (ja) | 3次元モデルの再構成方法および表示方法 | |
| JPH06222899A (ja) | マルチウィンドウ表示方式 | |
| US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
| JPH0634239B2 (ja) | 3次元画像表示装置 | |
| JPH09305791A (ja) | 立体画像生成装置および立体画像生成方法 | |
| JP2952585B1 (ja) | 画像生成方法 | |
| JP4017351B2 (ja) | 3次元モデル生成装置および3次元モデル生成プログラム | |
| JP3132220B2 (ja) | 3次元モデルの形状作成方法 | |
| Tolba | A projective approach to computer-aided drawing | |
| JP3071495B2 (ja) | 物体モデル編集装置 | |
| JPH0773342A (ja) | 画像生成装置 | |
| JPH0737121A (ja) | 画像処理方法 | |
| JP2000067266A (ja) | ラスターイメージの表示方法及び編集方法並びにそれらを利用したコンピュータ支援図形処理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |