JP2004110850A - 疑似乱数発生装置 - Google Patents
疑似乱数発生装置 Download PDFInfo
- Publication number
- JP2004110850A JP2004110850A JP2003422371A JP2003422371A JP2004110850A JP 2004110850 A JP2004110850 A JP 2004110850A JP 2003422371 A JP2003422371 A JP 2003422371A JP 2003422371 A JP2003422371 A JP 2003422371A JP 2004110850 A JP2004110850 A JP 2004110850A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- pseudo
- initial value
- value
- seed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 少ないデータ量であっても乱数を用いて、より精細な描画できるようにする。
【解決手段】 物体を描画するための情報として、物体のおおよその形状を表す基準物体を描画するためのデータと、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える初期値とを伝送する。描画に際して、基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域を、多数個の基本多角形に分割する。この多数個の基本多角形の各頂点の座標を、前記初期値により初期化された疑似乱数発生手段からの乱数に基づいて定め、物体を前記多数個の基本多角形により描画する。
【選択図】 図1
【解決手段】 物体を描画するための情報として、物体のおおよその形状を表す基準物体を描画するためのデータと、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える初期値とを伝送する。描画に際して、基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域を、多数個の基本多角形に分割する。この多数個の基本多角形の各頂点の座標を、前記初期値により初期化された疑似乱数発生手段からの乱数に基づいて定め、物体を前記多数個の基本多角形により描画する。
【選択図】 図1
Description
この発明は、例えば、例えば、ビデオゲーム機やパーソナルコンピュータのように限られたハードウェア資源の中で、リアルタイムに3次元物体を生成して表示する場合に適用して好適な画像生成方法、画像生成装置、記録媒体およびその画像生成時に使用する疑似乱数発生装置に関する。
家庭用テレビゲーム機やパーソナルコンピュータあるいはグラフィックコンピュータなどにおいて、テレビ受像機やモニタ受像機などに出力して表示する画像データを生成するための画像生成装置は、バスを通じて互いに接続される、汎用メモリ、CPUやその他の演算LSIが組み合わされて構成され、描画用の画像データの流れとして、CPUとフレームバッファの間に専用の描画装置を設けることにより、高速処理を可能にしている。
すなわち、上記画像生成装置においては、CPU側では、画像を生成する際に、直接、表示画面に対応する表示メモリとしてのフレームバッファにアクセスするのではなく、座標変換やクリッピング、光源計算等のジオメトリ処理を行ない、3角形・4角形などの基本的な単位図形(ポリゴン)の組合せとして3次元モデルを定義して3次元画像を描画するための描画命令を作成する。そして、CPUは、その描画命令を外部バスを介して描画装置に送る。
描画命令には、描画しようとするポリゴンの形、位置、向き、色、模様などの情報が含まれる。ポリゴンの形、位置、向きは、その頂点の座標で決まる。
上記画像生成装置において、例えば、3次元のオブジェクト(表示すべき対象物をオブジェクトと称する)を表示する場合は、当該オブジェクトを複数のポリゴンに分解して、各ポリゴンに対応する描画命令をCPUが生成し、その生成した描画命令をバスを通じて描画装置に転送する。描画装置は、当該描画命令を実行して、フレームバッファに表示データを書き込み、目的の3次元オブジェクトを表示する。
しかしながら、上述の従来の手法では、多種多様な物体を精細に表現するためには、それぞれの物体に合わせて、小さな多数のポリゴンによりオブジェクトを表現する必要があるため、描画データとしては、それらの非常に多くのポリゴン情報を持つ必要があり、データ量の増大を招く問題があった。
このデータ量の増大を防ぐために、描画情報として伝送するポリゴン情報としては、物体のおおよその形状を表す基準物体を描画するためのデータのみとし、描画装置内で、前記ポリゴン情報を加工して、より精細に表現することが考えられる。
例えば自然石の表面の凹凸を精細に表現する場合、当該表現しようとする微細には凹凸を有する石のおおよその表面形状が四角形であった場合、描画情報として伝送するのは、図2に示す、その四角形の頂点A,B,C,Dの座標からなるポリゴン情報とする。
そして、描画装置において、この四角形ABCDを、辺ABの方向Uおよび辺ACの方向Vの2方向について分割することにより格子状に分割し、四角形を多数の微小四角形に分割する。そして、各微小四角形の頂点となる各格子点の座標を、四角形ABCDの面に対して垂直な方向を想定し、図2で矢印で示すように、その垂直な方向にランダムにずらして設定する。このようにして得られる各微小四角形の頂点を順次に結んで行けば、図2で、破線で示すように、微小な凹凸が四角形ABCD内に表現され、自然石の表面らしさが表現できる。
以上のようにして、伝送するポリゴン情報のデータ量は、少なくても、種々の精細な凹凸などの表現が可能となる。
ところで、前述した各格子点の座標の描画装置における設定方法としては、乱数を用いる方法が考えられる。しかし、一般に乱数は、任意に発生するものであり、再現性がないため、描画装置での描画の都度、物体の微細な形状や色等が変わってしまう。このため、リアルタイムコンピュータグラフィックス装置のように、同一物体に対して何枚もの画像を発生させることを必要とする装置では、そのままでは適用することができない。
この発明は、以上の点にかんがみ、上述したように、少ないデータ量であっても乱数を用いて、より精細な描画できるようにする画像生成方法および装置であって、多種多様な形状を再現性よく表現できるものを提供することを目的とする。
上記課題を解決するため、この発明による画像生成方法(請求項1)は、
物体を描画するための情報として、前記物体のおおよその形状を表す基準物体を描画するためのデータと、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値とを伝送し、
前記基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域を、多数個の基本多角形に分割すると共に、
前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定め、
前記物体を前記多数個の基本多角形により描画することを特徴とする。
物体を描画するための情報として、前記物体のおおよその形状を表す基準物体を描画するためのデータと、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値とを伝送し、
前記基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域を、多数個の基本多角形に分割すると共に、
前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定め、
前記物体を前記多数個の基本多角形により描画することを特徴とする。
また、この発明による画像生成装置(請求項6)は、
初期値が与えられることにより初期化され、再現性のある乱数を発生する疑似乱数発生器と、
物体のおおよその形状を表す基準物体を描画するための入力データにより表現される物体領域あるいは物体の部分領域を、多数個の基本多角形に分割し、前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定める疑似精細描画情報生成手段と、
前記疑似精細描画情報生成手段から得られる前記多数個の基本多角形により前記物体を描画する描画手段と
を備えることを特徴とする。
初期値が与えられることにより初期化され、再現性のある乱数を発生する疑似乱数発生器と、
物体のおおよその形状を表す基準物体を描画するための入力データにより表現される物体領域あるいは物体の部分領域を、多数個の基本多角形に分割し、前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定める疑似精細描画情報生成手段と、
前記疑似精細描画情報生成手段から得られる前記多数個の基本多角形により前記物体を描画する描画手段と
を備えることを特徴とする。
この発明においては、伝送される描画情報には、描画しようとする物体のおおよその形状を表す基準物体を描画するためのポリゴンデータの他に、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値が含まれる。したがって、少ないデータから再現性のある多種多様の物体形状を表現することが可能である。
以上説明したように、この発明によれば、初期化可能な再現性のある疑似乱数発生手段を内蔵する画像生成装置により、少ないデータから再現性のある多種多様な形状が得られる。このため、画像の描画表現方法や処理効率が向上する。
以下、この発明による画像処理装置の一実施の形態を、テレビゲーム機の場合について、図を参照しながら説明する。
図3は、この発明の一実施の形態のテレビゲーム機の構成例を示すもので、この例は3次元グラフィックス機能と、動画再生機能とを備えるゲーム機の場合の例である。
図4は、この例のゲーム機の外観を示すもので、この例のゲーム機は、ゲーム機本体1と、ユーザの操作入力部を構成するコントロールパッド2とからなる。コントロールパッド2は、このコントロールパッド2に接続されているケーブル3の先端に取り付けられているコネクタプラグ4を、ゲーム機本体1のコネクタジャック5Aに結合させることにより、ゲーム機本体1に接続される。この例では、いわゆる対戦ゲーム等のために、2個のコントロールパッド2がゲーム機本体1に対して接続することができるように、2個のコネクタジャック5A,5Bがゲーム機本体1に設けられている。
この例のゲーム機は、ゲームプログラムや画像データが書き込まれた補助記憶手段としての、例えばCD−ROMディスク6をゲーム機本体1に装填することにより、ゲームを楽しむことができる。
次に、図3を参照しながら、この例のゲーム機の構成について説明する。この例のゲーム機は、メインバス10と、サブバス20とからなる2つのシステムバスを備える構成を有している。これらメインバス10と、サブバス20との間のデータのやり取りは、バスコントローラ30により制御される。
そして、メインバス10には、メインCPU11と、メインメモリ12と、画像伸長デコード部13と、前処理部14と、描画処理部15と、メインのDMAコントローラ16が接続されている。描画処理部15には、処理用メモリ17が接続されていると共に、この描画処理部15は表示データ用のフレームバッファ(フレームメモリ)と、D/A変換回路を含み、この描画処理部15からのアナログビデオ信号がビデオ出力端子18に出力される。図示しないが、このビデオ出力端子18は、表示装置としての例えばCRTディスプレイに接続される。
サブバス20には、サブCPU21と、サブメモリ22と、ブートROM23と、サブのDMAコントローラ24と、音声処理用プロセッサ25と、入力部26と、補助記憶装置部27と、拡張用の通信インターフェース部28とが接続される。補助記憶装置部27は、この例ではCD−ROMデコーダ41とCD−ROMドライバ42を備える。ブートROM23には、ゲーム機としての立ち上げを行うためのプログラムが格納されている。また、音声処理用プロセッサ25に対しては、音声処理用メモリ25Mが接続されている。そして、この音声処理用プロセッサ25はD/A変換回路を備え、これよりはアナログ音声信号を音声出力端子29に出力する。
そして、補助記憶装置部27は、CD−ROMドライバ42に装填されたCD−ROMディスク6に記録されているアプリケーションプログラム(例えばゲームのプログラム)やデータをデコードする。CD−ROMディスク6のアプリケーションプログラムには、ポリゴン描画命令が含まれている。
このポリゴン描画命令には、描画すべき物体の形状を直接的に表現するためのポリゴン描画情報を含む場合の通常命令の他に、この例においては、描画すべき物体のおおよその形状を現す基準物体を描画するためのポリゴン情報と、そのポリゴン情報を加工してさらに微細に表現する疑似微細描画情報を生成する命令と、後述するように、前処理部14で、その疑似精細描画情報を生成する際に使用する疑似乱数発生器に与える初期値を含む特殊命令がある。この初期値は、一つのオブジェクトに一つではなく、必要に応じて多数個の初期値が付加される。例えば、物体のおおよその形状を表す基準物体を描画するための基本ポリゴンのそれぞれについて初期値が付加されていてもよい。
なお、ポリゴン描画命令の特殊命令は、疑似乱数発生器に与える初期値を含む場合に特殊命令であることを認識するようにすれば、疑似微細描画情報を生成する命令を含める必要はない。
また、CD−ROMディスク6には、例えば離散コサイン変換(DCT)を用いたMPEG2方式により画像圧縮された動画や静止画の画像データや、ポリゴンを修飾するためのテクスチャ画像の画像データも記録されている。
入力部26は、前述した操作入力手段としてのコントロールパッド2と、ビデオ信号の入力端子と、音声信号の入力端子を備えるものである。
メインCPU11は、メインバス10側の各部の管理および制御を行なう。また、このメインCPU11は、物体を多数のポリゴンの集まりとして描画する場合の処理の一部を行う。メインCPU11は、後述もするように、1画面分の描画画像を生成するための描画命令列をメインメモリ12上に作成する。メインCPU11とメインバス10とのデータのやり取りは、データをパケット形式にしてパケット単位に行い、バースト転送を可能にしている。
メインメモリ12は、動画や静止画の画像データに対しては、圧縮された画像データのメモリ領域と、伸長デコード処理された伸長画像データのメモリ領域とを備えている。また、メインメモリ12は、描画命令列などのグラフィックスデータのメモリ領域(これをパケットバッファという)を備える。このパケットバッファは、メインCPU11による描画命令列の設定と、描画命令列の描画処理部への転送とに使用される。
画像伸長デコード部13は、CD−ROMディスク6から再生され、メインメモリに転送された圧縮動画データやメインメモリ12上の圧縮されたテクスチャパターンデータの伸長処理を行なうもので、この例では、MPEG2の画像圧縮方式を採用するので、それに対応したデコーダの構成を有している。
前処理部14は、CPUを備えるプロセッサの構成とされるもので、メインCPU11の処理の一部を分担することができるようにするものである。そして、この例の場合には、後述するように、この前処理部14において、メインメモリ12から転送されてくる描画命令に含まれるポリゴンデータを加工して、疑似精細描画情報を生成し、表示のための2次元座標データを含む描画情報に変換する処理も行う。
描画処理部15は、前処理部14から転送されてくる描画情報を実行して、その結果をフレームメモリに書き込む。フレームメモリから読み出された画像データは、D/A変換器を介してビデオ出力端子18に出力され、画像モニター装置の画面に表示される。
このゲーム機の基本的な処理について以下に説明する。
[CD−ROMディスク6からのデータの取り込み]
図3の例のゲーム機に電源が投入され、ゲーム機本体1にCD−ROMディスク6が装填されると、ブートROM23の、ゲームを実行するためのいわゆる初期化処理をするためのプログラムが、サブCPU21により実行される。すると、CD−ROMディスク6の記録データが次のようにして取り込まれる。
図3の例のゲーム機に電源が投入され、ゲーム機本体1にCD−ROMディスク6が装填されると、ブートROM23の、ゲームを実行するためのいわゆる初期化処理をするためのプログラムが、サブCPU21により実行される。すると、CD−ROMディスク6の記録データが次のようにして取り込まれる。
すなわち、補助記憶装置部27においては、CD−ROMディスク6から、圧縮画像データ、描画命令及びメインCPU11が実行するプログラムが、CD−ROMドライバ42、CD−ROMデコーダ41を介して読み出され、サブDMAコントローラ24によってサブメモリ22に一旦ロードされる。
そして、このサブメモリ22に取り込まれたデータは、サブDMAコントローラおよびバスコントローラ30、さらにはメインDMAコントローラ16によってメインメモリ12に転送される。なお、サブCPU21は、描画処理部15のフレームに対して直接的にアクセスできるように構成されており、このサブCPU21によっても表示画像内容の変更が、描画処理部15の制御とは離れて可能とされている。
[圧縮画像データの伸長及び転送]
メインメモリ12の入力データのうち、圧縮画像データは、この例では、メインCPU11がハフマン符号のデコード処理を行った後、再びメインCPU11によりメインメモリ12に書き込まれる。そして、メインDMAコントローラ16は、このハフマン符号のデコード処理後の画像データをメインメモリ12から画像伸長部13に転送する。画像伸長部13は、逆量子化の処理と、逆DCTの処理を行って画像データの伸長デコード処理を行う。伸長された画像データは、メインDMAコントローラ16が、メインメモリ12に転送する。
メインメモリ12の入力データのうち、圧縮画像データは、この例では、メインCPU11がハフマン符号のデコード処理を行った後、再びメインCPU11によりメインメモリ12に書き込まれる。そして、メインDMAコントローラ16は、このハフマン符号のデコード処理後の画像データをメインメモリ12から画像伸長部13に転送する。画像伸長部13は、逆量子化の処理と、逆DCTの処理を行って画像データの伸長デコード処理を行う。伸長された画像データは、メインDMAコントローラ16が、メインメモリ12に転送する。
メインCPU11は、伸長された画像データのマクロブロックと呼ばれる単位データが一定量、メインメモリ12に蓄積された時点で、当該伸長データを描画処理部15のフレームメモリに転送する。この際に、伸長画像データがフレームメモリの画像メモリ領域に転送されれば、そのまま背景動画像として画像モニター装置で表示されることになる。また、フレームメモリのテクスチャー領域に転送される場合もある。このテクスチャー領域の画像データは、テクスチャー画像として、ポリゴンの修飾に使用される。
[描画命令列についての処理と転送]
物体の面を構成するポリゴンは、3次元的な奥行きの情報であるZデータに従って奥行き方向の深い位置にあるポリゴンから順に描画することにより、2次元画像表示面に立体的に画像を表示することができる。メインCPU11は、このように奥行き方向の深い位置にあるポリゴンから順に、描画処理部15で描画が行われるようにするための描画命令列をメインメモリ12上に作成する。
物体の面を構成するポリゴンは、3次元的な奥行きの情報であるZデータに従って奥行き方向の深い位置にあるポリゴンから順に描画することにより、2次元画像表示面に立体的に画像を表示することができる。メインCPU11は、このように奥行き方向の深い位置にあるポリゴンから順に、描画処理部15で描画が行われるようにするための描画命令列をメインメモリ12上に作成する。
メインCPU11は、入力部26のコントロールパッドからのユーザーの操作入力に基づいて、物体や視点の動きを計算し、メインメモリ12上にポリゴン描画命令列を作成する。
この描画命令列が完成すると、メインDMAコントローラ16は、前処理部14を通じて、描画命令毎に、メインメモリ12から描画処理部15に転送する。この際に、前処理部14においては、後述のような疑似精細描画情報の生成処理が施される。
描画処理部15では、送られてきたデータを順次実行して、その結果を、フレームメモリの描画領域に格納する。このポリゴン描画の際、データは、描画処理部15の勾配計算ユニットに送られ、勾配計算が行なわれる。勾配計算は、ポリゴン描画で多角形の内側をマッピングデータで埋めていく際、マッピングデータの平面の傾きを求める計算である。テクスチャーの場合はテクスチャー画像データでポリゴンが埋められ、また、グーローシェーディングの場合は輝度値でポリゴンが埋められる。
さらに、動画のテクスチャーが可能である。つまり、動画テクスチャーの場合には、前述したように、CD−ROMディスクからの圧縮された動画データは、一旦、メインメモリ12に読み込まれる。そして、この圧縮画像データは、画像伸長部13に送られる。画像伸長部13で、画像データが伸長される。このとき、前述したように、伸長処理の一部は、メインCPU11が負担する。
そして、伸長された動画データは描画処理部15のフレームメモリ上のテクスチャー領域に送られる。テクスチャー領域は、この描画処理部15のフレームメモリ内に設けられているので、テクスチャーパターン自身も、フレーム毎に書き換えることが可能である。このように、テクスチャー領域に動画を送ると、テクスチャーが1フレーム毎に動的に書き換えられて変化する。このテクスチャー領域の動画により、ポリゴンへのテクスチャーマッピングを行えば、動画のテクスチャーが実現される。
[前処理部14での疑似精細描画情報の生成]
図1は、疑似精細描画情報を生成することを主として、前処理部14の処理機能を示す機能ブロック図である。すなわち、この場合、前処理部14は、疑似精細描画情報生成部141と、疑似乱数発生部142と、描画処理部15での描画処理に適合した2次元座標への座標変換、透視変換および光源計算を行う変換演算部143とからなる。
図1は、疑似精細描画情報を生成することを主として、前処理部14の処理機能を示す機能ブロック図である。すなわち、この場合、前処理部14は、疑似精細描画情報生成部141と、疑似乱数発生部142と、描画処理部15での描画処理に適合した2次元座標への座標変換、透視変換および光源計算を行う変換演算部143とからなる。
疑似精細描画情報生成部141は、受け取った描画命令が、通常の描画命令であった場合には、その描画命令を変換演算部143に供給する。変換演算部143は、受け取った描画情報について、座標変換、透視変換、光源計算を行って、描画処理部15に渡す。
疑似精細描画情報生成部141は、受け取った描画命令が、前述した特殊命令であって、それにより直接的に描画される基本多角形をさらに微細に分割して表現すべきものであった場合には、図2に示したように、基本多角形を、方向Uおよび方向Vの2方向について分割することにより格子状に分割し、多数の微小四角形に分割する。
そして、疑似精細描画情報生成部141は、前記特殊命令に含まれる初期値を疑似乱数発生部142に供給し、この疑似乱数発生部142から対応する乱数を取得する。そして、微小四角形の頂点の各格子点の座標値を、図2に示した基本多角形である四角形ABCDの面に対して垂直な方向に、取得した乱数に基づいてずらした座標値に変換する。
そして、このようにして生成された微小四角形の疑似精細描画情報は、変換演算部143に供給されて、座標変換、透視変換、光源計算が行われ、描画処理部15に渡される。描画処理部15では、前述したように、フレームメモリにオブジェクトの描画を行うと共に、必要に応じてテクスチャマッピングを行い、その結果をCRTディスプレイに送って描画画像を表示する。
疑似乱数発生部142に設けられる疑似乱数発生器40は、初期値を与えることにより、一義的に定まる乱数系列を発生する。すなわち、疑似乱数発生器41は、初期値が与えられることで、再現性のある乱数系列を発生する。この例の疑似乱数発生器41は、線形合同法により疑似乱数を発生する。
図4は、この例の疑似乱数発生器40をハードウエアで実現する場合の構成図である。図示のように、この例の疑似乱数発生器40は、定数A、定数Cを発生する2個の定数発生器41、42と、乗算器43と、加算器44と、mod.M(Mは定数)演算器45とからなり、乱数値Rを発生する。そして、図示しないが、この乱数値Rを保持する。
乗算器43は、定数発生器41からの定数Aと、疑似精細描画情報生成部141から送られてくる初期値シード(シードは乱数発生の種)あるいはシードR(このRは前述したように求める乱数値でもある)との乗算演算を行う。加算器44は、乗算器43の乗算結果に定数発生器42からの定数Cを加算し、その加算結果をmod.M演算器45に供給する。mod.M演算器45は、加算器44の加算結果を定数Mで割って、余りRを求め、これを乱数値として出力する。
乗算器43は、これに初期値シードが供給されたときには、これと定数Aとの乗算演算を行う。その後は、疑似精細描画情報生成部141から乱数の読み出し要求があると、保持している現在の乱数シードRを疑似精細描画情報生成部141に渡すと共に、その現在の乱数シードRを用いて定数Aとの乗算演算を行い、次の乱数シードを生成する。すなわち、疑似乱数発生器40の現在のシードは、現在発生している乱数値とされ、次に発生する乱数は、この現在のシード、すなわち、現在の乱数発生値により一意に決定される。
したがって、疑似乱数発生器40は、初期値シードとして、定められた値が与えられると、常に同じ乱数系列が発生する。つまり、初期値シードにより再現性のある乱数を発生するものである。
この疑似乱数発生器40は、ソフトウエアによる演算によっても構成することができ、その場合の演算式は、
R←(A×R+C)mod.M
で表される。
R←(A×R+C)mod.M
で表される。
この疑似乱数発生器40では、前記定数A,Cを変えることにより、異なる乱数系列が得られる。
[疑似精細描画アルゴリズム1]
次に、図6および図7のフローチャートを参照しながら、疑似精細描画情報生成部141の処理動作を説明する。この例は、図2の四角形ABCDを前述したように格子状に分割して疑似精細描画情報を生成する場合の例であり、方向Vの各分割位置において、方向Uに順次に分割して、各格子点を定め、その格子点の座標を疑似乱数発生器40からの乱数値Rによって定めるようにする。この順序は、描画情報の作成時と同じである。また、後述する方向Vおよび方向Uについての分割単位距離Δv、Δuも、描画情報の作成時と同じである。
次に、図6および図7のフローチャートを参照しながら、疑似精細描画情報生成部141の処理動作を説明する。この例は、図2の四角形ABCDを前述したように格子状に分割して疑似精細描画情報を生成する場合の例であり、方向Vの各分割位置において、方向Uに順次に分割して、各格子点を定め、その格子点の座標を疑似乱数発生器40からの乱数値Rによって定めるようにする。この順序は、描画情報の作成時と同じである。また、後述する方向Vおよび方向Uについての分割単位距離Δv、Δuも、描画情報の作成時と同じである。
まず、ステップS1において、メインメモリ12から転送されてくる描画情報中の基本物体のポリゴンデータを読み込む。例えば図2の四角形ABCDからなる物体表面の4頂点A,B,C,Dの値(ベクトル値)を読み込む。また、この四角形ABCDからなる物体表面の情報に付随されている疑似乱数発生器40の初期値(シード)を読み込む。そして、読み込んだ初期値を疑似乱数発生器40に与え、疑似乱数発生器40を初期化する。また、四角形ABCDの平面と垂直なベクトルNを求める。
次に、ステップS2に進み、四角形ABCDの辺AC方向Vの距離vを0に初期化する。そして、次のステップS3で方向Vについての分割は終了したか否か判断し、終了していれば、この処理ルーチンを終了し、終了してしなければステップS4に進み、辺AB方向Uの距離uを0に初期化する。
そして、ステップS4の次にはステップS5に進み、方向Uについての分割は終了したか否か判断し、終了していれば、ステップS6に進み、方向Vの距離vを単位量Δvだけ増加して方向Vの次の分割位置にした後、ステップS3に戻り、このステップS3以降の処理を繰り返す。また、ステップS5で、方向Uについての分割は終了してしないと判断されたときには、図7のステップS10以降に進む。
ステップS10では、頂点ベクトルA,B,Cと、距離u,vの値から、現在の格子点位置(x,y,z)を求める。次にステップS11に進み、疑似乱数発生器40から乱数値Rを読み込む。そして、ステップS12に進み、次の演算を行う。
(X,Y,Z)←(x,y,z)+R×N×c … (式1)
ただし、cは適当な定数である。
(X,Y,Z)←(x,y,z)+R×N×c … (式1)
ただし、cは適当な定数である。
次のステップS13では、(式1)により求めた値(X,Y,Z)と、既に求めてある隣接した格子点についての値(X,Y,Z)により、微小四角形ポリゴンを作成し、後段の変換演算部143に出力する。次に、ステップS14では、(式1)により求めた値(X,Y,Z)を、ステップS13での処理に使用するために、メモリに格納する。そして、ステップS15に進み、方向Uの距離uを単位量Δuだけ増加して方向Uの次の分割位置にした後、ステップS10に戻り、このステップS10〜ステップS15の処理を繰り返す。
疑似精細描画情報生成部141は、以上の処理ルーチンを実行することで、図2でそれぞれ矢印で示した各格子点の値(X,Y,Z)を生成し、変換演算部143にそれぞれ供給する。そして、描画処理部15は、この変換演算部143からの座標変換出力を受けて、描画を実行するので、図2の破線で示したように、四角形平面ABCDは、凹凸を有する面として描画される。
この凹凸面の生成に使用された乱数値Rは、平面ABCDに関する付加的な情報としてCD−ROM6に記録された初期値が疑似乱数発生器40に与えられて得られたもので、当該初期値により一義的に再現される乱数値である。そして、格子の分割値Δv,Δuや分割順序が、描画情報の作成時と同じである場合には、疑似精細表面として変形された物体表面の形状は、描画情報の作成者の意図したものとまったく同一とすることができる。
すなわち、格子の分割値Δv,Δuや分割順序が、予め定められた一定のものであれば、疑似乱数発生器40に与えられた初期値シードに応じた物体表面の変形形状が得られるものである。こうして、少ないデータ量の描画情報から、再現性のある多様な形状が得られるものである。
[疑似精細描画アルゴリズム2]
図6および図7の場合は、四角形平面ABCDの全領域について、変形凹凸面を施して表示するものであるが、画面クリッピング等の理由により、四角形平面ABCDの一部の描画でよい場合がある。このような一部の領域の精細描画情報のために、図6および図7のルーチンのように、距離v=0,u=0の位置の格子から順次に求めるのは、時間が掛かり、効率が悪い。
図6および図7の場合は、四角形平面ABCDの全領域について、変形凹凸面を施して表示するものであるが、画面クリッピング等の理由により、四角形平面ABCDの一部の描画でよい場合がある。このような一部の領域の精細描画情報のために、図6および図7のルーチンのように、距離v=0,u=0の位置の格子から順次に求めるのは、時間が掛かり、効率が悪い。
図8およびその続きである図9は、この問題を解決した疑似精細描画情報生成部141の処理ルーチンの例である。
まず、ステップS21において、メインメモリ12から転送されてくる描画情報中の基本物体のポリゴンデータを読み込む。例えば図2の四角形ABCDからなる物体表面の4頂点A,B,C,Dの値(ベクトル値)を読み込む。また、この四角形ABCDからなる物体表面の情報に付随されている疑似乱数発生器40の初期値(シード)を読み込む。そして、読み込んだ初期値を疑似乱数発生器40に与え、疑似乱数発生器40を初期化する。また、四角形ABCDの平面と垂直なベクトルNを求める。この際に、四角形ABCD平面の内で、これから表示しようとする一部領域の情報も取得する。この情報は、メインCPU11で演算されて前処理部14に送られる。
次に、ステップS22に進み、四角形ABCDの辺AC方向Vの距離vを0に初期化する。そして、次のステップS23で方向Vについて、描画が必要となる領域まで達しているか否か判断し、描画が必要となる領域に達していないときにはステップS24に進み、疑似乱数発生器40より、生成された乱数値を読み込み、また、方向Vの距離vを単位量Δvだけ増加して方向Vの次の分割位置にした後、ステップS23に戻り、このステップS23以降の処理を繰り返す。ステップS24で、疑似乱数発生器40から乱数を読み込むと、疑似乱数発生器40は、その読み込まれた乱数値をシードとして、次の乱数を発生させる。
ステップS23で、方向Vについて、描画が必要となる領域の位置に達していると判断したときには、ステップS25に進み、方向Vについて、描画が必要となる領域を越えたか否か判断し、越えていれば、この処理ルーチンを終了する。越えていなければ、ステップS25からステップS26に進み、疑似乱数発生器40から乱数値を読み込み、それをR1として、これを保存する。
次に、ステップS26に進み、乱数値R1に何等かの変換、例えば2進数でのビット変換を施した値を求め、これにより疑似乱数発生器40を初期化する。そして、図9のステップS30に進む。
ステップS30では、辺AB方向Uの距離uを0に初期化する。そして、次のステップS31に進み、方向Uについて、描画が必要となる領域まで達しているか否か判断し、描画が必要となる領域に達していないときにはステップS32に進み、疑似乱数発生器40より、生成された乱数値を読み込み、また、方向Uの距離uを単位量Δuだけ増加して方向Uの次の分割位置にした後、ステップS31に戻り、このステップS31以降の処理を繰り返す。ステップS32で、疑似乱数発生器40から乱数を読み込むと、疑似乱数発生器40は、その読み込まれた乱数値をシードとして、次の乱数を発生させる。
ステップS31で、方向Uについて、描画が必要となる領域の位置に達していると判断したときには、ステップS33に進み、方向Uについて、描画が必要となる領域を越えたか否か判断し、描画が必要な領域内にあると判断したときには、ステップS34に進む。
ステップS34では、頂点ベクトルA,B,Cと、距離u,vの値から、現在の格子点位置(x,y,z)を求める。また、疑似乱数発生器40から乱数値を読み込み、それをR2とする。そして、ステップS35に進み、次の演算を行う。
(X,Y,Z)←(x,y,z)+R2×N×c … (式2)
ただし、cは適当な定数である。
(X,Y,Z)←(x,y,z)+R2×N×c … (式2)
ただし、cは適当な定数である。
次のステップS36では、(式2)により求めた値(X,Y,Z)と、既に求めてある隣接した格子点についての値(X,Y,Z)により、微小四角形ポリゴンを作成し、後段の変換演算部143に出力する。また、(式2)により求めた値(X,Y,Z)を、ステップS34での処理に使用するために、メモリに格納する。そして、ステップS37に進み、方向Uの距離uを単位量Δuだけ増加して方向Uの次の分割位置にした後、ステップS33に戻り、このステップS33〜ステップS37の処理を繰り返す。
また、ステップS33において、方向Uについて、描画が必要となる領域を越えたと判断したときには、ステップS38に進み、ステップS26で保存した乱数値R1をシードとして疑似乱数発生器40を初期化する。そして、ステップS39に進み、方向Vの距離vを単位量Δvだけ増加して方向Vの次の分割位置にした後、ステップS25に戻り、このステップS25以降の処理を繰り返す。
以上の処理ルーチンを実行することで、四角形平面ABCDの一部領域についての精細描画情報の生成を行う場合に、疑似精細描画情報生成部141では、効率良く処理を行うことができる。
すなわち、図6および図7の処理ルーチンのように、方向Vおよび方向Uの各分割位置のそれぞれについて、順次に乱数値を取得するようにする場合には、四角形平面ABCDの例えば図10で斜線で示すような一部領域を描画の必要な領域とするような場合でも、その必要な描画領域に達するまでのすべての格子点における乱数を発生させるようにする必要がある。このため、描画の必要な領域に到達するまでに時間が掛かり、効率が悪い。
これに対して、図8および図9の処理ルーチンの方法の場合には、図11に示すように、まず、方向Vについて、描画の必要な領域まで分割格子位置を移動させて、そのときの疑似乱数発生器40の乱数値をR1として取得し、この格子点位置の方向Vについての乱数シードとして保存する。
そして、このシードR1を初期値として、方向Uについての乱数を疑似乱数発生器40から発生させると、方向Vと方向Uとで同じ乱数系列になってしまうので、この乱数シードに変換を施した値R2を生成し、この値R2を初期値として疑似乱数発生器40を初期化し、方向Uについては、方向Vとは別系列の乱数を発生させるようにする。そして、方向Uについての乱数の発生は、図11に示すように、描画の必要な領域の範囲内のみとし、その範囲での乱数の発生が終了したら、方向Vの次の分割格子点位置に移行する。この移行の際に、保存した乱数シードR1により疑似乱数発生器40を初期化して、方向Vについての乱数を発生させ、方向Vの次の分割格子点位置の乱数を取得し、保存する。
そして、前述と同様にして、方向Uについては、保存した乱数シードに変換を施した値を生成し、その値を初期値として疑似乱数発生器40を初期化し、方向Uについては、方向Vとは別系列の乱数を発生させ、上述と同様の動作を繰り返す。
したがって、図8および図9に示した処理ルーチンの場合には、一部の描画を行うときに、効率良く乱数の取得が行われ、計算量が節約されるので、描画情報の生成が高速に行われるものである。
なお、この図8および図9に示す処理ルーチンによる方法は、上述のような2次元格子の場合に限らず、3次元以上の多次元格子に対しても拡張することができる。
また、図8および図9の例では、方向Vで得られた乱数に、ある変換を施した値を方向Uの乱数系列の初期値として用いたが、異なる独立の系列の乱数を発生する複数個の疑似乱数発生器を設け、方向Vと方向Uとで使用する乱数を異なる疑似乱数発生器の出力とすることにより、方向Vと方向Uとで、より相関のない値が得られる効果がある。この方法も、3次元以上の多次元格子に対しても拡張することができる。
このように、コンピュータグラフィックス用の画像生成装置に複数個の疑似乱数発生器を設けることにより、多種多様な疑似乱数系列を発生させることが可能になり、描画表現方法や処理効率が向上する。
[疑似精細描画アルゴリズム3]
以上の例は、物体生成領域をn次元の格子状の点を代表点として、画像生成を行うアルゴリズムの場合の例である。以下に説明するアルゴリズム3の例は、例えば、図12に示すように、四角形ABCD平面を再帰的に分割して変形をかけるような表現方法の場合の例である。
以上の例は、物体生成領域をn次元の格子状の点を代表点として、画像生成を行うアルゴリズムの場合の例である。以下に説明するアルゴリズム3の例は、例えば、図12に示すように、四角形ABCD平面を再帰的に分割して変形をかけるような表現方法の場合の例である。
再帰的構造は、図13に示すような木構造により表現できる。すなわち、源(ルート)から順次低いレベルに移行する。各レベルは複数のノードを備えてなる。例えば、図12の例であれば、四角形ABCDがルートである。そして、四角形ABCDが4分割されたものがレベル1であり、レベル1の分割後の四角形がさらに4分割されたものがレベル2である。以下、同様にして、図12の例では、各ノードにおいて4分割が行われ、それぞれ新しく5頂点を生成して、4つの小領域を発生する。
このアルゴリズム3においては、それぞれのノードにおいて、再現性がある5個の乱数が得られれば、乱数で変形した小領域を再帰的に生成することができる。以下に説明するアルゴリズム3は、これを実現するための、木構造における再現性のある乱数を発生させるアルゴリズムである。
ここで、レベルj(j=1,2,…)において左からi(i=1,2,…)番目のノードにおける乱数値をSj,i とする。また、疑似乱数発生部142は、乱数のシードを格納するために、ラストインラストアウト構造を持つスタックTを有するものとする。
このときの疑似乱数発生部142の処理手順は、図14に示すようなものとなる。ある処理S41のときに、初期値が与えられると、その与えられた初期値をもとに、処理S42において疑似乱数発生器40を初期化する。そして、処理S43において、前記j=1、i=1として、図15に示す手順からなる関数Randam Treeを呼ぶ。そして、処理S44で、処理を実行する。
次に、図15の関数Randam Treeの処理ルーチンについて以下に説明する。
この処理ルーチンの最初のステップS51は、レベルjで左からi番目のノードの状態で、この関数が呼ばれたときには、j=1、i=1である。このステップS51では、疑似乱数発生器40に格納されているシードSj,i を現ノードにおける生成乱数とする。なお、必要に応じて、このシードSj,i を用いて現ノードにおける乱数を使用した計算を行う。
次のステップS52においては、レベルj-1 の親ノードに戻るか否か判断し、戻るのであれば、この関数Randam Treeをリターン(終了)して、親ノードの状態に戻る(ステップS53)。親ノードに戻らないのであれば、ステップS54に進み、同レベルの右隣のノードへ移動するか否か判断する。すなわち、この例では、同レベルでは必ず右隣方向にノードを移動するという規則にしてあるので、順次に右隣に移動する。そして、右隣に移動するのであれば、ステップS55に進んで、疑似乱数発生器40から次の乱数Sj,i+1 を得た後、ステップS51に戻る。
ステップS54で同レベルの右隣に移動するのではないと判断されたときには、子ノードへの移動としてステップS56に進み、現ノードの乱数値、すなわち、シードSj,i をスタックTに格納する。そして、乱数系列を変えるために、このシードに何等かの変換、例えば2進数でのビット反転、を施し、その結果得られる値を新しいシードとして、再度、疑似乱数発生器40を初期化する。次にステップS57で、次のレベルの一番左端の子ノードへ移動するため、前記jをインクリメントし、また、前記iに1を代入して、自分自身である関数Randam Treeを再帰的に呼ぶ。
ステップS57の処理が終了したら、ステップS58に進み、スタックTから、格納されていた親ノードの乱数シードを取り出して、疑似乱数発生器40をこれで初期化した後、ステップS51に戻る。
以上のアルゴリズム3により得られた再現性のある乱数で、物体表面の情報を再帰的に分割して変形するような加工することが可能である。また、特定のノードの乱数値を得る場合でも全探索の必要がなく、効率良く、ノードにおける物体表面の情報を加工することができる。
なお、前述したアルゴリズム1およびアルゴリズム2のn次元格子での乱数発生手法を、上述の再帰的構造を持つアルゴリズムの一部として適用することが可能である。すなわち、nレベルの木構造を想定し、各レベルにおけるノード数を各次元軸での格子数として扱うことができる。すなわち、この発明による乱数発生手法は、格子構造や木構造を組み合わせた描画表現方法に対しても、そのまま応用可能である。
[疑似乱数発生部142の構成例]
[構成例1]
前述したアルゴリズム2における描画すべき領域の乱数を求める場合や、アルゴリズム3における各レベルの左端以外のノードから乱数が必要な場合には、疑似乱数発生部142の機能として、指定された数だけ後の乱数値が得られる機能があれば、非常に効率の良い処理が可能である。
[構成例1]
前述したアルゴリズム2における描画すべき領域の乱数を求める場合や、アルゴリズム3における各レベルの左端以外のノードから乱数が必要な場合には、疑似乱数発生部142の機能として、指定された数だけ後の乱数値が得られる機能があれば、非常に効率の良い処理が可能である。
図16は、この要求に応じる疑似乱数発生部142の構成例である。すなわち、この例においては、疑似乱数発生器40に対してカウンタ50を設ける。このカウンタ50は、保持するカウント値が0より大きいときには、各カウント値で1回、疑似乱数発生器40に対して乱数発生要求信号を送る。そして、乱数発生要求を送ったら、次のクロックでカウント値を一つ減らす。つまり、ダウンカウントする。そして、カウント値が0になると、カウンタ50は、カウントと乱数発生要求信号の発生を停止する。
カウンタ50には、カウント設定値がプリセットされ、このカウント設定値からダウンカウントを行う。したがって、乱数発生要求信号は、カウント設定値だけ発生する。
一方、疑似乱数発生器40は、疑似精細描画情報生成部141からの初期値(シード)により初期化され、乱数発生要求信号が到来するごとに、生成した乱数値をシードとして、次の乱数シードを生成し、保持する乱数シードをその新たに生成したものに変更する。また、この例の疑似乱数発生器40は、疑似精細描画情報生成部141から乱数要求信号が到来しても、カウンタ50のカウント値が0より大きいときには、そのときの乱数値を疑似精細描画情報生成部141に渡さず、カウント値が0になるまで待ち、カウント値が0になったときの乱数シードを疑似精細描画情報生成部141に渡す。
したがって、例えば、一部領域の描画を行う場合、必要な描画の領域までの方向Vおよび方向Uの乱数の個数が既知であれば、カウンタ50のプリセットカウント設定値を、その個数とすることにより、必要な乱数値を高速に求めることができる。すなわち、図16の構成の疑似乱数発生部142により、予め定めた任意個数先の乱数値を高速に求めることができるものである。
[構成例2]
前述したアルゴリズム3においては、疑似乱数発生部142は、乱数シードを格納するスタックを有するものであった。図17は、このスタックを内蔵した疑似乱数発生部142の構成例である。この例では、シード格納用スタック61を設けるとともに、スタック操作を可能にするために、スタックポインタ62が設けられる。
前述したアルゴリズム3においては、疑似乱数発生部142は、乱数シードを格納するスタックを有するものであった。図17は、このスタックを内蔵した疑似乱数発生部142の構成例である。この例では、シード格納用スタック61を設けるとともに、スタック操作を可能にするために、スタックポインタ62が設けられる。
この例においては、プッシュ要求信号と、ポップ要求信号とが、スタックポインタ62に供給されるとともに、疑似乱数発生器40にも供給される構成とされている。
そして、図17の疑似乱数発生部142に、プッシュ要求信号が入力されると、スタックポインタ62がディクリメントされ、疑似乱数発生器40の現在のシードが、スタック61のスタックポインタが示す格納場所に格納される。
また、ポップ要求信号が入力されると、スタック61の、スタックポインタ62が示す格納場所に格納されている乱数シードが疑似乱数発生器40に戻されて、疑似乱数発生器40が初期化される。そして、スタックポインタ62がインクリメントされる。
したがって、図17の構成の疑似乱数発生部142により、アルゴリズム3での、再帰的構造を持つ再現可能な乱数の発生を効率良く行うことができる。
[構成例3]
前述したアルゴリズム3においては、乱数シードをスタックに格納した直後に、異なるパターンの他の疑似乱数を発生させるために、何等かの変換を施すようにしている。図18の例の疑似乱数発生部142は、この変換を自動的に行うシード変換手段63を備えるものである。
前述したアルゴリズム3においては、乱数シードをスタックに格納した直後に、異なるパターンの他の疑似乱数を発生させるために、何等かの変換を施すようにしている。図18の例の疑似乱数発生部142は、この変換を自動的に行うシード変換手段63を備えるものである。
すなわち、図18の例のシード変換手段63は、これにプッシュ要求信号が供給されると、疑似乱数発生器40から現在の乱数シードを読み出し、読み出した乱数シードに、前述したように、例えば2進数のビット反転の変更を加える。そして、その変更後の乱数シードを、疑似乱数発生器40の格納部に、現在の乱数シードとして書き込むようにする。したがって、疑似精細描画情報生成部141からの乱数要求信号により、何等かの変更を施した後の乱数が直接的に得られる。その他は、図17の例と同様である。
この図18の例によれば、再帰的構造アルゴリズムの処理を、より高速に行うことができる。なお、シード変換手段63でのシード変換としては、ビット反転ではなく、ビットの並び変え、ある特定のビットパターンとの排他的論理和演算など、種々のものを用いることができる。
[構成例4]
図19は、複数通りのシード変換方式を有し、スイッチ回路により、それを選択することができるようにした場合の疑似乱数発生部142の例である。
図19は、複数通りのシード変換方式を有し、スイッチ回路により、それを選択することができるようにした場合の疑似乱数発生部142の例である。
すなわち、シード変換手段63に加えて、変換方式を異にするシード変換手段64を設ける。このシード変換手段64も、これにプッシュ要求信号が供給されると、疑似乱数発生器40から現在の乱数シードを読み出して、これに、例えばビットの並び変えの変更を加え、その変更後の乱数シードを、疑似乱数発生器40の格納部に、現在の乱数シードとして書き込むようにするものである。
そして、この例の場合には、シード変換手段63とシード変換手段64との変更後の出力をスイッチ回路65で選択するようにするものである。スイッチ回路65の切り換えは、疑似精細描画情報生成部141が行う。
前述した図13の木構造で、各ノードから子ノードへ移行するとき、適切なシード変換方式は、使用する物体表現のアルゴリズムにより異なることがあるが、この図19の例によれば、異なるアルゴリズムに対応して適切なシード変換を選択することが可能である。したがって、より質の良い物体表現が可能になる。
[構成例5]
図20の例は、シード変換手段を用いずに、異なる系列の乱数を発生することができる場合の例である。すなわち、この例の疑似乱数発生器400は、乱数系列Aと乱数系列Bの2通りが、その選択端子SELへの選択信号により選択できるものである。この例では、この選択端子SELにプッシュ要求信号を供給する。プッシュ要求信号は、要求時は、例えば「1」で、その他のときには「0」である。このため、疑似乱数発生器400は、プッシュ要求時には、系列Bの乱数を発生し、その他のときには、系列Aの乱数を発生する。
図20の例は、シード変換手段を用いずに、異なる系列の乱数を発生することができる場合の例である。すなわち、この例の疑似乱数発生器400は、乱数系列Aと乱数系列Bの2通りが、その選択端子SELへの選択信号により選択できるものである。この例では、この選択端子SELにプッシュ要求信号を供給する。プッシュ要求信号は、要求時は、例えば「1」で、その他のときには「0」である。このため、疑似乱数発生器400は、プッシュ要求時には、系列Bの乱数を発生し、その他のときには、系列Aの乱数を発生する。
したがって、疑似乱数発生器400の乱数シードをスタック61に格納する際には、異なる乱数系列を使用して現在の乱数シードを変更することになる。
この例の場合、前述のアルゴリズム3において、子ノードへの移行に関しては、新たなシードが変換されて得られ、また、親ノードと左端の子ノードとの乱数値の関係も、乱数系列Bによる相関関係となるので、全体的に品質の良い乱数を得ることができ、特別に、複数のシード変換機能を持たなくても、多様なアルゴリズムに対して適用することが可能である。
以上のように、この実施の形態の画像生成装置によれば、初期化可能な再現性のある疑似乱数発生手段を内蔵することにより、少ないデータから再現性のある多種多様な形状が得られる。
また、n次元格子に対して再現性のある疑似乱数を発生させることにより、必要とする領域の乱数系列を少ない計算量で求めることができる。
また、複数の疑似乱数発生器を用いて、n次元格子に対して品質の高い再現性のある疑似乱数を発生させることができ、品質の高い乱数系列を必要とする領域において、少ない計算量で乱数を発生させることができる。
また、再帰的構造に対して再現性のある疑似乱数を発生させることにより、必要とする領域の乱数系列を少ない計算量で求めることができる。
カウント機能を内蔵した疑似乱数発生器を用いることにより、疑似乱数系列において任意個数先の乱数値を高速に求めることができ、再現性のある疑似乱数を領域の一部のみに対して求める計算を高速に行うことができる。
また、疑似乱数発生器に乱数シードを格納するスタック機能を付加することにより、再帰的構造を持つ再現可能な乱数発生を効率良く行うことができる。
また、自動的に現在の乱数シードを変更する機能を付加することにより、再帰的構造を持つ再現可能な乱数発生を高速に行うことができる。
また、乱数シードの変更の方式をいくつか用意することにより、使用するアルゴリズムに対して適切な変更を選択することが可能になり、より良い物体表現の質を得ることができる。
また、疑似乱数発生器が少なくとも2つの異なる複数の独立の乱数系列を発生する機能を備える場合には、全体で品質の良い乱数を得ることができ、特別の複数のシード変換機能を持たなくても、多様なアルゴリズムに対応することができる。
なお、以上の構成例2〜構成例5の疑似乱数発生器40は、構成例1のカウント機能付きのものとすれば、再帰的アルゴリズムで任意個数先の乱数値を高速に得ることが可能である。
なお、上述の例は、ゲーム機にこの発明を適用した場合について説明したが、この発明は、ゲーム機に限らず、種々のコンピュータグラフィックス用画像生成装置に適用可能である。
6…CD−ROM、14…前処理部、15…描画処理部、40…疑似乱数発生器、50…カウンタ、61…スタック、62…スタックポインタ、63…シード変換手段、141…疑似精細描画情報生成部、142…疑似乱数発生部、143…変換演算部
Claims (14)
- 物体を描画するための情報として、前記物体のおおよその形状を表す基準物体を描画するためのデータと、初期値が与えられることにより初期化されて再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値とを伝送し、
前記基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域を、多数個の基本多角形に分割すると共に、
前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定め、
前記物体を前記多数個の基本多角形により描画することを特徴とする画像生成方法。 - 請求項1に記載の画像生成方法において、
前記疑似乱数発生手段は、1個であって、
前記基準物体を描画するためのデータにより表現される物体領域あるいは物体の部分領域をn次元格子(nは2以上の整数)に分割し、
i−1(i≦n)次元格子上の各点上で得られた乱数の値に所定の変換を施した値を、その点を起点としてi次元格子方向の乱数を得るために、前記疑似乱数発生手段の初期値として与え、得られた乱数を元に前記i次元格子方向の各点の情報を加工して前記物体を表示することを特徴とする画像生成方法。 - 請求項1に記載の画像生成方法において、
前記疑似乱数発生手段は、複数個であって、
前記基準物体を描画するためのデータにより表現される物体領域あるいは物体の部分領域は、n次元格子(nは2以上の整数)に分割し、前記複数個の疑似乱数発生手段の一つによりi−1(i≦n)次元格子上の各点上で得られた乱数の値を、その点を起点としてi次元格子方向の乱数を得るために、前記疑似乱数発生手段とは他の疑似乱数発生手段の初期値として与え、当該他の疑似乱数発生手段から得られた乱数を元に前記i次元格子方向の各点の情報を加工して前記物体を表示することを特徴とする画像生成方法。 - 初期値が与えられることにより初期化されて、再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値と、描画すべき物体のおおよその形状を表す基準物体を描画するための描画情報とを一塊として、前記疑似乱数発生手段を備える画像生成装置に伝送して、画像を生成させるようにする画像データの伝送方法。
- 初期値が与えられることにより初期化されて、再現性のある乱数を発生する疑似乱数発生手段に与える前記初期値と、描画すべき物体のおおよその形状を表す基準物体を描画するための描画情報とが、前記物体を描画するための情報として記録された記録媒体。
- 初期値が与えられることにより初期化され、再現性のある乱数を発生する疑似乱数発生器と、
物体のおおよその形状を表す基準物体を描画するための入力データにより表現される物体領域あるいは物体の部分領域を、多数個の基本多角形に分割し、前記多数個の基本多角形の各頂点の座標を、前記初期値により初期化された前記疑似乱数発生手段からの乱数に基づいて定める疑似精細描画情報生成手段と、
前記疑似精細描画情報生成手段から得られる前記多数個の基本多角形により前記物体を描画する描画手段と
を備えることを特徴とする画像生成装置。 - 請求項6に記載の画像生成装置において、
前記疑似乱数発生手段は1個であって、
前記疑似精細描画情報生成手段は、前記基準物体を描画するためのデータにより表現される物体領域あるいは物体の部分領域をn次元格子(nは2以上の整数)に分割し、i−1(i≦n)次元格子上の各点上で得られた乱数の値に所定の変換を施した値を、その点を起点としてi次元格子方向の乱数を得るために、前記疑似乱数発生手段の初期値として与え、得られた乱数を元に前記i次元格子方向の各点の情報を加工することを特徴とする画像生成装置。 - 請求項6に記載の画像生成装置において、
前記疑似乱数発生手段は、複数個であって、
前記疑似精細描画情報生成手段は、前記基準物体を描画するためのデータにより表現する物体領域あるいは物体の部分領域をn次元格子(nは2以上の整数)に分割し、前記複数個の疑似乱数発生手段の一つによりi−1(i≦n)次元格子上の各点上で得られた乱数の値を、その点を起点としてi次元格子方向の乱数を得るために、前記疑似乱数発生手段とは他の疑似乱数発生手段の初期値として与え、当該他の疑似乱数発生手段から得られた乱数を元に前記i次元格子方向の各点の情報を加工することを特徴とする画像生成装置。 - 請求項1に記載の画像生成方法において、
順次に親子関係を持った複数のレベルを備え、各レベルが複数のノードで構成される再帰的構造により物体を表現する際に、
前記再帰的構造において、現状態に対する前記ノードで得られた乱数の値に何等かの変数を施した値を、子ノード列で発生する乱数の初期値として与えて乱数列を発生させ、親ノードの乱数値をスタックに退避し、子ノードから親ノードに戻るときには親ノードの乱数値をスタックより戻すことにより、各ノードで再現性のある乱数を発生させ、得られた乱数を元に各ノードにおける情報を加工して物体を表現する画像生成方法。 - 初期値により初期化され、発生する乱数値を、次の乱数を発生するための乱数シードとしても用いて、順次乱数を発生する疑似乱数発生装置であって、
カウント機能を内蔵し、そのプリセットカウント設定値に応じた個数だけ先の乱数を、出力することを特徴とする疑似乱数発生装置。 - 初期値により初期化され、発生する乱数値を、次の乱数を発生するための乱数シードとしても用いて、順次乱数を発生する疑似乱数発生装置であって、
前記乱数シードを格納するためのスタックと、このスタックへの格納操作およびこのスタックからの読み出し操作を実現するためのスタックポインタとを備えることを特徴とする疑似乱数発生装置。 - 請求項11に記載の疑似乱数発生装置において、
前記乱数シードを前記スタックに格納したときに、現在の乱数シードを他の値に変更する手段を備えることを特徴とする疑似乱数発生装置。 - 請求項12に記載の疑似乱数発生装置において、
前記乱数シードを他の値に変更する手段を複数種類設けると共に、そのうちの一つを、選択制御信号により選択する手段を備えることを特徴とする疑似乱数発生装置。 - 請求項12に記載の疑似乱数発生装置において、
少なくとも2つの異なる独立の乱数系列を発生する機能を備え、
前記乱数シードを前記スタックに格納する際には、異なる乱数系列を使用して現在の乱数シードを変更することを特徴とする疑似乱数発生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003422371A JP2004110850A (ja) | 2003-12-19 | 2003-12-19 | 疑似乱数発生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003422371A JP2004110850A (ja) | 2003-12-19 | 2003-12-19 | 疑似乱数発生装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29947896A Division JP3569089B2 (ja) | 1996-10-23 | 1996-10-23 | 画像生成方法、画像生成装置、記録媒体および疑似乱数発生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110850A true JP2004110850A (ja) | 2004-04-08 |
Family
ID=32291250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003422371A Pending JP2004110850A (ja) | 2003-12-19 | 2003-12-19 | 疑似乱数発生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110850A (ja) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008535622A (ja) * | 2005-04-11 | 2008-09-04 | タグ ネットワークス,インコーポレイテッド | マルチプレーヤビデオゲームシステム |
US8619867B2 (en) | 2005-07-08 | 2013-12-31 | Activevideo Networks, Inc. | Video game system using pre-encoded macro-blocks and a reference grid |
US9021541B2 (en) | 2010-10-14 | 2015-04-28 | Activevideo Networks, Inc. | Streaming digital video between video devices using a cable television system |
US9042454B2 (en) | 2007-01-12 | 2015-05-26 | Activevideo Networks, Inc. | Interactive encoded content system including object models for viewing on a remote device |
US9061206B2 (en) | 2005-07-08 | 2015-06-23 | Activevideo Networks, Inc. | Video game system using pre-generated motion vectors |
US9077860B2 (en) | 2005-07-26 | 2015-07-07 | Activevideo Networks, Inc. | System and method for providing video content associated with a source image to a television in a communication network |
US9123084B2 (en) | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
JP2015176492A (ja) * | 2014-03-17 | 2015-10-05 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックス処理装置およびグラフィックス処理方法 |
US9204203B2 (en) | 2011-04-07 | 2015-12-01 | Activevideo Networks, Inc. | Reduction of latency in video distribution networks using adaptive bit rates |
US9219922B2 (en) | 2013-06-06 | 2015-12-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US9294785B2 (en) | 2013-06-06 | 2016-03-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US9326047B2 (en) | 2013-06-06 | 2016-04-26 | Activevideo Networks, Inc. | Overlay rendering of user interface onto source video |
US9788029B2 (en) | 2014-04-25 | 2017-10-10 | Activevideo Networks, Inc. | Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks |
US9800945B2 (en) | 2012-04-03 | 2017-10-24 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US9826197B2 (en) | 2007-01-12 | 2017-11-21 | Activevideo Networks, Inc. | Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device |
US9852522B2 (en) | 2014-03-17 | 2017-12-26 | Sony Interactive Entertainment Inc. | Image decoder, graphics processing system, image decoding method, and graphics processing method |
US10275128B2 (en) | 2013-03-15 | 2019-04-30 | Activevideo Networks, Inc. | Multiple-mode system and method for providing user selectable video content |
US10409445B2 (en) | 2012-01-09 | 2019-09-10 | Activevideo Networks, Inc. | Rendering of an interactive lean-backward user interface on a television |
-
2003
- 2003-12-19 JP JP2003422371A patent/JP2004110850A/ja active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008535622A (ja) * | 2005-04-11 | 2008-09-04 | タグ ネットワークス,インコーポレイテッド | マルチプレーヤビデオゲームシステム |
US9061206B2 (en) | 2005-07-08 | 2015-06-23 | Activevideo Networks, Inc. | Video game system using pre-generated motion vectors |
US8619867B2 (en) | 2005-07-08 | 2013-12-31 | Activevideo Networks, Inc. | Video game system using pre-encoded macro-blocks and a reference grid |
US9077860B2 (en) | 2005-07-26 | 2015-07-07 | Activevideo Networks, Inc. | System and method for providing video content associated with a source image to a television in a communication network |
US9826197B2 (en) | 2007-01-12 | 2017-11-21 | Activevideo Networks, Inc. | Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device |
US9042454B2 (en) | 2007-01-12 | 2015-05-26 | Activevideo Networks, Inc. | Interactive encoded content system including object models for viewing on a remote device |
US9355681B2 (en) | 2007-01-12 | 2016-05-31 | Activevideo Networks, Inc. | MPEG objects and systems and methods for using MPEG objects |
US9021541B2 (en) | 2010-10-14 | 2015-04-28 | Activevideo Networks, Inc. | Streaming digital video between video devices using a cable television system |
US9204203B2 (en) | 2011-04-07 | 2015-12-01 | Activevideo Networks, Inc. | Reduction of latency in video distribution networks using adaptive bit rates |
US10409445B2 (en) | 2012-01-09 | 2019-09-10 | Activevideo Networks, Inc. | Rendering of an interactive lean-backward user interface on a television |
US10757481B2 (en) | 2012-04-03 | 2020-08-25 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US10506298B2 (en) | 2012-04-03 | 2019-12-10 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US9800945B2 (en) | 2012-04-03 | 2017-10-24 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US9123084B2 (en) | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
US11073969B2 (en) | 2013-03-15 | 2021-07-27 | Activevideo Networks, Inc. | Multiple-mode system and method for providing user selectable video content |
US10275128B2 (en) | 2013-03-15 | 2019-04-30 | Activevideo Networks, Inc. | Multiple-mode system and method for providing user selectable video content |
US10200744B2 (en) | 2013-06-06 | 2019-02-05 | Activevideo Networks, Inc. | Overlay rendering of user interface onto source video |
US9326047B2 (en) | 2013-06-06 | 2016-04-26 | Activevideo Networks, Inc. | Overlay rendering of user interface onto source video |
US9294785B2 (en) | 2013-06-06 | 2016-03-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US9219922B2 (en) | 2013-06-06 | 2015-12-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US9852522B2 (en) | 2014-03-17 | 2017-12-26 | Sony Interactive Entertainment Inc. | Image decoder, graphics processing system, image decoding method, and graphics processing method |
JP2015176492A (ja) * | 2014-03-17 | 2015-10-05 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックス処理装置およびグラフィックス処理方法 |
US9788029B2 (en) | 2014-04-25 | 2017-10-10 | Activevideo Networks, Inc. | Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004110850A (ja) | 疑似乱数発生装置 | |
JP3569089B2 (ja) | 画像生成方法、画像生成装置、記録媒体および疑似乱数発生装置 | |
JP3886184B2 (ja) | 画像データの処理方法および画像処理装置 | |
US8947448B2 (en) | Image processing device, image data generation device, image processing method, image data generation method, and data structure of image file | |
US6011564A (en) | Method and apparatus for producing an image through operation of plotting commands on image data | |
CA2163839A1 (en) | Method and apparatus for mapping texture | |
JP2004213641A (ja) | 画像処理装置、画像処理方法、情報処理装置、情報処理システム、半導体デバイス、コンピュータプログラム | |
US5659672A (en) | Method and apparatus for generating images | |
KR100650228B1 (ko) | 3차원 이미지 처리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체,3차원 이미지 처리 방법, 및 비디오 게임 장치 | |
US7212215B2 (en) | Apparatus and method for rendering an antialiased image | |
US20090267942A1 (en) | Image processing device, control method for image processing device and information recording medium | |
EP1288866B1 (en) | Image generation method | |
US6867766B1 (en) | Image generating apparatus, image generating method, entertainment system, and recording medium | |
US20130194263A1 (en) | Three-dimensional image display device and three-dimensional image display program | |
JP4443716B2 (ja) | ゲーム装置、および、情報記憶媒体 | |
JPH10198823A (ja) | 映像生成装置 | |
JP3706545B2 (ja) | 画像の生成方法及びそれに用いるプログラム | |
US7116339B2 (en) | Image rendering method using recursive interpolation | |
JPH1153572A (ja) | 物体の動き表現方法、オブジェクト表示方法、ゲームシステム及びゲームプログラムが記録されたコンピュータ読取可能な記録媒体 | |
JPH08161511A (ja) | 画像生成装置 | |
KR20030012843A (ko) | 정보 처리 시스템, 엔터테인먼트 시스템, 시작 화면디스플레이 방법 및 정보 기록 매체 | |
JP2004141351A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070306 |