JP4566120B2 - プログラム、情報記憶媒体及び画像生成システム - Google Patents

プログラム、情報記憶媒体及び画像生成システム Download PDF

Info

Publication number
JP4566120B2
JP4566120B2 JP2005336045A JP2005336045A JP4566120B2 JP 4566120 B2 JP4566120 B2 JP 4566120B2 JP 2005336045 A JP2005336045 A JP 2005336045A JP 2005336045 A JP2005336045 A JP 2005336045A JP 4566120 B2 JP4566120 B2 JP 4566120B2
Authority
JP
Japan
Prior art keywords
processing
processing unit
pixel
vertex
group
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.)
Active
Application number
JP2005336045A
Other languages
English (en)
Other versions
JP2007141077A (ja
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.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games 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 Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2005336045A priority Critical patent/JP4566120B2/ja
Priority to US11/600,197 priority patent/US7724255B2/en
Priority to GB0623157A priority patent/GB2432500B/en
Publication of JP2007141077A publication Critical patent/JP2007141077A/ja
Application granted granted Critical
Publication of JP4566120B2 publication Critical patent/JP4566120B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Landscapes

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

Description

本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
従来より、車、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
このような画像生成システムでは、頂点単位で行われる処理(per vertex processing)である頂点処理と、ピクセル単位で行われる処理(per pixel processing)であるピクセル処理がある。
しかしながら、これまでの画像生成システムでは、頂点処理を行う頂点処理部、ピクセル処理を行うピクセル処理部への処理の割り振りについてはあまり考慮されていなかった。従って、無駄な頂点処理やピクセル処理が行われる可能性があることが判明した。
特開2002−373348号公報
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、頂点処理部、ピクセル処理部への効率的な処理の割り振りを可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
本発明は、画像を生成する画像生成システムであって、オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、頂点単位で処理を行う頂点処理部と、
ピクセル単位で処理を行うピクセル処理部とを含み、背景オブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第1、第2の処理のうちの処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い、移動体オブジェクトに対して前記所定処理を行う場合には、前記所定処理を実現する第3、第4の処理のうちの処理負荷が重い第3の処理を前記頂点処理部が行い、処理負荷が軽い第4の処理を前記ピクセル処理部が行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明では、背景オブジェクトに対して所定処理を行う場合には、ピクセル処理部が、負荷が重い主要処理部分を行う一方で、移動体オブジェクトに対して所定処理を行う場合には、頂点処理部が、負荷が重い主要処理部分を行うようになる。従って、頂点処理部、ピクセル処理部への効率的な処理の割り振りが可能になり、処理の効率化や、生成される画像の品質の維持等が可能になる。
なお処理負荷が重いとは、例えばその処理を実現するプログラムに記述される関数及び変数の少なくとも一方の記述量(ステップ数)が多い場合や、その関数が複雑(次数が多い)である場合等をいう。一方、処理負荷が軽いとは、例えばその処理を実現するプログラムに記述される関数及び変数の少なくとも一方の記述量が少ない場合や、その関数が簡素(次数が少ない)である場合等をいう。
また本発明は、画像を生成する画像生成システムであって、オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、頂点単位で処理を行う頂点処理部と、ピクセル単位で処理を行うピクセル処理部とを含み、オブジェクトを構成するプリミティブ面の大きさが大きい第1のグループに属するオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第1、第2の処理のうちの処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い、オブジェクトを構成するプリミティブ面の大きさが前記第1のグループのオブジェクトよりも小さい第2のグループのオブジェクトに属するオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第3、第4の処理のうちの処理負荷が重い第3の処理を前記頂点処理部が行い、処理負荷が軽い第4の処理を前記ピクセル処理部が行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明では、構成プリミティブ面が大きい第1のグループのオブジェクトに対して所定処理を行う場合には、ピクセル処理部が、負荷が重い主要処理部分を行う一方で、構成プリミティブ面が小さい第2のグループのオブジェクトに対して所定処理を行う場合には、頂点処理部が、負荷が重い主要処理部分を行うようになる。従って、頂点処理部、ピクセル処理部への効率的な処理の割り振りが可能になり、処理の効率化や、生成される画像の品質の維持等が可能になる。
また本発明は、画像を生成する画像生成システムであって、オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、頂点単位で処理を行う頂点処理部と、ピクセル単位で処理を行うピクセル処理部とを含み、第1のグループに属するオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第1、第2の処理のうちの処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い、前記第1のグループとは異なる第2のグループのオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第3、第4の処理のうちの処理負荷が重い第3の処理を前記頂点処理部が行い、処理負荷が軽い第4の処理を前記ピクセル処理部が行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明では、第1のグループのオブジェクトに対して所定処理を行う場合には、ピクセル処理部が、負荷が重い主要処理部分を行う一方で、第2のグループのオブジェクトに対して所定処理を行う場合には、頂点処理部が、負荷が重い主要処理部分を行うようになる。従って、頂点処理部、ピクセル処理部への効率的な処理の割り振りが可能になり、処理の効率化や、生成される画像の品質の維持等が可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、ライトスキャッタリング処理であってもよい。
こうすれば、効率的なライトスキャッタリング処理が可能になり、光の散乱のシミュレートが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、仮想カメラとオブジェクトの頂点との距離を求める処理を含む前記第1の処理を行い、前記ピクセル処理部は、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を求め、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第2の処理を行うようにしてもよい。
このようにすれば、ライトスキャッタリング処理のうち負荷の軽い第1の処理を頂点処理部に割り振り、負荷の重い第2の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、アウトスキャッタリングによる頂点色とインスキャッタリングによる頂点色を求める処理を含む前記第3の処理を行い、前記ピクセル処理部は、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第4の処理を行うようにしてもよい。
このようにすれば、ライトスキャッタリング処理のうち負荷の重い第3の処理を頂点処理部に割り振り、負荷の軽い第4の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、テクスチャ座標を演算する処理であってもよい。
こうすれば、効率的なテクスチャ演算処理が可能になり、例えば環境マッピング等の処理負荷を軽減できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、前記ピクセル処理部は、ピクセルの法線ベクトルを座標変換してピクセルのテクスチャ座標を演算し、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第2の処理を行うようにしてもよい。
このようにすれば、テクスチャ座標演算処理のうち負荷の軽い第1の処理を頂点処理部に割り振り、負荷の重い第2の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理を含む前記第3の処理を行い、前記ピクセル処理部は、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第4の処理を行うようにしてもよい。
このようにすれば、テクスチャ座標演算処理のうち負荷の重い第3の処理を頂点処理部に割り振り、負荷の軽い第4の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、ライティング処理であってもよい。
こうすれば、効率的なライティング処理が可能になり、よりリアルな画像を生成できる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、前記ピクセル処理部は、ピクセルの法線ベクトルと照明モデルに基づいてピクセルの光強度を求め、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第2の処理を行うようにしてもよい。
このようにすれば、ライティング処理のうち負荷の軽い第1の処理を頂点処理部に割り振り、負荷の重い第2の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルと照明モデルに基づいて頂点の光強度を求める処理を含む前記第3の処理を行い、前記ピクセル処理部は、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第4の処理を行うようにしてもよい。
このようにすれば、ライティング処理のうち負荷の重い第3の処理を頂点処理部に割り振り、負荷の軽い第4の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、色の変換処理であってもよい。
こうすれば、効率的な色変換処理が可能になり、ガンマ補正等の変換処理を実現できるようになる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点位置、頂点色のデータを出力する処理を含む前記第1の処理を行い、前記ピクセル処理部は、ピクセル色を変換テーブル又は変換関数を用いて変換する処理を含む前記第2の処理を行うようにしてもよい。
このようにすれば、色変換処理のうち負荷の軽い第1の処理を頂点処理部に割り振り、負荷の重い第2の処理をピクセル処理部に割り振ることが可能になる。
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は頂点色を変換テーブル又は変換関数を用いて変換する処理を含む前記第3の処理を行い、前記ピクセル処理部は、変換後の頂点色から求められたピクセル色を出力する処理を含む前記第4の処理を行うようにしてもよい。
このようにすれば、色変換処理のうち負荷の重い第3の処理を頂点処理部に割り振り、負荷の軽い第4の処理をピクセル処理部に割り振ることが可能になる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、ハードディスク、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170(主記憶部172)をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部110は、車、電車、キャラクタ、建物、球場、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のモデルデータ記憶部176には、移動体オブジェクト(車)、固定物オブジェクト(ビル)、背景オブジェクト(マップ、天球)のモデルデータが記憶されている。そしてオブジェクト空間設定部110は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定(配置)処理を行う。
移動・動作処理部112は、オブジェクト(車、キャラクタ、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(モデルオブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずモデル(オブジェクト)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
描画部120は、オブジェクトを描画する際にジオメトリ処理、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のモデルデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
描画部120は、頂点処理部122、ピクセル処理部124を含む。
頂点処理部122は、頂点単位の処理(per vertex processing)である頂点処理を行う。この頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われる。そして、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データが変更(更新、調整)される。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
そしてこのラスタライズに続いて、ピクセル処理部124は、ピクセル単位の処理(per pixel processing)であるピクセル処理を行う。このピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理が行われる。そして画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして本実施形態では、第1のグループ(第1のタイプ)に属するオブジェクトに対して所定処理を行う場合には、その所定処理を実現(実行、構成)する第1、第2の処理のうちの処理負荷が軽い第1の処理を頂点処理部122が行う。一方、処理負荷が重い第2の処理をピクセル処理部124が行う。例えば背景オブジェクトに対して所定処理を行う場合には、処理負荷が軽い第1の処理を頂点処理部122が行い、処理負荷が重い第2の処理をピクセル処理部124が行う。或いは、オブジェクトを構成するプリミティブ面の大きさが大きい第1のグループに属するオブジェクトに対して所定処理を行う場合には、処理負荷が軽い第1の処理を頂点処理部122が行い、処理負荷が重い第2の処理をピクセル処理部124が行う。
一方、第2のグループ(第2のタイプ)に属するオブジェクトに対して所定処理を行う場合には、その所定処理を実現(実行、構成)する第3、第4の処理のうちの処理負荷が重い第3の処理を頂点処理部122が行う。一方、処理負荷が軽い第4の処理をピクセル処理部124が行う。例えば移動体オブジェクトに対して所定処理を行う場合には、処理負荷が重い第3の処理を頂点処理部122が行い、処理負荷が軽い第4の処理をピクセル処理部124が行う。或いは、オブジェクトを構成するプリミティブ面の大きさが第1のグループに属するオブジェクトに比べて小さい第2のグループに属するオブジェクトに対して所定処理を行う場合には、処理負荷が重い第3の処理を頂点処理部122が行い、処理負荷が軽い第4の処理をピクセル処理部124が行う。
なお所定処理としては、ライトスキャッタリング(光散乱)処理、法線ベクトルに基づいてテクスチャ座標を求める処理(環境マッピング処理)、ライティング処理、色(画像情報)の変換処理などがある。但し所定処理は、これに限定されず、種々の処理(シェーディング処理)が考えられる。即ち所定処理は、頂点処理部122、ピクセル処理部124への処理の割り振りを行うことで効率化できるものであればよい。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
2.1 頂点処理部、ピクセル処理部
図2に頂点処理部122、ピクセル処理部124の構成例を示す。頂点処理部122(頂点シェーダ)は、例えばベクトル演算ユニットなどのハードウェアと頂点処理プログラム(頂点シェーダプログラム)のソフトウェアにより実現できる。またピクセル処理部124(ピクセルシェーダ)も、例えばベクトル演算ユニットなどのハードウェアとピクセル処理プログラム(ピクセルシェーダプログラム)のソフトウェアにより実現できる。なお頂点処理部122、ピクセル処理部124に割り当てられるベクトル演算ユニットは固定的であってもよいし、頂点処理部122、ピクセル処理部124に対する複数のベクトル演算ユニットの割り当てを動的に変化させてもよい。
頂点処理部122は、座標変換部10、ライティング処理部12、テクスチャ座標演算部14を含む。
座標変換部10は、ワールド座標系への座標変換、ビュー座標系への座標変換などを行う。この座標変換部10により、オブジェクト(モデル)の頂点のスクリーン上での位置を求めることができる。なお座標変換部10は、位置の座標変換のみならず、法線ベクトル等の座標変換も行うことができる。
ライティング処理部12は、オブジェクトの法線ベクトルと照明モデルに基づいてライティング処理(光源計算)を行う。このライティング処理は、光源の属性パラメータ(光源の色、明るさ、タイプ)、法線ベクトルのパラメータ、オブジェクトのマテリアルのパラメータ(色、材質)などを用いて行われる。なお照明モデルとしては、環境光(アンビエント光)と拡散光(ディフューズ光)だけを考慮したランバードの照明モデル、環境光、拡散光に加えて鏡面反射光(スペキュラー光)も考慮するフォンの照明モデルや、ブリンの照明モデルなどの種々のモデルがある。
テクスチャ座標演算部14は、テクスチャ座標の演算(算出、取得)処理を行う。具体的には、例えば頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理などを行う。
ラスタライズ処理部123はラスタライズ(走査線変換)処理を行う。具体的にはラスタライズ処理部123には、頂点処理部122から加工済みの頂点データが入力される。そしてラスタライズ処理部123は、加工済みの頂点データに基づいて、ポリゴンを構成するピクセルの生成処理を行う。この場合に例えば、頂点データに含まれる頂点位置、頂点色、頂点テクスチャ座標、頂点法線ベクトルなどの各種パラメータの補間処理(線形補間等)が行われ、ピクセル位置、ピクセル色、ピクセルのテクスチャ座標、ピクセルの法線ベクトルなどが求められる。
ピクセル処理部124はテクスチャマッピング部20、ピクセル加工処理部22を含む。テクスチャマッピング部20は、テクスチャマッピング処理(サンプリング処理)を行う。ここでテクスチャマッピング処理は、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をマッピング(サンプリング)するための処理である。具体的には、ピクセルのテクスチャ座標等を用いてテクスチャ記憶部178からテクスチャ(色、α値などの表面プロパティ)のデータを読み出してマッピングする処理を行う。
ピクセル加工処理部22は、ピクセルデータに対する種々の加工処理を行う。そしてこの加工処理により、ピクセル(フラグメント)の色が決定される。そして加工処理(ピクセルシェーダ)の後に、例えばシザーテスト、アルファテスティング、深度テスト又はステンシルテストなどを実行して、そのピクセル(フラグメント)が表示されるのか否かを最終的に決定する。なおそのピクセルが表示されることが決まった後に、更にピクセルデータの加工処理(フォグ、半透明合成、アンチエイリアス)が行われて、加工処理後のピクセルデータがフレームバッファに書き込まれることになる。
2.2 頂点処理部、ピクセル処理部への処理の割り振り
本実施形態では、所定処理を行う場合に、頂点処理部122、ピクセル処理部124への処理の割り振り(分散)をオブジェクトが属するグループ毎(オブジェクト毎)で変えることで、処理の効率化を図っている。
具体的には、第1のグループのオブジェクト(第1のオブジェクト)については、ピクセル処理部124に負荷の重い処理を行わせ、第2のグループのオブジェクト(第2のオブジェクト)については、頂点処理部122に負荷の重い処理を行わせる。
更に具体的には、第1のグループに属するオブジェクトについては、頂点処理部122に負荷の軽い第1の処理を行わせ、ピクセル処理部124に負荷の重い第2の処理を行わせる。そしてこれらの第1、第2の処理により所定処理(ライトスキャッタリング、テクスチャ座標演算、ライティング、色変換等)が実現される。なお第1のグループに属するオブジェクトとは、例えば、背景オブジェクト(山などの遠景オブジェクトや道路、地面などのマップオブジェクト等)や、オブジェクトを構成するプリミティブ面(ポリゴン等)の大きさが第2のグループに属するオブジェクトよりも大きいオブジェクトなどである。
一方、第2のグループに属するオブジェクトについては、頂点処理部122に負荷の重い第3の処理を行わせ、ピクセル処理部124に負荷の軽い第4の処理を行わせる。そしてこれらの第3、第4の処理により上記の所定処理が実現される。なお第2のグループに属するオブジェクトとは、例えば移動体オブジェクト(車、電車、飛行機、船、キャラクタ等)や、オブジェクトを構成するプリミティブ面の大きさが第1のグループに属するオブジェクトよりも小さいオブジェクトなどである。
なお第2のグループに属するオブジェクトは、ビルなどの固定物オブジェクト(近景オブジェクト)であってもよい。またプリミティブ面(ポリゴン)が大きいか小さいかは、プリミティブ面の面積により判断してもよいし、プリミティブ面の幅及び高さの少なくとも一方により判断してもよい。
例えば図3において、移動体オブジェクトOBMは小さなポリゴンPLM(広義にはプリミティブ面。他の説明でも同様)により構成される場合が多い。移動体オブジェクトOBMを多数の小さなポリゴンで構成すれば、OBMの形状のディテールを表現でき、生成される画像の品質を向上できるからである。一方、背景オブジェクトOBBは大きなポリゴンPLBにより構成される場合が多い。背景オブジェクトOBBを大きなポリゴンで構成すれば、OBBのポリゴン数を減らすことができ、処理負荷を軽減できるからである。また背景オブジェクトOBBが少ない数の大きなポリゴンで構成されていても、ポリゴンにマッピングされるテクスチャの画像を工夫することなどにより、生成される画像の品質を維持できるからである。
ここで、例えば背景オブジェクトOBB、移動体オブジェクトOBMに対して、後述するライトスキャッタリングなどの所定処理を施す場合を考える。この場合に背景オブジェクトOBBを構成するポリゴンPLBの大きさは大きい。このため、所定処理のうち負荷が重い主要処理部分(第3の処理)を頂点処理部122が行うと、画質が劣化するおそれがある。即ち図2では、各頂点で得られたデータの補間処理(線形補間)を行うことで、各ピクセルのデータが求められる。従って、背景オブジェクトOBBのように構成ポリゴンが大きい場合に、所定処理の主要処理部分を頂点処理部122が行い、各頂点のデータの補間処理を行うと、得られるピクセルデータが正しい結果から大きくずれてしまうおそれもある。
そこで本実施形態では、背景オブジェクトOBBについては、処理負荷が重い主要処理部分(第2の処理)をピクセル処理部124が行うようにしている。こうすれば、補間処理が原因でピクセルデータが正しい結果から大きくずれてしまうなどの事態を防止でき、生成される画像の品質を維持できる。
一方、移動体オブジェクトOBMを構成するポリゴンPLMの大きさは小さい。このため、所定処理のうち負荷が重い主要処理部分(第3の処理)を頂点処理部122が行っても、頂点データの補間処理により得られたピクセルデータが、正しい結果から大きくずれてしまうおそれが少ない。
そこで本実施形態では、移動体オブジェクトOBMについては、処理負荷が重い主要処理部分(第3の処理)を頂点処理部122が行うようにしている。
また図3に示すように、移動体オブジェクトOBMは仮想カメラVC(視点)の近くに位置する場合が多い。従って図4(A)に示すように、移動体オブジェクトOBMのポリゴンPLMの画面(スクリーン)上での大きさは大きい場合が多い。例えば図4(A)では、頂点VE1〜VE4の個数は4個であり、ピクセルPX1〜PX25の個数は25個である。従って、所定処理の主要部分をピクセル処理部124が行うと、処理回数が多くなり、処理負荷が重くなってしまうおそれがある。
この点、本実施形態では、移動体オブジェクトOBMについては、処理負荷が重い主要処理部分(第3の処理)をピクセル処理部124ではなく頂点処理部122が行う。こうすれば、図4(A)の場合には、主要処理部分の処理回数は4回になり、ピクセル処理部124が主要処理部分を処理する場合(処理回数=25回)に比べて、処理負荷を大幅に軽減できる。
また図3に示すように、背景オブジェクトOBBは仮想カメラVCの遠くに位置する場合が多い。従って図4(B)(C)に示すようにオブジェクトOBBのポリゴンPLBの画面(スクリーン)上での大きさは小さい場合が多い。例えば図4(B)では、頂点VE1〜VE4の個数は4個であり、ピクセルの個数は2個である。また図4(C)では、頂点VE1〜VE4の個数は4個であり、ピクセルの個数は1個である。従って、所定処理の主要部分を頂点処理部122が行うと、処理回数が多くなり、処理負荷が重くなってしまうおそれがある。
この点、本実施形態では、背景オブジェクトOBBについては、処理負荷が重い主要処理部分(第2の処理)を頂点処理部122ではなくピクセル処理部124が行う。こうすれば図4(B)の場合には主要処理部分の処理回数は2回になり、図4(C)の場合は1回になる。従って、頂点処理部122が主要処理部分を処理する場合(処理回数=4回)に比べて、処理負荷を大幅に軽減できる。この処理負荷の軽減の効果は、背景オブジェクトOBBの頂点数が多くなるほど大きくなる。
次に頂点処理部122、ピクセル処理部124への処理の割り振りを実現する具体的な手法について説明する。図5(A)に背景オブジェクト(構成ポリゴンが大きいオブジェクト。第1のグループに属するオブジェクト。以下、同様)についてのプログラム(ソースプログラム)の記述例を示し、図5(B)は移動体オブジェクト(構成ポリゴンが小さいオブジェクト。第2のグループに属するオブジェクト。以下、同様)についてのプログラムの記述例を示す。
図5(A)の背景オブジェクト用のプログラムは、頂点処理プログラム(頂点シェーダプログラム)とピクセル処理プログラム(ピクセルシェーダプログラム)を含む。図2の頂点処理部122の機能は、ベクトル演算ユニットなどのハードウェアと、このハードウェアで実行される頂点処理プログラムにより実現される。ピクセル処理部124の機能は、ベクトル演算ユニットなどのハードウェアと、このハードウェアで実行されるピクセル処理プログラムにより実現される。
そして図5(A)の頂点処理プログラムは、所定処理を実現する第1、第2の処理のうちの処理負荷が軽い第1の処理のプログラムを含み、ピクセル処理プログラムは、処理負荷が重い第2の処理のプログラムを含む。図5(A)に示すように第2の処理のプログラムでは、第1の処理のプログラムに比べて多くの関数、変数が記述され、その記述量(ステップ数)が多い。従って、ピクセル処理部124による第2の処理のプログラムの実行時の処理負荷は、頂点処理部122による第1の処理のプログラムの実行時の処理負荷よりも重くなる。
図5(B)の移動体オブジェクト用のプログラムも、頂点処理プログラム(頂点シェーダプログラム)とピクセル処理プログラム(ピクセルシェーダプログラム)を含む。
そして図5(B)の頂点処理プログラムは、所定処理を実現する第3、第4の処理のうちの処理負荷が重い第3の処理のプログラムを含み、ピクセル処理プログラムは、処理負荷が軽い第4の処理のプログラムを含む。図5(B)に示すように第3の処理のプログラムでは、第4の処理のプログラムに比べて多くの関数、変数が記述され、その記述量が多い。従って、頂点処理部122による第3の処理のプログラムの実行時の処理負荷は、ピクセル処理部124による第4の処理のプログラムの実行時の処理負荷よりも重くなる。
2.3 ライトスキャッタリング処理
次に第1、第2の処理や第3、第4の処理により実現される所定処理について説明する。まず所定処理がライトスキャッタリング処理(広義にはフォグ処理)である場合について説明する。
ライトスキャッタリング(光散乱)とは、光が、大気の密度の揺らぎや大気中の微粒子等により散乱する現象である。例えば太陽の光は7色の光により構成されるが、小さな微粒子による光の散乱の場合には、7色の光のうち波長が短い色の光は散乱しやすく、波長が長い色の光は散乱しにくいという性質がある。具体的には紫に近い色の光ほど散乱しやすく、赤に近い色の光ほど散乱しにくい。
昼間の空が青く見えるのは、太陽光の青色の光が大気中の微粒子により散乱して空を覆い、観者の目に入ることによる。一方、夕焼けの空が赤く見えるのは、低い位置にある太陽からの光が大気中で長い距離を通るため、大気中の微粒子により散乱しにくい赤の光が観者の目に入ることによる。
本実施形態ではこのライトスキャッタリング現象を、図6(A)に示すようにアウトスキャッタリング(Out-Scattering)とインスキャッタリング(In-Scattering)のモデルで表現している。
ここでアウトスキャッタリングのモデルは、光が大気に吸収されたり、光が微粒子により散乱されて視界(仮想カメラVCの視界)から遠ざかることで、光が減衰することを表現するモデルである。一方、インスキャッタリングのモデルは、太陽LS(広義には光源)からの光が視界に入ってきて、光が加算されることを表現するモデルである。
具体的には本実施形態のライトスキャッタリングのモデルは下式のように表される。
Figure 0004566120
Figure 0004566120
Figure 0004566120
Figure 0004566120
Figure 0004566120
Figure 0004566120
Figure 0004566120
ここで、Loutはアウトスキャッタリングによる色(色成分)を表し、Linはインスキャッタリングによる色(色成分)を表す。L0は入力色であり、具体的には例えば図6(A)に示すように、オブジェクトOB(背景オブジェクトOBB、移動体オブジェクトOBM)の頂点VEからの光(反射光)の色である。fexは吸光(extinction)を表す関数であり、INTはインスキャッタリングによる光の強度を表す関数である。
Sは、仮想カメラVC(視点)と頂点VEとの距離のパラメータである。θは、仮想カメラVCの視線方向と光源LSからの光の方向とのなす角度のパラメータである。Eは、太陽LSの光の強さのパラメータである。BRは、空気の濃さを表すパラメータであるレイリー(Rayleigh)係数であり、BMは、大気中の塵の濃さのパラメータであるMIE係数である。gは、大気中の塵がどのくらい光を錯乱するかを表すパラメータである。
なお本実施形態では図6(B)に示すように、仮想カメラVC(視点)から所定距離SSよりも離れているオブジェクト(頂点)に対しては、ライトスキャッタリング処理を行わないようにしている。例えば天球オブジェクトOBSには、空の絵が描かれている。この空の絵は、CGデザイナが、ライトスキャッタリングを考慮して描いた絵である場合が多い。従って、このような天球オブジェクトOBSの空の部分に、本実施形態のライトスキャッタリング処理が施されると、ライトスキャッタリングの効果が二重に掛かる事態が生じてしまう。
この点、図6(B)のように、仮想カメラVCから所定距離SSよりも離れているオブジェクトに対してはライトスキャッタリング処理を行わないようにすれば、このような事態の発生を防止でき、生成される画像の品質を向上できる。
次に図7、図8のフローチャートを用いて本実施形態のライトスキャッタリング処理について説明する。
図7は、背景オブジェクトOBBに対して行われるライトスキャッタリング処理(広義には所定の処理)のフローチャートである。まず頂点処理部122による頂点処理が行われる(ステップS1)。この頂点処理は、図5(A)に示すように負荷の軽い第1の処理となる。また頂点処理は、背景オブジェクトOBBを構成する各頂点について行われる。
具体的には頂点処理では、まず、ビュー(カメラ)座標系での頂点の位置を求め、求められた頂点位置のデータを出力する(ステップS2)。例えば頂点データとして頂点バッファ(出力レジスタ)に出力する。また求められた頂点位置に基づいて、仮想カメラと頂点との距離Sを求め、求められた距離のデータを出力する(ステップS3)。そして頂点処理を終了する。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS4)。このラスタライズ処理では頂点位置や頂点色などの補間演算が行われる。またステップS3で求められた仮想カメラと頂点との距離の補間演算も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS5)。このピクセル処理は、図5(A)に示すように負荷の重い第2の処理となる。またピクセル処理は、画面を構成する各ピクセル(フラグメント)について行われる。
具体的にはピクセル処理では、仮想カメラの視線方向と太陽の光の方向とのなす角度θを求める(ステップS6)。なお、θそのものではなく、COSθを直接に求めてもよい。ここで仮想カメラの視線方向は、仮想カメラの位置と、ステップS4のラスタライズ処理により頂点位置を補間することで得られた点の位置とに基づき求めることができる。
次に、ステップS6で求められたθ(COSθ)に基づいて、上式(6)(7)に示すβR(θ)、BM(θ)を求める(ステップS7、S8)。そして求められたβR(θ)、BM(θ)に基づいて、上式(5)に示すインスキャッタリングによる光の強度INTを求める(ステップS9)。
次に、距離Sに基づいて、上記(4)に示すfexを求める(ステップS10)。ここで距離Sは、仮想カメラの位置と、ステップS4のラスタライズ処理により頂点位置を補間することで得られた点の位置とに基づき求めることができる。
次に、上式(3)に示すインスキャッタリングによる光の色Linを求める(ステップS11)。また上式(2)に示すアウトスキャッタリングによる光の色Loutを求める(ステップS12)。そして上式(1)に示すようにLoutとLinの加算処理が行われて、スキャッタリングが施された最終的な光の色L(ピクセル色)を求める(ステップS13)。
図8は、移動体オブジェクトOBMに対して行われるライトスキャッタリング処理のフローチャートである。まず頂点処理部122による頂点処理が行われる(ステップS21)。この頂点処理は、図5(B)に示すように負荷の重い第3の処理となる。また頂点処理は、移動体オブジェクトOBMを構成する各頂点について行われる。
具体的には頂点処理では、まず、ビュー座標系での頂点の位置を求め、求められた頂点位置のデータを出力する(ステップS22)。また求められた頂点位置に基づいて、仮想カメラと頂点の距離Sを求め、求められた距離のデータを出力する(ステップS23)。
次に、ステップS23で求められた距離Sに基づいて、上記(4)に示すfexを求める(ステップS24)。そしてまた上式(2)に示すアウトスキャッタリングによる光の色Lout(頂点色)を求める(ステップS25)。
次に、仮想カメラの視線方向と太陽の光の方向とのなす角度θを求める(ステップS26)。なお、θそのものではなく、COSθを直接に求めてもよい。ここで仮想カメラの視線方向は、仮想カメラの位置と、ステップS22で求められた頂点位置とに基づき求めることができる。
次に、ステップS26で求められたθ(COSθ)に基づいて、上式(6)(7)に示すβR(θ)、BM(θ)を求める(ステップS27、S28)。そして求められたβR(θ)、BM(θ)に基づいて、上式(5)に示すインスキャッタリングによる光の強度INTを求める(ステップS29)。次に、上式(3)に示すインスキャッタリングによる光の色Lin(頂点色)を求める(ステップS30)。そして頂点処理が終了する。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS31)。このラスタライズ処理では、ステップS25で求められたLoutの補間演算や、ステップS30で求められたLinの補間演算も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS32)。このピクセル処理は、図5(B)に示すように負荷の軽い第4の処理となる。またピクセル処理は、画面を構成する各ピクセル(フラグメント)について行われる。
具体的にはピクセル処理では、アウトスキャッタリングによる光の色Lout(ピクセル色)とインスキャッタリングによる光の色Lin(ピクセル色)の加算処理が行われ、スキャッタリングが施された最終的な光の色L(ピクセル色)を求める(ステップS33)。ここで、Lout、LinはステップS31のラスタライズ処理で補間演算されたものが使用される。
図7に示すように、背景オブジェクトに対してライトスキャッタリング処理を行う場合には、頂点処理である第1の処理(ステップS2、S3)の負荷は軽く、ピクセル処理である第2の処理(ステップS6〜S13)の負荷は重い。そして背景オブジェクトに対してライトスキャッタリング処理を行う場合には、図4(B)(C)に示すように、ピクセル処理の回数の方が頂点処理の回数よりも少なくなる場合が多い。従って図7の手法によれば、全体として処理負荷を軽減できる。
また図8に示すように、移動体オブジェクトに対してライトスキャッタリング処理を行う場合には、頂点処理である第3の処理(ステップS22〜S30)の負荷は重く、ピクセル処理である第4の処理(ステップS33)の負荷は軽い。そして移動体オブジェクトに対してライトスキャッタリング処理を行う場合には、図4(A)に示すように頂点処理の回数の方がピクセル処理の回数よりも少なくなる場合が多い。従って図8の手法によれば、全体として処理負荷を軽減できる。
2.4 テクスチャ座標演算処理
次に、所定処理がテクスチャ座標の演算(導出)処理である場合について説明する。例えばスフィア環境マッピングなどの環境マッピングでは、テクスチャ座標を演算し、演算されたテクスチャ座標を用いてテクスチャをマッピング(サンプリング)することで、オブジェクトに対する周囲の環境の映り込みを表現する。本実施形態の手法はこのようなテクスチャ座標の演算処理に適用できる。
具体的には図9において、N(NX、NY、NZ)はオブジェクトOBの法線ベクトルである。この場合には、まず、この法線ベクトルN(NX、NY、NZ)を座標変換し、座標変換後の法線ベクトルNV(NXV、NYV、NZV)を求める。この場合の座標変換としては、仮想カメラVCのビューマトリクスなどを用いたビュー座標系への変換などがある。但し本実施形態の座標変換はビュー座標系への変換に限定されるものではない。
次に座標変換後の法線ベクトルNVの座標NXV、NYVに基づいて、テクスチャ座標TX、TY(U、V座標)を求める。そして求められたテクスチャ座標TX、TYにより環境テクスチャを読み出して、オブジェクトOBにマッピングする。こうすることで、オブジェクトOBに周囲の環境が映り込んだリアルな画像が生成される。なお本実施形態のテクスチャ座標演算手法を適用できる環境マッピングは、スフィア環境マッピングに限定されるものではなく、他の手法の環境マッピングであってもよい。また本実施形態のテクスチャ座標演算手法は、環境マッピング以外に適用することも可能である。
次に図10、図11のフローチャートを用いて本実施形態のテクスチャ座標演算処理について説明する。
図10は、背景オブジェクトOBBに対して行われるテクスチャ座標演算処理(広義には所定の処理)のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS41)。この頂点処理は、図5(A)に示すように負荷の軽い第1の処理となる。具体的には頂点処理では、頂点の法線ベクトルN(NX、NY、NZ)のデータを出力する処理が行われる(ステップS42)。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS43)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップS42で求められた頂点法線ベクトルの補間演算(線形補間)も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS44)。このピクセル処理は、図5(A)に示すように負荷の重い第2の処理となる。
具体的にはピクセル処理では、ピクセル(フラグメント)の法線ベクトルN(NX、NY、NZ)を、マトリクスを用いて座標変換する処理が行われる(ステップS45)。即ち例えばビュー座標系への座標変換が行われ、座標変換後のピクセルの法線ベクトルNV(NXV、NYV、NZV)が求められる。そして法線ベクトルNVの座標NXV、NYVに基づいて、ピクセルのテクスチャ座標TX、TYが求められる(ステップS46)。具体的には下式(8)(9)によりTX、TYを求める。
TX=(NXV+1.0)/2 (8)
TY=(NYV+1.0)/2 (9)
上式(8)(9)の演算を行うのは、TX、TYの変域は0.0〜1.0であるのに対して、NXV、NYVの変域は−1.0〜1.0であるからである。
次に、求められたピクセルのテクスチャ座標に基づいてテクスチャマッピング(テクスチャサンプリング)を行い、ピクセル色を求める(ステップS47)。具体的には下式(10)により最終的なピクセル色COLOUTを求める。
COLOUT=CTEX(TX、TY)×COL (10)
上式(10)においてCTEX(TX、TY)は、テクスチャ座標によりテクスチャ記憶部178から読み出される色であり、COLは、背景オブジェクトOBBの元の色(下地の色)である。
図11は、移動体オブジェクトOBMに対して行われるテクスチャ座標演算処理のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS51)。この頂点処理は、図5(B)に示すように負荷の重い第3の処理となる。
具体的には頂点処理では、頂点の法線ベクトルN(NX、NY、NZ)を、マトリクスを用いて座標変換する処理が行われる(ステップS52)。即ち例えばビュー座標系への座標変換が行われ、座標変換後の頂点の法線ベクトルNV(NXV、NYV、NZV)が求められる。そして法線ベクトルNVの座標NXV、NYVに基づいて、頂点のテクスチャ座標TX、TYが求められる(ステップS53)。具体的には上式(8)(9)によりTX、TYが求められる。そして頂点処理が終了する。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS54)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップS53で求められた頂点テクスチャ座標の補間演算(線形補間)も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS55)。このピクセル処理は、図5(B)に示すように負荷の軽い第4の処理となる。即ち、ピクセルのテクスチャ座標に基づいてテクスチャマッピング(テクスチャサンプリング)を行い、上記(10)のようにしてピクセルの色CLOUTを求める(ステップS56)。
図10に示すように、背景オブジェクトに対してテクスチャ座標演算処理を行う場合には、頂点処理である第1の処理(ステップS42)の負荷は軽く、ピクセル処理である第2の処理(ステップS45〜S47)の負荷は重い。そして背景オブジェクトに対してテクスチャ座標演算処理を行う場合には、図4(B)(C)に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
また図11に示すように、移動体オブジェクトに対してテクスチャ座標演算処理を行う場合には、頂点処理である第3の処理(ステップS52、S53)の負荷は重く、ピクセル処理である第4の処理(ステップS56)の負荷は軽い。そして移動体オブジェクトに対してテクスチャ座標演算処理を行う場合には、図4(A)に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
2.5 ライティング処理
次に、所定処理がライティング(光源計算)処理である場合について説明する。現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。例えば光源が平行光である場合の代表的な照明モデルとして、図12(A)及び下式(11)(12)(13)に示すようなランバードの照明モデルがある。
I1=Ka×Ia+Kd×Id×(N1・L) (11)
I2=Ka×Ia+Kd×Id×(N2・L) (12)
I3=Ka×Ia+Kd×Id×(N3・L) (13)
ここで、I1、I2、I3は頂点VE1、VE2、VE3での光強度であり、Kaは環境光に対する反射係数であり、Iaは環境光の光強度である。またKdは光源LSからの光に対する拡散反射係数であり、Idは光源LSの光強度である。またN1、N2、N3は頂点VE1、VE2、VE3の法線ベクトルであり、Lは光源LSの光の方向ベクトルである。
また図12(B)では、頂点VE2の法線ベクトルN2と頂点VE3の法線ベクトルN3の補間処理(線形補間)が行われて、各ピクセルの法線ベクトルNJが求められている。この法線ベクトルの補間処理は図2のラスタライズ処理部123により行われる。そして、求められた法線ベクトルNJに基づいて下式(14)のようにして各ピクセルでの光強度がIJが求められる。
IJ=Ka×Ia+Kd×Id×(NJ・L) (14)
本実施形態の手法は以上のような照明モデルを用いたライティング処理に適用できる。なお本実施形態の手法が適用できる照明モデルはこのようなランバード照明モデルに限定されず、鏡面反射光を考慮するフォンの照明モデルや、ブリンの照明モデルや、その他の照明モデルであってもよい。
次に図13、図14のフローチャートを用いて本実施形態のライティング処理について説明する。
図13は、背景オブジェクトOBBに対して行われるライティング処理(広義には所定の処理)のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS61)。この頂点処理は、図5(A)に示すように負荷の軽い第1の処理となる。具体的には頂点処理では、頂点の法線ベクトルN(NX、NY、NZ)のデータを出力する処理が行われる(ステップS62)。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS63)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップS62で求められた頂点法線ベクトルの補間演算(線形補間)も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS64)。このピクセル処理は、図5(A)に示すように負荷の重い第2の処理となる。
具体的にはピクセル処理では、ピクセル(フラグメント)の法線ベクトルN(NX、NY、NZ)と、上式(14)に示すような照明モデルに基づいて、ピクセルの光強度Iを求める(ステップS65)。そして求められた光強度Iに基づいて、下式(15)のようにピクセル色CLOUTを求める(ステップS66)。
CLOUT=I×COL (15)
なおCOLは、背景オブジェクトOBBの元の色(下地の色)である。
図14は、移動体オブジェクトOBMに対して行われるライティング処理のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS71)。この頂点処理は、図5(B)に示すように負荷の重い第3の処理となる。
具体的には頂点処理では、頂点の法線ベクトルN(NX、NY、NZ)と、上式(11)(12)(13)に示すような照明モデルに基づいて、頂点の光強度Iを求め、光強度のデータを出力する(ステップS72)。そして頂点処理が終了する。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS73)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップS72で求められた光強度の補間演算(線形補間)も行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS74)。このピクセル処理は、図5(B)に示すように負荷の軽い第4の処理となる。即ち、上式(15)と同様にピクセルの光強度に基づいてピクセル色を求める(ステップS75)。
図13に示すように、背景オブジェクトに対してライティング処理を行う場合には、頂点処理である第1の処理(ステップS62)の負荷は軽く、ピクセル処理である第2の処理(ステップS65、S66)の負荷は重い。そして背景オブジェクトに対してライティング処理を行う場合には、図4(B)(C)に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
また図14に示すように、移動体オブジェクトに対してライティング処理を行う場合には、頂点処理である第3の処理(ステップS72)の負荷は重く、ピクセル処理である第4の処理(ステップS75)の負荷は軽い。そして移動体オブジェクトに対してライティング処理を行う場合には、図4(A)に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
2.6 色変換処理
次に、所定処理が色の変換処理である場合について説明する。例えばこの種の画像生成システムでは、表示部(モニタ)の非線形特性を補正するために、画像に対してガンマ補正と呼ばれる変換を施すことが望ましい。図15(A)にこのガンマ補正の変換特性の例を示す。このようなガンマ補正等の色変換処理は、ポストフィルタ処理で実現される場合が多いが、本実施形態では、レンダリング処理の際にガンマ補正等の色変換処理を行う手法を採用している。なお本実施形態の手法が適用される色変換処理は、図15(A)のようなガンマ補正には限定されず、図15(B)(C)に示すような種々の変換処理に適用できる。例えば図15(B)はポスタリゼーション、図15(C)はネガポジ反転の変換処理の例である。
次に図16、図17のフローチャートを用いて本実施形態の色変換処理について説明する。
図16は、背景オブジェクトOBBに対して行われる色変換処理(広義には所定の処理)のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS81)。この頂点処理は、図5(A)に示すように負荷の軽い第1の処理となる。具体的には頂点処理では、頂点位置、頂点色のデータを出力する処理が行われる(ステップS82)。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS83)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS84)。このピクセル処理は、図5(A)に示すように負荷の重い第2の処理となる。
具体的にはピクセル処理では、色変換処理のための変換テーブル(又は変換関数)を読み出す(ステップS85)。そしてピクセル位置でのピクセル色を、変換テーブル(又は変換関数)を用いて変換し、変換後のピクセル色CLOUTを下式(16)のように求める(ステップS86)。
CLOUT=TABLE(COL) (16)
なお、COLは変換前の元の色であり、TABLE(COL)は、変換テーブルによる変換により得られる色である。
図17は、移動体オブジェクトOBMに対して行われる色変換処理のフローチャートである。
まず頂点処理部122による頂点処理が行われる(ステップS91)。この頂点処理は、図5(B)に示すように負荷の重い第3の処理となる。
具体的には頂点処理では、色変換処理のための変換テーブル(又は変換関数)を読み出す(ステップS92)。そして頂点位置での頂点色を、変換テーブル(又は変換関数)を用いて変換し、変換後の頂点色CLOUTを上式(16)のように求める(ステップS93)。そして頂点処理が終了する。
頂点処理が終了すると、ラスタライズ処理部123によるラスタライズ処理が行われる(ステップS94)。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。
ラスタライズ処理が終了すると、ピクセル処理部124によるピクセル処理が行われる(ステップS95)。このピクセル処理は、図5(B)に示すように負荷の軽い第4の処理となる。即ち、頂点色の補間処理により得られたピクセル色を出力する(ステップS96)。
図16に示すように、背景オブジェクトに対して色変換処理を行う場合には、頂点処理である第1の処理(ステップS82)の負荷は軽く、ピクセル処理である第2の処理(ステップS85、S86)の負荷は重い。そして背景オブジェクトに対して色変換処理を行う場合には、図4(B)(C)に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
また図17に示すように、移動体オブジェクトに対して色変換処理を行う場合には、頂点処理である第3の処理(ステップS92、S93)の負荷は重く、ピクセル処理である第4の処理(ステップS96)の負荷は軽い。そして移動体オブジェクトに対して色変換処理を行う場合には、図4(A)に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
3.ハードウェア構成
図18に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(プリミティブ面、所定処理等)と共に記載された用語(ポリゴン、ライトスキャッタリング・テクスチャ座標演算・ライティング・色変換処理等)は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
また頂点処理部、ピクセル処理部への処理の割り振り手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明の手法が適用される所定処理も、ライトスキャッタリング、テクスチャ座標演算、ライティング、色変換の処理に限定されず、頂点処理部、ピクセル処理部への処理の割り振りを制御することで効率化できる種々の処理に適用できる。また第1のグループのオブジェクトは、背景オブジェクトや、構成プリミティブ面が大きいオブジェクトには限定されず、第2のグループのオブジェクトも、移動体オブジェクトや、構成プリミティブ面が小さいオブジェクトには限定されない。
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
本実施形態の画像生成システムの機能ブロック図の例。 頂点処理部、ピクセル処理部の構成例。 頂点処理部、ピクセル処理部への処理の割り振り手法の説明図。 図4(A)(B)(C)は本実施形態の手法による処理の効率化の説明図。 図5(A)(B)は背景オブジェクト、移動体オブジェクトについてプログラムの記述例。 図6(A)(B)はライトスキャッタリング処理の説明図。 背景オブジェクトのライトスキャッタリング処理のフローチャート。 移動体オブジェクトのライトスキャッタリング処理のフローチャート。 テクスチャ座標演算処理の説明図。 背景オブジェクトのテクスチャ座標演算処理のフローチャート。 移動体オブジェクトのテクスチャ座標演算処理のフローチャート。 図12(A)(B)はライティング処理の説明図。 背景オブジェクトのライティング処理のフローチャート。 移動体オブジェクトのライティング処理のフローチャート。 図15(A)(B)(C)は色変換処理の説明図。 背景オブジェクトの色変換処理のフローチャート。 移動体オブジェクトの色変換処理のフローチャート。 ハードウェア構成例。
符号の説明
10 座標変換部、12 ライティング処理部、14 テクスチャ座標演算部、
20 テクスチャマッピング部、22 ピクセル加工処理部
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、120 描画部、122 頂点処理部、
123 ラスタライザ処理、124 ピクセル処理部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、
176 モデルデータ記憶部、178 テクスチャ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部

Claims (12)

  1. 画像を生成するためのプログラムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部として、
    コンピュータを機能させ、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、色の変換処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理である色の変換処理を行う場合には、
    前記頂点処理部は、
    頂点位置、頂点色のデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセル色を変換テーブル又は変換関数を用いて変換する処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理である色の変換処理を行う場合には、
    前記頂点処理部は
    頂点色を変換テーブル又は変換関数を用いて変換する処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    変換後の頂点色から求められたピクセル色を出力する処理を含む前記第4の処理を行うことを特徴とするプログラム。
  2. 画像を生成するためのプログラムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部として、
    コンピュータを機能させ、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、ライティング処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるライティング処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセルの法線ベクトルと照明モデルに基づいてピクセルの光強度を求め、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるライティング処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルと照明モデルに基づいて頂点の光強度を求める処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第4の処理を行うことを特徴とするプログラム
  3. 画像を生成するためのプログラムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部として、
    コンピュータを機能させ、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、ライトスキャッタリング処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるライトスキャッタリング処理を行う場合には、
    前記頂点処理部は、
    仮想カメラとオブジェクトの頂点との距離を求める処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を求め、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるライトスキャッタリング処理を行う場合には、
    前記頂点処理部は、
    アウトスキャッタリングによる頂点色とインスキャッタリングによる頂点色を求める処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第4の処理を行うことを特徴とするプログラム。
  4. 画像を生成するためのプログラムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部として、
    コンピュータを機能させ、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、テクスチャ座標を演算する処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるテクスチャ座標を演算する処理処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセルの法線ベクトルを座標変換してピクセルのテクスチャ座標を演算し、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるテクスチャ座標を演算する処理処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第4の処理を行うことを特徴とするプログラム。
  5. 請求項1乃至4のいずれかにおいて、
    前記第1のグループに属するオブジェクトは、背景オブジェクトであることを特徴とするプログラム。
  6. 請求項1乃至5のいずれかにおいて、
    前記第2のグループに属するオブジェクトは、移動体オブジェクトであることを特徴とするプログラム。
  7. 請求項1乃至6のいずれかにおいて、
    前記第2グループに属するオブジェクトは、オブジェクトを構成するプリミティブ面の大きさが前記第1のグループのオブジェクトよりも小さいことを特徴とするプログラム。
  8. コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
  9. 画像を生成する画像生成システムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部とを含み、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、色の変換処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理である色の変換処理を行う場合には、
    前記頂点処理部は、
    頂点位置、頂点色のデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセル色を変換テーブル又は変換関数を用いて変換する処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理である色の変換処理を行う場合には、
    前記頂点処理部は
    頂点色を変換テーブル又は変換関数を用いて変換する処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    変換後の頂点色から求められたピクセル色を出力する処理を含む前記第4の処理を行うことを特徴とする画像生成システム。
  10. 画像を生成する画像生成システムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部とを含み、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、ライティング処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるライティング処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセルの法線ベクトルと照明モデルに基づいてピクセルの光強度を求め、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるライティング処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルと照明モデルに基づいて頂点の光強度を求める処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第4の処理を行うことを特徴とする画像生成システム
  11. 画像を生成する画像生成システムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部とを含み、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、ライトスキャッタリング処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるライトスキャッタリング処理を行う場合には、
    前記頂点処理部は、
    仮想カメラとオブジェクトの頂点との距離を求める処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を求め、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるライトスキャッタリング処理を行う場合には、
    前記頂点処理部は、
    アウトスキャッタリングによる頂点色とインスキャッタリングによる頂点色を求める処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第4の処理を行うことを特徴とする画像生成システム。
  12. 画像を生成する画像生成システムであって、
    オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
    頂点単位で処理を行う頂点処理部と、
    ピクセル単位で処理を行うピクセル処理部とを含み、
    オブジェクトを描画する際の所定の処理であって、前記頂点処理部と前記ピクセル処理部への処理の割り振りを行い、頂点処理部とピクセル処理部の処理負荷に軽重をつけることができる所定処理を、第1のグループに属するオブジェクトに対して行う場合には、
    前記第1のグループに属するオブジェクトに対して前記所定処理を実現する第1、第2の処理のうち、処理負荷が軽い第1の処理を前記頂点処理部が行い、処理負荷が重い第2の処理を前記ピクセル処理部が行い
    前記所定処理を第2のグループに属するオブジェクトに対して行う場合には、
    前記第2のグループに属するオブジェクトに対して前記所定の処理実現する第3、第4の処理のうち処理負荷の重い第3の処理を前記頂点処理部が行い、処理負荷の軽い第4の処理を前記ピクセル処理部が行うよう構成され、
    前記所定処理は、テクスチャ座標を演算する処理であり、
    前記第1のグループに属するオブジェクトに対して前記所定処理であるテクスチャ座標を演算する処理処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルのデータを出力する処理を含む前記第1の処理を行い、
    前記ピクセル処理部は、
    ピクセルの法線ベクトルを座標変換してピクセルのテクスチャ座標を演算し、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第2の処理を行い、
    前記第2のグループに属するオブジェクトに対して前記所定処理であるテクスチャ座標を演算する処理処理を行う場合には、
    前記頂点処理部は、
    頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理を含む前記第3の処理を行い、
    前記ピクセル処理部は、
    ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第4の処理を行うことを特徴とする画像生成システム。
JP2005336045A 2005-11-21 2005-11-21 プログラム、情報記憶媒体及び画像生成システム Active JP4566120B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005336045A JP4566120B2 (ja) 2005-11-21 2005-11-21 プログラム、情報記憶媒体及び画像生成システム
US11/600,197 US7724255B2 (en) 2005-11-21 2006-11-16 Program, information storage medium, and image generation system
GB0623157A GB2432500B (en) 2005-11-21 2006-11-21 Image generation system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005336045A JP4566120B2 (ja) 2005-11-21 2005-11-21 プログラム、情報記憶媒体及び画像生成システム

Publications (2)

Publication Number Publication Date
JP2007141077A JP2007141077A (ja) 2007-06-07
JP4566120B2 true JP4566120B2 (ja) 2010-10-20

Family

ID=37605625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005336045A Active JP4566120B2 (ja) 2005-11-21 2005-11-21 プログラム、情報記憶媒体及び画像生成システム

Country Status (3)

Country Link
US (1) US7724255B2 (ja)
JP (1) JP4566120B2 (ja)
GB (1) GB2432500B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9717988B2 (en) 2011-11-07 2017-08-01 Square Enix Holdings Co., Ltd. Rendering system, rendering server, control method thereof, program, and recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005520234A (ja) * 2002-03-11 2005-07-07 株式会社ソニー・コンピュータエンタテインメント グラフィックス処理の最適化システムおよび方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5821940A (en) * 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
US6819325B2 (en) * 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
CA2317336A1 (en) * 2000-09-06 2002-03-06 David Cowperthwaite Occlusion resolution operators for three-dimensional detail-in-context
JP4707078B2 (ja) * 2001-06-18 2011-06-22 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
US7042456B2 (en) * 2003-07-18 2006-05-09 Microsoft Corporation Modeling and rendering of realistic feathers
JP4125251B2 (ja) * 2004-02-13 2008-07-30 キヤノン株式会社 情報処理方法および装置
JP3935499B2 (ja) * 2004-07-26 2007-06-20 松下電器産業株式会社 画像処理方法、画像処理装置および画像処理プログラム
US7750914B2 (en) 2004-08-26 2010-07-06 Intel Corporation Subdividing geometry images in graphics hardware
US7777741B2 (en) 2005-03-04 2010-08-17 Aiseek Ltd. Techniques for accurately determining visibility of objects from multiple viewpoints in a three-dimensional (3D) environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005520234A (ja) * 2002-03-11 2005-07-07 株式会社ソニー・コンピュータエンタテインメント グラフィックス処理の最適化システムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9717988B2 (en) 2011-11-07 2017-08-01 Square Enix Holdings Co., Ltd. Rendering system, rendering server, control method thereof, program, and recording medium

Also Published As

Publication number Publication date
JP2007141077A (ja) 2007-06-07
US20070115280A1 (en) 2007-05-24
GB2432500B (en) 2008-01-23
GB2432500A (en) 2007-05-23
GB0623157D0 (en) 2006-12-27
US7724255B2 (en) 2010-05-25

Similar Documents

Publication Publication Date Title
JP4804120B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4804122B2 (ja) プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム
JP4651527B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP3748451B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4749198B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4201207B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4754384B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4827250B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4566120B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006323512A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4073031B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP5253118B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4861862B2 (ja) プログラム、情報記憶媒体、及び、画像生成システム
JP4754385B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4488346B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4913399B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4528008B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4662260B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006318386A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4476040B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2007164736A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4693153B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006277488A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2008077406A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2011209865A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100621

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: 20100728

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100803

R150 Certificate of patent or registration of utility model

Ref document number: 4566120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250