JPH09293145A - 画像生成方法および画像生成装置 - Google Patents

画像生成方法および画像生成装置

Info

Publication number
JPH09293145A
JPH09293145A JP13070796A JP13070796A JPH09293145A JP H09293145 A JPH09293145 A JP H09293145A JP 13070796 A JP13070796 A JP 13070796A JP 13070796 A JP13070796 A JP 13070796A JP H09293145 A JPH09293145 A JP H09293145A
Authority
JP
Japan
Prior art keywords
data
curved surface
image
spline function
function generator
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.)
Granted
Application number
JP13070796A
Other languages
English (en)
Other versions
JP3479184B2 (ja
Inventor
Satoyuki Hiroi
聡幸 広井
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 JP13070796A priority Critical patent/JP3479184B2/ja
Publication of JPH09293145A publication Critical patent/JPH09293145A/ja
Application granted granted Critical
Publication of JP3479184B2 publication Critical patent/JP3479184B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 簡単なハードウエアを用いると共に、曲面を
表現するために使用するスプライン関数に制限がなく、
しかも、少ないデータ量で滑らかな曲面を高速に描画す
ることができる画像生成方法および画像生成装置を提供
する。 【解決手段】 n次のスプライン関数が用いられて表現
される曲面の形状を決定するためのコントロールポイン
トのデータを用いて前記曲面の画像を生成する方法であ
る。コントロールポイントのデータを加工して得られる
初期値データと、曲面を分割したときの分割ステップの
情報とを微分解析器からなるスプライン関数発生器14
2に与えて、この関数発生器142を初期化する。この
関数発生器142から分割ステップごとのスプライン関
数の値を得る。得られたスプライン関数の値を元にし
て、分割ステップで曲面が分割されたときの各分割平面
のポリゴン情報を生成する。この分割平面のポリゴン情
報を座標情報に変換して、表示画像データを生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、例えば、3次元
コンピュータグラフィックスに適用される画像生成装置
に関し、特に、曲面の描画に関する。
【0002】
【従来の技術】3次元コンピュータグラフィックスで
は、多数のポリゴン(例えば三角形や四角形などの多角
形)の集合として物体を表示している。このため、3次
元コンピュータグラフィックスに適用される画像生成装
置において、曲面を含む画像の当該曲面部分を、より自
然に表現しようとする場合には、細かい多くのポリゴン
を生成して画像を描画画像を生成するようにする必要が
ある。
【0003】しかし、この多数のポリゴンの頂点座標の
データを格納するためには、大容量のメモリが必要であ
り、ゲーム機などのようにメモリ容量に制限がある場合
には、ポリゴンの大きさが大きくなり、きめの細かい曲
面を表現することが困難である。
【0004】そこで、従来から曲面などの形状をスプラ
イン関数等を合成して表現し、ポリゴンの頂点座標の代
わりに曲面を決定するコントロールポイントのデータの
みをメモリに格納して、メモリを節約する手法が用いら
れている。
【0005】しかしながら、この方法は、例えば3次元
等の多次元関数であるスプライン関数を高速に生成しな
ければならず、多数個の積和演算器が必要になる。この
ため、ハードウエア構成が複雑になり、LSI化したと
きに、チップ面積が大きくなり、また、高価格になって
しまう。
【0006】このような問題を回避するためには、曲面
を表現するスプライン関数として、曲面を容易に分割す
ることができるベゼー曲面等の関数を用いる方法が、一
般的に使用されている。
【0007】
【発明が解決しようとする課題】しかし、ベゼー曲面を
使用して描画を行う場合には、使用できるスプライン関
数が限定されてしまうため、表現できる曲面形状に制約
があり、少ないデータ量で表現できる曲面形状には限界
があった。
【0008】この発明は、以上の点にかんがみ、簡単な
ハードウエアを用いると共に、曲面を表現するために使
用するスプライン関数に制限がなく、しかも、少ないデ
ータ量で滑らかな曲面を高速に描画することができる画
像生成方法および画像生成装置を提供することを目的と
する。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、この発明による画像生成方法は、n次のスプライン
関数が用いられて表現される曲面の形状を決定するため
のコントロールポイントのデータを用いて前記曲面の画
像を生成する方法において、前記コントロールポイント
のデータを加工して得られる初期値データと、前記曲面
を分割したときの分割ステップの情報とを微分解析器に
与えて、この微分解析器を初期化する第1の工程と、前
記微分解析器から前記分割ステップごとのスプライン関
数の値を得る第2の工程と、前記第2の工程で得られた
スプライン関数の値を元にして、前記分割ステップで前
記曲面が分割されたときの各分割平面の情報を発生する
第3の工程と、を実行して、前記曲面の画像を生成する
ものである。
【0010】また、この発明による画像生成装置は、微
分解析器からなる関数発生器と、ポリゴン分割手段と、
このポリゴン分割手段からのポリゴンデータを表示する
ためのデータに変換する変換手段と、を備え、前記ポリ
ゴン分割手段は、n次のスプライン関数が用いられて表
現されている曲面の形状を決定するためのコントロール
ポイントのデータを加工して得られる初期値データと、
前記曲面を分割したときの分割ステップの大きさの情報
とを前記関数発生器に与え、前記関数発生器から得られ
る前記分割ステップごとのスプライン関数の値を取得
し、この取得した値を元にして、前記分割ステップで前
記曲面が分割されたときの各分割平面のポリゴンデータ
を発生するようにすることを特徴とするものである。
【0011】上記の構成のこの発明においては、複数個
の加算器を用いて構成することが可能な微分解析器から
なる関数発生器に、曲面の形状を決定するためのコント
ロールポイントのデータを加工して得られる初期値デー
タと、前記曲面を分割したときの分割ステップの大きさ
の情報とを与えると、この関数発生器から描画しようと
する曲面を分割した、分割ステップごとのスプライン関
数の値が得られる。
【0012】そして、この各分割ステップごとのスプラ
イン関数の値から、そのスプライン関数で表現される曲
面を分割したときの各分割平面のポリゴンデータが生成
される。このポリゴンデータを、表示のための、例えば
ポリゴン頂点座標データに変換すれば、曲面が描画され
る。
【0013】
【発明の実施の形態】以下、この発明による画像生成方
法および画像生成装置の一実施の形態を、ゲーム機に適
用した場合について、図を参照しながら説明する。
【0014】図3は、この発明の一実施の形態の画像生
成装置の構成例を示すもので、この例は3Dグラフィッ
クス機能と、動画再生機能とを備えるゲーム機の場合の
例である。
【0015】図4は、この例のゲーム機の外観を示すも
ので、この例のゲーム機は、ゲーム機本体1と、ユーザ
の操作入力部を構成するコントロールパッド2とからな
る。コントロールパッド2は、このコントロールパッド
2に接続されているケーブル3の先端に取り付けられて
いるコネクタプラグ4を、ゲーム機本体1のコネクタジ
ャック5Aに結合させることにより、ゲーム機本体1に
接続される。この例では、いわゆる対戦ゲーム等のため
に、2個のコントロールパッド2がゲーム機本体1に対
して接続することができるように、2個のコネクタジャ
ック5A,5Bがゲーム機本体1に設けられている。
【0016】この例のゲーム機は、ゲームプログラムや
画像データが書き込まれたCD−ROMディスク6をゲ
ーム機本体1に装填することにより、ゲームを楽しむこ
とができる。
【0017】次に、図3を参照しながら、この例の画像
生成装置の構成について説明する。この例の画像生成装
置としてのゲーム機は、メインバス10と、サブバス2
0とからなる2つのシステムバスを備える構成を有して
いる。これらメインバス1と、サブバス2との間のデー
タのやり取りは、バスコントローラ30により制御され
る。
【0018】そして、メインバス10には、メインCP
U11と、メインメモリ12と、画像伸長部13と、前
処理部14と、描画処理部15と、メインのDMAコン
トローラ16(以下、メインDMACという)が接続さ
れている。描画処理部15には、処理用メモリ17が接
続されていると共に、この描画処理部15は表示データ
用のいわゆるフレームメモリと、D/A変換回路を含
み、この描画処理部15からのアナログビデオ信号がビ
デオ出力端子18に出力される。図示しないが、このビ
デオ出力端子18は、表示装置としての例えばCRTデ
ィスプレイに接続される。
【0019】サブバス20には、サブCPU21と、サ
ブメモリ22と、ブートROM23と、サブのDMAコ
ントローラ24と、音声処理用プロセッサ25と、入力
部26と、CD−ROMデコーダ27と、拡張用の通信
インターフェース部28とが接続される。ブートROM
23には、ゲーム機としての立ち上げを行うためのプロ
グラムが格納されている。また、音声処理用プロセッサ
25に対しては、音声処理用メモリ25Mが接続されて
いる。そして、この音声処理用プロセッサ25はD/A
変換回路を備え、これよりはアナログ音声信号を音声出
力端子29に出力する。
【0020】そして、CD−ROMデコーダ27は、C
D−ROMドライバ40に接続されており、CD−RO
Mドライバ40に装填されたCD−ROMディスク6に
記録されているアプリケーションプログラム(例えばゲ
ームのプログラム)やデータをデコードする。CD−R
OMディスク6には、例えば離散コサイン変換(DC
T)により画像圧縮された動画や静止画の画像データ
や、ポリゴンを修飾するためのテクスチャー画像の画像
データも記録されている。
【0021】CD−ROMディスク6のアプリケーショ
ンプログラムには、ポリゴン描画命令が含まれており、
曲面の場合には、使用するスプライン関数を特定するデ
ータと、曲面を決定するコントロールポイントのデータ
が、このCD−ROM31に記憶されている。後述する
ように、コントロールポイントのデータの代わりに、微
分解析器からなるスプライン関数発生器に与える初期化
データに適するデータを記憶しておくようにしてもよ
い。
【0022】入力部26は、前述した操作入力手段とし
てのコントロールパッド2と、ビデオ信号の入力端子
と、音声信号の入力端子を備えるものである。
【0023】メインCPU11は、メインバス10側の
各部の管理および制御を行なう。また、このメインCP
U11は、物体を多数のポリゴンの集まりとして描画す
る場合の処理の一部を行う。メインCPU11は、後述
もするように、1画面分の描画画像を生成するための描
画命令例をメインメモリ12上に作成する。
【0024】また、このメインCPU11は、キャッシ
ュメモリ11Mを有し、CPUインストラクションの一
部は、メインバス10からフェッチすることなく実行で
きる。さらに、メインCPU11には、描画命令を作成
する際にポリゴンについての座標変換演算を行なうため
の座標演算部11Gが、CPU内部コプロセッサとして
設けられている。座標演算部11Gは、3次元座標変換
及び3次元から表示画面上の2次元への変換の演算を行
なう。
【0025】このように、メインCPU11は、内部に
命令キャッシュ11Mと座標演算部11Gを有している
ため、その処理をメインバス10を使用しなくても、あ
る程度行うことができるため、メインバス10を開放し
やすい。
【0026】メインメモリ12は、動画や静止画の画像
データに対しては、圧縮された画像データのメモリ領域
と、伸長デコード処理された伸長画像データのメモリ領
域とを備えている。また、メインメモリ12は、描画命
令列などのグラフィックスデータのメモリ領域(これを
パケットバッファという)を備える。このパケットバッ
ファは、メインCPU11による描画命令列の設定と、
描画命令列の描画処理部への転送とに使用される。
【0027】画像伸長部13は、CD−ROMディスク
6から再生された圧縮画像データの伸長処理を行なうも
ので、ハフマン符号のデコーダと、逆量子化回路と、逆
離散コサイン変換回路のハードウエアを備える。ハフマ
ン符号のデコーダの部分は、メインCPU11がソフト
ウエアとしてその処理を行うようにしてもよい。
【0028】描画処理部15は、メインメモリ12から
転送されてくる描画命令を実行して、その結果をフレー
ムメモリに書き込む。フレームメモリから読み出された
画像データは、D/A変換器を介してビデオ出力端子1
8に出力され、画像モニター装置の画面に表示される。
【0029】前処理部14は、CPUを備えるプロセッ
サの構成とされるもので、メインCPU11の処理の一
部を分担することができるようにするものである。この
例の場合には、後述するように、この前処理部14にお
いて、曲面についての画像生成処理を行うようにする。
その場合には、曲面分割処理と、分割処理により得られ
た多数個のポリゴンデータを、表示のための2次元座標
データに変換する処理も、この前処理部14が行う。
【0030】このゲーム機の基本的な処理について以下
に説明する。
【0031】[CD−ROMディスク6からのデータの
取り込み]図3の例のゲーム機に電源が投入され、ゲー
ム機本体1にCD−ROMディスク6が装填されると、
ブートROM23の、ゲームを実行するためのいわゆる
初期化処理をするためのプログラムが、サブCPU21
により実行される。すると、CD−ROMディスク6の
記録データが次のようにして取り込まれる。
【0032】すなわち、CD−ROMディスク6から、
圧縮画像データ、描画命令及びメインCPU11が実行
するプログラムが、CD−ROMドライバ40、CD−
ROMデコーダ27を介して読み出され、サブDMAC
24によってサブメモリ22に一旦ロードされる。
【0033】そして、このサブメモリ22に取り込まれ
たデータは、サブDMACおよびバスコントローラ3
0、さらにはメインDMAC16によってメインメモリ
12に転送される。なお、サブCPU21は、描画処理
部15のフレームに対して直接的にアクセスできるよう
に構成されており、このサブCPU21によっても表示
画像内容の変更が、描画処理部15の制御とは離れて可
能とされている。
【0034】[圧縮画像データの伸長及び転送]メイン
メモリ12の入力データのうち、圧縮画像データは、こ
の例では、メインCPU11がハフマン符号のデコード
処理を行った後、再びメインCPU11によりメインメ
モリ12に書き込まれる。そして、メインDMAC16
は、このハフマン符号のデコード処理後の画像データを
メインメモリ12から画像伸長部13に転送する。画像
伸長部13は、逆量子化の処理と、逆DCTの処理を行
って画像データの伸長デコード処理を行う。伸長された
画像データは、メインDMAC16が、メインメモリ1
2に転送する。
【0035】メインCPU11は、伸長された画像デー
タのマクロブロックと呼ばれる単位データが一定量、メ
インメモリ12に蓄積された時点で、当該伸長データを
描画処理部15のフレームメモリに転送する。この際
に、伸長画像データがフレームメモリの画像メモリ領域
に転送されれば、そのまま背景動画像として画像モニタ
ー装置で表示されることになる。また、フレームメモリ
のテクスチャー領域に転送される場合もある。このテク
スチャー領域の画像データは、テクスチャー画像とし
て、ポリゴンの修飾に使用される。
【0036】[描画命令列についての処理と転送]物体
の面を構成するポリゴンは、3次元的な奥行きの情報で
あるZデータに従って奥行き方向の深い位置にあるポリ
ゴンから順に描画することにより、2次元画像表示面に
立体的に画像を表示することができる。メインCPU1
1は、このように奥行き方向の深い位置にあるポリゴン
から順に、描画処理部15で描画が行われるようにする
ための描画命令列をメインメモリ12上に作成する。
【0037】メインCPU11は、入力部26のコント
ロールパッドからのユーザーの操作入力に基づいて、物
体や視点の動きを計算し、メインメモリ12上にポリゴ
ン描画命令列を作成する。
【0038】この描画命令列が完成すると、メインDM
AC16は、前処理部14を通じて、描画命令毎に、メ
インメモリ12から描画処理部15に転送する。この際
に、前処理部14において、曲面のデータについては後
述のような曲面分割演算およびポリゴン生成処理が施さ
れる。
【0039】描画処理部15では、送られてきたデータ
を順次実行して、その結果を、フレームメモリの描画領
域に格納する。このポリゴン描画の際、データは、描画
処理部15の勾配計算ユニットに送られ、勾配計算が行
なわれる。勾配計算は、ポリゴン描画で多角形の内側を
マッピングデータで埋めていく際、マッピングデータの
平面の傾きを求める計算である。テクスチャーの場合は
テクスチャー画像データでポリゴンが埋められ、また、
グーローシェーディングの場合は輝度値でポリゴンが埋
められる。
【0040】更に、動画のテクスチャーが可能である。
つまり、動画テクスチャーの場合には、前述したよう
に、CD−ROMディスクからの圧縮された動画データ
は、一旦、メインメモリ12に読み込まれる。そして、
この圧縮画像データは、画像伸長部13に送られる。画
像伸長部13で、画像データが伸長される。このとき、
前述したように、伸長処理の一部は、メインCPU11
が負担する。
【0041】そして、伸長された動画データは描画処理
部15のフレームメモリ上のテクスチャー領域に送られ
る。テクスチャー領域は、この描画処理部15のフレー
ムメモリ内に設けられているので、テクスチャーパター
ン自身も、フレーム毎に書き換えることが可能である。
このように、テクスチャー領域に動画を送ると、テクス
チャーが1フレーム毎に動的に書き換えられて変化す
る。このテクスチャー領域の動画により、ポリゴンへの
テクスチャーマッピングを行えば、動画のテクスチャー
が実現される。
【0042】[曲面描画処理の説明]図1は、曲面描画
処理についての、前処理部14と、描画処理部15の要
部の構成を示す図である。
【0043】この図1に示すように、前処理部14は、
ポリゴン分割手段141と、スプライン関数発生器14
2と、座標変換手段143とを備える。ポリゴン分割手
段141と、座標変換手段143とは曲線描画処理の場
合の前処理部出の機能をブロックとして示したものであ
る。スプライン関数発生器142は、後述するように複
数の加算器からなる微分解析器で構成される。
【0044】そして、描画処理部15は、機能手段とし
ての描画手段151と、フレームメモリ152とからな
る。
【0045】曲面描画処理の場合には、前処理部14に
は、この例の場合には、曲面のコントローラポイントの
データがメインメモリ12から転送される。ポリゴン分
割手段141は、このコントローラポイントのデータを
加工して、スプライン関数発生器142に供給する初期
化データを生成する。また、ポリゴン分割手段141
は、予め、描画しようとする曲面を分割したときの分割
ステップの大きさを定めておく。そして、生成した初期
化データと、分割ステップの大きさの情報とを、スプラ
イン関数発生器142に与え、このスプライン関数発生
器142を初期化する。
【0046】スプライン関数発生器142は、初期化デ
ータを起算点として関数演算処理を行う。そして、各分
割ステップごとのスプライン関数値を生成する。生成さ
れたスプライン関数値は、ポリゴン分割手段141によ
り、読み出される。
【0047】ポリゴン分割手段141は、スプライン関
数発生器142から読み出したスプライン関数値を元
に、描画しようとする曲面を前記の分割ステップで分割
したときに生じる分割平面の、例えば4角形ポリゴンの
ポリゴンデータを生成する。この各分割平面のポリゴン
データは、座標変換手段143に送られる。座標変換手
段143は、このポリゴンデータを、表示装置としての
CRTディスプレイに適合するスクリーン座標系の2次
元頂点データに変換し、描画手段151に送る。
【0048】描画手段151は、受け取った2次元頂点
データに基づいて平面の塗り潰し、必要に応じてテクス
チャーや光源計算から得られた輝度値を元にしたシェー
ディングを施すような処理をした画像データをフレーム
メモリ152に書き込む。フレームメモリ152のデー
タは、適宜、読み出されて、D/A変換され、ビデオ出
力端子18より画像モニター装置としてのCRTディス
プレイに供給されて曲面を含む画像が表示される。
【0049】次に、以上の曲面描画処理について、さら
に説明する。
【0050】図2は、描画しようとする一つの曲面の例
を示すものである。この図2において、u,vは、曲面
に関するパラメータ座標であり、図2のように、曲面に
沿ってそれぞれ矢印の方向に増加するものとする。Q
(u,v)は、この曲面上の点であり、3次元ベクトル
である。今、3次のスプライン関数を用いた曲面を考
え、この曲面のコントロールポイントを3次元ベクトル
Pijとすると、u,v曲面上の点Q(u,v)は、図
5の式(eq1)で表される。
【0051】この式(eq1)で、Bi(u),Bj
(v)は3次のスプライン関数であり、Bi(u)は図
5の式(eq2)のように表され、Bj(v)は図5の
式(eq3)のように表される。
【0052】そして、図5の式(eq1)を変形する
と、図5の式(eq4)のようになる。ただし、この式
(eq4)のSk(v)は、図5の式(eq5)のよう
に表されるスプライン関数であり、3次元ベクトルであ
る。また、式(eq5)におけるvの各次数の項の係数
Rklは、図5の式(eq6)であり、これも3次元ベ
クトルである。
【0053】以上のことから、式(eq6)で表される
3次元ベクトルRklが求まると、式(eq5)で表さ
れる3次元ベクトルSk(v)が求まり、これにより点
Q(u,v)が求められることになる。式(eq6)に
おいて、akjおよびaljは、スプライン関数が決ま
れば決まる値であり、CD−ROMディスク6には、曲
面のデータとしてのコントロールポイントのデータのほ
かに、曲面を決定するスプライン関数を特定するための
情報として記憶されている。
【0054】したがって、今、曲面をu方向にG個、v
方向にH個に、等分割すれば、各々の分割により得られ
る分割平面の頂点は、以下に説明するアルゴリズムによ
り求めることができる。このアルゴリズムを図6および
図7のフローチャートを参照しながら説明する。
【0055】まず、ステップS1において、式(eq
6)より、k,l∈{0,1,2,3}に対して、コン
トロールポイントの3次元ベクトルPijから、前記3
次元ベクトルRklを求める。なお、このようにして、
演算により3次元ベクトルRklを求めるのではなく、
予め曲面データとして、コントロールポイントのデータ
の代わりに、この3次元ベクトルRklをCD−ROM
ディスク6に記憶しておき、このCD−ROMディスク
6から直接的に読み出すようにしてもよい。
【0056】ステップS1が終了すると、ステップS2
に進み、この例では、曲面をu方向にG個、v方向にH
個に、等分割するときの、u方向およびv方向の分割ス
テップ幅ΔuおよびΔvを、Δu=1/G、Δv=1/
Hとして設定する。
【0057】次に、ステップS3に進み、k∈{0,
1,2,3}に対する各々の3次のスプライン関数Sk
(v)の関数発生器に、v方向の分割ステップ幅Δv
と、前記3次元ベクトルRklを渡して、前記スプライ
ン関数発生器を初期化する。すなわち、このときには、
スプライン関数発生器112は、スプライン関数Sk
(v)の関数発生器として働くものである。
【0058】そして、次のステップS4において、vの
値を0、v方向の繰り返しのステップ回数rを0とし
て初期設定をした後、v方向の以下の処理をr=H回
だけ、繰り返す。すなわち、ステップS5においては、
=H回のv方向の処理が終了したか否か判断し、未
だ、終了していなければ、ステップS6に進む。
【0059】このステップS6では、関数発生器112
において、現在の3次元ベクトルSk(v)を求め、こ
の求めたSk(v)と、u方向の分割ステップ幅Δuと
を、スプライン関数Q(u,v)の関数発生器の初期化
データとして渡して、このスプライン関数発生器を初期
化する。すなわち、このときには、スプライン関数発生
器112は、スプライン関数Q(u,v)の関数発生器
として働くことになる。
【0060】そして、次のステップS7において、uの
値を0、u方向の繰り返しのステップ回数rを0とし
て初期設定をした後、u方向の以下の処理をr=G回
だけ、繰り返す。すなわち、ステップ85においては、
=G回のu方向の処理が終了したか否か判断し、未
だ、終了していなければ、ステップS9に進む。
【0061】ステップS9では、現在のスプライン関数
Q(u,v)の値を求めて、その値をポリゴン分割手段
141に出力する。そして、ステップS10に進み、u
の値を分割ステップ幅Δuだけ大きくすると共に、u方
向の繰り返しステップ回数rを1だけ、インクリメン
トする。そして、ステップS8〜ステップS10の処理
を繰り返し、u方向の次の分割ステップのところでの、
スプライン関数Q(u,v)の値を求めて、その値をポ
リゴン分割手段141に出力する。
【0062】ステップS8〜ステップS10の処理を、
=G回だけ繰り返して、v方向の1つの分割ステッ
プのところでの、u方向のすべての分割ステップについ
ての、スプライン関数Q(u,v)の値が求まると、ス
テップS8からステップS11に進み、vの値を分割ス
テップΔvだけ大きくすると共に、v方向の繰り返しス
テップ回数rを1だけ、インクリメントする。そし
て、ステップS5以降の処理を繰り返す。これにより、
v方向の各分割ステップ点ごとの、u方向のすべての分
割ステップ点についての、スプライン関数Q(u,v)
の値が求まり、その値がポリゴン分割手段141に送ら
れる。
【0063】以上のようにして繰り返し処理が行われ
て、ステップS5において、v方向の繰り返しステップ
回数r=Hとなったことが判別されると、このステッ
プS5からステップS12に進み、ポリゴン分割手段1
41は、蓄えていた各分割ステップ点ごとのスプライン
関数Q(u,v)の値を元にして、G×H個の4角形ポ
リゴンを作成し、これを座標変換手段143に送る。
【0064】座標変換手段143は、前述したように、
4角形ポリゴンのデータをCRTディスプレイに表示す
るための2次元頂点データに変換して、描画処理部15
に送る。描画処理部15は、これに基づいて、前述した
ような描画処理を実行し、CRTディスプレイの画面に
は、曲面の画像が表示される。
【0065】なお、上記のアルゴリズムにおいては3次
元ベクトルを扱ったが、同時座標系の4次元ベクトル系
にも同様な手法で拡張可能である。また、上述のアルゴ
リズムでは、分割ステップ幅Δu、Δvごとのスプライ
ン関数Q(u,v)の値を、すべて得た後に、G×H個
の4角形ポリゴンを作成し、これを座標変換手段143
に送るようにしたが、ステップS9において、スプライ
ン関数Q(u,v)が得られた時点で、ポリゴン分割手
段141が対応する4角形ポリゴンを作成して、座標変
換手段143に出力するようにしてもよい。
【0066】また、上述したように、曲面のスプライン
関数を特定する情報と、曲面のコントロールポイントの
データとを、CD−ROMディスク6に記憶しておくの
ではなく、コントロールポイントのデータに代えて、ス
プライン関数発生器の初期化データに適した情報、例え
ば上記の例で言えば、3次元ベクトルRklを、CD−
ROMディスク6に保存しておくようにすれば、上述し
た計算アルゴリズムの計算時間の短縮化が図れるもので
ある。
【0067】スプライン関数発生器142は、前述した
ように微分解析器を用いて構成するものであるが、上述
したアルゴリズムの場合のように、3次元ベクトル値を
計算するものである場合には、3種類の微分解析器を用
いて構成することができる。図8は、このように3次元
ベクトル値を計算する場合のスプライン関数発生器14
2の構成の一例を示すものである。
【0068】この例においては、スプライン関数発生器
142は、微分解析器を構成する3個の加算器A1、A
2、A3と、4本のバスB0、B1、B2、B3と、4
個のレジスタバンクBANK0、BANK1、BANK2、BANK3と
を備えている。
【0069】そして、説明を一般化すると、i(i∈
{0,1,2,3})番目のバスBiは、i番目のレジ
スタバンクBANKiに接続されている。i番目の加算器A
iの2個の入力端は、(i−1)番目のバスB(i−
1)およびi番目のバスBiに接続される。また、この
i番目の加算器Aiの出力端はi番目のバスBiに接続
される。
【0070】今、レジスタバンクBANKiの中には、レジ
スタRAiがあるとすると、加算器Aiは、レジスタR
A(i−1)とレジスタRAiからデータを読み出し、
加算した結果をレジスタRAiに書き込むという動作を
行うものである。
【0071】ここで、分割ステップ幅Δuごとの、uに
関する3次のスプライン関数は、次のようにして、図8
の構成のスプライン関数発生器142から得られる。
【0072】この場合、各レジスタバンクBANKiのレジ
スタRAiには、図9Aに示すような初期値が書き込ま
れる。この図9Aから分かるように、この初期値には、
分割ステップ幅Δuが含まれる。なお、このΔuの大き
さは、前述したように、等分割の場合には、その分割数
によって定まるものであり、分割数がユーザの入力や、
CD−ROMディスク6に記憶されている情報に基づい
て設定されることにより、定まるものであり、一定では
ない。もっとも、曲面分割が等分割でない場合であって
も勿論良い。
【0073】このように各レジスタバンクBANKiのレジ
スタRAiに初期値が設定された後、加算器A1,A
2,A3による加算を同時に実行すると、各レジスタバ
ンクBANKiのレジスタRAiの内容は、その実行回数に
より、図9Bに示すように変わる。この図9Bから分か
るように、加算器A1,A2,A3による加算を、この
例では、3回、同時に実行すると、レジスタRA3に
は、3次のスプライン関数の値が得られるものである。
【0074】このように、所定数r回だけ、加算器A
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に与えられるものである。
【0075】なお、3次以上のn次のスプライン関数を
発生する関数発生器は、n個の加算器を用いた微分解析
器により関数発生器を構成して、上述と同様の手法で求
めることができる。
【0076】図10は、その場合のスプライン関数発生
器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内の制御手段(図
示せず)により、切り換え制御されるものである。
【0077】例えば6次のスプライン関数発生器の例の
場合、各レジスタバンクBANK0,BANK1,BANK2,BANK
3には、以下のレジスタが設けられている。 BANK0:RA0,RA6 BANK1:RA1,RA5 BANK2:RA2,RA4 BANK3:RA3。
【0078】そして、スイッチ回路SW1,SW2,S
W3をすべて図の状態、すなわち、i番目の加算器Ai
の出力を、i番目のバスBiに接続する状態にしたとき
には、それぞれの加算器A1,A2,A3は、以下のよ
うな計算を同時に行い、その計算結果を、矢印で示すよ
うに、対応するレジスタに格納する。 RA3←RA2+RA3 RA2←RA1+RA2 RA1←RA0+RA1。
【0079】また、スイッチ回路SW1,SW2,SW
3をすべて図とは逆の状態、すなわち、i番目の加算器
Aiの出力を、(i−1)番目のバスB(i−1)に接
続する状態にしたときには、それぞれの加算器A1,A
2,A3は、以下のような計算を同時に行い、その計算
結果を、矢印で示すように、対応するレジスタに格納す
る。 RA6←RA6+RA5 RA5←RA5+RA4 RA4←RA4+RA3。
【0080】以上のような構成のスプライン関数発生器
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次のスプライン関数の値を得ることができ
る。
【0081】上記の計算をさらに拡張すれば、加算器の
数を増やさずに、効率よく、2m次以上の高次のスプラ
イン関数の計算を行う関数発生器を実現することができ
る。したがって、少ない加算器でも、効率よく高次のス
プライン関数を得ることができる関数発生器を構成する
ことができる。
【0082】以上の例では、ポリゴン分割手段141
は、曲面のコントロールポイントのデータPijから3
次元ベクトルRklを求めて、あるいは予めCD−RO
Mディスク6に格納されていた、この3次元ベクトルR
klと分割ステップΔVの大きさの情報とをスプライン
関数発生器142に供給し、スプライン関数発生器14
2は、これらのRklおよび分割ステップΔvの値を用
いて、スプライン関数Sk(v)を計算して、スプライ
ン関数発生器のレジスタに与える初期値を得るようにし
ている。
【0083】しかし、次のようにすれば、3次元ベクト
ルRklと分割ステップΔvから、スプライン関数発生
器142のレジスタに設定する初期値を計算することな
く、直接的に各レジスタに初期値を設定することができ
る。
【0084】すなわち、スプライン関数をベクトル表現
すれば、前記の図5の式(eq2)および式(eq3)
は、それぞれ図11の式(a−1)および式(a−2)
のように表すことができる。これら式(a−1)および
式(a−2)で、Aは、図11の式(a−3)で示され
るベクトルである。
【0085】ここで、曲面のコントロールポイントのデ
ータP=Pijを、ベクトル表現すれば、図11の式
(a−4)となり、前記図5の曲面の式(eq1)は、
図11の式(a−5)のように表すことができる。そし
て、この式(a−5)に、図11の式(a−1)、式
(a−2)を代入すれば、式(a−5)は、図11の式
(a−6)のようになる。
【0086】ところで、スプライン関数発生器142の
例えば図8の回路を、u方向にr回、v方向にr
実行して呼び出すとすると、 u=rΔu (a−7) v=rΔv (a−8) と表されるので、図11の式(a−6)を、r、r
で表せば、図12の式(a−9)に示すように変形する
ことができる。
【0087】図8の微分解析器の構成では、r回目の同
時加算の実行で、ar3 +br2 +cr+dを出力する
ためには、レジスタRA0,RA1,RA2,RA3の
初期値は、6a,6a+2b,a+b+c,dとする必
要がある。この初期値をベクトルで表すと、図12の式
(a−10)となる。ただし、式(a−10)で、M
は、式(a−11)で表されるベクトルである。
【0088】すなわち、スプライン関数発生器142で
計算する多項式を、初期値ベクトルで分解すると、図1
3の式(a−12)を得る。そして、(M-1T を用い
て分解すべく、式(a−9)を書き換えると、図13の
式(a−13)のように表すことができる。ここで、式
(a−13)のDは、図14の式(a−14)で表され
るものである。
【0089】この式(a−14)のベクトルDの値D
klを、図5の式(eq6)の3次元ベクトルRklの
代わりに使用すれば、曲面分割アルゴリズムにおいて、
各々の初期化データと、図8の回路の各レジスタバンク
BANK0〜BANK3のレジスタRA0〜RA3に与える初期
値とを等しくすることができ、スプライン関数発生器1
42は、ポリゴン分割手段141から得た初期化データ
をそのままレジスタRA0〜RA3に設定するだけでよ
くなり、計算速度が速くなる。
【0090】以上は、図8の微分解析器の構成におい
て、複数個の加算器を同時に動作させる場合に対する初
期値の計算方法についての説明であるが、複数個の加算
器を同時に動作させるのではなく、順次に実行させるよ
うにすることもできる。その場合の初期値は次のような
ものとなる。
【0091】すなわち、この場合、例えば図8の回路構
成を例にとれば、加算器A1がレジスタRA1に書き込
んだ後に、加算器A2がそれを読み込み、そして、加算
器A2がその結果をレジスタRA2に書き込んだ後に、
加算器A3がそれを読み込む動作を行うものである。こ
の場合、多項式ar3 +br2 +cr+dを計算するた
めに必要な初期値は、図9Bと同様の表を示す図15の
表から、図14に示す式(a−15)であることが分か
る。
【0092】したがって、図12の式(a−11)の代
わりに、図14の式(a−16)で表されるMを用い
て、図14の前記式(a−14)を計算すると、この例
のスプライン関数発生器のレジスタに直接代入できる初
期値を求めることができる。この手法は、複数個の加算
器を用いた同種のスプライン関数発生器に適用すること
ができる。
【0093】以上のようにして、コントロールポイン
ト、スプライン多項式の係数、分割ステップの大きさの
値Δu、Δvから、各種の微分解析器に適切な初期値を
計算して、直接設定して、曲面を分割することができる
ようになる。
【0094】そして、この場合には、曲面の形状により
制限されることなく、各種の曲面の分割演算を高速にで
きる。また、複数個の加算器を用いた微分解析器を用い
る構成であるので、従来の積和演算器の場合に比べて、
掛け算器が不要になる分、ハードウエアが簡単になり、
安価に構成できる。
【0095】また、曲面のコントロールポイントのデー
タを予めスプライン関数発生器の初期データに適したも
のに変形して、記憶媒体に格納しておくことにより、無
駄な計算を省いて高速に曲面分割処理を行うことができ
る。
【0096】また、曲面分割を行う命令型演算装置のデ
ータバスと加算器との構成を適切なものにして、演算資
源を、それほど増やすことなく、高速のスプライン関数
発生器を実現できる。
【0097】なお、これら微分解析器用に変換された初
期値を予め計算して、例えばメインメモリに記憶してお
き、前処理部14がこれを読み出すようにしてもよい。
【0098】なお、図6および図7で説明した曲面分割
アルゴリズムでは、外側のループでv方向を、内側のル
ープでu方向を計算して、各々のループで微分解析器を
用いるようにしたが、微分解析器自身や微分解析器のレ
ジスタが限られている場合には、外側のループで微分解
析器を用いずに、図5の式(eq5)を直接、積和演算
により計算し、得られた値を内側のループにおける微分
解析器の演算の初期値とするようにすることも可能であ
る。その場合には、外側のループのみ、vの値を直接扱
うので、式(a−14)のDを、図14の式(a−1
7)に変形して、同様の曲面分割を行うことができる。
【0099】
【発明の効果】以上説明したように、この発明によれ
ば、簡単なハードウエアを用いることができると共に、
曲面を表現するために使用するスプライン関数に制限が
なく、しかも、少ないデータ量で滑らかな曲面を高速に
描画することができる。
【図面の簡単な説明】
【図1】この発明による画像生成装置の要部の構成の一
実施の形態を示すブロック図である。
【図2】曲面の分割例を説明するための図である。
【図3】この発明による画像生成装置の一実施の形態と
してのゲーム機の構成例を示すブロック図である。
【図4】図3の例のゲーム機の外観例を示す図である。
【図5】3次のスプライン関数を説明するための図であ
る。
【図6】この発明による画像生成方法の一実施の形態の
要部の動作手順を説明するフローチャートの一部であ
る。
【図7】この発明による画像生成方法の一実施の形態の
要部の動作手順を説明するフローチャートの一部であ
る。
【図8】この発明の画像生成装置の一実施の形態におけ
る関数発生器の一例のブロック図である。
【図9】図8の関数発生器に与える初期値データおよび
関数発生動作を説明するために用いる図である。
【図10】この発明の画像生成装置の一実施の形態にお
ける関数発生器の一例のブロック図である。
【図11】この発明の画像生成装置の一実施の形態にお
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
【図12】この発明の画像生成装置の一実施の形態にお
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
【図13】この発明の画像生成装置の一実施の形態にお
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
【図14】この発明の画像生成装置の一実施の形態にお
けるスプライン関数発生器に与える初期化データの計算
例の説明に用いる図である。
【図15】この発明の画像生成装置の一実施の形態にお
けるスプライン関数発生器に与える初期化データの他の
例を示す図である。
【符号の説明】
141…ポリゴン分割手段、142…スプライン関数発
生器、143…座標変換手段、15…描画処理部、15
1…描画手段、152…フレームメモリ、A1〜A3…
加算器、B0〜B3…バス、BANK0〜BANK3…レジスタ
バンク、SW1〜SW3…スイッチ回路

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】n次のスプライン関数が用いられて表現さ
    れる曲面の形状を決定するためのコントロールポイント
    のデータを用いて前記曲面の画像を生成する方法におい
    て、 前記コントロールポイントのデータを加工して得られる
    初期値データと、前記曲面を分割したときの分割ステッ
    プの情報とを微分解析器に与えて、この微分解析器を初
    期化する第1の工程と、 前記微分解析器から前記分割ステップごとのスプライン
    関数の値を得る第2の工程と、 前記第2の工程で得られたスプライン関数の値を元にし
    て、前記分割ステップで前記曲面が分割されたときの各
    分割平面の情報を生成する第3の工程と、 を実行して、前記曲面の画像を生成する画像生成方法。
  2. 【請求項2】微分解析器からなる関数発生器と、 ポリゴン分割手段と、 このポリゴン分割手段からのポリゴンデータを表示する
    ためのデータに変換する変換手段と、 を備え、 前記ポリゴン分割手段は、 n次のスプライン関数が用いられて表現されている曲面
    の形状を決定するためのコントロールポイントのデータ
    を加工して得られる初期値データと、前記曲面を分割し
    たときの分割ステップの大きさの情報とを前記関数発生
    器に与え、 前記関数発生器から得られる前記分割ステップごとのス
    プライン関数の値を取得し、この取得した値を元にし
    て、前記分割ステップで前記曲面が分割されたときの各
    分割平面のポリゴンデータを発生するようにすることを
    特徴とする画像生成装置。
  3. 【請求項3】請求項2に記載の画像生成装置は、記憶媒
    体に記憶されている画像を描画するためのデータを読み
    出す読み出し手段を備え、この読み出したデータを用い
    て画像を生成する装置であって、 前記記憶媒体には、前記コントロールポイントのデータ
    の代わりに、このコントロールポイントのデータから作
    成された前記関数発生器に与える初期値データに適した
    データが記憶されており、 前記ポリゴン分割手段は、前記初期値データに適したデ
    ータから前記初期値データを作成して、前記関数発生器
    に供給するようにしたことを特徴とする画像生成装置。
  4. 【請求項4】請求項3に記載の画像生成装置において、
    前記記憶媒体に記憶されている初期値データには、前記
    分割ステップの大きさの情報が含まれており、前記関数
    発生器は、この初期化データにより直接的に初期化され
    ることを特徴とする画像生成装置。
  5. 【請求項5】前記記憶媒体には、ゲームのデータが前記
    画像を描画するデータと共に記憶されて、ゲーム機の構
    成とされてなる請求項3に記載の画像生成装置。
  6. 【請求項6】前記関数発生器は、少なくともm個(mは
    2以上の整数)の加算器と、少なくとも(m+1)本の
    バスを備え、 前記m個の加算器のi番目(i≦m)の加算器における
    2本の入力が、前記(m+1)本のバスのうちの(i−
    1)番目およびi番目のバスに接続され、前記i番目の
    加算器の出力が、前記i番目のバスに接続されてなる請
    求項2に記載の画像生成装置。
  7. 【請求項7】前記関数発生器は、少なくともm個(mは
    2以上の整数)の加算器と、少なくとも(m+1)本の
    バスを備え、 前記m個の加算器のi番目(i≦m)の加算器における
    2本の入力が、前記(m+1)本のバスのうちの(i−
    1)番目およびi番目のバスに接続され、前記i番目の
    加算器の出力が、前記(i−1)番目とi番目のバスの
    いずれか一方のバスに切り換え接続されてなる請求項2
    に記載の画像生成装置。
JP13070796A 1996-04-26 1996-04-26 画像生成方法および画像生成装置 Expired - Fee Related JP3479184B2 (ja)

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 true JPH09293145A (ja) 1997-11-11
JP3479184B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002503926A (ja) * 1998-02-16 2002-02-05 カナル プラス ソシエテ アノニム 復号器におけるディジタル画像データの処理

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002503926A (ja) * 1998-02-16 2002-02-05 カナル プラス ソシエテ アノニム 復号器におけるディジタル画像データの処理

Also Published As

Publication number Publication date
JP3479184B2 (ja) 2003-12-15

Similar Documents

Publication Publication Date Title
JP3886184B2 (ja) 画像データの処理方法および画像処理装置
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
JP3578498B2 (ja) 画像情報処理装置
US6396493B2 (en) Methods and apparatus for recording and information processing, and recording method therefor
US6704018B1 (en) Graphic computing apparatus
JP3645024B2 (ja) 描画装置及び描画方法
JPH09305776A (ja) データ処理装置およびデータ処理方法
JP2002008060A (ja) データ処理方法、記録媒体及びデータ処理装置
JP2003516702A (ja) 3d変換マトリックス圧縮および復元
US5659672A (en) Method and apparatus for generating images
JP3569089B2 (ja) 画像生成方法、画像生成装置、記録媒体および疑似乱数発生装置
US7212215B2 (en) Apparatus and method for rendering an antialiased image
JP2004110850A (ja) 疑似乱数発生装置
JP3338043B2 (ja) 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス
JP3479184B2 (ja) 画像生成方法および画像生成装置
EP1288863B1 (en) Method and device for drawing
JP3657350B2 (ja) 関数発生器
JP4017467B2 (ja) 三角形メッシュデータの圧縮方法及びプログラム
JP3910259B2 (ja) 画像処理装置および方法、並びにレンダリング装置および方法
JP3872032B2 (ja) 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置
JP3548648B2 (ja) 描画装置及び描画方法
JP2002541600A (ja) 透視変換する装置及び方法
JP3556777B2 (ja) 画像処理装置
JP3934111B2 (ja) 描画装置及び描画方法
JP3698747B2 (ja) 画像データ生成方法及び画像処理システム

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