JP3479184B2 - 画像生成方法および画像生成装置 - Google Patents
画像生成方法および画像生成装置Info
- Publication number
- JP3479184B2 JP3479184B2 JP13070796A JP13070796A JP3479184B2 JP 3479184 B2 JP3479184 B2 JP 3479184B2 JP 13070796 A JP13070796 A JP 13070796A JP 13070796 A JP13070796 A JP 13070796A JP 3479184 B2 JP3479184 B2 JP 3479184B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- curved surface
- image
- function generator
- spline function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Description
コンピュータグラフィックスに適用される画像生成装置
に関し、特に、曲面の描画に関する。
は、多数のポリゴン(例えば三角形や四角形などの多角
形)の集合として物体を表示している。このため、3次
元コンピュータグラフィックスに適用される画像生成装
置において、曲面を含む画像の当該曲面部分を、より自
然に表現しようとする場合には、細かい多くのポリゴン
を生成して画像を描画画像を生成するようにする必要が
ある。
データを格納するためには、大容量のメモリが必要であ
り、ゲーム機などのようにメモリ容量に制限がある場合
には、ポリゴンの大きさが大きくなり、きめの細かい曲
面を表現することが困難である。
イン関数等を合成して表現し、ポリゴンの頂点座標の代
わりに曲面を決定するコントロールポイントのデータの
みをメモリに格納して、メモリを節約する手法が用いら
れている。
等の多次元関数であるスプライン関数を高速に生成しな
ければならず、多数個の積和演算器が必要になる。この
ため、ハードウエア構成が複雑になり、LSI化したと
きに、チップ面積が大きくなり、また、高価格になって
しまう。
を表現するスプライン関数として、曲面を容易に分割す
ることができるベゼー曲面等の関数を用いる方法が、一
般的に使用されている。
使用して描画を行う場合には、使用できるスプライン関
数が限定されてしまうため、表現できる曲面形状に制約
があり、少ないデータ量で表現できる曲面形状には限界
があった。
ハードウエアを用いると共に、曲面を表現するために使
用するスプライン関数に制限がなく、しかも、少ないデ
ータ量で滑らかな曲面を高速に描画することができる画
像生成方法および画像生成装置を提供することを目的と
する。
に、この発明による画像生成方法は、n次のスプライン
関数が用いられて表現される曲面の形状を決定するため
のコントロールポイントのデータを用いて前記曲面の画
像を生成する方法において、前記コントロールポイント
のデータを加工して得られる初期値データと、前記曲面
を分割したときの分割ステップの情報とを微分解析器に
与えて、この微分解析器を初期化する第1の工程と、前
記微分解析器から前記分割ステップごとのスプライン関
数の値を得る第2の工程と、前記第2の工程で得られた
スプライン関数の値を元にして、前記分割ステップで前
記曲面が分割されたときの各分割平面の情報を発生する
第3の工程と、を実行して、前記曲面の画像を生成する
ものである。
分解析器からなる関数発生器と、ポリゴン分割手段と、
このポリゴン分割手段からのポリゴンデータを表示する
ためのデータに変換する変換手段と、を備え、前記ポリ
ゴン分割手段は、n次のスプライン関数が用いられて表
現されている曲面の形状を決定するためのコントロール
ポイントのデータを加工して得られる初期値データと、
前記曲面を分割したときの分割ステップの大きさの情報
とを前記関数発生器に与え、前記関数発生器から得られ
る前記分割ステップごとのスプライン関数の値を取得
し、この取得した値を元にして、前記分割ステップで前
記曲面が分割されたときの各分割平面のポリゴンデータ
を発生するようにすることを特徴とするものである。
の加算器を用いて構成することが可能な微分解析器から
なる関数発生器に、曲面の形状を決定するためのコント
ロールポイントのデータを加工して得られる初期値デー
タと、前記曲面を分割したときの分割ステップの大きさ
の情報とを与えると、この関数発生器から描画しようと
する曲面を分割した、分割ステップごとのスプライン関
数の値が得られる。
イン関数の値から、そのスプライン関数で表現される曲
面を分割したときの各分割平面のポリゴンデータが生成
される。このポリゴンデータを、表示のための、例えば
ポリゴン頂点座標データに変換すれば、曲面が描画され
る。
法および画像生成装置の一実施の形態を、ゲーム機に適
用した場合について、図を参照しながら説明する。
成装置の構成例を示すもので、この例は3Dグラフィッ
クス機能と、動画再生機能とを備えるゲーム機の場合の
例である。
ので、この例のゲーム機は、ゲーム機本体1と、ユーザ
の操作入力部を構成するコントロールパッド2とからな
る。コントロールパッド2は、このコントロールパッド
2に接続されているケーブル3の先端に取り付けられて
いるコネクタプラグ4を、ゲーム機本体1のコネクタジ
ャック5Aに結合させることにより、ゲーム機本体1に
接続される。この例では、いわゆる対戦ゲーム等のため
に、2個のコントロールパッド2がゲーム機本体1に対
して接続することができるように、2個のコネクタジャ
ック5A,5Bがゲーム機本体1に設けられている。
画像データが書き込まれたCD−ROMディスク6をゲ
ーム機本体1に装填することにより、ゲームを楽しむこ
とができる。
生成装置の構成について説明する。この例の画像生成装
置としてのゲーム機は、メインバス10と、サブバス2
0とからなる2つのシステムバスを備える構成を有して
いる。これらメインバス1と、サブバス2との間のデー
タのやり取りは、バスコントローラ30により制御され
る。
U11と、メインメモリ12と、画像伸長部13と、前
処理部14と、描画処理部15と、メインのDMAコン
トローラ16(以下、メインDMACという)が接続さ
れている。描画処理部15には、処理用メモリ17が接
続されていると共に、この描画処理部15は表示データ
用のいわゆるフレームメモリと、D/A変換回路を含
み、この描画処理部15からのアナログビデオ信号がビ
デオ出力端子18に出力される。図示しないが、このビ
デオ出力端子18は、表示装置としての例えばCRTデ
ィスプレイに接続される。
ブメモリ22と、ブートROM23と、サブのDMAコ
ントローラ24と、音声処理用プロセッサ25と、入力
部26と、CD−ROMデコーダ27と、拡張用の通信
インターフェース部28とが接続される。ブートROM
23には、ゲーム機としての立ち上げを行うためのプロ
グラムが格納されている。また、音声処理用プロセッサ
25に対しては、音声処理用メモリ25Mが接続されて
いる。そして、この音声処理用プロセッサ25はD/A
変換回路を備え、これよりはアナログ音声信号を音声出
力端子29に出力する。
D−ROMドライバ40に接続されており、CD−RO
Mドライバ40に装填されたCD−ROMディスク6に
記録されているアプリケーションプログラム(例えばゲ
ームのプログラム)やデータをデコードする。CD−R
OMディスク6には、例えば離散コサイン変換(DC
T)により画像圧縮された動画や静止画の画像データ
や、ポリゴンを修飾するためのテクスチャー画像の画像
データも記録されている。
ンプログラムには、ポリゴン描画命令が含まれており、
曲面の場合には、使用するスプライン関数を特定するデ
ータと、曲面を決定するコントロールポイントのデータ
が、このCD−ROM31に記憶されている。後述する
ように、コントロールポイントのデータの代わりに、微
分解析器からなるスプライン関数発生器に与える初期化
データに適するデータを記憶しておくようにしてもよ
い。
てのコントロールパッド2と、ビデオ信号の入力端子
と、音声信号の入力端子を備えるものである。
各部の管理および制御を行なう。また、このメインCP
U11は、物体を多数のポリゴンの集まりとして描画す
る場合の処理の一部を行う。メインCPU11は、後述
もするように、1画面分の描画画像を生成するための描
画命令例をメインメモリ12上に作成する。
ュメモリ11Mを有し、CPUインストラクションの一
部は、メインバス10からフェッチすることなく実行で
きる。さらに、メインCPU11には、描画命令を作成
する際にポリゴンについての座標変換演算を行なうため
の座標演算部11Gが、CPU内部コプロセッサとして
設けられている。座標演算部11Gは、3次元座標変換
及び3次元から表示画面上の2次元への変換の演算を行
なう。
命令キャッシュ11Mと座標演算部11Gを有している
ため、その処理をメインバス10を使用しなくても、あ
る程度行うことができるため、メインバス10を開放し
やすい。
データに対しては、圧縮された画像データのメモリ領域
と、伸長デコード処理された伸長画像データのメモリ領
域とを備えている。また、メインメモリ12は、描画命
令列などのグラフィックスデータのメモリ領域(これを
パケットバッファという)を備える。このパケットバッ
ファは、メインCPU11による描画命令列の設定と、
描画命令列の描画処理部への転送とに使用される。
6から再生された圧縮画像データの伸長処理を行なうも
ので、ハフマン符号のデコーダと、逆量子化回路と、逆
離散コサイン変換回路のハードウエアを備える。ハフマ
ン符号のデコーダの部分は、メインCPU11がソフト
ウエアとしてその処理を行うようにしてもよい。
転送されてくる描画命令を実行して、その結果をフレー
ムメモリに書き込む。フレームメモリから読み出された
画像データは、D/A変換器を介してビデオ出力端子1
8に出力され、画像モニター装置の画面に表示される。
サの構成とされるもので、メインCPU11の処理の一
部を分担することができるようにするものである。この
例の場合には、後述するように、この前処理部14にお
いて、曲面についての画像生成処理を行うようにする。
その場合には、曲面分割処理と、分割処理により得られ
た多数個のポリゴンデータを、表示のための2次元座標
データに変換する処理も、この前処理部14が行う。
に説明する。
取り込み]図3の例のゲーム機に電源が投入され、ゲー
ム機本体1にCD−ROMディスク6が装填されると、
ブートROM23の、ゲームを実行するためのいわゆる
初期化処理をするためのプログラムが、サブCPU21
により実行される。すると、CD−ROMディスク6の
記録データが次のようにして取り込まれる。
圧縮画像データ、描画命令及びメインCPU11が実行
するプログラムが、CD−ROMドライバ40、CD−
ROMデコーダ27を介して読み出され、サブDMAC
24によってサブメモリ22に一旦ロードされる。
たデータは、サブDMACおよびバスコントローラ3
0、さらにはメインDMAC16によってメインメモリ
12に転送される。なお、サブCPU21は、描画処理
部15のフレームに対して直接的にアクセスできるよう
に構成されており、このサブCPU21によっても表示
画像内容の変更が、描画処理部15の制御とは離れて可
能とされている。
メモリ12の入力データのうち、圧縮画像データは、こ
の例では、メインCPU11がハフマン符号のデコード
処理を行った後、再びメインCPU11によりメインメ
モリ12に書き込まれる。そして、メインDMAC16
は、このハフマン符号のデコード処理後の画像データを
メインメモリ12から画像伸長部13に転送する。画像
伸長部13は、逆量子化の処理と、逆DCTの処理を行
って画像データの伸長デコード処理を行う。伸長された
画像データは、メインDMAC16が、メインメモリ1
2に転送する。
タのマクロブロックと呼ばれる単位データが一定量、メ
インメモリ12に蓄積された時点で、当該伸長データを
描画処理部15のフレームメモリに転送する。この際
に、伸長画像データがフレームメモリの画像メモリ領域
に転送されれば、そのまま背景動画像として画像モニタ
ー装置で表示されることになる。また、フレームメモリ
のテクスチャー領域に転送される場合もある。このテク
スチャー領域の画像データは、テクスチャー画像とし
て、ポリゴンの修飾に使用される。
の面を構成するポリゴンは、3次元的な奥行きの情報で
あるZデータに従って奥行き方向の深い位置にあるポリ
ゴンから順に描画することにより、2次元画像表示面に
立体的に画像を表示することができる。メインCPU1
1は、このように奥行き方向の深い位置にあるポリゴン
から順に、描画処理部15で描画が行われるようにする
ための描画命令列をメインメモリ12上に作成する。
ロールパッドからのユーザーの操作入力に基づいて、物
体や視点の動きを計算し、メインメモリ12上にポリゴ
ン描画命令列を作成する。
AC16は、前処理部14を通じて、描画命令毎に、メ
インメモリ12から描画処理部15に転送する。この際
に、前処理部14において、曲面のデータについては後
述のような曲面分割演算およびポリゴン生成処理が施さ
れる。
を順次実行して、その結果を、フレームメモリの描画領
域に格納する。このポリゴン描画の際、データは、描画
処理部15の勾配計算ユニットに送られ、勾配計算が行
なわれる。勾配計算は、ポリゴン描画で多角形の内側を
マッピングデータで埋めていく際、マッピングデータの
平面の傾きを求める計算である。テクスチャーの場合は
テクスチャー画像データでポリゴンが埋められ、また、
グーローシェーディングの場合は輝度値でポリゴンが埋
められる。
つまり、動画テクスチャーの場合には、前述したよう
に、CD−ROMディスクからの圧縮された動画データ
は、一旦、メインメモリ12に読み込まれる。そして、
この圧縮画像データは、画像伸長部13に送られる。画
像伸長部13で、画像データが伸長される。このとき、
前述したように、伸長処理の一部は、メインCPU11
が負担する。
部15のフレームメモリ上のテクスチャー領域に送られ
る。テクスチャー領域は、この描画処理部15のフレー
ムメモリ内に設けられているので、テクスチャーパター
ン自身も、フレーム毎に書き換えることが可能である。
このように、テクスチャー領域に動画を送ると、テクス
チャーが1フレーム毎に動的に書き換えられて変化す
る。このテクスチャー領域の動画により、ポリゴンへの
テクスチャーマッピングを行えば、動画のテクスチャー
が実現される。
処理についての、前処理部14と、描画処理部15の要
部の構成を示す図である。
ポリゴン分割手段141と、スプライン関数発生器14
2と、座標変換手段143とを備える。ポリゴン分割手
段141と、座標変換手段143とは曲線描画処理の場
合の前処理部出の機能をブロックとして示したものであ
る。スプライン関数発生器142は、後述するように複
数の加算器からなる微分解析器で構成される。
ての描画手段151と、フレームメモリ152とからな
る。
は、この例の場合には、曲面のコントローラポイントの
データがメインメモリ12から転送される。ポリゴン分
割手段141は、このコントローラポイントのデータを
加工して、スプライン関数発生器142に供給する初期
化データを生成する。また、ポリゴン分割手段141
は、予め、描画しようとする曲面を分割したときの分割
ステップの大きさを定めておく。そして、生成した初期
化データと、分割ステップの大きさの情報とを、スプラ
イン関数発生器142に与え、このスプライン関数発生
器142を初期化する。
ータを起算点として関数演算処理を行う。そして、各分
割ステップごとのスプライン関数値を生成する。生成さ
れたスプライン関数値は、ポリゴン分割手段141によ
り、読み出される。
数発生器142から読み出したスプライン関数値を元
に、描画しようとする曲面を前記の分割ステップで分割
したときに生じる分割平面の、例えば4角形ポリゴンの
ポリゴンデータを生成する。この各分割平面のポリゴン
データは、座標変換手段143に送られる。座標変換手
段143は、このポリゴンデータを、表示装置としての
CRTディスプレイに適合するスクリーン座標系の2次
元頂点データに変換し、描画手段151に送る。
データに基づいて平面の塗り潰し、必要に応じてテクス
チャーや光源計算から得られた輝度値を元にしたシェー
ディングを施すような処理をした画像データをフレーム
メモリ152に書き込む。フレームメモリ152のデー
タは、適宜、読み出されて、D/A変換され、ビデオ出
力端子18より画像モニター装置としてのCRTディス
プレイに供給されて曲面を含む画像が表示される。
に説明する。
を示すものである。この図2において、u,vは、曲面
に関するパラメータ座標であり、図2のように、曲面に
沿ってそれぞれ矢印の方向に増加するものとする。Q
(u,v)は、この曲面上の点であり、3次元ベクトル
である。今、3次のスプライン関数を用いた曲面を考
え、この曲面のコントロールポイントを3次元ベクトル
Pijとすると、u,v曲面上の点Q(u,v)は、図
5の式(eq1)で表される。
(v)は3次のスプライン関数であり、Bi(u)は図
5の式(eq2)のように表され、Bj(v)は図5の
式(eq3)のように表される。
と、図5の式(eq4)のようになる。ただし、この式
(eq4)のSk(v)は、図5の式(eq5)のよう
に表されるスプライン関数であり、3次元ベクトルであ
る。また、式(eq5)におけるvの各次数の項の係数
Rklは、図5の式(eq6)であり、これも3次元ベ
クトルである。
3次元ベクトルRklが求まると、式(eq5)で表さ
れる3次元ベクトルSk(v)が求まり、これにより点
Q(u,v)が求められることになる。式(eq6)に
おいて、akjおよびaljは、スプライン関数が決ま
れば決まる値であり、CD−ROMディスク6には、曲
面のデータとしてのコントロールポイントのデータのほ
かに、曲面を決定するスプライン関数を特定するための
情報として記憶されている。
方向にH個に、等分割すれば、各々の分割により得られ
る分割平面の頂点は、以下に説明するアルゴリズムによ
り求めることができる。このアルゴリズムを図6および
図7のフローチャートを参照しながら説明する。
6)より、k,l∈{0,1,2,3}に対して、コン
トロールポイントの3次元ベクトルPijから、前記3
次元ベクトルRklを求める。なお、このようにして、
演算により3次元ベクトルRklを求めるのではなく、
予め曲面データとして、コントロールポイントのデータ
の代わりに、この3次元ベクトルRklをCD−ROM
ディスク6に記憶しておき、このCD−ROMディスク
6から直接的に読み出すようにしてもよい。
に進み、この例では、曲面をu方向にG個、v方向にH
個に、等分割するときの、u方向およびv方向の分割ス
テップ幅ΔuおよびΔvを、Δu=1/G、Δv=1/
Hとして設定する。
1,2,3}に対する各々の3次のスプライン関数Sk
(v)の関数発生器に、v方向の分割ステップ幅Δv
と、前記3次元ベクトルRklを渡して、前記スプライ
ン関数発生器を初期化する。すなわち、このときには、
スプライン関数発生器112は、スプライン関数Sk
(v)の関数発生器として働くものである。
値を0、v方向の繰り返しのステップ回数rvを0とし
て初期設定をした後、v方向の以下の処理をrv=H回
だけ、繰り返す。すなわち、ステップS5においては、
rv=H回のv方向の処理が終了したか否か判断し、未
だ、終了していなければ、ステップS6に進む。
において、現在の3次元ベクトルSk(v)を求め、こ
の求めたSk(v)と、u方向の分割ステップ幅Δuと
を、スプライン関数Q(u,v)の関数発生器の初期化
データとして渡して、このスプライン関数発生器を初期
化する。すなわち、このときには、スプライン関数発生
器112は、スプライン関数Q(u,v)の関数発生器
として働くことになる。
値を0、u方向の繰り返しのステップ回数ruを0とし
て初期設定をした後、u方向の以下の処理をru=G回
だけ、繰り返す。すなわち、ステップ85においては、
ru=G回のu方向の処理が終了したか否か判断し、未
だ、終了していなければ、ステップS9に進む。
Q(u,v)の値を求めて、その値をポリゴン分割手段
141に出力する。そして、ステップS10に進み、u
の値を分割ステップ幅Δuだけ大きくすると共に、u方
向の繰り返しステップ回数ruを1だけ、インクリメン
トする。そして、ステップS8〜ステップS10の処理
を繰り返し、u方向の次の分割ステップのところでの、
スプライン関数Q(u,v)の値を求めて、その値をポ
リゴン分割手段141に出力する。
ru=G回だけ繰り返して、v方向の1つの分割ステッ
プのところでの、u方向のすべての分割ステップについ
ての、スプライン関数Q(u,v)の値が求まると、ス
テップS8からステップS11に進み、vの値を分割ス
テップΔvだけ大きくすると共に、v方向の繰り返しス
テップ回数rvを1だけ、インクリメントする。そし
て、ステップS5以降の処理を繰り返す。これにより、
v方向の各分割ステップ点ごとの、u方向のすべての分
割ステップ点についての、スプライン関数Q(u,v)
の値が求まり、その値がポリゴン分割手段141に送ら
れる。
て、ステップS5において、v方向の繰り返しステップ
回数rv=Hとなったことが判別されると、このステッ
プS5からステップS12に進み、ポリゴン分割手段1
41は、蓄えていた各分割ステップ点ごとのスプライン
関数Q(u,v)の値を元にして、G×H個の4角形ポ
リゴンを作成し、これを座標変換手段143に送る。
4角形ポリゴンのデータをCRTディスプレイに表示す
るための2次元頂点データに変換して、描画処理部15
に送る。描画処理部15は、これに基づいて、前述した
ような描画処理を実行し、CRTディスプレイの画面に
は、曲面の画像が表示される。
元ベクトルを扱ったが、同時座標系の4次元ベクトル系
にも同様な手法で拡張可能である。また、上述のアルゴ
リズムでは、分割ステップ幅Δu、Δvごとのスプライ
ン関数Q(u,v)の値を、すべて得た後に、G×H個
の4角形ポリゴンを作成し、これを座標変換手段143
に送るようにしたが、ステップS9において、スプライ
ン関数Q(u,v)が得られた時点で、ポリゴン分割手
段141が対応する4角形ポリゴンを作成して、座標変
換手段143に出力するようにしてもよい。
関数を特定する情報と、曲面のコントロールポイントの
データとを、CD−ROMディスク6に記憶しておくの
ではなく、コントロールポイントのデータに代えて、ス
プライン関数発生器の初期化データに適した情報、例え
ば上記の例で言えば、3次元ベクトルRklを、CD−
ROMディスク6に保存しておくようにすれば、上述し
た計算アルゴリズムの計算時間の短縮化が図れるもので
ある。
ように微分解析器を用いて構成するものであるが、上述
したアルゴリズムの場合のように、3次元ベクトル値を
計算するものである場合には、3種類の微分解析器を用
いて構成することができる。図8は、このように3次元
ベクトル値を計算する場合のスプライン関数発生器14
2の構成の一例を示すものである。
142は、微分解析器を構成する3個の加算器A1、A
2、A3と、4本のバスB0、B1、B2、B3と、4
個のレジスタバンクBANK0、BANK1、BANK2、BANK3と
を備えている。
{0,1,2,3})番目のバスBiは、i番目のレジ
スタバンクBANKiに接続されている。i番目の加算器A
iの2個の入力端は、(i−1)番目のバスB(i−
1)およびi番目のバスBiに接続される。また、この
i番目の加算器Aiの出力端はi番目のバスBiに接続
される。
スタRAiがあるとすると、加算器Aiは、レジスタR
A(i−1)とレジスタRAiからデータを読み出し、
加算した結果をレジスタRAiに書き込むという動作を
行うものである。
関する3次のスプライン関数は、次のようにして、図8
の構成のスプライン関数発生器142から得られる。
スタRAiには、図9Aに示すような初期値が書き込ま
れる。この図9Aから分かるように、この初期値には、
分割ステップ幅Δuが含まれる。なお、このΔuの大き
さは、前述したように、等分割の場合には、その分割数
によって定まるものであり、分割数がユーザの入力や、
CD−ROMディスク6に記憶されている情報に基づい
て設定されることにより、定まるものであり、一定では
ない。もっとも、曲面分割が等分割でない場合であって
も勿論良い。
スタRAiに初期値が設定された後、加算器A1,A
2,A3による加算を同時に実行すると、各レジスタバ
ンクBANKiのレジスタRAiの内容は、その実行回数に
より、図9Bに示すように変わる。この図9Bから分か
るように、加算器A1,A2,A3による加算を、この
例では、3回、同時に実行すると、レジスタRA3に
は、3次のスプライン関数の値が得られるものである。
1,A2,A3による加算を同時に実行すると、レジス
タRA3には、 a・(r・Δu)3 +b・(r・Δu)2 +c・(r・
Δu)+d が格納されるものである。すなわち、分割ステップ幅Δ
uごとの、uに関する3次のスプライン関数がレジスタ
RA3に得られる。したがって、各分割ステップ幅Δu
ごとのr回の加算器A1,A2,A3による加算の同時
実行後のレジスタRA3の値を、スプライン関数発生器
142の出力とすることで、上述したアルゴリズム中の
各分割ステップごとのスプライン関数の値がポリゴン分
割手段141に与えられるものである。
発生する関数発生器は、n個の加算器を用いた微分解析
器により関数発生器を構成して、上述と同様の手法で求
めることができる。
器142の実施例である。この例のスプライン関数発生
器142は、図8の構成に加えて、各加算器A1,A
2,A3の出力側にスイッチ回路SW1,SW2,SW
3を設ける。そして、i番目の加算器Aiの出力側に設
けられるスイッチ回路SWiは、i番目の加算器Aiの
出力を、(i−1)番目のバスB(i−1)あるいはi
番目のバスBiのいずれか一方に選択的に切り換えて接
続するように構成する。これらスイッチ回路SW1〜S
W3は、スプライン関数発生器142内の制御手段(図
示せず)により、切り換え制御されるものである。
場合、各レジスタバンクBANK0,BANK1,BANK2,BANK
3には、以下のレジスタが設けられている。 BANK0:RA0,RA6 BANK1:RA1,RA5 BANK2:RA2,RA4 BANK3:RA3。
W3をすべて図の状態、すなわち、i番目の加算器Ai
の出力を、i番目のバスBiに接続する状態にしたとき
には、それぞれの加算器A1,A2,A3は、以下のよ
うな計算を同時に行い、その計算結果を、矢印で示すよ
うに、対応するレジスタに格納する。 RA3←RA2+RA3 RA2←RA1+RA2 RA1←RA0+RA1。
3をすべて図とは逆の状態、すなわち、i番目の加算器
Aiの出力を、(i−1)番目のバスB(i−1)に接
続する状態にしたときには、それぞれの加算器A1,A
2,A3は、以下のような計算を同時に行い、その計算
結果を、矢印で示すように、対応するレジスタに格納す
る。 RA6←RA6+RA5 RA5←RA5+RA4 RA4←RA4+RA3。
142においては、適当な初期値をRA0,RA1,
…,RA6に予め設定することにより、スイッチ回路S
W1〜SW3を交互に切り換えて行う計算をr回、実行
することにより、レジスタRA6に、 a・(r・Δu)6 +b・(r・Δu)5 +c・(r・
Δu)4+d・(r・Δu)3 +e・(r・Δu)2 +
f・(r・Δu)+g で表される6次のスプライン関数の値を得ることができ
る。
数を増やさずに、効率よく、2m次以上の高次のスプラ
イン関数の計算を行う関数発生器を実現することができ
る。したがって、少ない加算器でも、効率よく高次のス
プライン関数を得ることができる関数発生器を構成する
ことができる。
は、曲面のコントロールポイントのデータPijから3
次元ベクトルRklを求めて、あるいは予めCD−RO
Mディスク6に格納されていた、この3次元ベクトルR
klと分割ステップΔVの大きさの情報とをスプライン
関数発生器142に供給し、スプライン関数発生器14
2は、これらのRklおよび分割ステップΔvの値を用
いて、スプライン関数Sk(v)を計算して、スプライ
ン関数発生器のレジスタに与える初期値を得るようにし
ている。
ルRklと分割ステップΔvから、スプライン関数発生
器142のレジスタに設定する初期値を計算することな
く、直接的に各レジスタに初期値を設定することができ
る。
すれば、前記の図5の式(eq2)および式(eq3)
は、それぞれ図11の式(a−1)および式(a−2)
のように表すことができる。これら式(a−1)および
式(a−2)で、Aは、図11の式(a−3)で示され
るベクトルである。
ータP=Pijを、ベクトル表現すれば、図11の式
(a−4)となり、前記図5の曲面の式(eq1)は、
図11の式(a−5)のように表すことができる。そし
て、この式(a−5)に、図11の式(a−1)、式
(a−2)を代入すれば、式(a−5)は、図11の式
(a−6)のようになる。
例えば図8の回路を、u方向にru回、v方向にrv回
実行して呼び出すとすると、 u=ruΔu (a−7) v=rvΔv (a−8) と表されるので、図11の式(a−6)を、ru、rv
で表せば、図12の式(a−9)に示すように変形する
ことができる。
時加算の実行で、ar3 +br2 +cr+dを出力する
ためには、レジスタRA0,RA1,RA2,RA3の
初期値は、6a,6a+2b,a+b+c,dとする必
要がある。この初期値をベクトルで表すと、図12の式
(a−10)となる。ただし、式(a−10)で、M
は、式(a−11)で表されるベクトルである。
計算する多項式を、初期値ベクトルで分解すると、図1
3の式(a−12)を得る。そして、(M-1)T を用い
て分解すべく、式(a−9)を書き換えると、図13の
式(a−13)のように表すことができる。ここで、式
(a−13)のDは、図14の式(a−14)で表され
るものである。
klを、図5の式(eq6)の3次元ベクトルRklの
代わりに使用すれば、曲面分割アルゴリズムにおいて、
各々の初期化データと、図8の回路の各レジスタバンク
BANK0〜BANK3のレジスタRA0〜RA3に与える初期
値とを等しくすることができ、スプライン関数発生器1
42は、ポリゴン分割手段141から得た初期化データ
をそのままレジスタRA0〜RA3に設定するだけでよ
くなり、計算速度が速くなる。
て、複数個の加算器を同時に動作させる場合に対する初
期値の計算方法についての説明であるが、複数個の加算
器を同時に動作させるのではなく、順次に実行させるよ
うにすることもできる。その場合の初期値は次のような
ものとなる。
成を例にとれば、加算器A1がレジスタRA1に書き込
んだ後に、加算器A2がそれを読み込み、そして、加算
器A2がその結果をレジスタRA2に書き込んだ後に、
加算器A3がそれを読み込む動作を行うものである。こ
の場合、多項式ar3 +br2 +cr+dを計算するた
めに必要な初期値は、図9Bと同様の表を示す図15の
表から、図14に示す式(a−15)であることが分か
る。
わりに、図14の式(a−16)で表されるMを用い
て、図14の前記式(a−14)を計算すると、この例
のスプライン関数発生器のレジスタに直接代入できる初
期値を求めることができる。この手法は、複数個の加算
器を用いた同種のスプライン関数発生器に適用すること
ができる。
ト、スプライン多項式の係数、分割ステップの大きさの
値Δu、Δvから、各種の微分解析器に適切な初期値を
計算して、直接設定して、曲面を分割することができる
ようになる。
制限されることなく、各種の曲面の分割演算を高速にで
きる。また、複数個の加算器を用いた微分解析器を用い
る構成であるので、従来の積和演算器の場合に比べて、
掛け算器が不要になる分、ハードウエアが簡単になり、
安価に構成できる。
タを予めスプライン関数発生器の初期データに適したも
のに変形して、記憶媒体に格納しておくことにより、無
駄な計算を省いて高速に曲面分割処理を行うことができ
る。
ータバスと加算器との構成を適切なものにして、演算資
源を、それほど増やすことなく、高速のスプライン関数
発生器を実現できる。
期値を予め計算して、例えばメインメモリに記憶してお
き、前処理部14がこれを読み出すようにしてもよい。
アルゴリズムでは、外側のループでv方向を、内側のル
ープでu方向を計算して、各々のループで微分解析器を
用いるようにしたが、微分解析器自身や微分解析器のレ
ジスタが限られている場合には、外側のループで微分解
析器を用いずに、図5の式(eq5)を直接、積和演算
により計算し、得られた値を内側のループにおける微分
解析器の演算の初期値とするようにすることも可能であ
る。その場合には、外側のループのみ、vの値を直接扱
うので、式(a−14)のDを、図14の式(a−1
7)に変形して、同様の曲面分割を行うことができる。
ば、簡単なハードウエアを用いることができると共に、
曲面を表現するために使用するスプライン関数に制限が
なく、しかも、少ないデータ量で滑らかな曲面を高速に
描画することができる。
実施の形態を示すブロック図である。
してのゲーム機の構成例を示すブロック図である。
る。
要部の動作手順を説明するフローチャートの一部であ
る。
要部の動作手順を説明するフローチャートの一部であ
る。
る関数発生器の一例のブロック図である。
関数発生動作を説明するために用いる図である。
ける関数発生器の一例のブロック図である。
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
けるスプライン関数発生器に与える初期化データの他の
例を示す図である。
生器、143…座標変換手段、15…描画処理部、15
1…描画手段、152…フレームメモリ、A1〜A3…
加算器、B0〜B3…バス、BANK0〜BANK3…レジスタ
バンク、SW1〜SW3…スイッチ回路
Claims (7)
- 【請求項1】n次のスプライン関数が用いられて表現さ
れる曲面の形状を決定するためのコントロールポイント
のデータを用いて前記曲面の画像を生成する方法におい
て、 前記コントロールポイントのデータを加工して得られる
初期値データと、前記曲面を分割したときの分割ステッ
プの情報とを微分解析器に与えて、この微分解析器を初
期化する第1の工程と、 前記微分解析器から前記分割ステップごとのスプライン
関数の値を得る第2の工程と、 前記第2の工程で得られたスプライン関数の値を元にし
て、前記分割ステップで前記曲面が分割されたときの各
分割平面の情報を生成する第3の工程と、 を実行して、前記曲面の画像を生成する画像生成方法。 - 【請求項2】微分解析器からなる関数発生器と、 ポリゴン分割手段と、 このポリゴン分割手段からのポリゴンデータを表示する
ためのデータに変換する変換手段と、 を備え、 前記ポリゴン分割手段は、 n次のスプライン関数が用いられて表現されている曲面
の形状を決定するためのコントロールポイントのデータ
を加工して得られる初期値データと、前記曲面を分割し
たときの分割ステップの大きさの情報とを前記関数発生
器に与え、 前記関数発生器から得られる前記分割ステップごとのス
プライン関数の値を取得し、この取得した値を元にし
て、前記分割ステップで前記曲面が分割されたときの各
分割平面のポリゴンデータを発生するようにすることを
特徴とする画像生成装置。 - 【請求項3】請求項2に記載の画像生成装置は、記憶媒
体に記憶されている画像を描画するためのデータを読み
出す読み出し手段を備え、この読み出したデータを用い
て画像を生成する装置であって、 前記記憶媒体には、前記コントロールポイントのデータ
の代わりに、このコントロールポイントのデータから作
成された前記関数発生器に与える初期値データに適した
データが記憶されており、 前記ポリゴン分割手段は、前記初期値データに適したデ
ータから前記初期値データを作成して、前記関数発生器
に供給するようにしたことを特徴とする画像生成装置。 - 【請求項4】請求項3に記載の画像生成装置において、
前記記憶媒体に記憶されている初期値データには、前記
分割ステップの大きさの情報が含まれており、前記関数
発生器は、この初期化データにより直接的に初期化され
ることを特徴とする画像生成装置。 - 【請求項5】前記記憶媒体には、ゲームのデータが前記
画像を描画するデータと共に記憶されて、ゲーム機の構
成とされてなる請求項3に記載の画像生成装置。 - 【請求項6】前記関数発生器は、少なくともm個(mは
2以上の整数)の加算器と、少なくとも0番からm番ま
での(m+1)本のバスを備え、 前記m個の加算器のi番目(1≦i≦m)の加算器にお
ける2本の入力が、前記(m+1)本のバスのうちの
(i−1)番目およびi番目のバスに接続され、前記i
番目の加算器の出力が、前記i番目のバスに接続されて
なる請求項2に記載の画像生成装置。 - 【請求項7】前記関数発生器は、少なくともm個(mは
2以上の整数)の加算器と、少なくとも0番からm番ま
での(m+1)本のバスを備え、 前記m個の加算器のi番目(1≦i≦m)の加算器にお
ける2本の入力が、前記(m+1)本のバスのうちの
(i−1)番目およびi番目のバスに接続され、前記i
番目の加算器の出力が、前記(i−1)番目とi番目の
バスのいずれか一方のバスに切り換え接続されてなる請
求項2に記載の画像生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13070796A JP3479184B2 (ja) | 1996-04-26 | 1996-04-26 | 画像生成方法および画像生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13070796A JP3479184B2 (ja) | 1996-04-26 | 1996-04-26 | 画像生成方法および画像生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09293145A JPH09293145A (ja) | 1997-11-11 |
JP3479184B2 true JP3479184B2 (ja) | 2003-12-15 |
Family
ID=15040703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13070796A Expired - Fee Related JP3479184B2 (ja) | 1996-04-26 | 1996-04-26 | 画像生成方法および画像生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3479184B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936813A1 (en) * | 1998-02-16 | 1999-08-18 | CANAL+ Société Anonyme | Processing of digital picture data in a decoder |
-
1996
- 1996-04-26 JP JP13070796A patent/JP3479184B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09293145A (ja) | 1997-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3886184B2 (ja) | 画像データの処理方法および画像処理装置 | |
JP3578498B2 (ja) | 画像情報処理装置 | |
US6700586B1 (en) | Low cost graphics with stitching processing hardware support for skeletal animation | |
JP3926866B2 (ja) | 情報処理装置、情報処理方法、及び描画システム | |
JP3645024B2 (ja) | 描画装置及び描画方法 | |
JP2002008060A (ja) | データ処理方法、記録媒体及びデータ処理装置 | |
JP3569089B2 (ja) | 画像生成方法、画像生成装置、記録媒体および疑似乱数発生装置 | |
JPWO2006062199A1 (ja) | 3次元画像データ圧縮装置、該方法、該プログラム及び記録媒体 | |
JP2004110850A (ja) | 疑似乱数発生装置 | |
US20020101435A1 (en) | Apparatus and method for rendering antialiased image | |
JP3338043B2 (ja) | 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス | |
JP3479184B2 (ja) | 画像生成方法および画像生成装置 | |
JP2000182076A (ja) | データ処理装置およびデータ処理方法、並びに提供媒体 | |
JP3657350B2 (ja) | 関数発生器 | |
JP3872032B2 (ja) | 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 | |
JP4017467B2 (ja) | 三角形メッシュデータの圧縮方法及びプログラム | |
JP3910259B2 (ja) | 画像処理装置および方法、並びにレンダリング装置および方法 | |
JP2002541600A (ja) | 透視変換する装置及び方法 | |
JP3548648B2 (ja) | 描画装置及び描画方法 | |
JP3556777B2 (ja) | 画像処理装置 | |
JP2006277772A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、記録媒体、及び情報提供装置 | |
JPH103466A (ja) | 中央演算処理装置およびこれを用いた画像生成装置 | |
JP3698747B2 (ja) | 画像データ生成方法及び画像処理システム | |
JP2002300043A (ja) | 情報処理装置及び方法、並びに記憶媒体 | |
JP2002163680A (ja) | 3次元画像処理方法、その装置、3次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081003 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091003 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101003 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 10 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |