JP3548642B2 - Image information generating apparatus and method, image information processing apparatus and method, and recording medium - Google Patents

Image information generating apparatus and method, image information processing apparatus and method, and recording medium Download PDF

Info

Publication number
JP3548642B2
JP3548642B2 JP31426695A JP31426695A JP3548642B2 JP 3548642 B2 JP3548642 B2 JP 3548642B2 JP 31426695 A JP31426695 A JP 31426695A JP 31426695 A JP31426695 A JP 31426695A JP 3548642 B2 JP3548642 B2 JP 3548642B2
Authority
JP
Japan
Prior art keywords
image information
data
command
drawing command
polygon
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
Application number
JP31426695A
Other languages
Japanese (ja)
Other versions
JPH08212377A (en
Inventor
雅一 鈴置
真 古橋
正善 田中
禎治 豊
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP31426695A priority Critical patent/JP3548642B2/en
Publication of JPH08212377A publication Critical patent/JPH08212377A/en
Application granted granted Critical
Publication of JP3548642B2 publication Critical patent/JP3548642B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理により画像情報を作成する画像情報生成装置及び方法、画像情報処理装置及び方法、並びに画像情報が記録された記録媒体に関する。
【0002】
【従来の技術】
例えば、家庭用ゲーム機やパーソナルコンピュータ装置或いはグラフィックコンピュータ装置等において、テレビジョン受像機やモニタ受像機或いはCRTディスプレイ装置等に出力されて表示される画像は2次元のものが殆どであり、基本的には2次元の平面的な背景に2次元のキャラクタ等を適宜に配置して移動させたり、変化させたりするような形態で画像表示が行われている。
【0003】
しかしながら、上述したような2次元的な画像表示や映像では、表現できる背景及びキャラクタやそれらの動きに制限があり、例えばゲームの臨場感を高めることが困難である。
【0004】
そこで、例えば次に示すような方法で疑似的な3次元の画像や映像を作成することが行われている。すなわち、上記キャラクタとしていくつかの方向から見た画像を用意しておき、表示画面中での視点の変化等に応じてこれらの複数画像の内から1つを選択して表示したり、2次元の画像を奥行き方向に重ねて疑似的な3次元画像を表現したりするような方法が挙げられる。また、画像データを生成或いは作成する際に、いわゆるテクスチャ(生地、地模様)の画像を多面体等の所望の面に貼り付けるようなテクスチャマッピング方法や、画像の色データをいわゆるカラールックアップテーブルを通して変換することにより表示色を変化させる手法が採られている。
【0005】
ここで、従来の家庭用ゲーム機の概略的な構成の一例を図44に示す。この図44において、マイクロプロセッサ等から成るCPU391は、入力パッドやジョイスティック等の入力デバイス394の操作情報をインターフェイス393を介し、メインバス399を通して取り出す。この操作情報の取り出しと同時に、メインメモリ392に記憶されている3次元画像のデータがビデオプロセッサ396によってソースビデオメモリ395に転送され、記憶される。
【0006】
また、上記CPU391は、上記ソースビデオメモリ395に記憶された画像を重ね合わせて表示するための画像データの読み出し順位を上記ビデオプロセッサ396に送る。上記ビデオプロセッサ396は上記画像データの読み出し順位に従って上記ソースビデオメモリ395から画像データを読み出し、画像を重ね合わせて表示する。
【0007】
上述のように画像を表示すると同時に、上記取り出された操作情報中の音声情報により、オーディオプロセッサ397はオーディオメモリ398内に記憶されている上記表示される画像に応じた音声データを出力する。
【0008】
図45は、図44に示す構成をもつ家庭用ゲーム機において、2次元画像のデータを用いて3次元画像を出力する手順を示す図である。この図45では、市松模様の背景画像上に円筒状の物体を3次元画像として表示する場合を説明する。
【0009】
この図45のソースビデオメモリ395には、市松模様の背景画像200と、この背景画像200上の円筒状の物体の深さ方向の断面を表す矩形の画像、いわゆるスプライト201、202、203、204のデータが記憶されている。なお、三角形以上の多角形をポリゴンと呼び、特に四角形のポリゴンをスプライトと呼んでいる。この矩形の画像であるスプライト201、202、203、204上の円筒の断面の画像以外の部分は透明色で描かれている。
【0010】
ビデオプロセッサ396内のシンクジェネレータ400は、表示する画像の同期信号に合わせた読み出しアドレス信号を発生する。また、このシンクジェネレータ400は、上記読み出しアドレス信号をメインバス399を介して図44のCPU391から与えられた読み出しアドレステーブル401に送る。さらに、このシンクジェネレータ400は上記読み出しアドレステーブル401からの情報に従って上記ソースビデオメモリ395内の画像データを読み出す。
【0011】
上記読み出された画像データは、上記CPU391により上記メインバス399を介して与えられたプライオリティテーブル402内の画像の重ね合わせ順位に基づいて、重ね合わせ処理部403で順次重ね合わせられる。この場合には、上記背景画像200が最も順位が低く、矩形の画像201、202、203、204と順に順位が高くなっているため、背景画像200から順次画像が重ね合わせられる。
【0012】
次に、透明色処理部404において、円筒以外の部分を背景画像で表示するために上記重ね合わせられた円筒の断面の画像201、202、203、204により表示される円筒以外の部分を透明にする処理を施す。
【0013】
上述した処理により、円筒状の物体の2次元画像のデータが図45に示す3次元画像VD0 の画像データとして出力される。
【0014】
【発明が解決しようとする課題】
ところで、テクスチャマッピングやカラールックアップテーブルによる色指定や、前に表示されていた画像の画素データ(例えばR,G,Bの3原色データからなるデータ、以下も同じ)と次に描画しようとする画像の画素データとを所定の比率αで混合することにより半透明処理を行う場合の当該半透明処理の指定、さらに、色の境界にノイズを乗せてぼかすディザ処理のオン/オフの指定等を行う場合、CPU391はこれらのための描画命令を出力するが、複数のテクスチャやカラールックアップテーブルの指定や、半透明処理の指定、ディザ処理の指定等のための命令語長は長くなり、また、ソースビデオメモリ395内に保持されるデータ量も多くなる。
【0015】
なお、例えば上述の装置において、半透明処理は前記ビデオプロセッサ396の透明処理部404にて行われ、この透明処理部404では上記CPU391から供給される混合比率αのデータに基づいて、前の画素データとこれから描画しようとする画素データとを所定の混合比率αで混合することにより上記半透明処理を行う。この場合、従来の半透明処理では、混合比率αの値は、描画命令が有しており、それに基づいて例えばソースビデオメモリ395に画素毎に蓄えられるようになされている。このため、混合比率を細かく設定しようとすると、混合比率αの値を表すビット数が大きくなり、描画命令のデータ量が大きくなると共に、ソースビデオメモリ395内の容量を消費してしまう。
【0016】
そこで、本発明は、命令語長を短縮できると共に、ソースビデオメモリの消費量も減らすことができる画像情報を生成することができる画像情報生成装置及び方法、画像情報処理装置及び方法、並びに画像情報が記録された記録媒体を提供するものである。
【0017】
【課題を解決するための手段】
本発明の画像情報生成装置及び方法においては、複数のポリゴンからなる3次元画像データを記憶し、各ポリゴン毎に指定される特性データを記憶し、3次元画像データに透視変換を施して表示画面に対応する2次元画像情報に変換し、ポリゴンの特性を指定するための情報と2次元画像情報とを合成してポリゴン毎にパケット化された描画命令を生成することにより、上述の課題を解決する。
【0018】
また、本発明の画像情報処理装置及び方法においては、複数のポリゴンからなる3次元画像データを記憶し、各ポリゴン毎に指定される特性データを記憶し、3次元画像データに透視変換を施して表示画面に対応する2次元画像情報に変換し、ポリゴンの特性を指定するための情報と2次元画像情報とを合成して、ポリゴン毎にパケット化された描画命令を生成し、当該生成された描画命令により指定された特性データに基づき2次元画像を画像メモリに描画し、画像メモリから2次元画像データをテレビジョン同期信号に同期して読み出し表示手段に供給することにより、上述の課題を解決する。
【0019】
さらに、本発明の記録媒体においては、複数のポリゴンからなる3次元画像データ及び各ポリゴン毎に指定される特性データを、ポリゴン単位でパケット化して記録してなることにより、上述の課題を解決する。
【0020】
すなわち、本発明によれば、ポリゴンの特性を指定する情報と2次元画像情報とを合成してポリゴン毎にパケット化された描画命令を生成することにより、命令語長を短縮している。
【0021】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について、図面を参照しながら説明する。
【0022】
先ず、本発明の画像情報生成方法及び画像情報処理方法により生成された画像データを用いて3次元グラフィックスデータを生成して表示するような画像処理システムについて説明する。本構成例の画像処理システムは、例えば家庭用ゲーム機やパーソナルコンピュータ装置或いはグラフィックコンピュータ装置等に適用されるものであり、図1の例では家庭用ゲーム機に適用した例を示している。
【0023】
本構成例の画像処理システムは、後述する本発明の画像データフォーマットのデータが記録されている本発明の記録媒体である例えば光学ディスク(例えばCD−ROMのディスク等)からデータ(例えばゲームプログラム等)を読み出して実行することにより、使用者からの指示に応じた表示(例えばゲーム等)が行えるようになっており、具体的には図1に示すような構成を有している。
【0024】
また、本構成例の画像処理システムは、CD−ROMのディスクから読み出された3次元画像データを記憶するメインメモリ53と、各ポリゴン毎に指定される特性データとして色情報テーブル,テクスチャパターン情報,半透明率指定データ等を記憶するフレームバッファ63と、CD−ROMのディスクから読み出された3次元画像データに対して透視変換処理を施して2次元画像情報に変換する座標変換手段としてのジオメトリトランスファエンジン(GTE)61と、当該2次元画像情報とポリゴンの特性を指定する情報とを合成してポリゴン毎にパケット化された描画命令を生成する描画命令生成手段としてのCPU51と、当該生成された描画命令により指定された特性データに基づき2次元画像情報をフレームバッファ63に描画するグラフィックスプロセッシングユニット(GPU62)と、上記フレームバッファ63から2次元画像データをテレビジョン同期信号に同期して読み出し、ディスプレイ装置等の表示手段に供給するビデオ出力手段65とを有してなるものである。
【0025】
すなわち、この画像処理システムは、中央演算処理装置(CPU51)及びその周辺装置(周辺デバイスコントローラ52等)からなる制御系50と、フレームバッファ63上に描画を行うグラフィックスプロセッシングユニット(GPU62)等からなるグラフィックシステム60と、楽音、効果音等を発生するサウンドプロセッシングユニット(SPU71)等からなるサウンドシステム70と、補助記憶装置である光学ディスク(CD−ROMのディスク)ドライブ81の制御や再生情報のデコード等を行う光学ディスク制御部80と、使用者からの指示を入力するコントローラ92からの指示入力及びゲームの設定等を記憶する補助メモリ(メモリカード93)からの入出力を制御する通信制御部90と、上記制御系50から通信制御部90までが接続されているメインバスB等を備えている。
【0026】
上記制御系50は、CPU51と、割り込み制御、タイムコントロール、メモリコントロール、ダイレクトメモリアクセス(DMA)転送の制御等を行う周辺デバイスコントローラ52と、例えば2メガバイトのRAMからなる主記憶装置(メインメモリ)53と、このメインメモリ53や上記グラフィックシステム60,サウンドシステム70等の管理を行ういわゆるオペレーティングシステム等のプログラムが格納された例えば512キロバイトのROM54とを備えている。
【0027】
CPU51は、例えば32ビットのRISC(reduced instruction set computor)CPUであり、ROM54に記憶されているオペレーティングシステムを実行することにより装置全体の制御を行う。当該CPU51は命令キャッシュとスクラッチパッドメモリを搭載し、実メモリの管理も行う。
【0028】
上記グラフィックシステム60は、CD−ROMから読み込まれたデータを一時記憶するメインメモリ53と、当該メインメモリ53に記憶されたデータに対して座標変換等の処理を行う座標計算用コプロセッサからなるジオメトリトランスファエンジン(GTE)61と、CPU51からの描画指示(描画命令)に基づいて描画を行うグラフィックスプロセッシングユニット(GPU)62と、該GPU62により描画された画像を記憶する例えば1メガバイトのフレームバッファ63と、いわゆる離散コサイン変換などの直行変換がなされ圧縮されて符号化された画像データを復号化する画像デコーダ(以下MDECと呼ぶ)64とを備えている。
【0029】
GTE61は、例えば複数の演算を並列に実行する並列演算機構を備え、CPU51のコプロセッサとして、CPU51からの演算要求に応じて透視変換等の座標変換、法線ベクトルと光源ベクトルとの内積演算による光源計算、例えば固定小数点形式の行列やベクトルの演算を高速に行うことができるようになっている。
【0030】
具体的には、このGTE61は、1つの三角形状のポリゴンに同じ色で描画するフラットシェーディングを行う演算の場合では、1秒間に最大150万程度のポリゴンの座標演算を行うことができるようになっており、これによってこの画像処理システムでは、CPU51の負荷を低減すると共に、高速な座標演算を行うことができるようになっている。なお、ポリゴンとは、ディスプレイ上に表示される3次元の物体を構成するための図形の最小単位であり、三角形や四角形等の多角形からなるものである。
【0031】
GPU62は、CPU51からのポリゴン描画命令に従って動作し、フレームバッファ63に対して多角形(ポリゴン)等の描画を行う。このGPU62は、1秒間に最大36万程度のポリゴンの描画を行うことができるようになっている。また、このGPU62は、CPU51とは独立した2次元のアドレス空間を持ち、そこにフレームバッファ63がマッピングされるようになっている。
【0032】
フレームバッファ63は、いわゆるデュアルポートRAMからなり、GPU62からの描画あるいはメインメモリ53からの転送と、表示のための読み出しとを同時に行うことができるようになっている。
【0033】
このフレームバッファ63は、例えば1メガバイトの容量を有し、それぞれ16ビットの横1024で縦512の画素のマトリックスとして扱われる。
【0034】
このフレームバッファ63のうちの任意の表示領域を例えばディスプレイ装置等のビデオ出力手段65に出力することができるようになっている。
【0035】
また、このフレームバッファ63には、ビデオ出力として出力される表示領域の他に、GPU62がポリゴン等の描画を行う際に参照するカラールックアップテーブル(CLUT)が記憶される第2の領域であるCLUT領域と、描画時に座標変換されてGPU62によって描画されるポリゴン等の中に挿入(マッピング)される素材(テクスチャ)が記憶される第1の記憶領域であるテクスチャ領域が設けられている。これらのCLUT領域とテクスチャ領域は表示領域の変更等に従って動的に変更されるようになっている。すなわち、このフレームバッファ63は、表示中の領域に対して描画アクセスを実行することができ、また、メインメモリ53との間で高速DMA転送を行うことも可能となっている。
【0036】
なお、上記GPU62は、上述のフラットシェーディングの他にポリゴンの頂点の色から補間してポリゴン内の色を決めるグーローシェーディングと、上記テクスチャ領域に記憶されているテクスチャをポリゴンに張り付けるテクスチャマッピングを行うことができるようになっている。
【0037】
これらのグーローシェーディング又はテクスチャマッピングを行う場合には、上記GTE61は、1秒間に最大50万程度のポリゴンの座標演算を行うことができる。
【0038】
MDEC64は、上記CPU51からの制御により、CD−ROMのディスクから読み出されてメインメモリ53に記憶されている静止画あるいは動画の画像データを復号化して再びメインメモリ53に記憶する。具体的には、MDEC64は逆離散コサイン変換(逆DCT)演算を高速に実行でき、CD−ROMディスクから読み出されたカラー静止画圧縮標準(いわゆるJPEG)や蓄積メディア系動画像符号化標準(いわゆるMPEG、但し本構成例ではフレーム内圧縮のみ)の圧縮データの伸張を行うことができるようになっている。
【0039】
また、この再生された画像データは、GPU62を介してフレームバッファ63に記憶することにより、上述のGPU62によって描画される画像の背景として使用することができるようにもなっている。
【0040】
上記サウンドシステム70は、CPU51からの指示に基づいて、楽音、効果音等を発生するサウンド再生処理プロセッサ(SPU)71と、CD−ROMディスクから読み出された音声,楽音等のデータや音源データ等が記憶される例えば512キロバイトのサウンドバッファ72と、SPU71によって発生される楽音、効果音等を出力するサウンド出力手段としてのスピーカ73とを備えている。
【0041】
上記SPU71は、16ビットの音声データを4ビットの差分信号として適応差分符号化(ADPCM)された音声データを再生するADPCM復号機能と、サウンドバッファ72に記憶されている音源データを再生することにより、効果音等を発生する再生機能と、サウンドバッファ72に記憶されている音声データ等を変調させて再生する変調機能等を備えている。すなわち、当該SPU71は、ルーピングや時間を系数とした動作パラメータの自動変更などの機能を持つADPCM音源24ボイスを内蔵し、CPU51からの操作により動作する。また、SPU71は、サウンドバッファ72がマッピングされた独自のアドレス空間を管理し、CPU51からサウンドバッファ72にADPCMデータを転送し、キーオン/キーオフやモジュレーション情報を直接渡すことによりデータを再生する。
【0042】
このような機能を備えることによって、このサウンドシステム70は、CPU51からの指示によってサウンドバッファ72に記録された音声データ等に基づいて楽音、効果音等を発生するいわゆるサンプリング音源として使用することができるようになっている。
【0043】
上記光学ディスク制御部80は、CD−ROMのディスクである光学ディスクに記録されたプログラム、データ等を再生するディスクドライブ装置81と、例えばエラー訂正(ECC)符号が付加されて記録されているプログラム、データ等を復号するデコーダ82と、ディスクドライブ装置81からの再生データを一時的に記憶する例えば32キロバイトのバッファ83とを備えている。すなわち、当該光学ディスク制御部80は、上記ドライブ装置81やデコーダ82等のディスクの読み出しを行うために必要な部品類から構成されている。ここでは、ディスクフォーマットとして例えばCD−DA、CD−ROM XA等のデータをサポートできるようになっている。なお、デコーダ82はサウンドシステム70の一部も構成している。
【0044】
また、ディスクドライブ装置81で再生されるディスクに記録されている音声データとしては、上述のADPCMデータ(CD−ROM XAのADPCMデータ等)の他に音声信号をアナログ/デジタル変換したいわゆるPCMデータがある。
【0045】
ADPCMデータとして、例えば16ビットのデジタルデータの差分を4ビットで表わして記録されている音声データは、デコーダ82で誤り訂正と復号化がなされた後、上述のSPU71に供給され、SPU71でデジタル/アナログ変換等の処理が施された後、スピーカ73を駆動するために使用される。
【0046】
また、PCMデータとして、例えば16ビットのデジタルデータとして記録されている音声データは、デコーダ82で復号化された後、スピーカ73を駆動するために使用される。なお、当該デコーダ82のオーディオ出力は、一旦SPU71に入り、このSPU出力とミックスされ、リバーブユニットを経由して最終のオーディオ出力となる。
【0047】
また、通信制御部90は、メインバスBを介してCPU51との通信の制御を行う通信制御デバイス91と、使用者からの指示を入力するコントローラ92と、ゲームの設定等を記憶するメモリカード93とを備えている。
【0048】
コントローラ92は、使用者の意図をアプリケーションに伝達するインタフェースであり、使用者からの指示を入力するために、例えば16個の指示キーを有し、通信制御デバイス91からの指示に従って、この指示キーの状態を、同期式通信により、通信制御デバイス91に毎秒60回程度送信する。そして、通信制御デバイス91は、コントローラ92の指示キーの状態をCPU51に送信する。なお、コントローラ92は、本体に2個のコネクタを有し、その他にマルチタップを使用して多数のコントローラを接続することも可能となっている。
【0049】
これにより、使用者からの指示がCPU51に入力され、CPU51は、実行しているゲームプログラム等に基づいて使用者からの指示に従った処理を行う。
【0050】
また、CPU51は、実行しているゲームの設定やゲームの終了時或いは途中の結果等を記憶する必要があるときに、該記憶するデータを通信制御デバイス91に送信し、通信制御デバイス91は当該CPU51からのデータをメモリカード93に記憶する。
【0051】
このメモリカード93は、メインバスBから分離されているため、電源を入れた状態で、着脱することができるようになっている。これにより、ゲームの設定等を複数のメモリカード93に記憶することができるようになっている。
【0052】
また、本構成例システムは、メインバスBに接続された16ビットパラレル入出力(I/O)ポート101と、非同期式のシリアル入出力(I/O)ポート102とを備えている。
【0053】
そして、パラレルI/Oポート101を介して周辺機器との接続を行うことができるようになっており、また、シリアルI/Oポート102を介して他のビデオゲーム装置等との通信を行うことができるようになっている。
【0054】
ところで、上記メインメモリ53、GPU62、MDEC64及びデコーダ82等の間では、プログラムの読み出し、画像の表示あるいは描画等を行う際に、大量の画像データを高速に転送する必要がある。
【0055】
このため、この画像処理システムでは、上述のようにCPU51を介さずに周辺デハイスコントローラ52からの制御により上記メインメモリ53、GPU62、MDEC64及びデコーダ82等の間で直接データの転送を行ういわゆるDMA転送を行うことができるようになっている。
【0056】
これにより、データ転送によるCPU51の負荷を低減させることができ、高速なデータの転送を行うことができようになっている。
【0057】
このビデオゲーム装置では、電源が投入されると、CPU51が、ROM54に記憶されているオペレーティングシステムを実行する。
【0058】
このオペレーティングシステムに実行により、CPU51は、上記グラフィックシステム60、サウンドシステム70等の制御を行う。
【0059】
また、オペレーティングシステムが実行されると、CPU51は、動作確認等の装置全体の初期化を行った後、光学ディスク制御部80を制御して、光学ディスクに記録されているゲーム等のプログラムを実行する。
【0060】
このゲーム等のプログラムの実行により、CPU51は、使用者からの入力に応じて上記グラフィックシステム60、サウンドシステム70等を制御して、画像の表示、効果音、楽音の発生を制御するようになっている。
【0061】
次に、本構成例の画像処理システムにおけるディスプレイ上への表示について説明する。
【0062】
上記GPU62は、フレームバッファ634内の任意の矩形領域の内容を、そのまま上記ビデオ出力手段65の例えばCRT等のディスプレイ上に表示する。この領域を以下表示エリアと呼ぶ。上記矩形領域とディスプレイ画面表示の関係は、図2に示すようになっている。
【0063】
また、上記GPU62は、次の10個の画面モードをサポートしている。
【0064】

Figure 0003548642
画面サイズすなわちディスプレイ画面上のピクセル数は可変で、図3のように、水平方向、垂直方向それぞれ独立に表示開始位置(座標(DTX,DTY))、表示終了位置(座標(DBX,DBY))を指定することができる。
【0065】
また、各座標に指定可能な値と画面モードとの関係は、以下のようになっている。なお、座標値のDTX,DBXは4の倍数になるように設定する必要がある。したがって、最小画面サイズは、横4ピクセル、縦2ピクセル(ノンインターレス時)又は4ピクセル(インターレス時)になる。
【0066】
〔X座標の指定可能範囲〕
〔モード〕 〔DTX〕 〔DBX〕
0,4 0〜276 4〜280
1,5 0〜348 4〜352
2,6 0〜556 4〜560
3,7 0〜700 4〜704
8,9 0〜396 4〜400
〔Y座標の指定可能範囲〕
〔モード〕 〔DTY〕 〔DBY〕
0〜3,8 0〜241 2〜243
4〜7,9 0〜480 4〜484
次に、GPU62は、表示色数に関するモードとして、16ビットダイレクトモード(32768色)と、24ビットダイレクトモード(フルカラー)の2つをサポートしている。上記16ビットダイレクトモード(以下16ビットモードと呼ぶ)は32768色表示モードである。この16ビットモードでは、24ビットダイレクトモード(以下24ビットモードと呼ぶ)に較べ表示色数に限りはあるが、描画時のGPU62内部での色計算は24ビットで行われ、また、諧調を疑似的に増やすいわゆるディザ機能も搭載しているので、疑似フルカラー(24ビットカラー)表示が可能となっている。また、上記24ビットモードは、16777216色(フルカラー)表示のモードである。但し、フレームバッファ63内に転送されたイメージデータの表示(ビットマップ表示)のみが可能で、GPU62の描画機能を実行することはできない。ここで、1ピクセルのビット長は24ビットとなるが、フレームバッファ63上での座標や表示位置の値は16ビットを基準として指定する必要がある。すなわち、640×480の24ビット画像データは、フレームバッファ63中では960×480として扱われる。また、前記座標値DBXは8の倍数になるように設定する必要があり、したがって、この24ビットモードでの最小画面サイズは横8×縦2ピクセルになる。
【0067】
また、GPU62には次のような描画機能が搭載されている。
【0068】
先ず、1×1ドット〜256×256ドットのポリゴン又はスプライトに対して、4ビットCLUT(4ビットモード、16色/ポリゴン、スプライト)や8ビットCLUT(8ビットモード、256色/ポリゴン、スプライト),16ビットCLUT(16ビットモード、32768色/ポリゴン、スプライト)等の描画が可能なポリゴン又はスプライト描画機能と、
ポリゴンやスプライト(三角形や四角形等の多角形)の各頂点の画面上の座標を指定して描画を行うと共に、ポリゴンやスプライト内部を同一色で塗りつぶすフラットシェーディング、各頂点に異なる色を指定して内部をグラデーションするグーローシェーディング、ポリゴンやスプライト表面に2次元のイメージデータ(テクスチャパターン、特にスプライトに対するものをスプライトパターンと呼ぶ)を用意して張り付けるテクスチャマッピング等を行うポリゴン描画機能と、
グラデーションが可能な直線描画機能と、
CPU51からフレームバッファ63への転送、フレームバッファ63からCPU51への転送、フレームバッファ63からフレームバッファ63への転送等のイメージ転送機能と、
その他の機能として、各ピクセルの平均をとって半透明化する機能(各ピクセルのピクセルデータを所定比率αで混合することからαブレンディング機能と呼ばれる)、色の境界にノイズを乗せてぼかすディザ機能、描画エリアを越えた部分を表示しない描画クリッピング機能、描画エリアに応じて描画原点を動かすオフセット指定機能等がある。
【0069】
また、描画を行う座標系は符号付きの11ビットを単位としており、X,Yそれぞれに−1024〜+1023の値をとる。また、図4に示すように、本構成例でのフレームバッファ63のサイズは1024×512となっているので、はみ出した部分は折り返すようになっている。描画座標の原点は、座標値のオフセット値を任意に設定する機能により、フレームバッファ63内で自由に変更することができる。また、描画は、描画クリッピング機能により、フレームバッファ63内の任意の矩形領域に対してのみ行われる。
【0070】
さらに、GPU62は、最大256×256ドットのテクスチャをサポートしており、縦,横それぞれの値を自由に設定することができる。
【0071】
上記ポリゴン又はスプライトに張りつけるイメージデータ(テクスチャパターン又はスプライトパターン)は、図5に示すように、フレームバッファ63の非表示領域に配置する。テクスチャパターン又はスプライトパターンは、描画コマンド実行に先立ってフレームバッファ63に転送される。テクスチャパターン又はスプライトパターンは、256×256ピクセルを1ページとして、フレームバッファ63上にメモリの許す限り何枚でも置くことができ、この256×256の領域をテクスチャページと呼んでいる。1枚のテクスチャページの場所は、描画コマンドのTSBと呼ぶテクスチャページの位置(アドレス)指定のためのパラメータに、ページ番号を指定することで決定される。
【0072】
テクスチャパターン又はスプライトパターンには、4ビットCLUT(4ビットモード)、8ビットCLUT(8ビットモード)、16ビットCLUT(16ビットモード)の3種類の色モードがある。4ビットCLUT及び8ビットCLUTの色モードでは、CLUTを使用する。
【0073】
このCLUTとは、図6に示すように、最終的に表示される色を表す3原色のR,G,B値が16乃至256個、フレームバッファ63上に並んだものである。各R,G,B値はフレームバッファ63上の左から順に番号付けされており、テクスチャパターン又はスプライトパターンはこの番号により各ピクセルの色を表す。また、CLUTはポリゴン又はスプライト単位で選択でき、全てのポリゴン又はスプライトに対して独立したCLUTを持つことも可能である。また、図6において、1個のエントリは16ビットモードの1ピクセルと同じ構造となっており、したがって、1セットのCLUTは1×16(4ビットモード時)、1×255(8ビットモード時)のイメージデータと等しくなる。フレームバッファ63内でのCLUTの格納位置は、描画コマンド内のCBAと呼ぶCLUTの位置(アドレス)指定のためのパラメータに、使用するCLUTの左端の座標を指定することで決定する。
【0074】
さらに、ポリゴン又はスプライト描画の概念を模式的に示すと図7のように表すことができる。なお、図7の例ではスプライトを例に挙げている。また図7中の描画コマンドのU,Vはテクスチャページのどの位置かを横(U),縦(V)で指定するパラメータであり、X,Yは描画エリアの位置を指定するためのパラメータである。
【0075】
また、GPU62は、動画表示の方式として、フレームダブルバッファリングという手法を用いるようにしている。このフレームダブルバッファリングとは、図8に示すように、フレームバッファ63上に2つの矩形領域を用意し、一方のエリアに描画をしている間はもう片側を表示し、描画が終了したら2つのエリアをお互いに交換するものである。これにより、書き換えの様子が表示されるのを回避することができることになる。なお、バッファの切り換え操作は、垂直帰線期間内に行う。また、GPU62では、描画の対象となる矩形領域と座標系の原点を自由に設定できるので、この2つを移動させることにより、複数のバッファを実現することも可能である。
【0076】
次に、本構成例の画像処理システムにおけるテクスチャマッピング及びグーローシェーディング時のCPU51が出力する命令形式(インストラクションセット)について説明する。
【0077】
先ず、描画命令形式について説明する。
【0078】
命令形式(1)として、描画命令をCPU51が直接指定するために、図9に示すようなパケット構成を用いる。なお、この図9において、R,G,Bは多角形の全ての頂点で共有する輝度値を、Xn,Ynは頂点nの描画空間上の2次元座標を示す。この命令形式(1)に対して、例えば、(X0,Y0)−(X1,Y1)−(X2,Y2)で囲まれる領域を輝度値(R,G,B)で塗りつぶす命令の場合には、図10に示すようになり、以降の描画の座標オフセットを(0FX,0FY)に変更する。
【0079】
次に、命令形式(2)として、図11に示すように、命令形式(1)の型の描画命令に命令のワード数と次の命令へのポインタを付加したタグを設けたパケット構成を用いる。なお、この図11中のSIZEは命令のワード長(この例では4)を、ADDRは次の命令の先頭アドレスを示す。これによって、フレームバッファ63上で連続した領域におかれていない複数の命令列をつなげて一度に実行できるようになる。この場合の描画命令の転送は専用のハードウエアが行い、CPU51は一切関与しない。また、この命令形式(2)において、例えば、(X0,Y0)−(X1,Y1)−(X2,Y2)で囲まれる領域を輝度値(R,G,B)で塗りつぶす命令の場合には、図12に示すようになり、以降の描画の座標オフセットを変更する。
【0080】
次に、本発明のデータ形式について詳細に説明する。
【0081】
GPU62はホスト(CPU51)より供給されるパケット化されたコマンド(描画命令)列を順次実行する。なお、以下の説明では下記の記号を使用する。
【0082】
Figure 0003548642
なお、Xn,Ynは、コマンドでは16ビットが割り当てられているが、実際には各々下位11ビットまでが有効である。CBA及びTSBのビットアサインは図13及び図14に示す通りである。なお、図13中CLXはCLUTのX軸の先頭アドレス(6ビット)で、CLYはCLUTのY軸の先頭アドレス(9ビット)である。また、図14に示すTSBは、MODEコマンド(後述する設定コマンド参照)の下位ビットと同じビットアサインである。この図14中のTPFはテクスチャパターンのピクセルの深さで、00のとき4ビットモード(CLUT)、01のとき8ビットモード(CLUT)、10のとき16ビットモード(CLUT)である。図14中のABRは半透明レートを示し、00のとき0.50×F+0.50×B、01のとき1.00×F+1.00×B、10のとき0.50×F+1.00×B、11のとき0.25×F+1.00×Bとなる(なおFは前景、Bは背景に対応する)。また、図14中のTBXはテクスチャパターンソース空間x方向のベースアドレス(上位5ビット)で、TBYはテクスチャパターンソース空間y方向のベースアドレス(上位1ビット)である。
【0083】
次に三角形描画コマンド(コマンドコード=1h)は、図15に示すように、コマンドコード(オプションを含む)の後に、頂点情報をコマンド引数として与える。オプションにより、引数の数、フォーマットが異なる。この図15中のIIPが0のときは1種類の輝度値(R,G,B)で三角形を描画(フラットシェーディング)し、1のときは三頂点の輝度値を線形補間して、三角形を描画(グーローシェーディング)する。CNTが0のときコマンド以降に続く3頂点で三角形を一つ描画し、1のときコマンド以降に続く4頂点で連結三角形を描画(四角形)する。TMEが0のときテクスチャマッピングオフとなり、1のときテクスチャマッピングがオンとなる。ABEが0のとき半透明処理がオフとなり、1のとき半透明処理がオンとなる。TGEはTMEの時のみ有効で、0のときテクスチャパターンと輝度値とを掛け合わせて表示し、1のときテクスチャパターンのみを描画する。ここでのデータ構成は、2通りとなるが、その一部を図16に示す。
【0084】
次に直線描画コマンド(コマンドコード=2h)は、図17に示すように、コマンドコード(オプションを含む)の後に、端点情報をコマンド引数として与える。オプションにより引数の数やフォーマットが異なる。なお図17中のIIPが0のときはピクセルを描画指定された輝度値で描画し、1のときは2頂点の輝度値を線分の長軸方向の変位で線形補間して描画する。CNTが0のときはコマンド以降に続く2端点で直線を1つ描画し、1のとき連結直線を描画する。ABEが0のとき半透明処理がオフとなり、1のとき半透明処理がオンとなる。
【0085】
連結直線を描画するときは、最後にコマンドの終了を示す終端コード(TERMINATION CODE)が必要となる。終端コードのフォーマットは図18に示すようになり、そのデータ構成例を図19に示す。なお、座標値Xn,Ynは下位11ビットのみが有効であるので、通常の使用では座標値と終端コードが衝突することはない。
【0086】
次にスプライト描画コマンド(コマンドコード=3h)は、図20に示すようになり、データ構成例を図21に示す。このスプライト描画コマンドでは、コマンドコード(オプションを含む)の後に、輝度情報、矩形領域の左下端点、テクスチャソース空間の左上端点、矩形領域の幅と高さをコマンド引数として与える。オプションにより引数の数、フォーマットが異なる。また、スプライト描画コマンドは2ピクセル同時に処理をするため、Unは偶数を指定しなければならない(下位1ビットは意味を持たない)。なお、図20中のTMEが0のときはテクスチャマッピングがオフし、1のときはテクスチャマッピングがオンする。ABEが0のときは半透明処理がオフし、1のときは半透明処理がオンする。TGE(TMEの時のみ有効)が0のときはテクスチャパターン(この場合にはスプライトパターン)に一定の輝度値を掛け合わせて描画し、1のときはテクスチャパターン(スプライトパターン)のみを描画する。SIZは矩形領域のサイズを指定し、00のときにはH,Wフィールドで指定し、01のときは1×1、10のときは8×8、11のときは16×16のサイズ指定となる。
【0087】
次にローカルローカル転送コマンド(コマンドコード=4h)すなわちフレームバッファ間の転送コマンドとして、例えば矩形領域転送コマンドは、図22に示す通りであり、データ構成は図23に示すようになる。この矩形領域転送コマンドは、コマンドコード(オプションを含む)の後に、ソース矩形領域の左上端点、ディスティネーション矩形領域の左上端点、矩形領域の幅と高さをコマンド引数として与える。なお、図中のCODEはコマンドコード及びオプションを示し、SX,SYはソース(転送元)矩形領域の左上端点の座標を、DX,DYはディスティネーション(転送先)矩形領域の左上端点の座標を、Wは矩形領域の幅を、Hは矩形領域の高さを示す。
【0088】
次に、ホストローカル転送コマンド(コマンドコード=5h)は、図24に示す通りとなり、データ構成は図25に示すようになる。このホストローカル転送コマンドは、CPUとフレームバッファ間の転送コマンドであり、コマンドコード(オプションを含む)で例えばディスティネーション矩形領域の左上端点、矩形領域の幅と高さ、転送データをコマンド引数として与える。なお、図中のCODEはコマンドコード及びオプションを示し、DX,DYはディスティネーション(転送先)矩形領域の左上端点の座標を、Wは矩形領域の幅を、Hは矩形領域の高さを、FRAM0〜FRAMnは転送データを示す。
【0089】
次にローカルホスト転送コマンド(コマンドコード=6h)は、図26に示す通りであり、このデータ構成は図27に示すようになる。このローカルホスト転送コマンドは、フレームバッファとCPUとの間の転送コマンドであり、例えばソース矩形領域の左上端点、矩形領域の幅と高さをコマンド引数として与える。なお、図中のCODEはコマンドコード及びオプションを示し、SX,SYはソース(転送元)矩形領域の左上端点の座標を、Wは矩形領域の幅を、Hは矩形領域の高さを示す。また、汎用ポートを使用するコマンド(パラメータリード)をローカルホスト転送中に行うことはできない。
【0090】
次に、設定コマンド(コマンドコード=7h)は、図28に示すように、各種パラメータレジスタを設定するコマンドである。これはコマンドコード(アドレスを含む)と、設定値を与える。なお、図中のCODEはコマンドコード及びオプションを示し、ADDRはアドレスを、DATAはパラメータを示す。
【0091】
ここで、この設定コマンドのうちモード(MODE)設定コマンド(アドレス=1h)は、図29に示す構成であり、図中のTPFはテクスチャパターン(スプライの場合はスプライトトパターン)のピクセルの深さを示し、00のとき4ビットモード(CLUT)、01のとき8ビットモード(CLUT)、10のとき16ビットモード(ダイレクト)を示す。DTDは0のときディザリングを行わないことを示し、1のときディザリングを行うことを示す。DFEは0のときインターレース時に表示されていないフィールドのみ描画し、1のときインターレース時に両フィールドとも描画する。ABRは半透明レートを示し、00のとき0.50×F+0.50×Bを、01のとき1.00×F+1.00×Bを、10のとき0.50×F+1.00×Bを、11のとき0.25×F+1.00×Bを示す(なお、Fは前景、Bは背景に対応する)。TBXはテクスチャパターンソース空間x方向ベースアドレス(上位4ビット)を、TBYはテクスチャパターンソース空間y方向ベースアドレス(上位1ビット)を示す。
【0092】
また、設定コマンドのうちテクスチャパターンリピート(TEXTURE PATTERN REPEAT )設定コマンド( アドレス=2h)は、図30に示す構成であり、図中TUMはテクスチャパターンU座標繰り返しマスクを、TVMはテクスチャパターンV座標繰り返しマスクを、TUAはテクスチャパターン繰り返しU上位固定アドレスを、TVAはテクスチャパターン繰り返しV上位固定アドレスを示す。
【0093】
次に、設定コマンドのうちクリッピングスタート(CLIPPING START)設定コマンド(アドレス=3h)とクリッピングエンド(CLIPPING END)設定コマンド(アドレス=4h)は、図31に示す構成を有する。なお、図31の(a)にはクリッピングスタート設定コマンドを、図31の(b)にはクリッピングエンド設定コマンドを示す。クリッピッグはポリゴン(三角形)/直線/スプライト描画コマンドに対して有効であり、ホストローカル/ローカルローカル転送には作用しない。図中のCTXはクリッピングの左上端点のXアドレス(10ビット)を、CTYはクリッピングの左上端点のYアドレス(9ビット)を、CBXはクリッピングの右下端点のXアドレス(10ビット)を、CBYはクリッピングの右下端点のYアドレス(9ビット)を示す。
【0094】
次に、設定コマンドのうちオフセット(OFFSET)設定コマンド(アドレス=5h)は図32に示す構成をとり、図中OFXは座標オフセット値(X)(有符号11ビット)を、OFYは座標オフセット値(Y)(有符号11ビット)を示す。
【0095】
次に特殊コマンド(アドレス=0h)は、図33に示す構成をとり、特殊コマンドとしては割り込み要求イネーブルコマンドと後述するNOPコマンド等がある。これはコマンドとオプションで指定する。
【0096】
上記特殊コマンドのうちIRQ(interrupt request) 発生コマンドは、図34に示す構成をとり、IRQピンをアサートする。
【0097】
また特殊コマンドのうちNOP(no operation)コマンドは、図35に示す構成をとり、このときは何もしない。
【0098】
さらに、特殊コマンドのうちキャッシュフラッシュコマンドは、図36に示す構成をとり、テクスチャキャッシュとCLUTの内容をフラッシュする。ただし、ホストローカル転送,ローカルホスト転送を行うとテクスチャキャッシュだけは自動的にフラッシュされる(CLUTは保存される)。
【0099】
また、特殊コマンドのうちブロックライトコマンドは、図37に示す構成となり、データ構成は図38に示すようになる。このコマンドは、高速で矩形を初期化する。なお、図中のW,Hは矩形領域のサイズを示す。また、R,G,Bは8ビットで指定されるが、実際にメモリ上へ書き込まれる値は、上記4ビットのみである。矩形領域の開始位置(X0,Y0)、サイズ(H,V)は共に32ピクセルの整数倍で指定する。下位4ビットは意味を持たない。
【0100】
ところで、GPU62は専用のローカルメモリを持ち、これは表示用のフレームバッファであると同時にテクスチャパターンやテクスチャCLUTの領域としても使用する。すなわち、このローカルメモリが図1のフレームバッファ63である。
【0101】
上記フレームバッファ63へのアドレッシングとして、GPU62が描画する領域はx方向0〜1023、y方向0〜511のサイズであり、ローカルメモリ(フレームバッファ63)の1次元アドレスとの対応は、
1次元アドレス=X+Y×1024
である。ただし、24ビットモードの場合は、
1次元アドレス=(3/2)×X+Y×1024
である。
【0102】
なお、フレームバッファ63のページサイズは1024固定なので、実際にはXA がカラムアドレス、Yがロウアドレスに対応する。フレームバッファ63内にはどこでも描画可能で、また、フレームバッファ63内の任意の領域を表示することもできる。ただし、表示できる大きさは、モードに応じて制限がある。さらに、フレームバッファ63のアドレスX,Yはそれぞれ10ビット,9ビット無符号で指定される。ただし、ポリゴンの描画で使用する座標値x,yは、それぞれ11ビット有符号で指定される。またさらに、描画は(x,y)にオフセットレジスタで指定されたオフセット(OFX,OFY)が加算された値をアドレスとして、フレームバッファ63に描画される。ただし、マウントされるフレームメモリの大きさ、1024×512を越えた領域には描画されない。
【0103】
次に、ピクセルフォーマットについて説明する。GPU63は、図39の(a)に示すようにR:G:B=8:8:8(ビット)の24ビットモードと、同図中(b)に示すようにR:G:B=5:5:5(ビット)の16ビットモードをサポートする。ただし、24ビットモードは表示のみで描画することはできない。なお、図中のRは赤色成分を、Gは緑色成分を、Bは青色成分を、STPはオーバーライトフラグを示す。モードによっては、STPに1が指定されると、以降そのピクセル上に新たに描画が実行されてもピクセルの内容は保存される。これによって最初に描画したパターンを保持しておくことができる。
【0104】
次に、本構成例フォーマットによれば、ポリゴン/スプライトを描画する際に、テクスチャページにおかれたパターン(テクスチャパターン又はスプライトパターン)を使用してテクスチャマッピングを行うことができるようになる。以降の説明では(x,y)は描画空間の座標を、(u,v)はテクスチャページ空間の座標を表す。
【0105】
先ず、テクスチャパターンやスプライトパターンの置かれているフレームバッファ内の領域をテクスチャページ或いはテクスチャページ空間と呼ぶ。テクスチャパターンやスプライトパターンのピクセルフォーマットとしては、4,8,16ビット/ピクセルの3種類のモードがある。4ビット,8ビットモードは疑似カラーであり、16ビットモードはダイレクトカラーである。これらモードはポリゴン又はスプライト単位で切り換えることができる。16ビットモード以外のテクスチャパターンやスプライトパターンは1ワード内に何個かのピクセルがパックされている。したがって、テクスチャパターンやスプライトパターンのピクセルとフレームバッファのアドレスは1対1に対応していない。そのため、フレームバッファにテクスチャパターンやスプライトパターンをロードする場合のアドレスの指定には注意が必要である。各モードの場合のピクセルフォーマットは以下の図40に示す通りである。
【0106】
図40の(a),(b)に示す4ビット/ピクセル,8ビット/ピクセルの場合、ピクセル値は実際の輝度値ではなく、CLUTへのインデックスとなる。これから、ピクセルはCLUTを用いて、図41のように16ビットのカラーフォーマットに変換される。なお、図中Rは赤色成分を、Gは緑色成分を、Bは青色成分を、STPは半透明フラグを示す。
【0107】
また、16ビット/ピクセルの場合はCLUTは用いられず、直接、輝度値として使用される。このフォーマットは、図41と同様の図42の通りである。なお、図中Rは赤色成分を、Gは緑色成分を、Bは青色成分を、図中STPは半透明フラグを示す。STPに1が指定されたピクセルは半透明で描画され、半透明レートはポリゴン又はスプライト毎に独立に設定できる。
【0108】
さらに、4ビットモード、8ビットモードの場合は、テクスチャCLUTを用いてテクスチャの色(輝度)を決定することができるようになっている。テクスチャCLUTはフレームバッファに幾つも持つことができるが、一回の描画コマンドで使用できるCLUTは1種類に限られる。CLUTの選択はフレームバッファ上の先頭アドレスを指定することで選択できる。先頭アドレスの指定はコマンド引数のCBAで行う。
【0109】
GPU62は内部にテクスチャCLUTキャッシュを持っており、ポリゴン描画に先立ち、キャッシュ内に必要なCLUTがなければ、新しくCLUTをロードする。このため、同じCLUTを繰り返し使用する場合の描画はCLUTロードの分だけ高速になる。
【0110】
次に、上述したような本構成例のシステム及びフォーマットが適用される画像情報生成及び画像情報処理の流れを、図43にて説明する。
【0111】
この図43において、ステップS10では複数のポリゴンからなる3次元画像データをCD−ROMのディスクから読み出してメインメモリ53に記憶し、ステップS11では各ポリゴン毎に指定される特性データとして色情報テーブル、テクスチャパターン情報、半透明率指定データをフレームバッファ63に記憶する。
【0112】
ステップS12では、前記グラフィックシステム60にて透視変換等の座標変換処理を行って上記3次元画像データから2次元画像情報を生成し、次のステップS13では当該2次元画像情報と各ポリゴンの特性を指定するための情報とを合成してポリゴン毎にパケット化された描画命令を生成する。
【0113】
ステップS14では、当該生成された描画命令により指定された特性データに基づき2次元画像をフレームバッファ63に描画する。
【0114】
次のステップS15では当該フレームバッファ63から2次元画像データをテレビジョン同期信号に同期して読み出し、ビデオ出力手段65を介してディスプレイ装置に供給する。
【0115】
上述したように、本発明構成例においては、テクスチャ座標にオフセットをもたせてテクスチャ座標の語長を短縮することで、描画命令が短くて済む。また、描画ポリゴンやスプライト毎にテクスチャのCLUTを指定できるので、疑似カラーテクスチャを使用していても色数の制限が少ない。また、描画ポリゴンやスプライト毎に半透明率を指定するので画素毎の半透明率を指定する情報が必要でない。さらに、テクスチャ座標と頂点座標が同時に指定できるのでテクスチャパターン自体を変更せずにテクスチャマップポリゴンの色合いを変化させることができる。またさらに、半透明率として通常の0から1.0までの値ではなくて、マイナス(減算)の値が指定できるので、すでに描画されているピクセルの輝度値を減算することができる。その他、連結頂点を用いて、描画する多角形の頂点座標を指定する場合において、連結頂点数を3及び4に限定することで、終端コードを不要にし、描画命令長を短縮させた頂点指定が可能となる。また、描画の座標オフセットを描画命令の途中で変更できるため、オブジェクト(現実感のある物体すなわち描画対象の物体)単位の表示画面での平行移動を容易にすることができる。
【0116】
また、本発明構成例においては、画像をテクスチャパターンとして使用する際に、そのピクセルの最上位ビットで半透明のオン/オフを指定するので、半透明率の設定のための特定のαプレーンが必要にならない。さらに、画像を背景画面として使用する最に、そのピクセルの最上位ビットで上書きの禁止・許可を指定できるので、近景から先に描画することができる。また、画像をテクスチャパターンとして使用する場合には、カラーモードに応じて複数のモード(前記4ビットモード,8ビットモード,16ビットモード等)を選ぶことができ、したがって、その中にダイレクトカラー方式と疑似カラー方式を混在できる。またさらに、フレームバッファとテクスチャ画像の品質に応じて様々なテクスチャタイプも選択できる。
【0117】
【発明の効果】
以上の説明からも明らかなように、本発明においては、複数のポリゴンからなる3次元画像データを記憶し、各ポリゴン毎に指定される特性データを記憶し、3次元画像データに透視変換を施して表示画面に対応する2次元画像情報に変換し、ポリゴンの特性を指定するための情報と2次元画像情報とを合成してポリゴン毎にパケット化された描画命令を生成することにより、命令語長を短縮できると共に、ソースビデオメモリの消費量も減らすことができる画像情報を生成すること可能となる。
【図面の簡単な説明】
【図1】本発明が適用される画像処理システムの概略的な構成を示すブロック回路図である。
【図2】ディスプレイ上への表示について説明するための図である。
【図3】ディスプレイ上の表示の設定について説明するための図である。
【図4】描画クリッピングの機能について説明するための図である。
【図5】テクスチャページについて説明するための図である。
【図6】CLUT構造について説明するための図である。
【図7】ポリゴン又はスプライト描画の概念を説明するための図である。
【図8】フレームダブルバッファリングについて説明するための図である。
【図9】描画命令の命令形式(1)の構成を示す図である。
【図10】命令形式(1)において座標オフセットを行う例を示す図である。
【図11】描画命令の命令形式(2)の構成を示す図である。
【図12】命令形式(2)において座標オフセットを行う例を示す図である。
【図13】CBAの構成を示す図である。
【図14】TSBの構成を示す図である。
【図15】三角形描画コマンドのフォーマットを示す図である。
【図16】三角形描画コマンドのデータ構成例を示す図である。
【図17】直線描画コマンドのフォーマットを示す図である。
【図18】連結直線を描画する際に必要な終端コードのフォーマットを示す図である。
【図19】直線描画コマンドのデータ構成例を示す図である。
【図20】スプライト描画コマンドのフォーマットを示す図である。
【図21】スプライト描画コマンドのデータ構成例を示す図である。
【図22】ローカルローカル転送コマンドのフォーマットを示す図である。
【図23】ローカルローカル転送コマンドのデータ構成例を示す図である。
【図24】ホストローカル転送コマンドのフォーマットを示す図である。
【図25】ホストローカル転送コマンドのデータ構成例を示す図である。
【図26】ローカルホスト転送コマンドのフォーマットを示す図である。
【図27】ローカルホスト転送コマンドのデータ構成例を示す図である。
【図28】設定コマンドのフォーマットを示す図である。
【図29】モード設定コマンドのフォーマットを示す図である。
【図30】テクスチャパターン繰り返し設定コマンドのフォーマットを示す図である。
【図31】クリッピングスタート及びクリッピングエンド設定コマンドのフォーマットを示す図である。
【図32】オフセット設定コマンドのフォーマットを示す図である。
【図33】特殊コマンドのフォーマットを示す図である。
【図34】IRQ発生コマンドのフォーマットを示す図である。
【図35】NOPコマンドのフォーマットを示す図である。
【図36】キャッシュフラッシュコマンドのフォーマットを示す図である。
【図37】ブロックライトコマンドのフォーマットを示す図である。
【図38】ブロックライトコマンドのデータ構成例を示す図である。
【図39】ピクセルフォーマットを示す図である。
【図40】テクスチャパターンフォーマットを示す図である。
【図41】4ビット/ピクセル,8ビット/ピクセルがCLUTを用いて変換された16ビットカラーフォーマットを示す図である。
【図42】16ビット/ピクセルのフォーマットを示す図である。
【図43】本構成例のシステムにて適用される画像情報生成及び画像情報処理の処理の流れを示すフローチャートである。
【図44】従来の画像作成装置(家庭用ゲーム機)の構成例を示すブロック回路図である。
【図45】従来の画像作成装置による画像作成方法の説明に用いる図である。
【符号の説明】
51 CPU
52 周辺デバイスコントローラ
53 メインメモリ
54 ROM
60 グラフィックシステム
61 ジオメトリトランスファエンジン(GTE)
62 グラフィックスプロセッシングユニット
63 フレームバッファ
64 画像デコーダ(MDEC)
65 ビデオ出力手段(ディスプレイ装置)
70 サウンドシステム
71 サウンドプロセッシングユニット(SPU)
72 サウンドバッファ
73 スピーカ
80 光学ディスク制御部
81 ディスクドライブ装置
82 デコーダ
83 バッファ
90 通信制御部
91 通信制御機
92 コントローラ
93 メモリカード
101 パラレルI/Oポート
102 シリアルI/Oポート[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image information generating apparatus and method for creating image information by information processing, an image information processing apparatus and method, and a recording medium on which image information is recorded.
[0002]
[Prior art]
For example, in a home game machine, a personal computer device, a graphic computer device, or the like, most of the images output and displayed on a television receiver, a monitor receiver, a CRT display device, or the like are two-dimensional. , An image is displayed in such a form that a two-dimensional character or the like is appropriately arranged on a two-dimensional background and moved or changed.
[0003]
However, in the above-described two-dimensional image display or video, there are limitations on expressible backgrounds and characters and their movements, and for example, it is difficult to enhance the sense of reality of the game.
[0004]
Therefore, for example, a pseudo three-dimensional image or video is created by the following method. That is, images viewed from several directions are prepared as the character, and one of these images is selected and displayed according to a change in the viewpoint on the display screen or the like. To represent a pseudo three-dimensional image by superimposing the images in the depth direction. When generating or creating image data, a texture mapping method such as attaching a so-called texture (fabric, ground pattern) image to a desired surface such as a polyhedron or the like, and color data of the image through a so-called color lookup table. A method of changing a display color by conversion is employed.
[0005]
Here, FIG. 44 shows an example of a schematic configuration of a conventional home game machine. In FIG. 44, a CPU 391 composed of a microprocessor or the like extracts operation information of an input device 394 such as an input pad or a joystick through the main bus 399 via the interface 393. Simultaneously with the extraction of the operation information, the data of the three-dimensional image stored in the main memory 392 is transferred to the source video memory 395 by the video processor 396 and stored.
[0006]
Further, the CPU 391 sends to the video processor 396 a reading order of image data for superimposing and displaying images stored in the source video memory 395. The video processor 396 reads the image data from the source video memory 395 in accordance with the reading order of the image data, and superimposes and displays the images.
[0007]
At the same time as displaying the image as described above, the audio processor 397 outputs audio data corresponding to the displayed image stored in the audio memory 398 based on the audio information in the extracted operation information.
[0008]
FIG. 45 is a diagram illustrating a procedure for outputting a three-dimensional image using data of a two-dimensional image in a consumer game machine having the configuration illustrated in FIG. 44. FIG. 45 illustrates a case where a cylindrical object is displayed as a three-dimensional image on a checkered background image.
[0009]
In the source video memory 395 in FIG. 45, a checkered background image 200 and a rectangular image representing a cross section in the depth direction of a cylindrical object on the background image 200, so-called sprites 201, 202, 203, and 204, are stored. Is stored. It should be noted that a polygon having more than a triangle is called a polygon, and a quadrilateral polygon is particularly called a sprite. Portions other than the image of the cross section of the cylinder on the sprites 201, 202, 203, and 204, which are rectangular images, are drawn in a transparent color.
[0010]
The sync generator 400 in the video processor 396 generates a read address signal according to the synchronization signal of the image to be displayed. The sync generator 400 sends the read address signal to the read address table 401 provided from the CPU 391 in FIG. 44 via the main bus 399. Further, the sync generator 400 reads the image data in the source video memory 395 according to the information from the read address table 401.
[0011]
The read image data is sequentially superimposed by the superimposition processing unit 403 based on the superimposition order of the images in the priority table 402 provided via the main bus 399 by the CPU 391. In this case, the background image 200 has the lowest rank and the rectangular images 201, 202, 203, and 204 have higher ranks in this order.
[0012]
Next, in the transparent color processing unit 404, in order to display a portion other than the cylinder as a background image, a portion other than the cylinder displayed by the images 201, 202, 203, and 204 of the cross section of the overlapped cylinder is made transparent. Is performed.
[0013]
By the above-described processing, the data of the two-dimensional image of the cylindrical object is output as the image data of the three-dimensional image VD0 shown in FIG.
[0014]
[Problems to be solved by the invention]
By the way, a color is specified by texture mapping or a color lookup table, and pixel data of an image displayed before (for example, data composed of three primary color data of R, G, and B, the same applies hereinafter) is to be drawn next. Specifying the translucent processing when performing translucent processing by mixing pixel data of an image with a predetermined ratio α, and specifying ON / OFF of dither processing for adding noise to a color boundary to blur. In this case, the CPU 391 outputs drawing instructions for these, but the instruction word length for specifying a plurality of textures and color look-up tables, for specifying translucent processing, for specifying dither processing, and the like becomes longer. , The amount of data held in the source video memory 395 also increases.
[0015]
In the above-described apparatus, for example, the translucent processing is performed by the transparent processing unit 404 of the video processor 396. In the transparent processing unit 404, based on the data of the mixture ratio α supplied from the CPU 391, the previous pixel The translucent process is performed by mixing the data and the pixel data to be drawn at a predetermined mixing ratio α. In this case, in the conventional translucent processing, the value of the mixture ratio α is included in the drawing command, and is stored in the source video memory 395 for each pixel based on the drawing command. Therefore, if the mixing ratio is to be set finely, the number of bits representing the value of the mixing ratio α increases, the data amount of the drawing command increases, and the capacity in the source video memory 395 is consumed.
[0016]
Accordingly, the present invention provides an image information generating apparatus and method, an image information processing apparatus and method, and an image information generating method capable of generating image information capable of reducing the instruction word length and reducing the consumption of a source video memory. Is provided.
[0017]
[Means for Solving the Problems]
In the image information generating apparatus and method of the present invention, three-dimensional image data composed of a plurality of polygons is stored, characteristic data designated for each polygon is stored, and the three-dimensional image data is subjected to perspective transformation to display a screen. The above-mentioned problem is solved by converting the two-dimensional image information into two-dimensional image information corresponding to the above, and combining the information for designating the characteristics of the polygon and the two-dimensional image information to generate a drawing command packetized for each polygon. I do.
[0018]
Also, in the image information processing apparatus and method of the present invention, three-dimensional image data composed of a plurality of polygons is stored, characteristic data designated for each polygon is stored, and perspective transformation is performed on the three-dimensional image data. The information is converted into two-dimensional image information corresponding to the display screen, and information for designating the characteristics of the polygon is combined with the two-dimensional image information to generate a drawing command packetized for each polygon. The above-mentioned problem is solved by drawing a two-dimensional image in an image memory based on characteristic data specified by a drawing command, reading the two-dimensional image data from the image memory in synchronization with a television synchronization signal, and supplying the data to a display unit. I do.
[0019]
Further, in the recording medium according to the present invention, the above-mentioned problem is solved by recording the three-dimensional image data composed of a plurality of polygons and the characteristic data designated for each polygon by packetizing them in polygon units. .
[0020]
That is, according to the present invention, the instruction word length is reduced by synthesizing the information specifying the characteristics of the polygon and the two-dimensional image information to generate a drawing instruction packetized for each polygon.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0022]
First, an image processing system that generates and displays three-dimensional graphics data using image data generated by the image information generation method and the image information processing method of the present invention will be described. The image processing system of this configuration example is applied to, for example, a home game machine, a personal computer device, a graphic computer device, or the like, and the example of FIG. 1 shows an example in which the image processing system is applied to a home game machine.
[0023]
The image processing system according to this configuration example is configured to store data (for example, a game program or the like) from, for example, an optical disk (for example, a CD-ROM disk) which is a recording medium of the present invention in which data of an image data format of the present invention described later is recorded. ) Is read out and executed, whereby a display (for example, a game or the like) in accordance with an instruction from the user can be performed, and specifically, has a configuration as shown in FIG.
[0024]
Further, the image processing system of this configuration example includes a main memory 53 for storing three-dimensional image data read from a CD-ROM disk, a color information table and texture pattern information as characteristic data designated for each polygon. , A frame buffer 63 for storing translucency designation data and the like, and coordinate transformation means for performing perspective transformation processing on three-dimensional image data read from a CD-ROM disc to convert the data into two-dimensional image information. A geometry transfer engine (GTE) 61, a CPU 51 as drawing command generating means for generating a drawing command packetized for each polygon by combining the two-dimensional image information and information designating the characteristics of the polygon; The two-dimensional image information is stored in the frame buffer 63 based on the characteristic data specified by the drawn drawing command. A graphics processing unit (GPU 62) for displaying images, and video output means 65 for reading out two-dimensional image data from the frame buffer 63 in synchronization with a television synchronization signal and supplying the data to display means such as a display device. Things.
[0025]
That is, the image processing system includes a control system 50 including a central processing unit (CPU 51) and its peripheral devices (peripheral device controller 52 and the like), a graphics processing unit (GPU 62) for drawing on the frame buffer 63, and the like. A graphic system 60, a sound system 70 including a sound processing unit (SPU 71) for generating musical tones, sound effects and the like, and an optical disk (CD-ROM disk) drive 81 as an auxiliary storage device for controlling and reproducing information. An optical disk control unit 80 for performing decoding and the like, and a communication control unit for controlling input and output from an auxiliary memory (memory card 93) for storing an instruction input from a controller 92 for inputting an instruction from a user and game settings and the like. 90 and communication control from the control system 50. And a main bus B, etc. until the part 90 is connected.
[0026]
The control system 50 includes a CPU 51, a peripheral device controller 52 that performs interrupt control, time control, memory control, direct memory access (DMA) transfer control, and the like, and a main storage device (main memory) including, for example, 2 megabytes of RAM. And a ROM 54 of, for example, 512 kilobytes in which a program such as a so-called operating system for managing the main memory 53, the graphic system 60, the sound system 70, and the like is stored.
[0027]
The CPU 51 is, for example, a 32-bit reduced instruction set computer (RISC) CPU, and controls the entire apparatus by executing an operating system stored in the ROM 54. The CPU 51 has an instruction cache and a scratch pad memory, and also manages a real memory.
[0028]
The graphic system 60 includes a main memory 53 for temporarily storing data read from a CD-ROM, and a geometry co-processor for performing coordinate conversion and the like on the data stored in the main memory 53. A transfer engine (GTE) 61, a graphics processing unit (GPU) 62 for performing drawing based on a drawing instruction (drawing command) from the CPU 51, and a 1-megabyte frame buffer 63 for storing an image drawn by the GPU 62, for example. And an image decoder (hereinafter referred to as MDEC) 64 for decoding image data that has been subjected to orthogonal transformation such as so-called discrete cosine transformation and is compressed and encoded.
[0029]
The GTE 61 includes, for example, a parallel operation mechanism that executes a plurality of operations in parallel. As a coprocessor of the CPU 51, the GTE 61 performs coordinate transformation such as perspective transformation and an inner product operation of a normal vector and a light source vector in response to an operation request from the CPU 51. Light source calculations, for example, calculations on fixed-point matrices and vectors, can be performed at high speed.
[0030]
More specifically, the GTE 61 can perform a coordinate calculation of a maximum of about 1.5 million polygons per second in the case of performing the flat shading for drawing the same color on one triangular polygon. Accordingly, in this image processing system, the load on the CPU 51 can be reduced, and high-speed coordinate calculation can be performed. The polygon is a minimum unit of a figure for forming a three-dimensional object displayed on the display, and is a polygon such as a triangle or a quadrangle.
[0031]
The GPU 62 operates according to a polygon drawing command from the CPU 51 and draws a polygon (polygon) or the like on the frame buffer 63. The GPU 62 is capable of rendering a maximum of about 360,000 polygons per second. The GPU 62 has a two-dimensional address space independent of the CPU 51, and the frame buffer 63 is mapped in the two-dimensional address space.
[0032]
The frame buffer 63 is formed of a so-called dual-port RAM, and can simultaneously perform drawing from the GPU 62 or transfer from the main memory 53 and reading for display.
[0033]
The frame buffer 63 has a capacity of, for example, 1 megabyte, and is handled as a matrix of 1024 horizontal pixels and 512 vertical pixels each having 16 bits.
[0034]
An arbitrary display area of the frame buffer 63 can be output to video output means 65 such as a display device.
[0035]
The frame buffer 63 is a second area in which a color lookup table (CLUT) that the GPU 62 refers to when drawing a polygon or the like is stored in addition to a display area output as a video output. A CLUT area and a texture area which is a first storage area for storing a material (texture) to be inserted (mapped) into a polygon or the like which is subjected to coordinate conversion at the time of drawing and drawn by the GPU 62. Area Is provided. The CLUT area and the texture area are dynamically changed according to a change in the display area. That is, the frame buffer 63 can perform drawing access to the area being displayed, and can also perform high-speed DMA transfer with the main memory 53.
[0036]
In addition to the flat shading described above, the GPU 62 performs Gouraud shading, which determines the color in the polygon by interpolating from the colors of the vertices of the polygon, and texture mapping, which pastes the texture stored in the texture area on the polygon. Can be done.
[0037]
When performing such Gouraud shading or texture mapping, the GTE 61 can perform a coordinate calculation of a maximum of about 500,000 polygons per second.
[0038]
Under the control of the CPU 51, the MDEC 64 decodes the still or moving image data read from the CD-ROM disk and stored in the main memory 53, and stores the decoded data in the main memory 53 again. Specifically, the MDEC 64 can execute an inverse discrete cosine transform (inverse DCT) operation at a high speed, and can compress a color still image read from a CD-ROM disc (so-called JPEG) or a moving image encoding standard (accumulated media system). It is possible to decompress compressed data of so-called MPEG (only compression within a frame in this configuration example).
[0039]
The reproduced image data is stored in the frame buffer 63 via the GPU 62, so that the reproduced image data can be used as a background of the image drawn by the GPU 62.
[0040]
The sound system 70 includes a sound reproduction processing processor (SPU) 71 for generating musical tones and sound effects based on instructions from the CPU 51, and data and sound source data of voices and musical sounds read from a CD-ROM disk. And the like, and a sound buffer 72 of, for example, 512 kilobytes, and a speaker 73 as sound output means for outputting musical sounds, sound effects, and the like generated by the SPU 71.
[0041]
The SPU 71 performs an ADPCM decoding function of reproducing audio data that has been subjected to adaptive differential coding (ADPCM) using 16-bit audio data as a 4-bit differential signal, and reproduces sound source data stored in the sound buffer 72. , A reproduction function of generating sound effects and the like, and a modulation function of modulating and reproducing audio data and the like stored in the sound buffer 72. That is, the SPU 71 has a built-in ADPCM sound source 24 voice having functions such as looping and automatic change of operation parameters using time as a system factor, and operates by operation from the CPU 51. The SPU 71 manages a unique address space to which the sound buffer 72 is mapped, transfers ADPCM data from the CPU 51 to the sound buffer 72, and reproduces data by directly passing key-on / key-off and modulation information.
[0042]
By providing such a function, the sound system 70 can be used as a so-called sampling sound source that generates musical tones, sound effects, and the like based on audio data and the like recorded in the sound buffer 72 in accordance with an instruction from the CPU 51. It has become.
[0043]
The optical disk control unit 80 includes a disk drive device 81 that reproduces programs, data, and the like recorded on an optical disk that is a CD-ROM disk, and a program that is recorded with an error correction (ECC) code, for example. , A decoder 82 for decoding data, etc., and a buffer 83 of, for example, 32 kilobytes for temporarily storing reproduction data from the disk drive device 81. That is, the optical disk control unit 80 includes components necessary for reading a disk, such as the drive device 81 and the decoder 82. Here, data such as CD-DA and CD-ROM XA can be supported as a disk format. The decoder 82 also constitutes a part of the sound system 70.
[0044]
The audio data recorded on the disk reproduced by the disk drive device 81 includes, in addition to the above-described ADPCM data (such as the CD-ROM XA ADPCM data), so-called PCM data obtained by converting an audio signal from analog to digital. is there.
[0045]
As ADPCM data, for example, audio data in which a difference between 16-bit digital data is represented by 4 bits and recorded is subjected to error correction and decoding by a decoder 82, and then supplied to the above-described SPU 71, where the SPU 71 converts the digital / digital data. After being subjected to processing such as analog conversion, it is used to drive the speaker 73.
[0046]
Further, audio data recorded as PCM data, for example, as 16-bit digital data, is decoded by the decoder 82 and then used to drive the speaker 73. Note that the audio output of the decoder 82 enters the SPU 71 once, is mixed with this SPU output, and becomes the final audio output via the reverb unit.
[0047]
The communication control unit 90 includes a communication control device 91 that controls communication with the CPU 51 via the main bus B, a controller 92 that inputs instructions from a user, and a memory card 93 that stores game settings and the like. And
[0048]
The controller 92 is an interface for transmitting the user's intention to the application, and has, for example, 16 instruction keys for inputting an instruction from the user. Is transmitted to the communication control device 91 about 60 times per second by synchronous communication. Then, the communication control device 91 transmits the state of the instruction key of the controller 92 to the CPU 51. Note that the controller 92 has two connectors on the main body, and it is also possible to connect many controllers using a multi-tap.
[0049]
As a result, an instruction from the user is input to the CPU 51, and the CPU 51 performs processing according to the instruction from the user based on the game program or the like being executed.
[0050]
Further, the CPU 51 transmits the stored data to the communication control device 91 when it is necessary to store the settings of the game being executed, the end of the game, or the results during the game or the like, and the communication control device 91 The data from the CPU 51 is stored in the memory card 93.
[0051]
Since this memory card 93 is separated from the main bus B, it can be inserted and removed with the power on. As a result, game settings and the like can be stored in the plurality of memory cards 93.
[0052]
The configuration example system includes a 16-bit parallel input / output (I / O) port 101 connected to the main bus B and an asynchronous serial input / output (I / O) port 102.
[0053]
In addition, connection with peripheral devices can be performed via the parallel I / O port 101, and communication with other video game devices and the like can be performed via the serial I / O port 102. Is available.
[0054]
By the way, between the main memory 53, the GPU 62, the MDEC 64, the decoder 82, and the like, it is necessary to transfer a large amount of image data at high speed when reading a program, displaying an image, or drawing.
[0055]
For this reason, in this image processing system, a so-called DMA that directly transfers data between the main memory 53, the GPU 62, the MDEC 64, the decoder 82, and the like under the control of the peripheral height controller 52 without the intervention of the CPU 51 as described above. The transfer can be performed.
[0056]
As a result, the load on the CPU 51 due to data transfer can be reduced, and high-speed data transfer can be performed.
[0057]
In this video game device, when the power is turned on, the CPU 51 executes the operating system stored in the ROM 54.
[0058]
By executing the operating system, the CPU 51 controls the graphic system 60, the sound system 70, and the like.
[0059]
When the operating system is executed, the CPU 51 initializes the entire apparatus such as operation check, and then controls the optical disk control unit 80 to execute a program such as a game recorded on the optical disk. I do.
[0060]
By executing a program such as a game, the CPU 51 controls the graphic system 60, the sound system 70, and the like in accordance with an input from a user to control display of an image, generation of sound effects, and generation of musical sounds. ing.
[0061]
Next, display on the display in the image processing system of this configuration example will be described.
[0062]
The GPU 62 displays the contents of an arbitrary rectangular area in the frame buffer 634 on a display such as a CRT of the video output unit 65 as it is. This area is hereinafter referred to as a display area. The relationship between the rectangular area and the display on the display screen is as shown in FIG.
[0063]
The GPU 62 supports the following ten screen modes.
[0064]
Figure 0003548642
The screen size, that is, the number of pixels on the display screen is variable. As shown in FIG. 3, the display start position (coordinates (DTX, DTY)) and the display end position (coordinates (DBX, DBY)) are independent of each other in the horizontal and vertical directions. Can be specified.
[0065]
The relationship between the value that can be specified for each coordinate and the screen mode is as follows. The coordinate values DTX and DBX need to be set to be a multiple of four. Therefore, the minimum screen size is 4 pixels horizontally, 2 pixels vertically (non-interlace) or 4 pixels (interlace).
[0066]
[Specifiable range of X coordinate]
[Mode] [DTX] [DBX]
0,40 0-276 4-280
1,5 0-348 4-352
2,60-556 4-560
3,7 0-700 4-704
8,90-396 4-400
[Specifiable range of Y coordinate]
[Mode] [DTY] [DBY]
0-3,80-241 2-243
4-7,90-480 4-484
Next, the GPU 62 supports two modes relating to the number of display colors: a 16-bit direct mode (32768 colors) and a 24-bit direct mode (full color). The 16-bit direct mode (hereinafter referred to as 16-bit mode) is a 32768-color display mode. In the 16-bit mode, the number of display colors is limited as compared with the 24-bit direct mode (hereinafter referred to as the 24-bit mode), but the color calculation inside the GPU 62 at the time of drawing is performed in 24 bits, and the gradation is simulated. Since a so-called dither function is provided, the pseudo full color (24-bit color) display is possible. The 24-bit mode is a mode for displaying 16777216 colors (full color). However, only the display (bitmap display) of the image data transferred in the frame buffer 63 is possible, and the drawing function of the GPU 62 cannot be executed. Here, the bit length of one pixel is 24 bits, but the values of the coordinates and the display position on the frame buffer 63 need to be specified on the basis of 16 bits. That is, 640 × 480 24-bit image data is treated as 960 × 480 in the frame buffer 63. Further, the coordinate value DBX needs to be set to be a multiple of 8, so that the minimum screen size in this 24-bit mode is 8 × 2 pixels.
[0067]
In addition, the GPU 62 has the following drawing function.
[0068]
First, a 4-bit CLUT (4-bit mode, 16 colors / polygon, sprite) or an 8-bit CLUT (8-bit mode, 256 colors / polygon, sprite) for a polygon or sprite of 1 × 1 dot to 256 × 256 dots , 16-bit CLUT (16-bit mode, 32768 colors / polygon, sprite), etc. capable of drawing polygons or sprites,
Specifying the coordinates of each vertex of a polygon or sprite (a polygon such as a triangle or a quadrangle) on the screen and drawing it, flat shading that fills the inside of the polygon or sprite with the same color, and specifying a different color for each vertex A polygon drawing function that performs Gouraud shading for gradation inside, texture mapping that prepares and attaches two-dimensional image data (texture patterns, especially those for sprites are called sprite patterns) on the surfaces of polygons and sprites,
Straight line drawing function with gradation,
Image transfer functions such as transfer from the CPU 51 to the frame buffer 63, transfer from the frame buffer 63 to the CPU 51, transfer from the frame buffer 63 to the frame buffer 63,
Other functions include the function of translucent by taking the average of each pixel (referred to as the α blending function because pixel data of each pixel is mixed at a predetermined ratio α), and the dither function that blurs by adding noise to color boundaries And a drawing clipping function that does not display a portion beyond the drawing area, an offset designation function that moves the drawing origin according to the drawing area, and the like.
[0069]
Further, the coordinate system for drawing is in units of 11 bits with a sign, and each of X and Y takes a value of -1024 to +1023. Further, as shown in FIG. 4, the size of the frame buffer 63 in this configuration example is 1024 × 512, so that the protruding portion is folded back. The origin of the drawing coordinates can be freely changed in the frame buffer 63 by the function of arbitrarily setting the offset value of the coordinate values. The drawing is performed only on an arbitrary rectangular area in the frame buffer 63 by the drawing clipping function.
[0070]
Further, the GPU 62 supports a texture of a maximum of 256 × 256 dots, and the values of the vertical and horizontal can be freely set.
[0071]
The image data (texture pattern or sprite pattern) to be attached to the polygon or sprite is arranged in a non-display area of the frame buffer 63 as shown in FIG. The texture pattern or sprite pattern is transferred to the frame buffer 63 before executing the drawing command. The texture pattern or sprite pattern can be placed on the frame buffer 63 as many as the memory allows, with 256 × 256 pixels as one page, and this 256 × 256 area is called a texture page. The location of one texture page is determined by specifying the page number in a parameter for specifying the position (address) of the texture page called TSB of the drawing command.
[0072]
The texture pattern or the sprite pattern has three types of color modes: a 4-bit CLUT (4-bit mode), an 8-bit CLUT (8-bit mode), and a 16-bit CLUT (16-bit mode). In the 4-bit CLUT and 8-bit CLUT color modes, the CLUT is used.
[0073]
As shown in FIG. 6, the CLUT has 16 to 256 R, G, and B values of three primary colors representing colors to be finally displayed, which are arranged on the frame buffer 63. The R, G, and B values are numbered sequentially from the left on the frame buffer 63, and the texture pattern or sprite pattern represents the color of each pixel by this number. The CLUT can be selected in units of polygons or sprites, and it is possible to have an independent CLUT for all polygons or sprites. In FIG. 6, one entry has the same structure as one pixel in the 16-bit mode. Therefore, one set of CLUTs is 1 × 16 (in the 4-bit mode) and 1 × 255 (in the 8-bit mode). ) Is equal to the image data. The storage position of the CLUT in the frame buffer 63 is determined by specifying the left end coordinate of the CLUT to be used as a parameter for specifying the position (address) of the CLUT called CBA in the drawing command.
[0074]
Furthermore, the concept of polygon or sprite drawing can be schematically shown in FIG. In the example of FIG. 7, a sprite is taken as an example. In addition, U and V of the drawing command in FIG. 7 are parameters for specifying the position of the texture page in horizontal (U) and vertical (V), and X and Y are parameters for specifying the position of the drawing area. is there.
[0075]
The GPU 62 uses a method called frame double buffering as a moving image display method. This frame double buffering means, as shown in FIG. 8, that two rectangular areas are prepared on a frame buffer 63, the other side is displayed while one area is being drawn, and 2 The two areas are exchanged for each other. This makes it possible to avoid displaying the state of rewriting. Note that the buffer switching operation is performed during the vertical blanking period. In the GPU 62, since the rectangular area to be drawn and the origin of the coordinate system can be freely set, a plurality of buffers can be realized by moving the two.
[0076]
Next, a description will be given of an instruction format (instruction set) output by the CPU 51 at the time of texture mapping and Gouraud shading in the image processing system of this configuration example.
[0077]
First, the drawing command format will be described.
[0078]
As the command format (1), a packet configuration as shown in FIG. 9 is used in order for the CPU 51 to directly specify a drawing command. In FIG. 9, R, G, and B indicate luminance values shared by all vertices of the polygon, and Xn and Yn indicate two-dimensional coordinates of the vertex n in the drawing space. For this instruction format (1), for example, in the case of an instruction to fill an area surrounded by (X0, Y0)-(X1, Y1)-(X2, Y2) with luminance values (R, G, B), , And the coordinate offset for subsequent drawing is changed to (0FX, 0FY).
[0079]
Next, as the instruction format (2), as shown in FIG. 11, a packet configuration in which a tag in which a word number of the instruction and a pointer to the next instruction are added to the drawing instruction of the type of the instruction format (1) is used. . Note that SIZE in FIG. 11 indicates the word length of the instruction (4 in this example), and ADDR indicates the start address of the next instruction. As a result, a plurality of instruction sequences that are not placed in a continuous area on the frame buffer 63 can be connected and executed at a time. In this case, the transfer of the drawing command is performed by dedicated hardware, and the CPU 51 is not involved at all. In the instruction format (2), for example, in the case of an instruction to fill an area surrounded by (X0, Y0)-(X1, Y1)-(X2, Y2) with a luminance value (R, G, B), 12, and the coordinate offset of the subsequent drawing is changed.
[0080]
Next, the data format of the present invention will be described in detail.
[0081]
The GPU 62 sequentially executes a packetized command (rendering command) sequence supplied from the host (CPU 51). In the following description, the following symbols are used.
[0082]
Figure 0003548642
Although 16 bits are assigned to Xn and Yn in the command, actually, up to the lower 11 bits are effective. The bit assignments of CBA and TSB are as shown in FIGS. In FIG. 13, CLX is the head address (6 bits) of the CLUT on the X axis, and CLY is the head address (9 bits) of the CLUT on the Y axis. The TSB shown in FIG. 14 has the same bit assignment as the lower bits of the MODE command (see the setting command described later). The TPF in FIG. 14 is the depth of the pixel of the texture pattern, which is 00 in 4-bit mode (CLUT), 01 in 8-bit mode (CLUT), and 10 in 16-bit mode (CLUT). ABR in FIG. 14 indicates a translucent rate, and when it is 00, it is 0.50 × F + 0.50 × B, when it is 01, it is 1.00 × F + 1.00 × B, and when it is 10, it is 0.50 × F + 1.00 × B. , 11 is 0.25 × F + 1.00 × B (F corresponds to the foreground and B corresponds to the background). In FIG. 14, TBX is a base address (upper 5 bits) in the texture pattern source space x direction, and TBY is a base address (upper 1 bit) in the texture pattern source space y direction.
[0083]
Next, as shown in FIG. 15, the triangle drawing command (command code = 1h) gives vertex information as a command argument after the command code (including options). The number and format of the arguments differ depending on the option. When IIP in FIG. 15 is 0, a triangle is drawn (flat shading) with one type of luminance value (R, G, B). When IIP is 1, the luminance value of three vertices is linearly interpolated to convert the triangle. Draw (Gouraud shading). When CNT is 0, one triangle is drawn with three vertices following the command, and when CNT is 1, a connected triangle is drawn (quadrilateral) with four vertices following the command. When TME is 0, texture mapping is turned off, and when TME is 1, texture mapping is turned on. When ABE is 0, the translucent processing is turned off, and when ABE is 1, the translucent processing is turned on. TGE is effective only in the case of TME. When TGE is 0, the texture pattern is multiplied by the luminance value, and when it is 1, only the texture pattern is drawn. The data structure here is 2 3 As shown in FIG.
[0084]
Next, as shown in FIG. 17, a straight line drawing command (command code = 2h) gives end point information as a command argument after a command code (including an option). The number and format of the arguments differ depending on the option. When the IIP in FIG. 17 is 0, the pixel is drawn with the designated luminance value, and when the IIP is 1, the luminance value of the two vertices is linearly interpolated with the displacement in the long axis direction of the line segment. When CNT is 0, one straight line is drawn at the two end points following the command, and when CNT is 1, a connected straight line is drawn. When ABE is 0, the translucent processing is turned off, and when ABE is 1, the translucent processing is turned on.
[0085]
When drawing a connected straight line, an end code (TERMINATION CODE) indicating the end of the command is finally required. The format of the termination code is as shown in FIG. 18, and an example of the data structure is shown in FIG. Since only the lower 11 bits of the coordinate values Xn and Yn are valid, the coordinate values do not collide with the termination code in normal use.
[0086]
Next, the sprite drawing command (command code = 3h) is as shown in FIG. 20, and an example of the data structure is shown in FIG. In this sprite drawing command, after the command code (including options), luminance information, the lower left point of the rectangular area, the upper left point of the texture source space, and the width and height of the rectangular area are given as command arguments. The number and format of arguments differ depending on the option. Also, since the sprite drawing command processes two pixels at the same time, Un must specify an even number (the lower one bit has no meaning). When TME in FIG. 20 is 0, texture mapping is turned off, and when TME is 1, texture mapping is turned on. When ABE is 0, the translucent process is turned off, and when ABE is 1, the translucent process is turned on. When TGE (valid only for TME) is 0, the texture pattern (in this case, sprite pattern) is drawn by multiplying it by a constant luminance value, and when TGE is 1, only the texture pattern (sprite pattern) is drawn. SIZ designates the size of the rectangular area, 00 designates the H and W fields, 01 designates 1 × 1, 10 designates 8 × 8, and 11 designates 16 × 16.
[0087]
Next, as a local-local transfer command (command code = 4h), that is, a transfer command between frame buffers, for example, a rectangular area transfer command is as shown in FIG. 22, and the data configuration is as shown in FIG. This rectangular area transfer command gives, after the command code (including options), the upper left point of the source rectangular area, the upper left point of the destination rectangular area, and the width and height of the rectangular area as command arguments. In the figure, CODE indicates a command code and an option, SX and SY indicate the coordinates of the upper left point of the source (transfer source) rectangular area, and DX and DY indicate the coordinates of the upper left point of the destination (transfer destination) rectangular area. , W indicates the width of the rectangular area, and H indicates the height of the rectangular area.
[0088]
Next, the host local transfer command (command code = 5h) is as shown in FIG. 24, and the data configuration is as shown in FIG. The host local transfer command is a transfer command between the CPU and the frame buffer, and gives, as a command argument, a command code (including an option), for example, the upper left point of the destination rectangular area, the width and height of the rectangular area, and the transfer data. . In the figure, CODE indicates a command code and an option, DX and DY indicate the coordinates of the upper left point of the destination (destination) rectangular area, W indicates the width of the rectangular area, H indicates the height of the rectangular area, FRAM0 to FRAMn indicate transfer data.
[0089]
Next, the local host transfer command (command code = 6h) is as shown in FIG. 26, and the data configuration is as shown in FIG. The local host transfer command is a transfer command between the frame buffer and the CPU, and gives, for example, the upper left point of the source rectangular area and the width and height of the rectangular area as command arguments. In the figure, CODE indicates a command code and an option, SX and SY indicate the coordinates of the upper left corner of the source (transfer source) rectangular area, W indicates the width of the rectangular area, and H indicates the height of the rectangular area. Also, a command (parameter read) using a general-purpose port cannot be performed during local host transfer.
[0090]
Next, the setting command (command code = 7h) is a command for setting various parameter registers as shown in FIG. This gives the command code (including the address) and the set value. In the figure, CODE indicates a command code and an option, ADDR indicates an address, and DATA indicates a parameter.
[0091]
Here, among these setting commands, the mode (MODE) setting command (address = 1h) has the configuration shown in FIG. 29, and the TPF in the figure is the pixel depth of the texture pattern (sprite pattern in the case of splice). 00 indicates a 4-bit mode (CLUT), 01 indicates an 8-bit mode (CLUT), and 10 indicates a 16-bit mode (direct). DTD is 0 when dithering is not performed, and 1 when dithering is performed. When DFE is 0, only fields not displayed during interlace are drawn, and when 1, DFE is drawn in both fields during interlace. ABR indicates a translucent rate, when 00 is 0.50 × F + 0.50 × B, when 01 is 1.00 × F + 1.00 × B, when 10 is 0.50 × F + 1.00 × B, 11 indicates 0.25 × F + 1.00 × B (F corresponds to the foreground and B corresponds to the background). TBX indicates a texture pattern source space x direction base address (upper 4 bits), and TBY indicates a texture pattern source space y direction base address (upper 1 bit).
[0092]
A texture pattern repeat (TEXTURE PATTERN REPEAT) setting command (address = 2h) among the setting commands has a configuration shown in FIG. 30, in which TUM is a texture pattern U coordinate repetition mask and TVM is a texture pattern V coordinate repetition mask. TUA indicates a texture pattern repetition U upper fixed address, and TUA indicates a texture pattern repetition V upper fixed address.
[0093]
Next, among the setting commands, the clipping start (CLIPPING START) setting command (address = 3h) and the clipping end (CLIPPING END) setting command (address = 4h) have the configuration shown in FIG. FIG. 31A shows a clipping start setting command, and FIG. 31B shows a clipping end setting command. Clipping is valid for polygon (triangle) / straight line / sprite drawing commands and has no effect on host local / local local transfers. In the figure, CTX indicates the X address (10 bits) of the upper left point of clipping, CTY indicates the Y address (9 bits) of the upper left point of clipping, CBX indicates the X address (10 bits) of the lower right point of clipping, and CBY Indicates the Y address (9 bits) of the lower right point of clipping.
[0094]
Next, among the setting commands, an offset (OFFSET) setting command (address = 5h) has a configuration shown in FIG. 32, where OFX is a coordinate offset value (X) (signed 11 bits), and OFY is a coordinate offset value. (Y) (signed 11 bits).
[0095]
Next, the special command (address = 0h) has a configuration shown in FIG. 33. The special commands include an interrupt request enable command and a NOP command described later. This is specified by command and option.
[0096]
Among the special commands, an IRQ (interrupt request) generation command has a configuration shown in FIG. 34 and asserts the IRQ pin.
[0097]
In addition, among special commands, a NOP (no operation) command has a configuration shown in FIG. 35, and does nothing at this time.
[0098]
Further, the cache flush command among the special commands has a configuration shown in FIG. 36, and flushes the contents of the texture cache and the CLUT. However, when the host local transfer and the local host transfer are performed, only the texture cache is automatically flushed (the CLUT is saved).
[0099]
Also, among the special commands, the block write command has the configuration shown in FIG. 37, and the data configuration becomes as shown in FIG. This command initializes the rectangle at high speed. Note that W and H in the figure indicate the size of the rectangular area. Further, R, G, and B are designated by 8 bits, but the values actually written into the memory are only the above 4 bits. The start position (X0, Y0) and size (H, V) of the rectangular area are both specified as integral multiples of 32 pixels. The lower 4 bits have no meaning.
[0100]
The GPU 62 has a dedicated local memory, which is used not only as a frame buffer for display but also as an area for a texture pattern or a texture CLUT. That is, this local memory is the frame buffer 63 of FIG.
[0101]
As the addressing to the frame buffer 63, the area drawn by the GPU 62 has a size of 0 to 1023 in the x direction and 0 to 511 in the y direction. The correspondence with the one-dimensional address of the local memory (frame buffer 63) is as follows.
One-dimensional address = X A + Y A × 1024
It is. However, in the case of 24-bit mode,
One-dimensional address = (3/2) × X A + Y A × 1024
It is.
[0102]
Since the page size of the frame buffer 63 is fixed at 1024, XA is actually a column address and Y is A Corresponds to the row address. Drawing can be performed anywhere in the frame buffer 63, and an arbitrary area in the frame buffer 63 can be displayed. However, the size that can be displayed is limited depending on the mode. Further, the address X of the frame buffer 63 A , Y A Are designated by 10-bit and 9-bit unsigned, respectively. However, the coordinate values x and y used for drawing the polygon are each specified by an 11-bit signed code. Further, the drawing is performed in the frame buffer 63 using the value obtained by adding the offset (OFX, OFY) specified by the offset register to (x, y) as an address. However, no image is drawn in an area exceeding the size of the mounted frame memory, 1024 × 512.
[0103]
Next, the pixel format will be described. The GPU 63 has a 24-bit mode of R: G: B = 8: 8: 8 (bit) as shown in (a) of FIG. 39 and an R: G: B = 5 as shown in (b) of FIG. : 5: 5 (bit) 16-bit mode is supported. However, it is not possible to draw in the 24-bit mode only for display. In the figure, R indicates a red component, G indicates a green component, B indicates a blue component, and STP indicates an overwrite flag. In some modes, when 1 is designated as STP, the contents of the pixel are saved even if a new drawing is executed on that pixel thereafter. As a result, the pattern drawn first can be held.
[0104]
Next, according to this configuration example format, when rendering a polygon / sprite, texture mapping can be performed using a pattern (texture pattern or sprite pattern) placed on a texture page. In the following description, (x, y) indicates coordinates in the drawing space, and (u, v) indicates coordinates in the texture page space.
[0105]
First, an area in the frame buffer where a texture pattern or a sprite pattern is placed is called a texture page or a texture page space. As the pixel format of the texture pattern or the sprite pattern, there are three modes of 4, 8, and 16 bits / pixel. The 4-bit and 8-bit modes are pseudo colors, and the 16-bit mode is direct colors. These modes can be switched for each polygon or sprite. For texture patterns and sprite patterns other than the 16-bit mode, several pixels are packed in one word. Therefore, the pixels of the texture pattern or sprite pattern and the addresses of the frame buffer do not correspond one-to-one. Therefore, care must be taken in specifying addresses when loading texture patterns and sprite patterns into the frame buffer. The pixel format in each mode is as shown in FIG. 40 below.
[0106]
In the case of 4 bits / pixel and 8 bits / pixel shown in FIGS. 40A and 40B, the pixel value is not an actual luminance value but an index into the CLUT. From this, the pixels are converted to a 16-bit color format using the CLUT as shown in FIG. In the figure, R indicates a red component, G indicates a green component, B indicates a blue component, and STP indicates a translucent flag.
[0107]
In the case of 16 bits / pixel, the CLUT is not used and is directly used as a luminance value. This format is as shown in FIG. 42 similar to FIG. In the drawing, R indicates a red component, G indicates a green component, B indicates a blue component, and STP indicates a translucent flag. Pixels for which 1 is designated as STP are rendered translucent, and the translucent rate can be set independently for each polygon or sprite.
[0108]
Further, in the case of the 4-bit mode or the 8-bit mode, the color (luminance) of the texture can be determined using the texture CLUT. Although there can be any number of texture CLUTs in the frame buffer, only one type of CLUT can be used in one drawing command. CLUT can be selected by designating the start address on the frame buffer. The start address is specified by the CBA of the command argument.
[0109]
The GPU 62 has a texture CLUT cache inside, and loads a new CLUT if there is no necessary CLUT in the cache prior to polygon rendering. Therefore, when the same CLUT is used repeatedly, the drawing speed is increased by the load of the CLUT.
[0110]
Next, the flow of image information generation and image information processing to which the system and the format of the above configuration example are applied will be described with reference to FIG.
[0111]
In FIG. 43, in step S10, three-dimensional image data composed of a plurality of polygons is read out from a CD-ROM disk and stored in the main memory 53. In step S11, a color information table as characteristic data designated for each polygon is provided. The texture pattern information and the translucency specifying data are stored in the frame buffer 63.
[0112]
In step S12, two-dimensional image information is generated from the three-dimensional image data by performing coordinate transformation processing such as perspective transformation in the graphic system 60. In the next step S13, the two-dimensional image information and the characteristics of each polygon are determined. The information is combined with the information for designation to generate a drawing command packetized for each polygon.
[0113]
In step S14, a two-dimensional image is drawn in the frame buffer 63 based on the characteristic data specified by the generated drawing command.
[0114]
In the next step S15, the two-dimensional image data is read out from the frame buffer 63 in synchronization with the television synchronization signal, and supplied to the display device via the video output means 65.
[0115]
As described above, in the configuration example of the present invention, the rendering command can be shortened by giving an offset to the texture coordinates to shorten the word length of the texture coordinates. In addition, since the CLUT of the texture can be specified for each drawing polygon or sprite, the number of colors is not limited even if a pseudo color texture is used. Further, since the translucency is specified for each drawing polygon or sprite, information for specifying the translucency for each pixel is not required. Further, since the texture coordinates and the vertex coordinates can be specified at the same time, the color of the texture map polygon can be changed without changing the texture pattern itself. Further, since a value of minus (subtraction) can be designated as the translucency instead of the usual value of 0 to 1.0, the luminance value of the pixel already drawn can be subtracted. In addition, when specifying the vertex coordinates of the polygon to be drawn using the connected vertices, by limiting the number of connected vertices to 3 and 4, the end code is not required, and the vertex specification in which the drawing instruction length is shortened can be performed. It becomes possible. In addition, since the coordinate offset of the drawing can be changed in the middle of the drawing command, it is possible to easily perform the parallel movement on the display screen in units of objects (real objects, that is, objects to be drawn).
[0116]
Further, in the configuration example of the present invention, when an image is used as a texture pattern, on / off of the translucency is designated by the most significant bit of the pixel, so that a specific α plane for setting the translucency is not included. Not needed. Further, when the image is used as a background screen, overwriting prohibition / permission can be designated by the most significant bit of the pixel, so that the foreground can be drawn first. When an image is used as a texture pattern, a plurality of modes (the 4-bit mode, 8-bit mode, 16-bit mode, etc.) can be selected according to the color mode. And the pseudo color method can be mixed. Furthermore, various texture types can be selected according to the quality of the frame buffer and the texture image.
[0117]
【The invention's effect】
As is clear from the above description, in the present invention, three-dimensional image data composed of a plurality of polygons is stored, characteristic data designated for each polygon is stored, and perspective transformation is performed on the three-dimensional image data. By converting the information into two-dimensional image information corresponding to the display screen, and combining the information for designating the characteristics of the polygon and the two-dimensional image information to generate a drawing instruction packetized for each polygon. It is possible to generate image information that can shorten the length and reduce the consumption of the source video memory.
[Brief description of the drawings]
FIG. 1 is a block circuit diagram showing a schematic configuration of an image processing system to which the present invention is applied.
FIG. 2 is a diagram for describing display on a display.
FIG. 3 is a diagram for describing display settings on a display.
FIG. 4 is a diagram for explaining a drawing clipping function;
FIG. 5 is a diagram illustrating a texture page.
FIG. 6 is a diagram for explaining a CLUT structure.
FIG. 7 is a diagram for explaining the concept of polygon or sprite drawing.
FIG. 8 is a diagram for explaining frame double buffering.
FIG. 9 is a diagram showing a configuration of a command format (1) of a drawing command.
FIG. 10 is a diagram illustrating an example of performing coordinate offset in the command format (1).
FIG. 11 is a diagram illustrating a configuration of a command format (2) of a drawing command.
FIG. 12 is a diagram illustrating an example of performing coordinate offset in the command format (2).
FIG. 13 is a diagram showing a configuration of a CBA.
FIG. 14 is a diagram illustrating a configuration of a TSB.
FIG. 15 is a diagram showing a format of a triangle drawing command.
FIG. 16 is a diagram illustrating a data configuration example of a triangle drawing command.
FIG. 17 is a diagram showing a format of a straight line drawing command.
FIG. 18 is a diagram showing a format of a termination code required when drawing a connection straight line.
FIG. 19 is a diagram illustrating a data configuration example of a straight line drawing command.
FIG. 20 is a diagram showing a format of a sprite drawing command.
FIG. 21 is a diagram illustrating a data configuration example of a sprite drawing command.
FIG. 22 is a diagram showing a format of a local transfer command.
FIG. 23 is a diagram illustrating a data configuration example of a local transfer command.
FIG. 24 is a diagram showing a format of a host local transfer command.
FIG. 25 is a diagram illustrating a data configuration example of a host local transfer command.
FIG. 26 is a diagram showing a format of a local host transfer command.
FIG. 27 is a diagram illustrating a data configuration example of a local host transfer command.
FIG. 28 is a diagram showing a format of a setting command.
FIG. 29 is a diagram showing a format of a mode setting command.
FIG. 30 is a diagram showing a format of a texture pattern repetition setting command.
FIG. 31 is a diagram showing a format of a clipping start and clipping end setting command.
FIG. 32 is a diagram showing a format of an offset setting command.
FIG. 33 is a diagram showing a format of a special command.
FIG. 34 is a diagram showing a format of an IRQ generation command.
FIG. 35 is a diagram showing a format of a NOP command.
FIG. 36 is a diagram showing a format of a cache flush command.
FIG. 37 is a diagram showing a format of a block write command.
FIG. 38 is a diagram illustrating a data configuration example of a block write command.
FIG. 39 is a diagram showing a pixel format.
FIG. 40 is a diagram showing a texture pattern format.
FIG. 41 is a diagram illustrating a 16-bit color format in which 4 bits / pixel and 8 bits / pixel are converted using a CLUT.
FIG. 42 is a diagram showing a format of 16 bits / pixel.
FIG. 43 is a flowchart showing a flow of processing of image information generation and image information processing applied in the system of this configuration example.
FIG. 44 is a block circuit diagram illustrating a configuration example of a conventional image creating device (home-use game machine).
FIG. 45 is a diagram used to explain an image creation method by a conventional image creation device.
[Explanation of symbols]
51 CPU
52 Peripheral device controller
53 Main memory
54 ROM
60 Graphic System
61 Geometry Transfer Engine (GTE)
62 Graphics Processing Unit
63 frame buffer
64 image decoder (MDEC)
65 Video output means (display device)
70 sound system
71 Sound Processing Unit (SPU)
72 sound buffer
73 speaker
80 Optical disk controller
81 Disk Drive Unit
82 decoder
83 buffers
90 Communication control unit
91 Communication controller
92 Controller
93 Memory card
101 Parallel I / O port
102 Serial I / O port

Claims (14)

複数のポリゴンからなる3次元画像データを記憶する第1の記憶手段と、
各ポリゴン毎に指定される特性データを記憶する第2の記憶手段と、
上記3次元画像データに透視変換を施して、表示画面に対応する2次元画像情報に変換する変換手段と、
上記特性データと上記2次元画像情報とを合成して、ポリゴン毎に描画命令を生成する描画命令生成手段と、を有してなること
を特徴とする画像情報生成装置。
First storage means for storing three-dimensional image data composed of a plurality of polygons;
Second storage means for storing characteristic data designated for each polygon;
Conversion means for performing a perspective transformation on the three-dimensional image data to convert it into two-dimensional image information corresponding to a display screen;
By synthesizing the above characteristics data and the two-dimensional image information, the image information generating device comprising a drawing command generation means for generating a portrayal instruction, to become a for each polygon.
上記特性データは色情報テーブルであること
を特徴とする請求項1記載の画像情報生成装置。
2. The image information generating apparatus according to claim 1, wherein said characteristic data is a color information table.
上記特性データにはテクスチャパターン情報と、色情報テーブルとであること
を特徴とする請求項1記載の画像情報生成装置。
2. The image information generating apparatus according to claim 1, wherein the characteristic data includes texture pattern information and a color information table.
上記特性データには、半透明率指定データであること
を特徴とする請求項1記載の画像情報生成装置。
2. The image information generation apparatus according to claim 1, wherein the characteristic data is translucency designation data.
上記半透明率は、複数種類決められていること
を特徴とする請求項4記載の画像情報生成装置。
The transparency factor, the image information generating apparatus according to claim 4, characterized in that the predetermined multiple several.
請求項1から5のいずれか一項に記載の画像情報生成装置であって、  The image information generating device according to claim 1, wherein:
前記描画命令生成手段は、前記描画命令を逐次生成する際に、該描画命令で指定する描画内容が、直前の描画命令で指定された描画内容と同じ場合に、該描画命令として、直前の描画命令で描画されたポリゴンの座標値からのオフセット値を用いること  The drawing command generation means, when sequentially generating the drawing command, if the drawing content specified by the drawing command is the same as the drawing content specified by the immediately preceding drawing command, the drawing command Using the offset value from the coordinate value of the polygon drawn by the instruction
を特徴とする画像情報生成装置。An image information generating apparatus characterized by the above-mentioned.
複数のポリゴンからなる3次元画像データを記憶し、
各ポリゴン毎に指定される特性データを記憶し、
上記3次元画像データに透視変換を施して、表示画面に対応する2次元画像情報に変換し、
上記特性データと上記2次元画像情報とを合成して、ポリゴン毎に描画命令を生成すること
を特徴とする画像情報生成方法。
Stores three-dimensional image data consisting of a plurality of polygons,
Stores the characteristic data specified for each polygon,
Performing a perspective transformation on the three-dimensional image data to convert it into two-dimensional image information corresponding to a display screen;
By synthesizing the above characteristics data and the two-dimensional image information, the image information generating method characterized by generating a portrayal instructions per polygon.
上記特性データは色情報テーブルであること
を特徴とする請求項記載の画像情報生成方法。
8. The method according to claim 7, wherein the characteristic data is a color information table.
上記特性データにはテクスチャパターン情報と、色情報テーブルとであること
を特徴とする請求項記載の画像情報生成方法。
8. The method according to claim 7, wherein the characteristic data includes texture pattern information and a color information table.
上記特性データには、半透明率指定データであること
を特徴とする請求項に記載の画像情報生成方法。
8. The image information generating method according to claim 7 , wherein the characteristic data is translucency specifying data.
上記半透明率は、複数種類決められていること
を特徴とする請求項10記載の画像情報生成方法。
The transparency factor is image information generation method of claim 10, wherein that the determined multi several.
請求項7〜11のいずれか一項に記載の画像情報生成方法であって、  The image information generating method according to claim 7, wherein:
前記描画命令を逐次生成する際に、該描画命令で指定する描画内容が、直前の描画命令  When sequentially generating the drawing command, the drawing content specified by the drawing command is the same as the immediately preceding drawing command. で指定された描画内容と同じ場合に、該描画命令として、直前の描画命令で描画されたポリゴンの座標値からのオフセット値を用いることUse the offset value from the coordinate value of the polygon drawn by the immediately preceding drawing command as the drawing command in the case where the drawing content specified in the above is the same.
を特徴とする画像情報生成方法。An image information generation method characterized by the following.
請求項1からのいずれか一項に記載の画像情報生成装置において、
上記描画命令生成手段により生成された描画命令により指定された特性データに基づき2次元画像を画像メモリに描画する描画手段と、
当該画像メモリから2次元画像データをテレビジョン同期信号に同期して読み出し、表示手段に供給する供給手段と、
を有してなること
を特徴とする画像情報生成装置。
In the image information generating device according to any one of claims 1 to 6 ,
Drawing means for drawing a two-dimensional image in an image memory based on characteristic data designated by the drawing command generated by the drawing command generating means;
Supply means for reading two-dimensional image data from the image memory in synchronization with a television synchronization signal and supplying the read data to a display means;
An image information generating apparatus comprising:
請求項7から12のいずれか一項に記載の画像情報生成方法において、
上記生成された描画命令により指定された特性データに基づき2次元画像を画像メモリに描画し、
当該画像メモリから2次元画像データをテレビジョン同期信号に同期して読み出し、出力すること
を特徴とする画像情報生成方法。
In the image information generating method according to any one of claims 7 to 12 ,
Drawing a two-dimensional image in an image memory based on the characteristic data specified by the generated drawing command,
An image information generating method, wherein two-dimensional image data is read out from the image memory in synchronization with a television synchronization signal and output.
JP31426695A 1994-12-02 1995-12-01 Image information generating apparatus and method, image information processing apparatus and method, and recording medium Expired - Fee Related JP3548642B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31426695A JP3548642B2 (en) 1994-12-02 1995-12-01 Image information generating apparatus and method, image information processing apparatus and method, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP30002194 1994-12-02
JP6-300021 1994-12-02
JP31426695A JP3548642B2 (en) 1994-12-02 1995-12-01 Image information generating apparatus and method, image information processing apparatus and method, and recording medium

Publications (2)

Publication Number Publication Date
JPH08212377A JPH08212377A (en) 1996-08-20
JP3548642B2 true JP3548642B2 (en) 2004-07-28

Family

ID=26562181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31426695A Expired - Fee Related JP3548642B2 (en) 1994-12-02 1995-12-01 Image information generating apparatus and method, image information processing apparatus and method, and recording medium

Country Status (1)

Country Link
JP (1) JP3548642B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6149520A (en) 1996-08-21 2000-11-21 Konami Co., Ltd. Video game method and apparatus for effecting character movement and ball control determination
JP3345384B2 (en) 2000-01-12 2002-11-18 コナミ株式会社 GAME SYSTEM AND ITS PERIPHERAL DEVICE, GAME SYSTEM CONTROL METHOD
JP2001209369A (en) 2000-01-25 2001-08-03 Mitsubishi Electric Corp Data generation method and recording medium for three- dimensional graphics
US7119813B1 (en) * 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US7002591B1 (en) * 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US20090278845A1 (en) * 2005-10-03 2009-11-12 Ssd Company Limited Image generating device, texture mapping device, image processing device, and texture storing method
US7973797B2 (en) * 2006-10-19 2011-07-05 Qualcomm Incorporated Programmable blending in a graphics processing unit

Also Published As

Publication number Publication date
JPH08212377A (en) 1996-08-20

Similar Documents

Publication Publication Date Title
JP3578498B2 (en) Image information processing device
CA2164269C (en) Image processing in which the image is divided into image areas with specific color lookup tables for enhanced color resolution
US6069635A (en) Method of producing image data and associated recording medium
JP3647487B2 (en) Texture mapping device
JP4719363B2 (en) Graphics system with copy-out conversion between internal frame buffer and main memory
JP3725524B2 (en) Method for generating computer display image and computer processing system and graphics processor for generating image data
US7576748B2 (en) Graphics system with embedded frame butter having reconfigurable pixel formats
US5760782A (en) Method and apparatus for generating images
US7212215B2 (en) Apparatus and method for rendering an antialiased image
JP3462566B2 (en) Image generation device
JP3548642B2 (en) Image information generating apparatus and method, image information processing apparatus and method, and recording medium
JPH06180753A (en) Sound/picture processor
JP3348152B2 (en) Game system
JP4683760B2 (en) Graphics system with embedded frame buffer having a reconfigurable pixel format
JP3910259B2 (en) Image processing apparatus and method, and rendering apparatus and method
JP3547236B2 (en) Image information generating apparatus and method, and image information processing apparatus and method
JP2002032780A (en) Game system, program and information storage medium
JP3698747B2 (en) Image data generation method and image processing system
JPH08163560A (en) Picture information generation method, picture information processing method and recording medium
JPH08161511A (en) Image generating device
JPH10334249A (en) Image information generating method, image information generator and recording medium
MXPA95004904A (en) Method for producing image data, image data processing device and regis medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040419

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 10

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees