JPH09259299A - ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム - Google Patents

ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム

Info

Publication number
JPH09259299A
JPH09259299A JP8065902A JP6590296A JPH09259299A JP H09259299 A JPH09259299 A JP H09259299A JP 8065902 A JP8065902 A JP 8065902A JP 6590296 A JP6590296 A JP 6590296A JP H09259299 A JPH09259299 A JP H09259299A
Authority
JP
Japan
Prior art keywords
data
buffer
polygon
polygon data
registered
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.)
Withdrawn
Application number
JP8065902A
Other languages
English (en)
Inventor
Masayuki Suzuki
雅之 鈴木
Seisuke Morioka
誠介 森岡
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.)
Sega Corp
Original Assignee
Sega Enterprises 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 Sega Enterprises Ltd filed Critical Sega Enterprises Ltd
Priority to JP8065902A priority Critical patent/JPH09259299A/ja
Priority to US08/816,933 priority patent/US5973698A/en
Publication of JPH09259299A publication Critical patent/JPH09259299A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】対象データのバラツキによらずに必要なメモリ
容量も変わらないポリゴンデータのソート方法及びシス
テムを提供する。 【解決手段】任意の順に格納された複数のポリゴンデー
タを特定の参照値を基準にして該特定の参照値の増加方
向または減少方向にソートして、該複数のポリゴンデー
タを並べ換えるポリゴンデータのソート方法において、
該複数のポリゴンデータの各々の該参照値を上位桁と下
位桁に分割し、該上位桁の数値を増加方向または減少方
向の順に登録し、該下位桁の数値に対応して、該上位桁
の数値及び対応する該下位桁の数値と該上位桁の数値を
有するポリゴンデータの格納された位置を示すインデッ
クス番号とを登録し、該登録された上位桁の数値の増加
方向または減少方向の順に対応するインデックス番号の
順位に登録さたポリゴンデータを読みだす。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ポリゴンデータの
ソート方法及びこれを用いたポリゴンデータのソートシ
ステムに関する。特に3次元ポリゴンコンピュータグラ
ッフィク(CG)システムにおいて、複数のポリゴンを
表示させる際の各ポリゴンの奥行き値を利用して表示さ
せるためのポリゴンデータのソート方法及びシステムに
関する。
【0002】
【従来の技術】3次元ポリゴンCGシステムにおいて、
陰面消去即ち、表示するポリゴンが重なる場合、表示優
先度に従って重なり面を消去するために、表示装置への
表示に際してポリゴンデータをソートすることが必要で
ある。
【0003】これを実現する方法の1つとして各ポリゴ
ンの奥行き値(Z値)を利用して表示させる順番を決め
る方法がある。この時奥行きの値に従ってポリゴンのデ
ータを並び替えることが必要となる。
【0004】即ち、図18、19、20は、かかるポリ
ゴンの並び替えを説明する図である。図18は、ポリゴ
ンデータの一例であり、このポリゴンは、P0 、P1 、
P2の三点の3次元座標点を有する。そして、これら3
点に対し代表点Pr を有する。この代表点Pr は、例え
ば3点の相加平均値とすることにより得られる。
【0005】さらにかかる代表点Pr のZ値は、上記各
ポリゴンの奥行き値であり、ポリゴンのソートは、一般
にこの代表Z値を用いて行われる。図19は、これを説
明する図である。いま登録される順にポリゴンC、B、
Aとし、これらの代表Z値を16、17、23とする
時、ソートにより代表値の大きい順に並べるとポリゴン
A、B、Cの順となる。
【0006】図20は、さらにこのようにしてソートに
よりZ値の順に並べられたポリゴンを示す一例である。
図20において、A、B、C、D・・Nは、複数のポリ
ゴンであり、それぞれ3次元座標のZ軸方向の奥行き方
向の距離(代表Z値Z1、Z2、・・Zn )の大きさの
順に並んで配置されている。このように配置された順で
表示が行われる。
【0007】上記のごとくポリゴンデータの並び替えを
行うための方法として、いろいろ提案されているが、そ
のうちハードウエアを意識して高速にソートを行うこと
考慮した場合の方法として、クイックソート法と呼ばれ
る方法がある。
【0008】かかる方法の場合、メモリ領域とのデータ
のやりとりが頻繁に生じるためにオーバヘッドが大きく
なるという問題がある。また代表Z値のバラツキ具合に
よって実行速度が大きく変化するという欠点もある。
【0009】更に別の方法として、デ−タのやりとりの
点から有利な方法としては、分配法がある。しかし、こ
の方法ではメモリー容量が大きくなるという問題があ
る。
【0010】
【発明が解決しようとする課題】したがって、本発明の
目的は、上記従来のポリゴンデータのソート方法におけ
る問題を解決するポリゴンデータのソート方法及びソー
トシステムを提供することにある。
【0011】更に具体的には、本発明の目的は、対象デ
ータのバラツキによって必要なメモリ容量が変わらず、
また、実行速度の変化の少ないポリゴンデータのソート
方法及びシステムを提供することにある。
【0012】更にまた、本発明の目的は、メモリ領域と
のデータの送受が少ないポリゴンデータのソート方法及
びシステムを提供することにある。
【0013】
【課題を解決するための手段】上記本発明の課題を達成
する請求項1に記載のポリゴンデータのソート方法は、
任意の順に格納された複数のポリゴンデータを特定の参
照値を基準にして該特定の参照値の増加方向または減少
方向にソートして、該複数のポリゴンデータを並べ換え
るポリゴンデータのソート方法において、該複数のポリ
ゴンデータの各々の該参照値を上位桁と下位桁に分割
し、該上位桁の数値を増加方向または減少方向の順に登
録し、該下位桁の数値に対応して、該上位桁の数値及び
対応する該下位桁の数値と 該上位桁の数値を有するポ
リゴンデータの格納された位置を示すインデックス番号
とを登録し、該登録された上位桁の数値の増加方向また
は減少方向の順に対応するインデックス番号の順位に登
録さたポリゴンデータを読みだすようにしたことを特徴
とする。
【0014】更に、請求項2に記載のポリゴンデータの
ソート方法は、請求項1において、前記複数のポリゴン
データの特定の参照値は、各々のポリゴンデータを構成
する頂点の3次元座標のZ軸座標値から求めた代表値で
あることを特徴とする。
【0015】また、請求項3に記載のポリゴンデータの
ソート方法は、請求項2において、前記代表値が、各々
のポリゴンデータを構成する頂点の3次元座標のZ軸座
標値の平均値であることを特徴とする。
【0016】更に又、上記本発明の課題を達成する請求
項4に記載のポリゴンデータのソート方法は、任意の順
に複数のポリゴンデータを格納するポリゴンバッファ
と、上位桁と下位桁に分割された、該複数のポリゴンデ
ータの各々の参照値の該上位桁の数値に対応して該上位
桁を有するポリゴンデータの数を登録する上位データ用
バッファと、該下位桁の数値毎に対応するポリゴンデー
タの数を登録する第一の領域と、該第一の領域にポリゴ
ンデータの数が登録された該下位桁の数値を有するポリ
ゴンデータの該上位桁の数値を登録する第二の領域と、
該第二の領域登録されるポリゴンデータの格納された該
ポリゴンバッファの位置を示すインデックス番号を登録
する第三の領域を有する下位データ用バッファと、該ポ
リゴンバッファに格納されたポリゴンデータを読みだす
順にポリゴンデータの格納された該ポリゴンバッファの
位置を示すインデックス番号を登録するソート用インデ
ックスバッファを有し、該上位データ用バッファに登録
されたポリゴンデータの数を順次累積し、該結果を一段
シフトしながら再度該上位データ用バッファに格納し、
該下位データ用バッファの該第一の領域にポリゴンデー
タの数を登録された下位桁の数値を有する該第二の領域
に登録された対応する上位桁の数値に対応する該再度格
納された、該上位データ用バッファの登録数値の順に、
該ソート用インデックスバッファに該第三の領域に登録
されたインデックス番号を登録し、更に、該ソート用イ
ンデックスバッファに登録された順に登録されたインデ
ックス番号に対応する、該ポリゴンバッファに格納され
たポリゴンデータを読みだすようにしたことを特徴とす
る。
【0017】更に請求項5に記載のポリゴンデータのソ
ートシステムは、請求項4の記載において、前記下位デ
ータ用バッファの前記第二及び第三の領域は、一の前記
第一の領域に対して複数組を有し、前記上位データ用バ
ッファに登録されるポリゴンデータの数の増加に応じ
て、該複数の組の該第二及び第三の領域への登録が順次
に行われることを特徴とする。
【0018】請求項6に記載のポリゴンデータのソート
システムは、請求項5の記載において、前記上位データ
用バッファに登録されるポリゴンデータの数が、前記下
位データ用バッファの前記第二及び第三の領域の複数の
組の数以上となる時、前記下位データ用バッファの前記
第一の領域の対応する下位桁の数値より大きいか又は小
さい下位桁の数値に対応する第二及び第三の領域に登録
が行われることを特徴とする。
【0019】請求項7に記載の画像表示装置は、任意の
順に複数のポリゴンデータを格納するバッファと、該複
数のポリゴンデータを特定の参照値を基準にして該特定
の参照値の増加方向または減少方向にソートして、該複
数のポリゴンデータを並べ換える制御回路及び該制御回
路により並べ換えられた複数のポリゴンデータを、並べ
換えられた順に表示する画像表示装置であって、該制御
回路は、該複数のポリゴンデータの各々の該参照値を上
位桁と下位桁に分割し、該上位桁の数値を増加方向また
は減少方向の順に、該バッファに登録、格納し、更に該
下位桁の数値に対応して、該上位桁の数値及び対応する
該下位桁の数値と該上位桁の数値を有するポリゴンデー
タの格納された位置を示すインデックス番号とを登録
し、該登録された上位桁の数値の増加方向または減少方
向の順に対応するインデックス番号の順位に登録さたポ
リゴンデータを読みだすようにしたことを特徴とする。
【0020】更に請求項8に記載の画像表示装置は、任
意の順に複数のポリゴンデータを格納するポリゴンバッ
ファと、上位桁と下位桁に分割された、該複数のポリゴ
ンデータの各々の参照値の該上位桁の数値に対応して該
上位桁を有するポリゴンデータの数を登録する上位デー
タ用バッファと、該下位桁の数値毎に対応するポリゴン
データの数を登録する第一の領域と、該第一の領域にポ
リゴンデータの数が登録された該下位桁の数値を有する
ポリゴンデータの該上位桁の数値を登録する第二の領域
と、該第二の領域登録されるポリゴンデータの格納され
た該ポリゴンバッファの位置を示すインデックス番号を
登録する第三の領域を有する下位データ用バッファと、
該ポリゴンバッファに格納されたポリゴンデータを読み
だす順にポリゴンデータの格納された該ポリゴンバッフ
ァの位置を示すインデックス番号を登録するソート用イ
ンデックスバッファを有し、該上位データ用バッファに
登録されたポリゴンデータの数を順次累積し、該結果を
一段シフトしながら再度該上位データ用バッファに格納
し、該下位データ用バッファの該第一の領域にポリゴン
データの数を登録された下位桁の数値を有する該第二の
領域に登録された対応する上位桁の数値に対応する該再
度格納された、該上位データ用バッファの登録数値の順
に、該ソート用インデックスバッファに該第三の領域に
登録されたインデックス番号を登録し、更に、該ソート
用インデックスバッファに登録された順に登録されたイ
ンデックス番号に対応する、該ポリゴンバッファに格納
されたポリゴンデータを読みだすように制御する制御回
路と、該ポリゴンバッファから該制御回路により該登録
されたインデックス番号に対応して、読み出されたポリ
ゴンデータを表示する表示装置を有することを特徴とす
る。
【0021】更にまた、請求項9に記載のビデオゲーム
装置は、請求項7または8に記載の画像表示装置と、ゲ
ームプログラムを格納するメモリと、該ゲームプログラ
ムを実行するCPUを有し、前記制御回路における制御
が該CPUの該ゲームプログラムの実行にしたがって行
われることを特徴とする。
【0022】
【発明の実施の形態】以下本発明の実施の形態を図面を
参照して説明する。尚、図において同一または、類似の
ものには同一の参照番号または参照記号を付して説明す
る。
【0023】図1は、本発明方式が適用される実施の形
態としてのビデオゲーム装置の構成例ブロック図であ
る。図において、CPU1にバスBUSを通してROM
2、作業用RAM3、ビデオディスプレイプロセッサ5
及び入力装置4が接続される。
【0024】CPU1は、ROM2に格納されるプログ
ラムを実行する。本発明のポリゴンデータのソートも、
かかるROM2に格納されるプログラムに従い実行制御
される。
【0025】3は作業用RAMであり、ゲーム実行中の
データを記憶する。4は、ジョイスティックパッド等の
入力装置であり、スプライトの移動を制御する場合等に
おいて、必要なデータを入力するためのゲームの遊戯者
によって操作される。
【0026】5は、ビデオRAMであり、本発明方式に
おいて、ソートされたポリゴンデータを記憶する。ここ
でビデオRAM5に記憶されるポリゴンデータはそれぞ
れ、表示すべきポリゴンの頂点数分の(Xi、Yi、Z
i)座標データと、色データを有する。
【0027】6は、ビデオディスプレイプロセッサ(V
DP)であり、デジタルシグナルプロッセサ(DSP)
を有して構成される。また、ビデオディスプレイプロセ
ッサ(VDP)6には、ビデオRAM5、ソート作業用
RAM10及び、フレームバッファ7が接続される。
【0028】更に、VDP6は、フレームの切り換えタ
イミング等で起動され、上記ビデオRAM5に記憶され
たポリゴンデータを処理して、フレームバッファメモリ
(FB)7に一画面分のピクセルデータを描画する機能
を有する。
【0029】フレームバッファメモリ7は、二記憶画面
を有し、一の記憶画面に描画されている一の画面のピク
セルデータが順次読みだされて表示装置9に表示される
間、他の記憶画面に次の表示面のピクセルデータが順次
書き込まれる。また、フレームバッファメモリ7に描画
記憶されている一画面分のデータは、ピクセル(ドッ
ト)毎のデータとして構成されている。
【0030】8は、ビデオ信号発生回路であり、フレー
ムバッファメモリ7に書き込み記憶されているピクセル
(ドット)デジタルデータを読出し、アナログビデオ信
号に変換する回路である。ビデオ信号発生回路8からの
ビデオ信号は、CRT等の表示装置9に送られ表示され
る。
【0031】ここで、CRT等の二次元平面の表示装置
9に一表示画面を構成する複数のポリゴンを表示する場
合、例えば遊戯者の視点を原点として距離が遠い位置に
あるポリゴンから順に図20により説明したように、フ
レームバッファメモリ7に重書きして表示することが原
則である。かかる機能は、プライオリティ制御と呼ばれ
る。これは、画面奥行き方向において、近くにあるポリ
ゴンが遠くにあるポリゴンに隠されてしまわないように
するためである。
【0032】このためにビデオRAM5に記憶された、
ポリゴンデータを画面奥行き方向の距離例えば、代表Z
値に基づき並べ換えること、即ちソート作業が必要であ
る。本発明は、かかるソート作業において特徴を有す
る。
【0033】そして、図2は、本発明のソート方式を実
行するために必要とするバッファメモリの構成であるZ
ソートブロックの構成を説明する図である。かかるZソ
ートブロックを構成するバッファは、例えば、RAM3
及び、VDP6と接続される作業用RAM10に、対応
するバッファ領域を有する。
【0034】ゲームプログラムの進行に伴って、CPU
1からコマンドとともにDSP6にポリゴンデータが送
られる。DSP6では、コマンドにしたがってポリゴン
データを座標変換する。例えば、ワールド座標で構成さ
れるポリゴンデータを図18に示す如き、3次元座標に
変換する。
【0035】DSP6によって変換された3次元座標の
ポリゴンデータは、座標変換の順に1ポリゴンデータ毎
にポリゴンバッファ11に格納される。ソート作業用バ
ッファ12は、上位データ用バッファ120と、下位デ
ータ用バッファ121を有する。
【0036】上位データ用バッファ120と、下位デー
タ用バッファ121の詳細は、更に図3に示される。
今、ポリゴンバッファ11に格納されるポリゴンデータ
の番号が10進数の2桁の数字で表されると考える。こ
の時、上位桁即ち、10位の上位データ用のバッファ1
20には、図3に示すように2桁の番号の10位の桁の
数字0〜9毎に対応する同じ上位桁数字を有するポリゴ
ンデータの数が記憶される。
【0037】更に、図3において、下位桁である1位の
下位データ用バッファ領域121には、2桁の番号の1
位の数字0〜9毎に同じ数字を持つポリゴンデータの対
応するデータの個数a、上記データb(上位データ用バ
ッファ120に記憶される対応する数字)及びインデッ
クス番号(ソート用インデックスバッファ13に記憶さ
れるインデックス番号)が記憶される。
【0038】図4〜図6は、上記図2のZソートブロッ
クの構成を用いて実行されるソート動作を説明する図で
あり、図7は、対応する動作の概略フローチャートであ
る。
【0039】以下図7の動作フローチャートを用いて動
作を概略説明し、更に、図4を参照して、より詳細にポ
リゴンデータの上位データバッファ、下位データバッフ
ァについて説明する。今、それぞれ代表Z値が23、1
6、17である3つのポリゴンデータA、B、Cを考え
る。
【0040】先ず、図2に示すソート作業用バッファ1
2の上位データ用バッファ120及び下位データ用バッ
ファ121のデータ個数を格納する領域を0にクリアす
る(ステップS1、以後各処理ステップについては、同
様に図7を参照)。
【0041】3つのポリゴンデータA、B、Cは、VD
P6のDSPにより座標変換処理され、ポリゴンバッフ
ァ11に格納される。この時、ポリゴンデータA、B、
Cは、格納順位として各々インデックス番号24、2
5、26が対応付けられる。
【0042】ここでデータ入力の対象となるボリゴンデ
ータの代表Z値を上位桁と下位桁の数値に分割する(ス
テップS2)。
【0043】ついで、下位桁の数値に対応する下位デー
タ用バッファ121の空いている位置に上位桁の数値と
インデックス番号を格納する(ステップS3)。
【0044】この時、対応するデータの個数を更新(+
1)する。また上位の数値に対応する上位データ用バッ
ファ120の数字(データ個数)を更新(+1)する。
もし対応する下位データ用バッファ121が満(FUL
L)の状態であれば、対象データを小さい順から並べた
いときは、+1、大きい数値から並べたい時は、−1
し、これをデータの数分繰り返す(ステップS4)。
【0045】上記を更に図4に基づき詳細に説明する
と、ソート作業用バッファ12の上位データ用バッファ
120には、上位桁の0〜9の各々について、同じ数字
を持つポリゴンデータの個数が記録される。ポリゴンデ
ータAのみが上位桁数字が2、ポリゴンデータB、Cの
2つのポリゴンデータの上位桁数字が1である。
【0046】したがって、上位データバッファ120の
桁数字1に対応する領域は、個数2に更新され、桁数字
2に対応する領域は、個数1に更新される。同様にし
て、下位データバッファ121においては、領域aに下
位桁の数字0〜9毎に対応する下位桁の数字を有するポ
リゴンデータの個数が更新記憶される。
【0047】ポリゴンデータA、B、Cの下位桁の数字
は、それぞれ3、6、7であるから対応する3、6、7
の下位桁数字に対応して、それぞれポリゴンデータの個
数が1に更新記憶される。
【0048】更に、領域bには、領域aにポリゴンデー
タの個数として少なくとも1が記憶された対応位置に、
対応する下位桁の数字を有するボリゴンデータの上位桁
の数字が記憶される。
【0049】即ち、下位桁の数字3を有するポリゴンデ
ータの上位桁の数字が2であるので、対応する欄に数値
2が記憶される。同様にして、下位桁の数値6、7を有
するボリゴンデータの上位桁の数字がともに1であるの
で、対応する欄に数値1が記憶される。
【0050】更に、領域cには領域aに記憶されるポリ
ゴンデータの1以上の個数に対応する下位桁の数字及び
領域bの上位桁の数字を有するポリゴンデータの記憶さ
れているポリゴンバッファ11のインデックス番号が記
憶される。
【0051】以上が、ポリゴンデータの入力である。次
に入力されたデータに基づきソートを行う動作につい
て、同様に図7の動作フローを参照し、図5及び図6に
より、ポリゴンデータの出力について説明する。
【0052】バッファに格納する作業が終了すると、次
に上位データ用バッファ120の数値を基に累計データ
を作成する(ステップS5)。この時、小さい順に並べ
た時は、上位データ用バッファの小さい数値の方から、
大きい順に並べた時には、上位データ用バッファの大き
い数値の方から累計を求める。求めた累計の値は一段ず
らし、もとのバッファ領域に戻し格納する。
【0053】詳細には、図5に示すように、上位データ
用バッファ120の上位桁の数値の小さい順に累計を計
算し、これを1段ずらす。掛かる計算は、VDP6のD
SPで行われる。即ち、0210000000の格納デ
ータを上から累計し、その結果を一段下げて表示する
と、図5の右側の更新された上位データ用バッファ12
0’に示すように、0023000000となる。
【0054】ついで、下位データ用バッファ121の領
域bに格納された上位桁データを順番に参照する(ステ
ップS6:図6)。この時、小さい順に並べた時は、
小さい数値の方から、大きい順に並べた時には、大きい
数値の方から順に参照する。更に、下位データ用バッフ
ァ121の同じ位置に複数の上位データが格納されてい
る場合は、格納した順に参照する。
【0055】ついで、上記の上位桁データの参照によ
り、取り出した上位データに対応する上位データ用バッ
ファ11を参照する(ステップS7:図6)。この値
がソート後の順番に相当し、ソート用インデックスバッ
ファ13の対応する順番の位置にポリゴンバッファ11
のインデックス値を格納する(図6)。図6の例では
ソート用インデックスバッファ13の順番2の位置にイ
ンデックス24の値が記憶される。
【0056】更に、下位データ用バッファ121に格納
された全ての上位用データを参照するまで上記の出力処
理を継続する(ステップS8)。これにより図6に示す
ようにソート用インデックスバッファ13に全てのポリ
ゴンの読出し順位が格納される。これにより、全ての上
位用データを参照することにより、ポリゴンデータの順
番が分かったことになる。
【0057】したがって、ソート用インデックスバッフ
ァ13に記憶された順番にインデックスを読出し、これ
に対応するポリゴンバッファ11のインデックス番号の
位置(図6)にあるポリゴンデータをソートされた順
に読みだすことができる(図6)。
【0058】図8〜図15は、上記本発明のポリゴンデ
ータのソート方式にしたがう実施例である。実施例とし
てポリゴンデータがA〜Zの25種ある場合である。
【0059】したがって、ポリゴンバッファ11には、
登録の順にポリゴンデータA〜Zが格納されている。
尚、図8〜図15のポリゴンバッファ11には、実施例
の説明のために、ポリゴンデータA〜Zの各々に対する
代表Z値が括弧内に記されている。実際は、ポリゴンデ
ータの各々は、(X,Y,Z)座標値とカラーコードを
有し、それぞれの代表Z値は、計算によって求められ
る。
【0060】更に、下位データ用バッファ121とし
て、データ個数を記憶するバッファaに対し、上位デー
タ及び対応するインデックス番号が記憶されるバッファ
a、bの組を3組(b1,c1)、(b2,c2)、(b3,c3)
用意されている。
【0061】上記関係は、図8〜図15においても同じ
である。図8に戻り説明すると、各バッファは初期状態
として0にクリアされている。かかる状態から、図9に
示すようにホリゴンデータAの代表Z値(23)が登録
される。
【0062】即ち、代表Z値を10進数で考えて、上位
データを10位の数字、下位データを1位の数字として
2つの数字に分割する。図9において、ボリゴンバッフ
ァ11のインデックス番号0にあるボリゴンデータAの
上位データは“2”、下位データは“3”である。
【0063】したがって、上位データ用バッファ120
の上位データ数値2に対応する位置に1がセットされ
る。同様に、下位データ用バッファ121のデータ個数
バッファaの下位データ数値3に対応する位置に1がセ
ットされる。
【0064】更に、1がセットされた下位データ用バッ
ファ121のデータ個数バッファaの位置に対応する、
上位データとインデックスの第一の組(b1,c1 )に上
位データ数値2(a1)及び代表Z値(23)が格納され
るインデックス番号0(b1)がセットされる。
【0065】次に図10は、図9と同様にして、パリゴ
ンデータの代表Z値の登録継続し、インデックス番号3
の位置に登録されているパリゴンデータDの代表Z値の
登録を説明する図であり、更に既に下位データ用バッフ
ァ121にデータがある場合である。
【0066】即ち、パリゴンデータDの上位データは
4、下位データは6である。したがって、下位データの
6に対応する上位データ4及び対応するインデックス番
号3を登録する際、下位データ用バッファ121の第一
の組(b1,c1 )には、既にデータが登録されている。
かかる場合は、第二の組(b2,c2 )にシフトして登録
する。
【0067】図10に示した如く、先に下位データ用バ
ッファ121にデータが登録されている場合は、次の組
にシフトして登録する。実施例では第三の組までバッフ
ァ領域が用意 れているが、既に第三の組(b3,c3 )
まで登録されている場合は、次の組にシフトすることが
出来ない。
【0068】図11は、かかる場合の処理について説明
する図である。今、ポリゴンバッファ11のインデック
ス番号12のポリゴンデータM(代表Z値17)を登録
する際、その下位データが7であり、これに対応する下
位データ用バッファには既に3組のデータが登録されて
いる。したがって、次の組にシフトして登録することが
出来ない。
【0069】したがって、実施例として図11に示され
るように、次の下位データ用バッファに登録される。即
ち、下位データの数値8に対応する、第二の組(b2,c
2 )以降が空いているので、この第二の組(b2,c2 )
に数値1、12が登録される。ここで、下方向に下位デ
ータの数値8に対応する下位データ用バッファが選択さ
れるのは、データを数値の小さい順にソートする場合で
ある。反対にデータを数値の大きい順にソートする場合
は、上方にシフトして空きの下位データ用バッファを選
択する。
【0070】図12は、図11において、下方向に空き
の下位データ用バッファがない場合の処理を説明する図
である。今、図12において、ポリゴンバッファ11の
インデックス番号17にあるポリゴンデータRを登録す
る際、下位データが9であるので、数値9に対応する下
位データ用バッファ121は既に空き領域がない。
【0071】したがって、この場合は、本発明にしたが
い上位データの数値を繰り上げて空いている位置に登録
する。即ちこの例では、代表Z値を39から40に繰り
上げ、上位データ用バッファ120にも繰り上げた値4
を使う。
【0072】これにより、図に示すように、下位データ
の数値0に対応する位置のバッファaに1が、第一の組
(b1,c1 )に数値4、17が登録される。
【0073】このようにして全てのポリゴンデータの代
表Z値の登録が完了し、その結果のポリゴンバッファの
状態が図13に示される。
【0074】次に登録された代表Z値に基づき、ポリゴ
ンデータがソートされた順に読みだされる過程を実施例
として説明する。
【0075】図13において、上位データバッファ12
0に登録された数値を順次累積し、その累積値を一段シ
フトして、上位データバッファ120に再び書き込み更
新された状態120’とする。
【0076】次に図14を参照してソート用インデック
スを構成する処理を説明する。代表Z値の小さい順にポ
リゴンデータを並べる時、下位データ用バッファ121
の下位データの数値の小さい順に上位データ及び対応す
るインデックス番号を求める。図14において、先ず下
位データの数値0に対応する位置の第一の組(a1,b1)
の上位データ4とイデックス番号17が認識される。
【0077】そして上位データ4に基づき、上位データ
用バッファ120を参照して、ソート順番号12を認識
する。ここで、ソート用インデックスバッファ13が新
たに用意されている。したがって、上記認識されたソー
ト順番号12の位置にデータバッファ11のインデック
ス番号17が記録される。更に、このとき上位データ用
バッファ120の認識したソート番号を+1更新して上
位データ用バッファ120’の如くにする。
【0078】同様にして、図15は、下位データの数値
0に対応する位置の第一の組(a1,b1)に続く、第二の
組(b1,c1)の上位データ3とインデックス番号25を
認識する様子を示す。
【0079】上位データ3に基づき、上位データ用バッ
ファ120からソート順6が認識される。ついで、これ
を+1して上位データ用バッファ120を120’に更
新するとともに、ソート用インデックスバッファ13の
ソート順6に対応する位置にデータバッファ11のイン
デックス番号25が記録される。
【0080】上記の如くして、ソート用インデックスバ
ッファ13にデータバッファ11の全てのインデックス
番号の書き込みが完了する。そして、ソート用インデッ
クスバッファ13のソート順に対応するデータバッファ
11のインデックス番号を読み取り、代表Z値の大きさ
の順またはその逆順にポリゴンデータが読み込まれる。
【0081】また、本発明方式に基づき必要となる上位
データ用バッファ及び下位データ用バッファメモリの容
量について、考察する。
【0082】一例として、ソートを行うデータが、16
ビットの整数型で、対象となるポリゴンのデータ数が最
大5000個の場合に必要なメモリの容量を検討する。
本発明の方式では、ポリゴンデータを上位ビットと下位
ビットに分割して考える。
【0083】上位ビットが最低限保障する精度となり、
上位ビットを多く取った場合は、実行速度が落ちメモリ
の容量を多く必要とするが精度が高くなる。反対に下位
ビットを多く取った場合は、メモリ容量を少なくできる
が、同じ数値が多く出現した場合は、オーバヘッドが発
生し、誤差が生じる。したがって、適当な分割割合が重
要となる。
【0084】ここでは、上位10ビット、下位6ビット
に割合を決めた場合のメモリの構成を考える。上位10
ビット用のバッファメモリ120には、図16に示すよ
うに上位10ビットに対応した1024個の位置にデー
タが格納された個数が記憶される。最大では、カウント
値が5000になるので、各バッファサイズは13ビッ
トの大きさとなる。
【0085】一方、下位ビット用バッファ121は、上
位ビット、インデックスデータが格納され、バッファ
b、cとデータ個数が格納されるバッファaで構成され
る。上位ビット、インデックスデータが格納されバッフ
ァb、cには、全ての対象となるデータの値が格納され
る。
【0086】データ数は、上記の如く5000個である
ので、図17に示す如く、最低79段(5000÷64
≒78.1) 必要である。バッファサイズは上位ビット
を表すのに10ビット(バッファa)とインデックスを
表すのに13ビット(バッファb)の計23ビットが必
要である。
【0087】データ個数が格納されるバッファaはカウ
ント値が最大で79になることから7ビットが必要であ
る。ここで余裕を持って、上位データバッファb、イン
デックスデータバッファcを多く取ると誤差が生じにく
くなる。
【0088】このように予め必要なメモリ容量が決ま
り、この容量はデータのばらつきによッて変化すること
はない。また下位データ用バッファ121に余裕を持っ
て置くとデータが沢山出現した場合に発生するオーバヘ
ッドを削減することが出来る。
【0089】
【発明の効果】以上実施の形態にしたがい説明したよう
に、本発明により次の特徴効果を有することが理解出来
る。第一に対象データのばらつきによらず必要なメモリ
容量が変わらない。第二に対象データ値の分布が相当集
中しない限り、下位ビットに対しても誤差は生じない。
【0090】更に対象データの最大級を考慮してメモリ
容量を決定するので無駄になるメモリが非常に少ない。
またメモリ領域とのデータのやりとりが非常に少ない。
対象データのばらつきが事前に予測出来る場合、それに
適したメモリ配分が可能である。更に、メモリ効率と速
度の優先割合の比重を調整することが出来る。
【0091】尚、上記実施例は、本発明の説明のための
ものであり、本発明はこれらの実施例に限定されるもの
ではない。
【0092】本発明の保護の範囲は、特許請求の範囲の
記載により定められ、且つ特許請求の範囲の記載と均等
の範囲にあるものも本発明の保護の範囲に含まれるもの
である。
【図面の簡単な説明】
【図1】本発明方式が適用される実施の形態としてのビ
デオゲーム装置の構成例ブロック図である。
【図2】本発明のソート方式を実行するために必要とす
るバッファメモリの構成であるZソートブロックの構成
を説明する図である。
【図3】上位データ用バッファ120と下位データ用バ
ッファ121の詳細を示す図である。
【図4】ポリゴンデータの入力を説明する図である。
【図5】上位データ用バッファの書換えを説明する図で
ある。
【図6】ポリゴンデータの出力について説明する図であ
る。
【図7】本発明に従うソート動作の概略フローである。
【図8】データ用バッファの初期化を説明する図であ
る。
【図9】ポリゴンデータAの代表Z値(23)の登録を
説明する図である。
【図10】既に対応する下位データ用バッファにデータ
がある場合の処理を説明する図である。
【図11】対応する下位データ用バッファがFULLの
時の処理を説明する図である。
【図12】対応する下位データ用バッファがFULLで
空いている場所がない時の処理を説明する図である。
【図13】全てのポリゴンデータに対して登録が終わっ
た時の状態を説明する図である。
【図14】ソート用インデックスを構成する処理を説明
する図である。
【図15】図14の処理に続くソート用インデックスを
構成する処理を説明する図である。
【図16】上位データ用バッファ容量についての検討を
説明する図である。
【図17】下位データ用バッファ容量についての検討を
説明する図である。
【図18】ポリゴンデータの一例を説明する図である。
【図19】ポリゴンデータのソートを説明する図であ
る。
【図20】ソートされたポリゴンの配置例を説明する図
である。
【符号の説明】
1 CPU 2 ROM 3 ワークRAM 4 入力装置 5 ビデオRAM 6 VDP 7 フレームバッファ 8 D/A変換回路 9 表示装置 10 ソート作業用RAM 11 ポリゴンバッファ 12 ソート作業用バッファ 120 上位データ用バッファ 121 下位データ用バッファ 13 ソート用インデックスバッファ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】任意の順に格納された複数のポリゴンデー
    タを特定の参照値を基準にして該特定の参照値の増加方
    向または減少方向にソートして、該複数のポリゴンデー
    タを並べ換えるポリゴンデータのソート方法において、 該複数のポリゴンデータの各々の該参照値を上位桁と下
    位桁に分割し、 該上位桁の数値を増加方向または減少方向の順に登録
    し、 該下位桁の数値に対応して、該上位桁の数値及び対応す
    る該下位桁の数値と該上位桁の数値を有するポリゴンデ
    ータの格納された位置を示すインデックス番号とを登録
    し、 該登録された上位桁の数値の増加方向または減少方向の
    順に対応するインデックス番号の順位に登録さたポリゴ
    ンデータを読みだすようにしたことを特徴とするポリゴ
    ンデータのソート方法。
  2. 【請求項2】請求項1において、 前記複数のポリゴンデータの特定の参照値は、各々のポ
    リゴンデータを構成する頂点の3次元座標のZ軸座標値
    から求めた代表値であることを特徴とするポリゴンデー
    タのソート方法。
  3. 【請求項3】請求項2において、 前記代表値は、各々のポリゴンデータを構成する頂点の
    3次元座標のZ軸座標値の平均値であることを特徴とす
    るポリゴンデータのソート方法。
  4. 【請求項4】任意の順に複数のポリゴンデータを格納す
    るポリゴンバッファと、 上位桁と下位桁に分割された、該複数のポリゴンデータ
    の各々の参照値の該上位桁の数値に対応して該上位桁を
    有するポリゴンデータの数を登録する上位データ用バッ
    ファと、 該下位桁の数値毎に対応するポリゴンデータの数を登録
    する第一の領域と、該第一の領域にポリゴンデータの数
    が登録された該下位桁の数値を有するポリゴンデータの
    該上位桁の数値を登録する第二の領域と、該第二の領域
    登録されるポリゴンデータの格納された該ポリゴンバッ
    ファの位置を示すインデックス番号を登録する第三の領
    域を有する下位データ用バッファと、 該ポリゴンバッファに格納されたポリゴンデータを読み
    だす順にポリゴンデータの格納された該ポリゴンバッフ
    ァの位置を示すインデックス番号を登録するソート用イ
    ンデックスバッファを有し、 該上位データ用バッファに登録されたポリゴンデータの
    数を順次累積し、該結果を一段シフトしながら再度該上
    位データ用バッファに格納し、 該下位データ用バッファの該第一の領域にポリゴンデー
    タの数を登録された下位桁の数値を有する該第二の領域
    に登録された対応する上位桁の数値に対応する該再度格
    納された、該上位データ用バッファの登録数値の順に、
    該ソート用インデックスバッファに該第三の領域に登録
    されたインデックス番号を登録し、 更に、該ソート用インデックスバッファに登録された順
    に登録されたインデックス番号に対応する、該ポリゴン
    バッファに格納されたポリゴンデータを読みだすように
    したことを特徴とするポリゴンデータのソートシステ
    ム。
  5. 【請求項5】請求項4において、 前記下位データ用バッファの前記第二及び第三の領域
    は、一の前記第一の領域に対して複数組を有し、前記上
    位データ用バッファに登録されるポリゴンデータの数の
    増加に応じて、該複数の組の該第二及び第三の領域への
    登録が順次に行われることを特徴とするポリゴンデータ
    のソートシステム。
  6. 【請求項6】請求項5において、 前記上位データ用バッファに登録されるポリゴンデータ
    の数が、前記下位データ用バッファの前記第二及び第三
    の領域の複数の組の数以上となる時、前記下位データ用
    バッファの前記第一の領域の対応する下位桁の数値より
    大きいか又は小さい下位桁の数値に対応する第二及び第
    三の領域に登録が行われることを特徴とするポリゴンデ
    ータのソートシステム。
  7. 【請求項7】任意の順に複数のポリゴンデータを格納す
    るバッファと、該複数のポリゴンデータを特定の参照値
    を基準にして該特定の参照値の増加方向または減少方向
    にソートして、該複数のポリゴンデータを並べ換える制
    御回路及び該制御回路により並べ換えられた複数のポリ
    ゴンデータを、並べ換えられた順に表示する画像表示装
    置において、 該制御回路は、該複数のポリゴンデータの各々の該参照
    値を上位桁と下位桁に分割し、該上位桁の数値を増加方
    向または減少方向の順に、該バッファに登録、格納し、
    更に該下位桁の数値に対応して、該上位桁の数値及び対
    応する該下位桁の数値と該上位桁の数値を有するポリゴ
    ンデータの格納された位置を示すインデックス番号とを
    登録し、該登録された上位桁の数値の増加方向または減
    少方向の順に対応するインデックス番号の順位に登録さ
    たポリゴンデータを読みだすようにしたことを特徴とす
    る画像表示装置。
  8. 【請求項8】任意の順に複数のポリゴンデータを格納す
    るポリゴンバッファと、 上位桁と下位桁に分割された、該複数のポリゴンデータ
    の各々の参照値の該上位桁の数値に対応して該上位桁を
    有するポリゴンデータの数を登録する上位データ用バッ
    ファと、 該下位桁の数値毎に対応するポリゴンデータの数を登録
    する第一の領域と、該第一の領域にポリゴンデータの数
    が登録された該下位桁の数値を有するポリゴンデータの
    該上位桁の数値を登録する第二の領域と、該第二の領域
    登録されるポリゴンデータの格納された該ポリゴンバッ
    ファの位置を示すインデックス番号を登録する第三の領
    域を有する下位データ用バッファと、 該ポリゴンバッファに格納されたポリゴンデータを読み
    だす順にポリゴンデータの格納された該ポリゴンバッフ
    ァの位置を示すインデックス番号を登録するソート用イ
    ンデックスバッファを有し、 該上位データ用バッファに登録されたポリゴンデータの
    数を順次累積し、該結果を一段シフトしながら再度該上
    位データ用バッファに格納し、該下位データ用バッファ
    の該第一の領域にポリゴンデータの数を登録された下位
    桁の数値を有する該第二の領域に登録された対応する上
    位桁の数値に対応する該再度格納された、該上位データ
    用バッファの登録数値の順に、該ソート用インデックス
    バッファに該第三の領域に登録されたインデックス番号
    を登録し、更に、該ソート用インデックスバッファに登
    録された順に登録されたインデックス番号に対応する、
    該ポリゴンバッファに格納されたポリゴンデータを読み
    だすように制御する制御回路と、 該ポリゴンバッファから該制御回路により該登録された
    インデックス番号に対応して、読み出されたポリゴンデ
    ータを表示する表示装置を有することを特徴とする画像
    表示装置。
  9. 【請求項9】請求項7または8に記載の画像表示装置
    と、ゲームプログラムを格納するメモリと、該ゲームプ
    ログラムを実行するCPUを有し、前記制御回路におけ
    る制御が該CPUの該ゲームプログラムの実行にしたが
    って行われることを特徴とするビデオゲーム装置。
JP8065902A 1996-03-22 1996-03-22 ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム Withdrawn JPH09259299A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8065902A JPH09259299A (ja) 1996-03-22 1996-03-22 ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム
US08/816,933 US5973698A (en) 1996-03-22 1997-03-14 Method and system for sorting polygon data according to depth values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8065902A JPH09259299A (ja) 1996-03-22 1996-03-22 ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム

Publications (1)

Publication Number Publication Date
JPH09259299A true JPH09259299A (ja) 1997-10-03

Family

ID=13300368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8065902A Withdrawn JPH09259299A (ja) 1996-03-22 1996-03-22 ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム

Country Status (2)

Country Link
US (1) US5973698A (ja)
JP (1) JPH09259299A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100910115B1 (ko) * 2007-08-21 2009-08-03 팅크웨어(주) 2.5d 지도 디스플레이 방법 및 상기 방법을 수행하기 위한시스템
WO2013105157A1 (ja) * 2012-01-13 2013-07-18 パナソニック株式会社 画像生成装置、画像生成方法、画像生成プログラムおよび集積回路

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687711B1 (en) * 2000-12-04 2004-02-03 Centor Software Corporation Keyword and methods for using a keyword
US6965894B2 (en) * 2002-03-22 2005-11-15 International Business Machines Corporation Efficient implementation of an index structure for multi-column bi-directional searches
US11308059B2 (en) * 2018-06-12 2022-04-19 Chicago Mercantile Exchange Inc. Optimized data structure

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100910115B1 (ko) * 2007-08-21 2009-08-03 팅크웨어(주) 2.5d 지도 디스플레이 방법 및 상기 방법을 수행하기 위한시스템
WO2013105157A1 (ja) * 2012-01-13 2013-07-18 パナソニック株式会社 画像生成装置、画像生成方法、画像生成プログラムおよび集積回路
US9165400B2 (en) 2012-01-13 2015-10-20 Panasonic Intellectual Property Management Co., Ltd. Image generation apparatus, image generation method, image generation program, and integrated circuit for rendering a target pixel in a target scene by using Z-buffering

Also Published As

Publication number Publication date
US5973698A (en) 1999-10-26

Similar Documents

Publication Publication Date Title
EP1847965A1 (en) Plotting device and plotting method
JPH07210697A (ja) コンピュータグラフィックシステムのサブピクセルマスク発生方法および装置
EP0607130B1 (en) Image position interpretation in a graphics system
JP4061697B2 (ja) 画像表示方法及びそれを実行する画像表示装置
US5465371A (en) Sorter for sorting data based on a plurality of reference value data
JPH09259299A (ja) ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム
EP0327001A2 (en) Pattern data generating system
EP0670560B1 (en) A method for sorting polygon data, a video game machine employing the same and acomputer program performing the method
US5815163A (en) Method and apparatus to draw line slices during calculation
US5559532A (en) Method and apparatus for parallel pixel hardware cursor
JP2003308537A (ja) 図形描画装置
JP2906357B2 (ja) 複数ウインドウの表示方法
JP3593016B2 (ja) 直線描画装置、直線描画方法及び座標生成装置
JPH08137967A (ja) 表デ−タ処理方法
JP2947984B2 (ja) マルチプロセッサシステムにおける図形描画方式
JPH0449119B2 (ja)
JP2726994B2 (ja) 多角形領域選択方法
JP3210053B2 (ja) ソーティング装置
JPS6173987A (ja) 地図収録デイスク装置
JP2560344Y2 (ja) 小型電子式計算機
JPS6045287A (ja) クリツピング処理装置
JP2650271B2 (ja) 輪郭情報の格納方法
JP2003099419A (ja) 高速補間演算器
JP2827670B2 (ja) 2次元多角形閉領域図形合成方式
JPH0782425B2 (ja) ソーティング回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030603