JPH0695342B2 - 隠れ面処理装置 - Google Patents
隠れ面処理装置Info
- Publication number
- JPH0695342B2 JPH0695342B2 JP61266019A JP26601986A JPH0695342B2 JP H0695342 B2 JPH0695342 B2 JP H0695342B2 JP 61266019 A JP61266019 A JP 61266019A JP 26601986 A JP26601986 A JP 26601986A JP H0695342 B2 JPH0695342 B2 JP H0695342B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- timing
- output
- pixel
- plane segment
- 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
Landscapes
- Image Generation (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は3次元多面体物体を2次元スクリーン上に投影
してスムーズシェーディングを施しながら表示する3次
元コンピュータグラフィックス装置内の隠れ面処理装置
に関するものである。
してスムーズシェーディングを施しながら表示する3次
元コンピュータグラフィックス装置内の隠れ面処理装置
に関するものである。
従来の技術 3次元上に定義された物体を多面体近似した後座標変換
をして2次元スクリーン上に表示するグラフイック表示
装置では、立体感を出すために表示ポリゴンの輝度を滑
らかに変化させる、いわゆるスムーズシェイディングと
いう手法が取られることがある。
をして2次元スクリーン上に表示するグラフイック表示
装置では、立体感を出すために表示ポリゴンの輝度を滑
らかに変化させる、いわゆるスムーズシェイディングと
いう手法が取られることがある。
このスムーズシェイディング法としてグーローの方法
が、H.グーロー,「コンティニュアス シェイディング
オブ カーブド サーフェス」,I EEE Transaction
s on Computers,C−20(6),1971年6月、pp.623−6
28に示されている。
が、H.グーロー,「コンティニュアス シェイディング
オブ カーブド サーフェス」,I EEE Transaction
s on Computers,C−20(6),1971年6月、pp.623−6
28に示されている。
第5図は、このスムーズシェイディング法の原理を説明
する図である。まずポリゴンの各頂点に与えられた輝度
I1,I2,I3を稜線について線形補間し、次に稜線がラスタ
スキャンラインと交わる点の輝度IαとIβをさらに線
形補間して任意の画素の輝度Ipを算出するものである。
する図である。まずポリゴンの各頂点に与えられた輝度
I1,I2,I3を稜線について線形補間し、次に稜線がラスタ
スキャンラインと交わる点の輝度IαとIβをさらに線
形補間して任意の画素の輝度Ipを算出するものである。
さて3次元物立を2次元スクリーン上に合成して表示す
る場合、手前に存在する物体が、それより奥にある物体
の一部またはすべてを隠してしまう現象を何らかの方法
で処理しなければならない。一般的には汎用プロセッサ
を用いて逐次的に処理するスキャンライン法や、ハード
ウェア化に適したZバッファ法が知られる。Zバッファ
法は各画素に表示すべき面の色・輝度(以下単に輝度と
いう)とその面の奥行きを画素単位に記憶しておき、新
しい面が入力されるたびに記憶している奥行き距離と新
しい面の奥行き距離を比べ新しい奥行き距離の方が小さ
い時のみ奥行き距離を更新し、同時に新しい面の輝度デ
ータを登録するものである。すべての画素の奥行きレジ
スタ(一般にZバッファと呼ばれる)を設ける場合、非
常に大きなメモリ回路が必要になるという欠点をもつ
が、制御論理が比較的簡単であるという特徴をもつ。
る場合、手前に存在する物体が、それより奥にある物体
の一部またはすべてを隠してしまう現象を何らかの方法
で処理しなければならない。一般的には汎用プロセッサ
を用いて逐次的に処理するスキャンライン法や、ハード
ウェア化に適したZバッファ法が知られる。Zバッファ
法は各画素に表示すべき面の色・輝度(以下単に輝度と
いう)とその面の奥行きを画素単位に記憶しておき、新
しい面が入力されるたびに記憶している奥行き距離と新
しい面の奥行き距離を比べ新しい奥行き距離の方が小さ
い時のみ奥行き距離を更新し、同時に新しい面の輝度デ
ータを登録するものである。すべての画素の奥行きレジ
スタ(一般にZバッファと呼ばれる)を設ける場合、非
常に大きなメモリ回路が必要になるという欠点をもつ
が、制御論理が比較的簡単であるという特徴をもつ。
一方スキャンライン法はCRTなどのようにラスタスキャ
ンごとに各画素の輝度データを表示する場合、隣り合う
画素、すぐ次のスキャンラインの画素は現画素と非常に
強い相関関係をもつことに注目した方法で、逐次処理系
に適するが、多くの計算を必要とし制御論理も複雑にな
るという欠点をもつ。
ンごとに各画素の輝度データを表示する場合、隣り合う
画素、すぐ次のスキャンラインの画素は現画素と非常に
強い相関関係をもつことに注目した方法で、逐次処理系
に適するが、多くの計算を必要とし制御論理も複雑にな
るという欠点をもつ。
これらを中間的な隠れ面処理として、スキャンライン間
は相関関係を利用し、1ライン内はZバッファ法を用い
る方法が、例えば エヌ.ガラコーロー他 “スーパー バッファ:ア シストリック ブイ・エル
・エス・アイ グラフィック エンジン フォーリアル
ライム ラスター イメージ ジェネレーション",19
85 チャペル ヒル コンフェランス オン ベリー
ラージ スケール インテグレーション,pp.285−305 に示されている。
は相関関係を利用し、1ライン内はZバッファ法を用い
る方法が、例えば エヌ.ガラコーロー他 “スーパー バッファ:ア シストリック ブイ・エル
・エス・アイ グラフィック エンジン フォーリアル
ライム ラスター イメージ ジェネレーション",19
85 チャペル ヒル コンフェランス オン ベリー
ラージ スケール インテグレーション,pp.285−305 に示されている。
第6図(a)はこの従来の隠れ面処理装置のシステムブ
ロック図、第6図(b)はその構成要素の詳細図を示す
ものであり、4はN画素からなる1スキャンラインの各
画素に対応して存在する演算素子、41はこの画素のスキ
ャンライン上の位置を登録する画素番号レジスタ、44は
この画素位置で一番手前に存在する平面の奥行き座標を
登録する奥行きレジスタ、46はその平面の輝度情報を登
録する輝度レジスタである。
ロック図、第6図(b)はその構成要素の詳細図を示す
ものであり、4はN画素からなる1スキャンラインの各
画素に対応して存在する演算素子、41はこの画素のスキ
ャンライン上の位置を登録する画素番号レジスタ、44は
この画素位置で一番手前に存在する平面の奥行き座標を
登録する奥行きレジスタ、46はその平面の輝度情報を登
録する輝度レジスタである。
以上のように構成された隠れ面処理装置の動作について
第7図に示した概念図と共に説明する。
第7図に示した概念図と共に説明する。
第7図のようにM×Nの2次元スクリーンに対応するX,
Y座標に、奥行き情報すなわちZ座標を加えた3次元空
間(一般に正規デバイス座標と呼ばれる)内に定義され
た平面60をXY平面に投影してスクリーン上に表示する。
ラスタスキャン型のCRTなどではこの処理を一水平スキ
ャンごとに行なう。このため処理は現スキャンラインで
切断したXZ平面上で処理をする。平面60を現スキャンラ
インで切断した切り口を平面セグメント61という。個々
の平面セグメントは左端点座標(XL,ZL),右端点X座
標XR,単位画素あたりのZ座標変位dZ/dX(以下Z′と記
す),左端点での輝度情報IL,単位画素あたりの輝度変
位dI/dX(以下I′と記す)をもっている。これらの情
報をもつトークンが、第6図(a)のようにアレイ状に
構成され、各画素に対応して存在する演算素子4の左側
から入力される。各演算素子4はまず自分のスキャンラ
イン上の位置IDを登録した画素番号レジスタ41と2つの
比較器42,43を用いて、 XLi≦ID≦XRi ……(1) が成立するかを判断する。もし成立すれば入力トークン
のZ座標値Ziが奥行きレジスタ44のデータZbよりも小さ
いかどうかを比較器45を用いて判断する。これらのすべ
てを満たせば更新信号UPDTがアクティブになり奥行きレ
ジスタ44、輝度レジスタ46に入力トークン内のデータZi
とIiをそれぞれ格納する。また第1式が成立した場合
(あるいはXLi≦IDだけでも良い)は、Z座標値の大小
にかかわらず、加算器47を用いてZ座標変位Zi′を加算
し、輝度データIiに対しては加算器48を用いて輝度変位
Ii′を加算し、その他はそのまま右側の演算素子に出力
する。ラッチ48は右側演算素子に1サイクル遅らせてト
ークンを出力するためのものでパイプラインレジスタと
して作用している。
Y座標に、奥行き情報すなわちZ座標を加えた3次元空
間(一般に正規デバイス座標と呼ばれる)内に定義され
た平面60をXY平面に投影してスクリーン上に表示する。
ラスタスキャン型のCRTなどではこの処理を一水平スキ
ャンごとに行なう。このため処理は現スキャンラインで
切断したXZ平面上で処理をする。平面60を現スキャンラ
インで切断した切り口を平面セグメント61という。個々
の平面セグメントは左端点座標(XL,ZL),右端点X座
標XR,単位画素あたりのZ座標変位dZ/dX(以下Z′と記
す),左端点での輝度情報IL,単位画素あたりの輝度変
位dI/dX(以下I′と記す)をもっている。これらの情
報をもつトークンが、第6図(a)のようにアレイ状に
構成され、各画素に対応して存在する演算素子4の左側
から入力される。各演算素子4はまず自分のスキャンラ
イン上の位置IDを登録した画素番号レジスタ41と2つの
比較器42,43を用いて、 XLi≦ID≦XRi ……(1) が成立するかを判断する。もし成立すれば入力トークン
のZ座標値Ziが奥行きレジスタ44のデータZbよりも小さ
いかどうかを比較器45を用いて判断する。これらのすべ
てを満たせば更新信号UPDTがアクティブになり奥行きレ
ジスタ44、輝度レジスタ46に入力トークン内のデータZi
とIiをそれぞれ格納する。また第1式が成立した場合
(あるいはXLi≦IDだけでも良い)は、Z座標値の大小
にかかわらず、加算器47を用いてZ座標変位Zi′を加算
し、輝度データIiに対しては加算器48を用いて輝度変位
Ii′を加算し、その他はそのまま右側の演算素子に出力
する。ラッチ48は右側演算素子に1サイクル遅らせてト
ークンを出力するためのものでパイプラインレジスタと
して作用している。
さて、一スキャンライン上のすべての平面セグメントを
トークンという形でアレイの左端の演算素子から入力し
終えると、次に各演算素子内に保存している輝度データ
を外部に読出す過程に入る。このためには平面セグメン
トトークンとは異なるリフレッシュトークンを同じくア
レイの左端から入力する。もちろんリフレッシュトーク
ンを他と区別する情報をトークン内にもたせる。このリ
フレッシュ時の動作を第6図と第8図を用いて説明す
る。リフレッシュトークンRを入力した演算素子はそれ
を検出し、リフレッシュ検出信号REFをアクティブにす
る。セレクタ50はREF信号がアクティブの時、輝度レジ
スタ46のデータIbを、それ以外は右側演算素子からの輝
度データIREFiを左側演算素子に出力する。またこの直
後に奥行きレジスタ44を最大値に、輝度レジスタ46を背
景色にそれぞれ初期化する。ラッチ51はラッチ49と同様
にパイプラインレジスタとして作用する。第8図に示す
ようにリフレッシュトークンRがアレイ内を伝播し、輝
度データがアレイ左側に2サイクルごとに出力される。
トークンという形でアレイの左端の演算素子から入力し
終えると、次に各演算素子内に保存している輝度データ
を外部に読出す過程に入る。このためには平面セグメン
トトークンとは異なるリフレッシュトークンを同じくア
レイの左端から入力する。もちろんリフレッシュトーク
ンを他と区別する情報をトークン内にもたせる。このリ
フレッシュ時の動作を第6図と第8図を用いて説明す
る。リフレッシュトークンRを入力した演算素子はそれ
を検出し、リフレッシュ検出信号REFをアクティブにす
る。セレクタ50はREF信号がアクティブの時、輝度レジ
スタ46のデータIbを、それ以外は右側演算素子からの輝
度データIREFiを左側演算素子に出力する。またこの直
後に奥行きレジスタ44を最大値に、輝度レジスタ46を背
景色にそれぞれ初期化する。ラッチ51はラッチ49と同様
にパイプラインレジスタとして作用する。第8図に示す
ようにリフレッシュトークンRがアレイ内を伝播し、輝
度データがアレイ左側に2サイクルごとに出力される。
発明が解決しようとする問題点 しかしながら上記のような構成では、各演算素子に必要
なハードウェアが大きすぎてアレイ全体をLSI化するの
が困難であるという問題点を有していた。
なハードウェアが大きすぎてアレイ全体をLSI化するの
が困難であるという問題点を有していた。
本発明はかかる点を鑑み、少ないハードウェアで同様の
効果が得られる隠れ面処理装置を提供することを目的と
する。
効果が得られる隠れ面処理装置を提供することを目的と
する。
問題点を解決するための手段 本発明は奥行き距離を保持する奥行レジスタと、輝度デ
ータを保持する輝度レジスタと、平面セグメントの範囲
の内外判定,奥行き距離の変位加算,輝度データの変位
加算,奥行きデータの比較を時分割的に行なう1つの加
算器と、入力された平面セグメントトークンに関する情
報を更新しながら一段のパイプラインレジスタを通して
出力する入出力手段、および輝度レジスタの内容を外部
に出力する輝度データバスを備えた隠れ面処理装置であ
る。
ータを保持する輝度レジスタと、平面セグメントの範囲
の内外判定,奥行き距離の変位加算,輝度データの変位
加算,奥行きデータの比較を時分割的に行なう1つの加
算器と、入力された平面セグメントトークンに関する情
報を更新しながら一段のパイプラインレジスタを通して
出力する入出力手段、および輝度レジスタの内容を外部
に出力する輝度データバスを備えた隠れ面処理装置であ
る。
作用 本発明は前記した構成により、一定サイクル数内で取扱
える平面セグメント数は少なくなるものの、各演算素子
間のパイプラインによるタイムラグは1サイクルである
ために、平面セグメントトークンがアレイの左端に入力
された後演算素子数だけのサイクル数で右端に到着し、
システム全体の遅延が増大しない。さらにリフレッシュ
時のスループットはむしろ大きくなり、1画素の輝度デ
ータが毎サイクル出力される。
える平面セグメント数は少なくなるものの、各演算素子
間のパイプラインによるタイムラグは1サイクルである
ために、平面セグメントトークンがアレイの左端に入力
された後演算素子数だけのサイクル数で右端に到着し、
システム全体の遅延が増大しない。さらにリフレッシュ
時のスループットはむしろ大きくなり、1画素の輝度デ
ータが毎サイクル出力される。
実施例 第1図(a)は本発明の実施例における隠れ面処理装置
のシステムブロック図、第1図(b)はその構成要素の
詳細図を示すものである。第1図(a)において1はN
画素からなる1スキャンラインの各画素に対応して存在
する演算素子、10はこの画素位置で一番手前に存在する
平面の奥行き座標を登録する奥行きレジスタ、11はその
平面の輝度情報を登録する輝度レジスタである。
のシステムブロック図、第1図(b)はその構成要素の
詳細図を示すものである。第1図(a)において1はN
画素からなる1スキャンラインの各画素に対応して存在
する演算素子、10はこの画素位置で一番手前に存在する
平面の奥行き座標を登録する奥行きレジスタ、11はその
平面の輝度情報を登録する輝度レジスタである。
以上のように構成された本実施例の隠れ面処理装置につ
いて、以下その動作を説明する。
いて、以下その動作を説明する。
まず平面セグメントの右端点情報として座標値のかわり
に継続画素数dXで与えるものとする。すなわち左端点座
標(XL,ZL),継続画素数dX,単位画素あたりのZ座標変
位Z′,左端点での輝度情報I,単位画素あたりの輝度変
位I′をもつトークンが第1図(a)のようなアレイ構
造の構成要素となる演算素子1の左側からA入力ポート
Ai,B入力ポートBiに分けて入力される。制御情報CTRLi
にはその平面セグメントの存在する範囲内に入っている
ことを示すINフラグ情報(左端演算素子への入力は0)
がある。
に継続画素数dXで与えるものとする。すなわち左端点座
標(XL,ZL),継続画素数dX,単位画素あたりのZ座標変
位Z′,左端点での輝度情報I,単位画素あたりの輝度変
位I′をもつトークンが第1図(a)のようなアレイ構
造の構成要素となる演算素子1の左側からA入力ポート
Ai,B入力ポートBiに分けて入力される。制御情報CTRLi
にはその平面セグメントの存在する範囲内に入っている
ことを示すINフラグ情報(左端演算素子への入力は0)
がある。
時分割的に各入力ポートに与えられる情報は次のように
まとめられる。
まとめられる。
各演算素子の動作を第1図と第2図を用いて説明する。
第1のタイミングT1ではA入力ポートAiのデータ(INフ
ラグ=0の時は平面セグメント左端点までの距離情報
X)と全1パターン(すなわちマイナス1)、およびキ
ャリー入力信号Ci=0を加算器12に与え、平面セグメン
ト左端点までの距離情報Xを1減算した結果を得る。も
しINフラグ=0で上記減算結果が負(すなわち加算器12
からキャリー出力信号Co=0)の時、この平面セグメン
トがこの画素位置で存在範囲に入ったことになる。そこ
で制御回路19は、セレクタ14に対しGETIN信号を発生し
てBiのデータdXをAポート側に移しラッチ17に入れ、ま
たフラグ制御回路15に対してはGETINOUT信号を発生して
INフラグを1に反転しラッチ16に入れる。
第1のタイミングT1ではA入力ポートAiのデータ(INフ
ラグ=0の時は平面セグメント左端点までの距離情報
X)と全1パターン(すなわちマイナス1)、およびキ
ャリー入力信号Ci=0を加算器12に与え、平面セグメン
ト左端点までの距離情報Xを1減算した結果を得る。も
しINフラグ=0で上記減算結果が負(すなわち加算器12
からキャリー出力信号Co=0)の時、この平面セグメン
トがこの画素位置で存在範囲に入ったことになる。そこ
で制御回路19は、セレクタ14に対しGETIN信号を発生し
てBiのデータdXをAポート側に移しラッチ17に入れ、ま
たフラグ制御回路15に対してはGETINOUT信号を発生して
INフラグを1に反転しラッチ16に入れる。
次段演算素子以降では、平面セグメント左端点までの距
離情報Xに替わって、平面セグメント右端点までの距離
情報dXを1づつ減算することによって、平面セグメント
の存在範囲を判定する。すなわちINフラグ=1で上記減
算結果が負の時、平面セグメントが存在範囲の外に出た
ことになるため制御回路19はフラグ制御回路15に対し上
記同様GETINOUT信号を発生し、再びINフラグを0に反転
する。またA出力ポートには負になった値(全1パター
ン、符号ナシ整数の場合では最大値)をそのまま出力す
る。それ以外の場合はCTRLiをそのままCTRLoに出力し、
Aoへは加算器出力を出力する。
離情報Xに替わって、平面セグメント右端点までの距離
情報dXを1づつ減算することによって、平面セグメント
の存在範囲を判定する。すなわちINフラグ=1で上記減
算結果が負の時、平面セグメントが存在範囲の外に出た
ことになるため制御回路19はフラグ制御回路15に対し上
記同様GETINOUT信号を発生し、再びINフラグを0に反転
する。またA出力ポートには負になった値(全1パター
ン、符号ナシ整数の場合では最大値)をそのまま出力す
る。それ以外の場合はCTRLiをそのままCTRLoに出力し、
Aoへは加算器出力を出力する。
第2のタイミングT2では、INフラグ=1ならばA入力ポ
ートAi上のZとB入力ポートBi上のZ′を加算してA出
力ポートAoに出力し、そうでなければAiのデータを更新
しないでAoに出力する。
ートAi上のZとB入力ポートBi上のZ′を加算してA出
力ポートAoに出力し、そうでなければAiのデータを更新
しないでAoに出力する。
第3のタイミングT3では、A出力ポートAoをT2時とは変
更せずに保持する。そしてINフラグ=1で、かつA入力
ポートAiの上のZデータと奥行きレジスタ10のデータZb
をやはり加算器12で比較した結果がZ<Zbの時、奥行き
レジスタ10,A入力ポート上のZを格納する。
更せずに保持する。そしてINフラグ=1で、かつA入力
ポートAiの上のZデータと奥行きレジスタ10のデータZb
をやはり加算器12で比較した結果がZ<Zbの時、奥行き
レジスタ10,A入力ポート上のZを格納する。
最後に第4のタイミングT4では、INフラグ=1でかつ上
記の比較結果がZ<Zbの時、輝度レジスタ11にB入力ポ
ート上のIを格納する。またINフラグ=1ならばA入力
ポートAi上のIとB入力ポートBi上のI′を加算してA
出力ポートAoに出力し、そうでなければAiのデータを更
新しないでAoに出力する。
記の比較結果がZ<Zbの時、輝度レジスタ11にB入力ポ
ート上のIを格納する。またINフラグ=1ならばA入力
ポートAi上のIとB入力ポートBi上のI′を加算してA
出力ポートAoに出力し、そうでなければAiのデータを更
新しないでAoに出力する。
以上4つのタイミングでB出力ポートBoへは全てB入力
ポートBiの内容をラッチ18を通してそのまま出力する。
ポートBiの内容をラッチ18を通してそのまま出力する。
第3図は平面セグメント情報をもつトークンが各演算素
子で処理を受けながら流れていく様子を時系列的に示し
ている。トークンAは画素番号X=1から始まる平面セ
グメントで、演算素子0では1減算して0でらうためZ
値の更新、Zbとの比較は行なわれない。演算素子1では
さらに1減算されて負になったため、XにかわってdXを
A出力ポートに出力し、後の演算素子ではdXに対して減
算が行なわれる。演算素子1はさらにINフラグを1とし
自らもZ値の更新、Zbとの比較を行なう。後段の演算素
子ではdXが順次1減算され、その経過が負になるまで続
けられる。負になった時はINフラグを0にもどし、残り
の演算素子ではZ値の更新、Zbとの比較は行われない
(Aoには最大値が出力される)。ここで各演算素子にお
ける各演算は前段の演算素子の結果をうけて次のサイク
ルで処理を開始できるため、パイプラインレジスタは1
段分で良いという特徴を持つ。
子で処理を受けながら流れていく様子を時系列的に示し
ている。トークンAは画素番号X=1から始まる平面セ
グメントで、演算素子0では1減算して0でらうためZ
値の更新、Zbとの比較は行なわれない。演算素子1では
さらに1減算されて負になったため、XにかわってdXを
A出力ポートに出力し、後の演算素子ではdXに対して減
算が行なわれる。演算素子1はさらにINフラグを1とし
自らもZ値の更新、Zbとの比較を行なう。後段の演算素
子ではdXが順次1減算され、その経過が負になるまで続
けられる。負になった時はINフラグを0にもどし、残り
の演算素子ではZ値の更新、Zbとの比較は行われない
(Aoには最大値が出力される)。ここで各演算素子にお
ける各演算は前段の演算素子の結果をうけて次のサイク
ルで処理を開始できるため、パイプラインレジスタは1
段分で良いという特徴を持つ。
なお、上記した第1のタイミングT1の説明で、平面セグ
メントの左右端点を検出する際、左端点までの距離情報
X、あるいは右端点までの距離情報dXから1減算した結
果が負であるか否かを判定するとしたが、減算結果の全
ビット値0検出による0判定を行っても同様の効果が得
られる。ただし、端点検出までの距離が1画素分短くな
るため、X、dX値を負判定する場合に比べ1だけ大きい
値を入力するものとする。
メントの左右端点を検出する際、左端点までの距離情報
X、あるいは右端点までの距離情報dXから1減算した結
果が負であるか否かを判定するとしたが、減算結果の全
ビット値0検出による0判定を行っても同様の効果が得
られる。ただし、端点検出までの距離が1画素分短くな
るため、X、dX値を負判定する場合に比べ1だけ大きい
値を入力するものとする。
第4図(a)は第3図と同じ平面セグメント情報をもつ
トークンが各演算素子で処理を受けながらアレイ上を流
れていく様子を示している。
トークンが各演算素子で処理を受けながらアレイ上を流
れていく様子を示している。
以上の説明でCTRL信号のバスで未使用のT2あるいはT3の
タイミングスロットに、トークンが平面セグメントかリ
フレッシュトークンかを区別する識別子を入れることが
可能である。各演算素子がリフレッシュトークンを受け
取った時の動作を第1図と第4図(b)を用いて説明す
る。
タイミングスロットに、トークンが平面セグメントかリ
フレッシュトークンかを区別する識別子を入れることが
可能である。各演算素子がリフレッシュトークンを受け
取った時の動作を第1図と第4図(b)を用いて説明す
る。
リフッレシュトークンを検出すると演算素子1は輝度レ
ジスタ11内のデータIbを輝度データバスIBUSに出力す
る。リフレッシュトークンは各サイクルごとに隣の演算
素子を伝播するために、輝度データバスIBUSを観測して
いると各画素の表示すべき輝度が毎サイクル順次出力さ
れてくる。もちろんリフレッシュトークンを左端から入
力し終えた後はひきつづいて新しいスキャンライン用の
平面セグメントトークンを入力できる。
ジスタ11内のデータIbを輝度データバスIBUSに出力す
る。リフレッシュトークンは各サイクルごとに隣の演算
素子を伝播するために、輝度データバスIBUSを観測して
いると各画素の表示すべき輝度が毎サイクル順次出力さ
れてくる。もちろんリフレッシュトークンを左端から入
力し終えた後はひきつづいて新しいスキャンライン用の
平面セグメントトークンを入力できる。
なお以上の実施例では更新を必要とする平面セグメント
データはすべてA入出力ポートに集めたが、データの入
力順序さえ変えなければ、AとBのポートでデータを交
換してもよい。
データはすべてA入出力ポートに集めたが、データの入
力順序さえ変えなければ、AとBのポートでデータを交
換してもよい。
以上のように本実施例によれば、1つの加算器を時分割
的に使用し、しかも個々の加算処理を終える度に次段演
算素子でその結果をもとに演算を開始できる特性を利用
して、演算素子あたり1段のパイプライン構造で実現で
きるため、高いスループットを得ることができる。しか
も各演算素子はその画素番号情報を必要としないため、
すべての演算素子を同一のセルで構成することができ
る。
的に使用し、しかも個々の加算処理を終える度に次段演
算素子でその結果をもとに演算を開始できる特性を利用
して、演算素子あたり1段のパイプライン構造で実現で
きるため、高いスループットを得ることができる。しか
も各演算素子はその画素番号情報を必要としないため、
すべての演算素子を同一のセルで構成することができ
る。
発明の効果 以上説明したように、本発明によれば少ないハードウェ
ア量でしかも高速な隠れ面処理をすることができ、その
実用的効果は大きい。
ア量でしかも高速な隠れ面処理をすることができ、その
実用的効果は大きい。
第1図は本発明における一実施例の隠れ面処理装置のブ
ロック図、第2図は同実施例の各演算素子内で実行され
る処理内容を示すフロー図、第3図は同実施例において
平面セグメントトークンが各演算素子で処理を受けなが
ら流れる様子を示した説明図、第4図は同実施例におい
て平面セグメントトークンおよびリフレッシュトークン
がアレイ上を流れる様子を示した説明図、第5図はスム
ーズシェーディングの原理を示した説明図、第6図は従
来の隠れ面処理装置のブロック図、第7図は本発明およ
び従来の隠れ面処理装置に共有している概念の説明図、
第8図は従来例においてリフレッシュトークンがアレイ
上を流れる様子の説明図である。 1……演算素子、10……奥行きレジスタ、11……輝度レ
ジスタ、12……加算器、14……セレクタ、16,17,18……
ラッチ。
ロック図、第2図は同実施例の各演算素子内で実行され
る処理内容を示すフロー図、第3図は同実施例において
平面セグメントトークンが各演算素子で処理を受けなが
ら流れる様子を示した説明図、第4図は同実施例におい
て平面セグメントトークンおよびリフレッシュトークン
がアレイ上を流れる様子を示した説明図、第5図はスム
ーズシェーディングの原理を示した説明図、第6図は従
来の隠れ面処理装置のブロック図、第7図は本発明およ
び従来の隠れ面処理装置に共有している概念の説明図、
第8図は従来例においてリフレッシュトークンがアレイ
上を流れる様子の説明図である。 1……演算素子、10……奥行きレジスタ、11……輝度レ
ジスタ、12……加算器、14……セレクタ、16,17,18……
ラッチ。
Claims (14)
- 【請求項1】3次元多面体物体を隠れ面処理を行ないな
がら2次元スクリーン上に表示するグラフィック表示装
置において、スクリーンの1スキャンライン上の各画素
に対応して存在する各演算素子が、一番手前に存在する
平面セグメントの奥行き距離(Zb)を保持する奥行きレ
ジスタと、その平面の輝度データ(Ib)を保持する輝度
レジスタと、加算器と、隣接前段画素に対応する演算素
子から平面セグメント情報[先頭画素位置(X),継続
画素数(dX),先頭画素に対応する奥行き距離(Z),
単位画素あたりの奥行き距離変位(dZ/dX),先頭画素
に対応する輝度データ(I),および単位画素あたりの
輝度変位(dI/dX)]をもつトークンを入力する手段
と、隣接次段画素に対応する演算素子へ更新された上記
平面セグメント情報をもつトークンを1段のパイプライ
ンレジスタを通して出力する手段と、上記輝度レジスタ
内のデータ(Ib)を外部に読出す手段を具備し、第1の
タイミングで、上記入力手段から入力された新平面セグ
メントが存在するスキャンライン上の範囲に当演算素子
が含まれているか否かを、上記加算器に先頭画素位置
(X)または継続画素数(dX)を入力して判定し、もし
この範囲内にあれば第2のタイミングで奥行き距離デー
タ(Z)に変位データ(dZ/dX)を上記加算器で加算し
て次段演算素子に出力し、さらに第3のタイミングで奥
行き距離データ(Z)と前記奥行きレジスタ内の現奥行
き距離データ(Zb)を上記加算器により比較して、Z<
Zbを判定し、また第4のタイミングで輝度データ(I)
に変位データ(dI/dX)を上記加算器で加算して次段演
算素子に出力し、上記奥行き距離の判定結果が是の時の
み前記奥行きレジスタと前記輝度レジスタの内容を新平
面セグメントの奥行き距離(Z)と輝度データ(I)で
それぞれ置換えることを特徴とする隠れ面処理装置。 - 【請求項2】平面セグメント情報をもつトークンに替わ
ってスキャンライン終了を表わすリフレッシュトークン
を前段演算素子から入力した場合は、輝度レジスタ内の
データ(Ib)を輝度データバスに出力した後、奥行きレ
ジスタを最大値に、輝度レジスタを背景色に初期化し、
さらに上記リフレッシュトークンを次段演算素子に出力
することを特徴とする特許請求の範囲第1項記載の隠れ
面処理装置。 - 【請求項3】輝度レジスタ内のデータ(Ib)を外部に読
出すための手段として輝度データバスを備えることを特
徴とする特許請求の範囲第1項記載の隠れ面処理装置。 - 【請求項4】平面セグメント情報をもつトークンの入力
手段および出力手段がそれぞれ2ポートからなり、第1
の入力ポートには第1のタイミングで先頭画素位置
(X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データ(I)がそれぞれ
入力され、一方第2の入力ポートには第1,第2のタイミ
ングでそれぞれ継続画素数(dX),単位画素あたりの奥
行き距離変位(dZ/dX)が、第4のタイミングでは輝度
変位(dI/dX)が与えられ、第1のタイミングで先頭画
素位置(X)を加算器により1減算して負判定すること
によりこの平面セグメントが当演算素子で存在範囲内に
入ったことを、またそれ以後は継続画素数(dX)を同じ
く上記加算器により1減算して負判定することによりこ
の平面セグメントが存在範囲外に去ったことを判断し、
第1,第2の出力ポートには当演算素子で更新された平面
セグメント情報を第1,第2の入力ポートに対応して出力
することを特徴とする特許請求の範囲第1項記載の隠れ
面処理装置。 - 【請求項5】平面セグメント情報をもつトークンの入力
手段および出力手段がそれぞれ2ポートからなり、第1
の入力ポートには第1のタイミングで先頭画素位置
(X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データ(I)がそれぞれ
入力され、一方第2の入力ポートには第1,第2のタイミ
ングでそれぞれ継続画素数(dX),単位画素あたりの奥
行き距離変位(dZ/dX)が、第4のタイミングでは輝度
変位(dI/dX)が与えられ、第1のタイミングで先頭画
素位置(X)を加算器により1減算してゼロ判定するこ
とによりこの平面セグメントが当演算素子で存在範囲内
に入ったことを、またそれ以後は継続画素数(dX)を同
じく上記加算器により1減算してゼロ判定することによ
りこの平面セグメントが存在範囲外に去ったことを判断
し、第1,第2の出力ポートには当演算素子で更新された
平面セグメント情報を第1,第2の入力ポートに対応して
出力することを特徴とする特許請求の範囲第1項記載の
隠れ面処理装置。 - 【請求項6】平面セグメント情報をもつトークンの入力
手段および出力手段がそれぞれ2ポートからなり、第1
の入力ポートには第1のタイミングで、平面セグメント
の存在範囲に未だ入っていない時には先頭画素位置
(X)が、また存在範囲に入った後には継続画素数(d
X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データが(I)がそれぞ
れ入力され、一方第2の入力ポートには第1,第2のタイ
ミングでそれぞれ継続画素数(dX),単位画素あたりの
奥行き距離変位(dZ/dX)が、第4のタイミングでは輝
度変位(dI/dX)が与えられ、第1のタイミングで第1
の入力ポートから入力される先頭画素位置(X)あるい
は継続画素数(dX)を加算器により1減算して負判定す
ることによりこの平面セグメントが当演算素子で存在範
囲内に入ったか否か、あるいは存在範囲外に去ったか否
かを判断し、範囲内に入った時は第2の入力ポートから
入力された継続画素数(dX)を第1の出力ポートに出力
し、それ以外は常に第1の出力ポートには第1の入力ポ
ートに与えられた上記情報を更新して出力し、第2の出
力ポートには第1の入力ポートに与えられた継続画素数
(dX),単位画素あたりの奥行き距離変位(dZ/dX),
輝度変位(dI/dX)を加工せずにそのまま出力すること
を特徴とする特許請求の範囲第1項記載の隠れ面処理装
置。 - 【請求項7】平面セグメント情報をもつトークンの入力
手段および出力手段がそれぞれ2ポートからなり、第1
の入力ポートには第1のタイミングで、平面セグメント
の存在範囲に未だ入っていない時には先頭画素位置
(X)が、また存在範囲に入った後には継続画素数(d
X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データが(I)がそれぞ
れ入力され、一方第2の入力ポートには第1,2のタイミ
ングでそれぞれ継続画素数(dX),単位画素あたりの奥
行き距離変位(dZ/dX)が、第4のタイミングでは輝度
変位(dI/dX)が与えられ、第1のタイミングで第1の
入力ポートから入力される先頭画素位置(X)あるいは
継続画素数(dX)を加算器により1減算してゼロ判定す
ることによりこの平面セグメントが当演算素子で存在範
囲内に入ったか否か、あるいは存在範囲外に去ったか否
かを判断し、範囲内に入った時は第2の入力ポートから
入力された継続画素数(dX)を第1の出力ポートに出力
し、それ以外は常に第1の出力ポートには第1の入力ポ
ートに与えられた上記情報を更新して出力し、第2の出
力ポートには第1の入力ポートに与えられた継続画素数
(dX),単位画素あたりの奥行き距離変位(dZ/dX),
輝度変位(dI/dX)を加工せずにそのまま出力すること
を特徴とする特許請求の範囲第1項記載の隠れ面処理装
置。 - 【請求項8】3次元多面体物体を隠れ面処理を行ないな
がら2次元スクリーン上に表示するグラフィック表示装
置において、スクリーンの1スキャンライン上の各画素
に対応して存在する各演算素子が、一番手前に存在する
平面セグメントの奥行き距離(Zb)を保持する奥行きレ
ジスタと、その平面の輝度データ(Ib)を保持する輝度
レジスタと、加算器と、隣接前段画素に対応する演算素
子から平面セグメント情報[先頭画素位置(X),継続
画素数(dX),先頭画素に対応する奥行き距離(Z),
単位画素あたりの奥行き距離変位(dZ/dX),先頭画素
に対応する輝度データ(I),および単位画素あたりの
輝度変位(dI/dX)]をもつトークンを入力する手段
と、隣接次段画素に対応する演算素子へ更新された上記
平面セグメント情報をもつトークンを1段のパイプライ
ンレジスタを通して出力する手段と、上記輝度レジスタ
内のデータ(Ib)を外部に読出す手段を具備し、第1の
タイミングで、上記入力手段から入力された新平面セグ
メントが存在するスキャンライン上の範囲に当演算素子
が含まれているか否かを、上記加算器に先頭画素位置
(X)または継続画素数(dX)を入力して判定し、もし
この範囲内にあれば第2のタイミングで奥行き距離デー
タ(Z)に変位データ(dZ/dX)を上記加算器で加算し
て次段演算素子に出力し、さらに第3のタイミングで奥
行き距離データ(Z)と前記奥行きレジスタ内の現奥行
き距離データ(Zb)を上記加算器により比較して、Z≦
Zbを判定し、また第4のタイミングで輝度データ(I)
に変位データ(dI/dX)を上記加算器で加算して次段演
算素子に出力し、上記奥行き距離の判定結果が是の時の
み前記奥行きレジスタと前記輝度レジスタの内容を新平
面セグメントの奥行き距離(Z)と輝度データ(I)で
それぞれ置換えることを特徴とする隠れ面処理装置。 - 【請求項9】平面セグメント情報をもつトークンに替わ
ってスキャンライン終了を表わすリフレッシュトークン
を前段演算素子から入力した場合は、輝度レジスタ内の
データ(Ib)を輝度データバスに出力した後、奥行きレ
ジスタを最大値に、輝度レジスタを背景色に初期化し、
さらに上記リフレッシュトークンを次段演算素子に出力
することを特徴とする特許請求の範囲第8項記載の隠れ
面処理装置。 - 【請求項10】輝度レジスタ内のデータ(Ib)を外部に
読出すための手段として輝度データバスを備えることを
特徴とする特許請求の範囲第8項記載の隠れ面処理装
置。 - 【請求項11】平面セグメント情報をもつトークンの入
力手段および出力手段がそれぞれ2ポートからなり、第
1の入力ポートには第1のタイミングで先頭画素位置
(X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データ(I)がそれぞれ
入力され、一方第2の入力ポートには第1,第2のタイミ
ングでそれぞれ継続画素数(dX),単位画素あたりの奥
行き距離変位(dZ/dX)が、第4のタイミングでは輝度
変位(dI/dX)が与えられ、第1のタイミングで先頭画
素位置(X)を加算器により1減算して負判定すること
によりこの平面セグメントが当演算素子で存在範囲内に
入ったことを、またそれ以後は継続画素数(dX)を同じ
く上記加算器により1減算して負判定することによりこ
の平面セグメントが存在範囲外に去ったことを判断し、
第1,第2の出力ポートには当演算素子で更新された平面
セグメント情報を第1,第2の入力ポートに対応して出力
することを特徴とする特許請求の範囲第8項記載の隠れ
面処理装置。 - 【請求項12】平面セグメント情報をもつトークンの入
力手段および出力手段がそれぞれ2ポートからなり、第
1の入力ポートには第1のタイミングで先頭画素位置
(X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データ(I)がそれぞれ
入力され、一方第2の入力ポートには第1,第2のタイミ
ングでそれぞれ継続画素数(dX),単位画素あたりの奥
行き距離変位(dZ/dX)が、第4のタイミングでは輝度
変位(dI/dX)が与えられ、第1のタイミングで先頭画
素位置(X)を加算器により1減算してゼロ判定するこ
とによりこの平面セグメントが当演算素子で存在範囲内
に入ったことを、またそれ以後は継続画素数(dX)を同
じく上記加算器により1減算してゼロ判定することによ
りこの平面セグメントが存在範囲外に去ったことを判断
し、第1,第2の出力ポートには当演算素子で更新された
平面セグメント情報を第1,第2の入力ポートに対応して
出力することを特徴とする特許請求の範囲第8項記載の
隠れ面処理装置。 - 【請求項13】平面セグメント情報をもつトークンの入
力手段および出力手段がそれぞれ2ポートからなり、第
1の入力ポートには第1のタイミングで、平面セグメン
トの存在範囲に未だ入っていない時には先頭画素位置
(X)が、また存在範囲に入った後には継続画素数(d
X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データが(I)がそれぞ
れ入力され、一方第2の入力ポートには第1,第2のタイ
ミングでそれぞれ継続画素数(dX),単位画素あたりの
奥行き距離変位(dZ/dX)が、第4のタイミングでは輝
度変位(dI/dX)が与えられ、第1のタイミングで第1
の入力ポートから入力される先頭画素位置(X)あるい
は継続画素数(dX)を加算器により1減算して負判定す
ることによりこの平面セグメントが当演算素子で存在範
囲内に入ったか否か、あるいは存在範囲外に去ったか否
かを判断し、範囲内に入った時は第2の入力ポートから
入力された継続画素数(dX)を第1の出力ポートに出力
し、それ以外は常に第1の出力ポートには第1の入力ポ
ートに与えられた上記情報を更新して出力し、第2の出
力ポートには第1の入力ポートに与えられた継続画素数
(dX),単位画素あたりの奥行き距離変位(dZ/dX),
輝度変位(dI/dX)を加工せずにそのまま出力すること
を特徴とする特許請求の範囲第8項記載の隠れ面処理装
置。 - 【請求項14】平面セグメント情報をもつトークンの入
力手段および出力手段がそれぞれ2ポートからなり、第
1の入力ポートには第1のタイミングで、平面セグメン
トの存在範囲に未だ入っていない時には先頭画素位置
(X)が、また存在範囲に入った後には継続画素数(d
X)が、第2,第3のタイミングでは奥行き距離(Z)
が、第4のタイミングでは輝度データが(I)がそれぞ
れ入力され、一方第2の入力ポートには第1,第2のタイ
ミングでそれぞれ継続画素数(dX),単位画素あたりの
奥行き距離変位(dZ/dX)が、第4のタイミングでは輝
度変位(dI/dX)が与えられ、第1のタイミングで第1
の入力ポートから入力される先頭画素位置(X)あるい
は継続画素数(dX)を加算器により1減算してゼロ判定
することによりこの平面セグメントが当演算素子で存在
範囲内に入ったか否か、あるいは存在範囲外に去ったか
否かを判断し、範囲内に入った時は第2の入力ポートか
ら入力された継続画素数(dX)を第1の出力ポートに出
力し、それ以外は常に第1の出力ポートには第1の入力
ポートに与えられた上記情報を更新して出力し、第2の
出力ポートには第1の入力ポートに与えられた継続画素
数(dX),単位画素あたりの奥行き距離変位(dZ/d
X),輝度変位(dI/dX)を加工せずにそのまま出力する
ことを特徴とする特許請求の範囲第8項記載の隠れ面処
理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61266019A JPH0695342B2 (ja) | 1986-11-07 | 1986-11-07 | 隠れ面処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61266019A JPH0695342B2 (ja) | 1986-11-07 | 1986-11-07 | 隠れ面処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63118991A JPS63118991A (ja) | 1988-05-23 |
JPH0695342B2 true JPH0695342B2 (ja) | 1994-11-24 |
Family
ID=17425245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61266019A Expired - Fee Related JPH0695342B2 (ja) | 1986-11-07 | 1986-11-07 | 隠れ面処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0695342B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04139591A (ja) * | 1990-10-01 | 1992-05-13 | Erumano Sumiwa Kk | 画像生成装置 |
-
1986
- 1986-11-07 JP JP61266019A patent/JPH0695342B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS63118991A (ja) | 1988-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5144291A (en) | Means for eliminating hidden surface | |
US8803879B1 (en) | Omnidirectional shadow texture mapping | |
EP0262619B1 (en) | Shading circuit for shading a plurality of polygons which constitute a solid model, and method of shading the same | |
JP3759971B2 (ja) | 3次元像を陰影付けする方法 | |
JP2523889B2 (ja) | 隠れ面処理装置 | |
JPH0683969A (ja) | グラフィックス・プロセッサ及びグラフィックス・データ処理方法 | |
JPH0916806A (ja) | 立体画像処理装置 | |
JP2612221B2 (ja) | 図形画像を生成する装置及び方法 | |
US5590249A (en) | Three dimensional sprite rendering apparatus and method | |
US5892516A (en) | Perspective texture mapping circuit having pixel color interpolation mode and method thereof | |
JPH0695341B2 (ja) | 隠れ面処理装置 | |
US5982377A (en) | Three-dimensional graphic displaying system and method | |
JPH0695342B2 (ja) | 隠れ面処理装置 | |
JPH0651937A (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 | |
US5926181A (en) | Method and apparatus for identifying and eliminating three-dimensional objects visually obstructed from a planar surface | |
JPH0795345B2 (ja) | 画像処理方法 | |
JPH07105404A (ja) | 立体画像処理装置及びその処理方法 | |
JPH04220782A (ja) | 三次元画像表示処理方法 | |
JPS63113785A (ja) | 図形表示方法 | |
JPH03192473A (ja) | 画像生成方法及びその装置 | |
JP2523490B2 (ja) | 隠れ面処理装置 | |
JP3344675B2 (ja) | 立体画像処理装置 | |
GB2359230A (en) | Computer graphics rendering of partially transparent object | |
JPS6380378A (ja) | 画像生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |