JPH10134204A - グラフィックス表示装置 - Google Patents

グラフィックス表示装置

Info

Publication number
JPH10134204A
JPH10134204A JP8285353A JP28535396A JPH10134204A JP H10134204 A JPH10134204 A JP H10134204A JP 8285353 A JP8285353 A JP 8285353A JP 28535396 A JP28535396 A JP 28535396A JP H10134204 A JPH10134204 A JP H10134204A
Authority
JP
Japan
Prior art keywords
value
command
group
commands
sort
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
JP8285353A
Other languages
English (en)
Inventor
Katsura Abe
桂 阿部
Kazuyoshi Koga
和義 古賀
Tetsuya Shimomura
哲也 下村
Ichiro Iimura
伊智郎 飯村
Norito Watanabe
範人 渡辺
Jun Sato
潤 佐藤
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 JP8285353A priority Critical patent/JPH10134204A/ja
Publication of JPH10134204A publication Critical patent/JPH10134204A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】グラフィックス表示装置の陰面消去処理におい
て、描画コマンドのZソートを高速かつ高精度に行う図
形表示装置を提供する。 【解決手段】Z値範囲検出部110で1フレームの描画
コマンドのZ値の最大値、最小値を検出してZ値範囲
(far面とnear面)を設定し、グループ分割数算
出部120でグループの分割数を決定する。分割数はコ
マンド数やZ値範囲に基づいて最適化される。ソート処
理部130は、コマンドバッファ220から読み出した
発行順の描画コマンドについて、そのZ値から該当する
グループに配分し、次いでグループ内のZソートを行な
う。Zソートされたコマンドとそのアドレスは、グルー
プポインタテーブル200とコマンドポインタテーブル
210に書き込まれて、リンクが張られる。グラフイッ
クスプロセッサ300は、テーブルのリンク順に辿って
コマンドを読み出し描画する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はグラフィックス表示
装置に係り、特に図形描画コマンドのZソートを小容量
のメモリで高精度に且つ、高速に行なう描画方式に関す
る。
【0002】
【従来の技術】一般に、コンピュータグラフィックスの
表示処理はトラバーサル、ジオメトリ、陰面処理、レン
ダリング、表示の手順で行われる。これら一連の処理を
行うことにより、三角形や四角形、あるいはより頂点数
の多い図形を用いて、立体感や質感のあるより現実物に
近い画像を描画および表示することが可能となる。
【0003】陰面処理と呼ばれる処理は、視点から描画
図形を見た場合、他の図形の陰に隠れる図形については
描画しないという処理を行う部分である。この陰面処理
には一般にZソート法とZバッファ法があり、ジオメト
リ演算後の図形の奥行き情報を利用する。この奥行き情
報は一般にZ値と呼ばれる。
【0004】Zバッファ法による陰面処理は画素単位で
逐次処理する。すなわち、描画したい図形の画素のZ値
とZバッファに格納されているZ値を比較し、Zバッフ
ァに格納されている図形のZ値の方が小さければ、フレ
ームバッファに描画するとともにZバッファの値を更新
する。比較の結果、Zバッファに格納されているZ値の
方が大きければ、その画素は描画されずZバッファも更
新されない。このような処理を行うことにより、Zバッ
ファを用いて図形の影に隠れる図形は描画されず、より
自然な表示図形を得ることが可能になる。
【0005】Zバッファ法は画素単位に処理するので、
また、ハードウェア処理となるので高速になる。しか
し、Z値を格納しておく表示画面と同じ大きさのZバッ
ファをシステムに持つ必要があり、パソコンやゲーム機
あるいはカーナビゲーション等の低価格性が重視される
分野での適用を困難にしている。
【0006】Zソート法は図形描画を行う前に、三次元
空間内での距離を用いて描画順序の並びを替える。一般
には、最も奥にある図形から最も手前にある図形の順に
並び替え、描画順位を決定し、この順位に従って図形の
描画をおこなう。
【0007】Zソート法の公知例として、特開平7−2
96186号公報がある。この方法は三次元空間を距離
に応じて複数のブロックに分割し、描画コマンドが生成
されると、まずどのブロックに属するか判定する。ブロ
ックが定まると描画コマンドが生成された順に描画され
るようにリンクする。そして、視点から見て奥のブロッ
クから手前のブロックへ、あるいは手前のブロックから
奥のブロックへ、描画処理されるようにリンクする。こ
れによれば、図形データ保存のためのメモリ領域が少な
く、図形データのソートも高速に行なわれる。
【0008】
【発明が解決しようとする課題】Zバッファ法は高速、
高精度に描画処理を行うことができるが、大容量のバッ
ファをもつ必要があるため、グラフィックス表示装置が
高価格になるという問題があった。
【0009】また、上記したZソート法は、分割ブロッ
クにソートするだけなので、ブロック内ソートが行なわ
れないため図形描画の精度が悪い。また、ブロックの分
割が所定のZ値範囲に対して固定的に行なわれ、ブロッ
クに分配できない描画コマンドを生じたり、反対に描画
コマンドの分配のない空きブロックが発生して、描画精
度の低下やメモリの無駄な配分を生じる。
【0010】また、従来のZソート法では、例えば三次
元空間内で視点から見て奥から手前への順に描画コマン
ドが作成されている場合や、背景画像のように多数のフ
レームに亘って描画コマンドが変化しない場合などに
も、常にソートを行なっているため、ソートの処理時間
が長くなる問題点がある。
【0011】本発明の目的は、上記の問題点を克服し、
グループ内ソートを含む高精度のZソート法による描画
処理を安価に実現する、グラフィックス表示装置を提供
することにある。
【0012】また、Zソートの要否や精度を選択可能に
構成し、描画図形の用途に応じて描画精度と処理速度の
要求に柔軟に対応できる、使い勝手のよいグラフィック
ス表示装置を提供することにある。
【0013】
【課題を解決するための手段】上記目的は、3次元グラ
フィックス表示装置において、1フレーム中の描画コマ
ンドから3次元空間上で存在し得る範囲を検出し、この
存在範囲を複数のブロックに分割し、各ブロックに対応
する描画コマンドを分配し、前記存在範囲における昇順
あるいは降順に各ブロックを描画することにより達成さ
れる。
【0014】前記描画コマンドは3次元の奥行き情報を
示すZ値を有し、前記存在範囲は1フレーム中の描画コ
マンドのZ値の最大値と最小値により決定することを特
徴とする。
【0015】前記ブロックの分割数は、1フレーム毎に
最適化されることを特徴とする。この最適化は前記描画
コマンド数および/または前記存在範囲に基づいて決定
される。
【0016】上記目的は、3次元グラフィックス表示装
置において、3次元の奥行きを複数のグループに分割す
る際に、視点からみて最も手前と最も奥のグループの各
々に、1フレーム中の少なくとも一つの描画コマンドが
分配されるように分割する手段を設けることによって達
成される。
【0017】上記目的は、3次元グラフィックス表示装
置において、発行された描画コマンドをそのZ値に応じ
て複数のグループに分配するとともに、各グループ内で
そのZ値に応じてソートし、グループのZ値及びグルー
プ内のZ値の昇順あるいは降順に描画処理を行うことに
よって達成される。
【0018】グループ内の描画コマンドのZソートは、
コマンドのZソートリンクテーブル(GPTとCPT)
を設け、コマンドが発行される度に前記テーブルの該当
グループにリンクし、グループ内のリンク張り替え処理
によって行なわれる。
【0019】上記他の目的は、3次元グラフィックス表
示装置において、Zソートの要否や図形精度(グループ
への分配のみか、グループ内ソートも行なうかなど)
を、適宜に選択する手段を設けたことにより達成され
る。
【0020】また、図形精度の選択にZ値の代表点を選
択する手段を設ける。すなわち、三角形や四角形等によ
る描画コマンドの、Zソート時に参照する点を第1頂点
Z値、重心Z値または最小Z値から選択する。
【0021】さらに、グラフィックスプロセッサの描画
処理と、次フレーム描画のための描画コマンド生成処理
を効率的に行うために、複数の前記描画コマンド保持部
と描ポインタ保持部と、それらの書き込みと読み出しを
交替ないしサイクリックに行なう指定手段を設けてい
る。あるいは、複数の前記描画コマンド保持部の一部で
背景画のように複数のフレームで共用する描画コマンド
を保持し、該部分の描画コマンドの転送とZソートを省
略して処理を高速化する。
【0022】図2に、本発明によるZソート方式の概念
図を示す。図中の四角形中の数字1〜5は描画コマンド
の発行順序を示している。この描画コマンドの発行順序
は不規則であり、視点からみて正しい画像を表示するた
めには、三次元空間における距離、特に奥行き情報であ
るZ値に関して、最も大きなコマンドから最も小さなコ
マンドの順番(昇順)に描画する必要がある。
【0023】図2の場合、描画する三次元空間をコマン
ドのZ値の存在範囲によりグループ1〜グループ3に分
割する。この分割数はコマンド数などに基づいて最適化
される。そして、コマンドが発行される度に、そのZ値
がどのグループに属するか判定する。判定されたコマン
ドはZソートリンクテーブルの該当グループにリンクさ
れ、そのグループ内に属するコマンドと順次Z値の比較
を行い、Gr2のようにZ値の大きなコマンド順にリン
クを張り替える。図示例の場合、コマンド4から開始
し、以下1、3、2、5の順で描画するようにZソート
が行なわれる。
【0024】この操作を1フレームの描画コマンドの全
てに対して行い、Z値の大きなグループから先に描画す
れば、所望の画像を表示することができる。グループ内
も、前記Zソートポインターテーブルのリンクを辿るだ
けの簡単な処理となるので、Z値の大きなコマンドから
Z値の小さなコマンドの順で高速に描画できる。もし、
三次元空間において手前の物体の描画が重要とされる場
合は、リンクの張り替え作業及び、リンクの辿り方を、
Z値に関して上記と逆に行えばよい。
【0025】
【発明の実施の形態】本発明の一実施形態であるZソー
ト方式及び、それを用いたグラフィックス表示装置につ
いて、図面を参照しながら詳細に説明する。
【0026】図1は、本発明の一実施形態によるグラフ
ィックス表示装置の構成図である。本表示装置はデータ
処理、表示処理、入出力処理及びZソート処理をおこな
う処理部10、データや描画コマンドを記憶し、データ
の読み出しまたは書き込みの処理がおこなわれるメイン
メモリ20、CRT40等の表示部、他の処理装置や記
憶装置との入出力処理をおこなうI/O装置50から構
成される。
【0027】処理部10は、データ処理や他のプロセッ
サの制御を行うCPU600と、描画データを処理する
グラフィックスプロセッサ300と、表示部の表示タイ
ミングなどを処理する表示プロセッサ500と、CPU
600、グラフィックスプロセッサ300、表示プロセ
ッサ500等のインメモリ20のアクセスを調停するメ
モリコントローラ400と、Zソート部100から構成
されている。
【0028】なお、本実施例では、CPU600、グラ
フィックスプロセッサ300、表示プロセッサ500、
メモリコントローラ400及びZソート部100を、1
チップLSIで構成しているが、これに限られるもので
はない。
【0029】本実施例のZソート部100はZ値範囲検
出部110、グループ分割数算出部120及びソート処
理部130を有している。Z値範囲検出部110は、1
フレームないし1シーンの全描画コマンドのZ値から最
大値Zmax、最小値Zminを求めて、描画データの
存在範囲(near面とfar面)を過不足なく決定す
る。グループ分割数算出部120は、Z値範囲をコマン
ド数やZ値範囲の大きさに基づいて、グループの最適分
割数を決定し、Z値範囲を複数のグループに分割する。
ソート処理部130は、描画コマンドが発行される度
に、そのZ値により該当するグループに配分し、グルー
プ内でのリンク張り替えによるZソートを行なう。Zソ
ートはZ値の昇順でなく降順でもよい。
【0030】Zソート部100は、ソフトウェア的に処
理される場合にはCPU600がその機能を具備してい
る。あるいは、グラフィックスプロセッサ300に内蔵
されてもよい。
【0031】メインメモリ20は、グループポインタテ
ーブル(以下、GPTと略称)200、コマンドポイン
タテーブル(以下、CPTと略称)210、コマンドバ
ッファ220及びフレームバッファ230を備えてい
る。コマンドバッファ220は、グラフィックスプロセ
ッサ300が処理する描画コマンドを一時的に保持す
る。フレームバッファ230には、コマンドバッファ2
20から読み出した描画コマンドの描画が行なわれる。
【0032】上記Zソートリンクテーブルは、GPT2
00とCPT210から構成され、描画コマンドの処理
順を表すリンク情報が書き込まれる。例えば、図10に
示すように、GPT200はグループ毎に、各グループ
に属する描画コマンドの開始及び終了のアドレスを管理
する。CPT210はコマンド毎に、描画コマンドのア
ドレスとZソートのリンク先のアドレスを管理する。
【0033】次に、本グラフィックス表示装置の処理手
順について説明する。まず、CPU600において図形
データのジオメトリ演算が行われる。ジオメトリ演算が
行われた描画コマンドは、メモリコントローラ400に
より制御されて、Zソート部100へ転送される。な
お、CPU600のジオメトリ演算では描画コマンドの
Z値を、コマンドの三角形や四角形等の代表点により演
算する。後述のように、代表点が最小Z値あるいは重心
Z値等と選択指定される場合には、各々に対応する演算
ルーチンが用意される。
【0034】Zソート部100は後述するように、GP
T200とCPT210のテーブル内容を書き替え、Z
値の大きなコマンドからZ値の小さなコマンドの順にリ
ンクを張り替えていく。1シーン分の描画コマンドにつ
いてZソートを行うと、Zソート部100はメモリコン
トローラ400を介して、グラフィックスプロセッサ3
00に描画開始のための信号を送る。
【0035】グラフィックスプロセッサ300は主に、
三次元グラフィックスの図形データの演算処理を行う。
即ち、メインメモリ20のGPT200の先頭アドレス
を読み込んで解釈し、演算結果である図形データをフレ
ームバッファ230に描画処理する。このときGPT2
00あるいはCPT210に格納されているリンク情報
を次々と辿っていくことにより、所望の図形データを描
画することができる。
【0036】リンク情報の辿りかたはまず、最もZ値の
大きなグループへ読み込みのためのアクセスをおこな
う。そのグループに属するコマンドをCPT210のア
ドレスを基に参照し、描画処理する。次に、一つ手前の
グループに属するコマンドを描画する。
【0037】以下、Zソート部100の構成と動作を詳
細に説明する。図3に、Z値範囲におけるnear面
(最前面)とfar面(最奥面)の設定例を示す。図示
のように、実際の奥行き情報をカバーしない場合は、n
ear面の手前側とfar面の奥側は描画されないた
め、描画精度が低下することになる。一般には、奥行き
に対するnear面は視点位置、far面はシステムの
設定可能な最大値がそれぞれ固定的に設定され、実際の
奥行き情報より広い範囲をカバーしていることが多い。
この場合、分割された複数のグループのうちに、空デー
タとなるものが多く存在すると、ソートのために確保し
たメモリエリアが無駄になる。
【0038】図4に、本実施例によるZ値検出部の構成
を示す。Z値範囲検出部110は、最大Z値検出部11
1と最小Z値検出部114から構成され、Zソートを行
う前に1フレームの全コマンドのZ値を調べ、最大のZ
値と最小のZ値を求める。そして、最大のZ値をfar
面のZ値、最小のZ値をnear面のZ値とすることに
より、発行された描画コマンドを全ての描画を保証す
る。
【0039】初期状態では、最大Z値レジスタ112に
は小さい値、例えば0がセットされる。最小Z値レジス
タ115に大きな値が設定される。例えば、扱っている
データが16ビットであれば、(2の16乗−1)など
が設定される。そして、逐次発行されるコマンドのZ値
と、最大Z値レジスタの値を比較器113,116によ
り比較し、コマンドのZ値が最大Z値レジスタ112の
値よりも大きければ、コマンドのZ値を最大Zレジスタ
112に設定する。また、コマンドのZ値が最小Z値レ
ジスタ115の値よりも小さい場合には、コマンドのZ
値を最小Z値レジスタ115に設定する。この処理を1
フレームの全部のコマンドに対して行い、最小Z値をn
ear面のZ値、最大Z値をfar面のZ値とする。
【0040】これによれば、最も手前と最も奥のグルー
プには少なくとも一つの描画コマンドが属するようにな
り、範囲固定の場合に比べてGPT200のメモリ割り
当ての無駄がなくなる。さらに、分解能も上がるという
利点を持つ。その後、Zソートを行えば全ての描画コマ
ンドを表示処理することが可能になる。
【0041】図5に、本実施例によるグループ分割数算
出部の構成を示す。本例のグループ分割数算出部120
はコマンド数依存最適化部121を有している。この最
適化部121はコマンド数設定部1211、マスク部1
212、分割シフト量を格納するレジスタ1213及び
シフト部1214からなる。レジスタ1213には、一
つのグループに分配したいコマンド数に関する情報、例
えばコマンド数を2のべき乗で表す場合に、そのべき乗
を格納する。一つのグループに平均して8個(2の3
乗)のコマンドを分配したい場合は3が格納される。
【0042】コマンド数設定部1211にコマンド数が
設定されると、マスク部1212ではそのコマンド数を
超えない2のべき数を算出する。例えばコマンド数=7
00の場合は、べき数=512を出力する。シフト部1
214はマスク部1212の出力値を分割数シフト量の
分だけ右シフトし、結果が0になる場合は値1を出力す
る。マスク部1212の出力が512、分割数シフト量
が3の場合、シフト部1214の出力は64となり、グ
ループ分割数となる。この例の1グループの平均コマン
ド数は11(700/64)となり、所望の8に近い値
となる。
【0043】コマンドの数はフレームにより大きく増減
する。コマンド数が少ない場合に、分割数が大きすぎる
とソート処理が遅くなり、GPTなどのテーブルを無駄
にする。また、コマンド数が多い場合に、分割数が少な
すぎるとソート処理が遅くなる。しかし、本実施例によ
ればコマンド数に応じてグループ分割数を最適化するの
で、ソート処理時間を短縮でき、メモリの無駄な配分も
なくなる。
【0044】本実施例では、速度最優先などから予め設
定される固定分割数123を採用することも可能であ
る。この場合の選択はセレクタ122によって行なわれ
る。なお、分割数シフト量は、システムのメモリ容量や
フレームの平均コマンド数などから、経験的に妥当な数
値が設定される。
【0045】図6に、他の実施例によるグループ分割数
算出部の構成を示す。本例のグループ分割数算出部12
0’には、図5の構成に対しZ値依存最適化部125を
付加している。これは、コマンド数依存による最適化の
場合に、Z値の分解能によってはグループの分割数が大
きすぎて無駄になることがあるためである。
【0046】本実施例では、コマンド数依存最適化部1
21の分割数(例えば64)がべき数算出部1251に
入力され、そのべき数(=6)が算出される。一方、減
算器1254は最大Z値1252と最小Z値1253の
減算値(例えば32)を出力する。シフト部1255
は、この減算値(=32)をべき数(=6)の分だけ右
シフトし、コマンド数に関して最適化した分解能(=
0.5)を得る。
【0047】さらに、比較器1257で、予め設定され
ているZ値分解能1256(例えば2)と比較し、Z値
分解能1256より大きい場合はコマンド数依存最適化
部121出力値(=64)をそのまま出力する。この例
の場合には、Z値分解能より小さくなるので、べき数算
出部1258でZ値分解能1256のべき数(=1)を
算出し、シフト部1259でコマンド数依存最適化部1
21からの分割数を(べき数+1=2)だけ右シフト
し、Z値分解能で最適化した分割数(=16)を出力す
る。ただし、シフト部1259の出力値は整数切上げと
する。
【0048】この結果、本実施例により最適化される分
割数は、一つのグループの奥行きが常にZ値の分解能以
上になるように保証しながら、グループ分割数の無駄を
排除している。
【0049】図7に、本実施例のZソート部による概略
の処理フローを示す。まず、Z値範囲検出部110から
のZ値範囲により、描画する図形のnear面とfar
面(最奥面)を設定し(S1)、グループ分割数算出部
120によるグループ分割数を取り込む(S2)。
【0050】次に、ソート処理部130による処理に移
行し、GPT200とCPT210が、分割数に応じて
初期化される(S3)。即ち、GPT200に分割数に
対応したグループIDが設定され、そのコマンドアドレ
スには全て「NOP」が設定される。このとき、CPT
210は空である。次に、発行される描画コマンドが順
次入力される(S4)。そして描画コマンドに付加され
ているZ値を用いて、分割したグループのどれに属する
かの判定が行われる(S5)。
【0051】次に、既にグループ内に属しているコマン
ドとのZ値比較を行ない(S6)、Z値の順に接続する
リンク張り替えが行なわれる(S7)。最後に、発行さ
れた描画コマンドが1フレームの最終コマンドの確認
を、処理コマンドの数が全コマンド数に達したかどうか
によって判定する(S8)。最終の描画コマンドであれ
ばZソートは終了であり、グラフイックプロセッサ30
0による描画が開始される。最終でなければ、次に発行
される描画コマンドを受け取り、上記のソート処理を繰
返す。
【0052】図8、図9を参照して、グループ内判定
(S6)とリンク張り替え処理(S7)の詳細な説明を
行う。本処理では、GPT200の開始コマンド部及び
終了コマンド部に設定されるコマンドをそれぞれSCO
M、ECOM、グループ内で直前にZ値比較したコマン
ドをPCOM、そのリンク先をNCOM、今回発行の自
コマンドをCOMの文字変数で表す。なお、NOPは描
画コマンドへのリンクがなく(初期状態のまま)、描画
時に何も実行されない状況を表す。
【0053】まず、GPT200の該当グループにおい
て、SCOMがNOPか判定する(S10)。判定結果
が「真」であれば、該当グループには現在、描画コマン
ドは1つも屬していないので、GPT200のSCO
M、ECOMに自コマンドCOMのアドレスを設定する
(S130)。
【0054】処理S10において判定結果が「偽」とな
った場合は、COMとSCOMのZ値を比較する(S2
0)。COMのZ値が「真(大)」であれば(S3
0)、自コマンドCOMが該当グループにおいては最も
Z値が大きい。そこで、COMのリンク先にSCOMの
アドレスを設定し(S140)、さらにGPT200の
SCOMにCOMのアドレスを設定する(S150)。
【0055】処理S30においてCOMのZ値が「偽
(小)」となった場合、SCOMのリンク先がNOPで
あるか判定する(S40)。これは、当該グループ内に
ある描画コマンドの数が1か、それ以上かを判定するも
のである。処理S40の結果が「真(NOP)」となっ
た場合は、グループに属している描画コマンド数が一つ
であることを意味している。すでに、COMのZ値の方
が小さいことが判明しているため、リンクの順序はSC
OM、COMの順になる。つまり、SCOMのリンク先
にCOMのアドレスを設定し(S160)、GPT20
0のECOMにCOMのアドレスを設定する(S17
0)。
【0056】処理S40において「偽」となった場合
は、グループ内に複数のコマンドが属している。COM
のZ値はSCOMより小さいことが判明しているので、
当該グループ内でのZ値は二番目以下になる。そこで、
同グループ内で直前にZ値比較したコマンドPCOMの
リンク先をNCOMとする(S50)。この操作は、リ
ンク情報を辿っていけば、容易に得ることが可能であ
る。即ち、GPT200に設定されているSCOMまた
はECOMのアドレスを起点に、CTP210のアドレ
スとリンク先をコマンド設定順または逆順に辿ること
で、NCOMの設定が可能になる。
【0057】次に、COMとNCOMのZ値比較を行な
い(S60)、COMのZ値が大きいか判定し(S7
0)、比較の結果が「真(大)」であれば、PCOMの
リンク先にCOMのアドレスを設定し(S110)、C
OMのリンク先にNCOMのアドレスを設定する(S1
20)。
【0058】また、処理S70において「偽(小)」と
なった場合は、NCOMのリンク先がNOPであるか判
定する(S80)。結果が「真(NOP)」であれば、
COMがグループ中で最もZ値が小さいことがわかる。
よって、NCOMのリンク先にCOMのアドレスを設定
し(S90)、さらにGPT200のECOMにCOM
のアドレスを設定する(S100)。
【0059】処理S80で結果が「偽」となった場合
は、自コマンドCOMよりもZ値が小さい描画コマンド
が存在する可能性があるので、処理S50へ戻って、リ
ンクが完成するまでZ値の比較処理を繰り返す。
【0060】図10〜図13に、GPT及びCPTの構
成とZソートによる設定内容の遷移を示す。ソート処理
は、図2に示すコマンドを例にしたものである。初期状
態ではGPT200、CPT210にはすべてNOPが
入っている。
【0061】最初にCOM1が発行されると、GPT2
00のGr2のSCOM,ECOMには、処理S10、
S130を経て図10(a)のように、COM1のアド
レスC1が設定される。CPT210のCOM1のリン
ク先はNOPである。
【0062】次にCOM2が発行されると、COM1と
同じGr2でCOM1よりZ値が小さいため、処理S1
0〜S40、S160及びS170経て、図11
(a)、(b)のようになる。COM2のリンク先はN
OPである。
【0063】COM3の場合には、COM1と同じGr
2でZ値がCOM1より小さくCOM2より大きいの
で、リンクの張替処理が行なわれる。即ち、S10〜S
70、S110及びS120を経て、リンク張り替え操
作が終了し、図12(a)、(b)のようになる。
【0064】さらに、Gr1に属するCOM4、Gr3
に属するCOM5がリンクされ、図2の3次元空間に位
置する描画コマンド1〜5は、最終的に図13(a)、
(b)のようにZソートされる。
【0065】本実施例のZソートによれば、GPT20
0及びCPT210によるグループ内ソートは、開始コ
マンドから最終コマンドと各々のリンク先を、コマンド
のアドレスで示すリンクの張りかえによって行なわれ
る。
【0066】次に、本発明の他の実施例を説明する。図
14に、本実施例によるZソート部の構成を示す。Zソ
ート部以外の構成は、図1のグラフイックス表示装置と
同様になる。Zソート部100’には代表点選択部14
0、ソート選択部150、ソート処理部130が設けら
れている。なお、図1に示したZ値範囲検出部110及
びグループ分割数算出部110は必須ではないが、設け
た方がベターである。
【0067】代表点選択部140は、発行された描画コ
マンドをZソートする際に、図形のどの点のZ値を利用
するか、選択的に指定する手段である。利用する代表点
Z値によって、描画精度や処理速度を可変できる。
【0068】図15に、Z値の代表点として利用可能な
典型例の説明図を示す。(a)は、Z値が最小となる点
の最小Z値、(b)は重心のZ値、(c)は第一頂点Z
値(複数の頂点データの内、描画コマンドにより最初に
与えられる点)による、それぞれのベクトルとその描画
図形を示す。
【0069】描画精度は、(a)の最小Z値が最も高
く、コマンド通りの描画が得られる。(b)の重心Z値
は、この例では同じ結果を得ているが、一般には(a)
より劣る。(c)の第一頂点座標は、図示のように図形
の重なりが前後で逆になるなど、奥行き方向の描画精度
は保証されない。しかし、処理時間はこれとは反対に、
(c)は代表点の計算が不要なため最も短い。次いで、
(b)、(a)の順となる。
【0070】本実施例の代表点選択部140は、この3
種類の何れかを指定する代表点フラグ保持手段141を
含んでいる。代表点フラグの指定はユーザがアプリケー
ションプログラムを通じて行なう。この代表点フラグは
メモリコントローラ400を介してCPU600に与え
られ、描画コマンドのジオメトリ演算におけるZ値算出
に反映される。これにより、ユーザは描画図形の種類や
用途に応じて所望の代表点を選択し、図形精度と処理速
度の優先度合いを適宜に変更できる。
【0071】一方、ソート選択部150はグループソー
ト選択部151、グループソートフラグ格納部153、
グループ内ソート選択部152及びグループソートフラ
グ格納部154を備えている。選択部151,152は
その指定に応じて、対応するフラグ格納部153,15
4のフラグをセット/リセットする。ソート処理部13
0は、非ソート部131、グループソート部132及び
グループ内ソート部133を備え、ソート選択部150
からの指定されるソートフラグの種別に応じたソートを
実行する。
【0072】この構成により、表示精度を無視して処理
速度を最優先する場合には、非ソートフラグがセットさ
れ、単なる配線でしかない非ソート部161を経由し
て、描画コマンドを発行順にコマンドバッファ220に
書き込む。この場合、GPT200、CPT210は不
要であるため、メインメモリ20上にはGPT200と
CPT210のメモリ領域は確保しない。
【0073】表示精度より表示速度が優先される場合は
グループソートフラグがセットされ、グループソート部
162のみが起動されて、描画コマンドはZ値別のグル
ープに分配される。表示精度が最優先される場合はグル
ープ内ソートフラグがセットされ、グループソート部1
62とグループ内ソート163が起動され、図7に示し
たZソートが行なわれる。
【0074】本実施例によれば、描画精度または描画速
度の優先度合に応じたシステムの処理性能が実現できる
ので、描画の種類や用途に応じた最適な使い分けが可能
になる。また、システム内のメモリ領域をより有効に活
用することができる。
【0075】次に、本発明のさらに他の実施例を説明す
る。本実施例のグラフイックス表示装置は、メインメモ
リ20内に複数バッファを備える構成を特徴とする。
【0076】図16はその一例で、ダブルバッファ構造
のグラフイックス表示装置の構成を示している。図1と
同様のGPTA200、CPTA210、コマンドバッ
ファA220に対し、それぞれGPTB240、CPT
B250、コマンドバッファB260をペアにしてい
る。このダブルバッファの制御は、Zソート部100に
設けられたバッファ選択部160で行なわれる。なお、
図1のZソート部100に設けられる他の要素は図示を
省略しているが、設けた方ベターである。
【0077】バッファ選択部160は、テーブルバッフ
ァ選択部161とテーブルバッファフラグ保持部162
をもつ。二つのバッファ及びテーブルの内、どちらを読
み出しに用い、どちらを書き込みに用いるかは、CPU
600がテーブルバッファ選択部161を介して、テー
ブルバッファフラグ保持部162のセット/リセットに
より行なう。
【0078】例えば、テーブルバッファフラグ保持部1
62にフラグがセットされている場合、GPTA20
0,CPTA210,コマンドバッファA220を書き
込み用に、GPTB240、CPTB250、コマンド
バッファB260を読み出し用に用いる。この結果、読
み出しと書き込みが並列処理されるため、無駄な待ち時
間が少なくなり、グラフィックス表示装置の描画処理が
スピードアップされる。
【0079】ところで、監視画像などでは人間や車両な
どのように刻々と変動する画像と、背景のようにほとん
ど変動しない画像を合成して描画することが多い。図1
8(a)はこの例を示し、変動する人間Aと背景にあり
変動しない建物Bを描画している。この場合、AとBの
間に図形が何もないと、Zソート時のGPT200の分
解能が低下し、フレームバッファ230に描画される図
形データの精度が悪くなることがある。また、Bのよう
な背景図形は複数フレームに亘って描画コマンドが変化
しない場合が多く、フレーム単位のZソートはオーバヘ
ッドの増大となる。
【0080】そこで、複数フレームに亘って変化しない
描画コマンドを別扱いとして、この問題点を克服する。
図17に、トリプルバッファ構造によるグラフイックス
表示装置を示す。
【0081】トリプル構造は、図16に示したダブルバ
ッファ構造に加えて、背景画などを扱うGPTC27
0、CPTC280、コマンドバッファC290を設け
ている。ダブルバッファ構造部では、テーブルバッファ
フラグ162によりフレーム単位で交替に書き込みと読
み出しが行なわれているのに対し、この付加部分に対し
ては、バッファ選択部160のテーブルバッファ選択部
161を介して、CPU600からテーブル処理順序フ
ラグ163がセットされた場合にのみ、GPT270と
CPT280によるリンク張り替えと該当フレームの書
き込み処理が行なわれる。
【0082】これによれば、Zソートを含む描画処理が
高速化できるとともに、背景図形のような静止画像を毎
回Zソートの対象としないので、描画精度が維持できる
とともに処理が高速化できる。図18(b)に、本実施
例によるカーナビゲーションの画面例を示す。図示の枠
部や右下のボタンは固定物で、フレーム毎にコマンドを
発行する必要はない。従って、これらの描画コマンドに
対する処理順序フラグ163は最初にセットされるのみ
である。また、道路や建物などの背景図形は、矢印で示
される車の位置が一定距離以上変化したときに更新され
るので、このときフラグ163が発行されて背景の再描
画が行なわれる。
【0083】従って、静止画像や背景図形などの描画コ
マンドとリンクをGPTC、CPTC、コマンドバッフ
ァCに格納し、テーブル処理順序フラグ163がセット
された場合に更新し、常時はダブルバッファとして動作
するGPTA、CPTA、コマンドバッファA及びGP
TB、CPTB、コマンドバッファBで車の図形のZソ
ートと描画を実行し、その後にコマンドバッファCの描
画を実行すれば、少ないコマンド転送量で高速の描画が
実現できる。
【0084】
【発明の効果】本発明の三次元グラフィックス表示装置
によれば、グラフィックス処理の陰面消去方法の一つで
あるZソートを行う場合に、グループ分割数を最適化し
て描画コマンドを各グループに分配することで、高速か
つ高精度な描画処理が可能になる。
【0085】また、フレーム毎のコマンドからZ値範囲
を検出してグループ分割を行なうので、全てのコマンド
を対応するZ値のグループに分配でき、且つコマンドの
配分されない無駄なグループを低減できる。
【0086】本発明によれば、グループ内のZソートが
Zソートテーブルのリンクを辿るだけの簡単な処理とな
る。特に、同グループの前回コマンドないしそのリンク
先を基準にしてリンクを張り替えるので、グループ内の
Zソートを高速化できる。
【0087】これにより、低価格性と高速性が要求され
る個人向け情報端末機器などに適用して、高品質の三次
元グラフィックス表示装置が提供できる。
【0088】また、本発明によれば、ソートに用いるZ
値を複数の代表点から選択可能にしているので、表示精
度と処理速度の要求に応じて適宜選択でき、システムの
性能と使い勝手を向上できる。
【0089】また、本発明によれば、ソートの要否及や
ソートレベル(グループ分配のみかグループ内ソートを
含むか)を選択可能に構成しているので、表示精度と処
理速度の要求に応じて適宜選択でき、システムの性能と
使い勝手を向上できる。
【0090】さらに、本発明によれば、複数のZソート
テーブルとコマンドバッファを備えて、それらの書き込
みと読み出しを制御可能に構成にしているので、従来の
ダブルバッファやトリプルバッファによる描画処理にそ
のまま適用できる。
【図面の簡単な説明】
【図1】本発明のグラフィックス表示装置の一実施形態
を示す構成図。
【図2】本発明のZソート方式の概念を示す説明図。
【図3】near面とfar面を固定した場合の問題点
を示す説明図。
【図4】Z値範囲検出部の一実施例を示す構成図。
【図5】グループ分割数算出部の一実施例を示す構成
図。
【図6】グループ分割数算出部の他の実施例を示す構成
図。
【図7】本発明の一実施形態によるZソートの処理方法
の概略を示すフローチャート。
【図8】図7のZソート処理方法のグループ内判定とリ
ンク張り替え処理の詳細を示すフローチャート。
【図9】図9の続きを示すフローチャート。
【図10】GPTとCPTの構成とテーブルの初期内容
を示す説明図。
【図11】図10からの遷移内容を示す説明図。
【図12】図11からの遷移内容を示す説明図。
【図13】図12からの遷移内容を示す説明図。
【図14】Zソート部の他の実施例を示す構成図。
【図15】Z値の代表点である最小Z値、重心Z値及び
第一頂点Z値の説明図。
【図16】ダブルバッファ構造のメインメモリとZソー
ト部の構成図。
【図17】トリプルバッファ構造のメインメモリとZソ
ート部の構成図。
【図18】トリプルバッファの適用図形を示す説明図。
【符号の説明】
10…処理部、20…メインメモリ、100…Zソート
部、110…Z値範囲検出部、111…最大値検出部、
114…最小値検出部、120…グループ分割数算出
部、121…コマンド数依存最適化部、125…Z値依
存最適化部、130…ソート処理部、131…非ソート
部、132…グループソート部、133…グループ内ソ
ート部、140…代表点選択部、150…ソート選択
部、151…グループソート選択部、152…グループ
内ソート選択部、160…バッファ選択部、161…テ
ーブルバッファ選択部、162…テーブルバッファフラ
グ、163…テーブル処理順序フラグ、200…GPT
(グループポインタテーブル)、210…CPT(コマ
ンドポインタテーブル)、220…コマンドバッファ、
230…フレームバッファ、300…グラフィックスプ
ロセッサ、400…メモリコントローラ、500…表示
プロセッサ。
フロントページの続き (72)発明者 飯村 伊智郎 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 渡辺 範人 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 佐藤 潤 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業部内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 奥行き情報を含む図形データの描画コマ
    ンドを記憶するメモリと、前記描画コマンドを所定順に
    読み出して描画するプロセッサと、画面表示する表示部
    を備える3次元のグラフィックス表示装置において、 1フレーム中の描画コマンドから3次元空間上で存在し
    得る範囲を検出する存在範囲検出手段と、この存在範囲
    を複数のブロックに分割するブロック分割手段と、各ブ
    ロックに対応する描画コマンドを分配するソート手段を
    設け、前記存在範囲における昇順あるいは降順に各ブロ
    ックを描画することを特徴とするグラフィックス表示装
    置。
  2. 【請求項2】 請求項1において、 前記存在範囲検出手段は、前記奥行き情報(以下、Z値
    と呼ぶ)の最大値と最小値によるZ値範囲を検出し、 前記ソート手段は、各描画コマンドのZ値に基づいて各
    ブロックに対応する描画コマンドを分配するとともに、
    ブロック内の描画コマンドを前記Z値範囲の昇順または
    降順にZソートすることを特徴とするグラフィックス表
    示装置。
  3. 【請求項3】 請求項1または2において、 前記ブロック分割手段は、1フレームの描画コマンド数
    または前記存在範囲の値に基づいて、ブロックの分割数
    を最適化することを特徴とするグラフィックス表示装
    置。
  4. 【請求項4】 Z値を含む図形データの描画コマンドを
    記憶するメモリと、前記描画コマンドを所定順に読み出
    して描画するプロセッサと、画面表示する表示部を備え
    る3次元のグラフィックス表示装置において、 Z値の方向を複数のブロックに分割する際に、視点から
    みて最も手前と最も奥のグループの各々に、1フレーム
    中の少なくとも一つの描画コマンドが分配されるように
    分割するブロック分割手段と、発行された描画コマンド
    をそのZ値に対応するグループに分配するソート手段を
    設けたことを特徴とするグラフィックス表示装置。
  5. 【請求項5】 請求項1〜4のいずれか1項において、 前記ソート手段は、前記描画コマンドをグループ分けし
    てソートするためのZソートリンクテーブルを有し、前
    記描画コマンドが発行される度にそのZ値に応じて前記
    テーブルの該当グループにリンクし、グループ内に存在
    する複数の描画コマンドに対しZ値の昇順または降順に
    リンクを張り替えることを特徴とするグラフィックス表
    示装置。
  6. 【請求項6】 請求項2〜5のいずれか1項において、 前記描画コマンドに含まれるZ値の算出方法を、前記描
    画コマンドで表現される多角形の最小Z値、重心Z値ま
    たは第一頂点Z値のいずれか一つから選択する、Z値代
    表点選択手段を設けたことを特徴とするグラフィックス
    表示装置。
  7. 【請求項7】 Z値を含む図形データの描画コマンドを
    複数のバッファで記憶するメモリと、前記描画コマンド
    を所定順に読み出して描画するプロセッサと、画面表示
    する表示部を備える3次元のグラフィックス表示装置に
    おいて、 1フレームの描画コマンドに含まれるZ値範囲を複数の
    ブロックに分割するブロック分割手段と、発行された描
    画コマンドをそのZ値に対応するグループに分配すると
    ともにグループ内でZ値の昇順または降順にソートする
    ソート手段と、ソートされた描画コマンドの描画順序を
    記憶する前記バッファと同数のZソートリンクテーブル
    を設けたことを特徴とするグラフィックス表示装置。
  8. 【請求項8】 請求項7において、 前記バッファと前記Zソートリンクテーブルの組が二重
    に構成され、各組の書き込みと読み出しをフレーム毎に
    交替に行なうことを特徴とするグラフィックス表示装
    置。
  9. 【請求項9】 請求項7において、 前記バッファと前記Zソートリンクテーブルの組が三重
    に構成され、その二組を書き込みと読み出しをフレーム
    毎に交替に行ない、残る一組の書き込みを背景図形の更
    新時などに行なうことを特徴とするグラフィックス表示
    装置。
JP8285353A 1996-10-28 1996-10-28 グラフィックス表示装置 Pending JPH10134204A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8285353A JPH10134204A (ja) 1996-10-28 1996-10-28 グラフィックス表示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8285353A JPH10134204A (ja) 1996-10-28 1996-10-28 グラフィックス表示装置

Publications (1)

Publication Number Publication Date
JPH10134204A true JPH10134204A (ja) 1998-05-22

Family

ID=17690468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8285353A Pending JPH10134204A (ja) 1996-10-28 1996-10-28 グラフィックス表示装置

Country Status (1)

Country Link
JP (1) JPH10134204A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285372A (ja) * 2005-03-31 2006-10-19 S I Electron:Kk Zソート処理回路およびこれを用いた3次元画像描画装置
US7518607B2 (en) 2004-04-05 2009-04-14 Fujitsu Limited Hidden-line removal method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7518607B2 (en) 2004-04-05 2009-04-14 Fujitsu Limited Hidden-line removal method
JP2006285372A (ja) * 2005-03-31 2006-10-19 S I Electron:Kk Zソート処理回路およびこれを用いた3次元画像描画装置

Similar Documents

Publication Publication Date Title
US6052129A (en) Method and apparatus for deferred clipping of polygons
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
CN1938730B (zh) 基于寄存器的对纹理请求的排队
US7081894B1 (en) Picture drawing apparatus and picture drawing method
EP1364298B1 (en) 3-d rendering engine with embedded memory
US20080273030A1 (en) Drawing apparatus and drawing method
WO2000019377B1 (en) Graphics processor with deferred shading
JPH07104734A (ja) 図形データ並列処理表示装置
CN100354891C (zh) 一种改良的模板阴影锥操作的方法与装置
JPH11259671A (ja) 画像表示方法及びそれを実行する画像表示装置
US4845656A (en) System for transferring data between memories in a data-processing apparatus having a bitblt unit
US6181346B1 (en) Graphics system
EP0631252B1 (en) Draw processor for a high performance three dimensional graphics accelerator
JPH09500462A (ja) 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム
US6172670B1 (en) Method and apparatus for simultaneous shape-dependent access to picture data stored at a plurality of addresses
GB2343601A (en) Shading and texturing 3-dimensional computer generated images
CN1430769B (zh) 拼块式图形结构
US5657436A (en) Preprocessing apparatus and method for line scan conversion in a computer graphics system
JPH10134204A (ja) グラフィックス表示装置
US5815163A (en) Method and apparatus to draw line slices during calculation
JPH07295787A (ja) 演算処理装置
US5617524A (en) Run slice line draw engine with shading capabilities
US7372466B2 (en) Image processing apparatus and method of same
US5973698A (en) Method and system for sorting polygon data according to depth values
US5714986A (en) Run slice line draw engine with enhanced line configurations