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

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

Info

Publication number
JP4159082B2
JP4159082B2 JP2002229145A JP2002229145A JP4159082B2 JP 4159082 B2 JP4159082 B2 JP 4159082B2 JP 2002229145 A JP2002229145 A JP 2002229145A JP 2002229145 A JP2002229145 A JP 2002229145A JP 4159082 B2 JP4159082 B2 JP 4159082B2
Authority
JP
Japan
Prior art keywords
light source
shading
vector
luminance
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002229145A
Other languages
English (en)
Other versions
JP2004070669A (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 JP2002229145A priority Critical patent/JP4159082B2/ja
Publication of JP2004070669A publication Critical patent/JP2004070669A/ja
Application granted granted Critical
Publication of JP4159082B2 publication Critical patent/JP4159082B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ(操作部)を用いて自キャラクタ(オブジェクト)を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【0003】
さて、このような画像生成システムでは、キャラクタなどのオブジェクトのリアルな影を生成することが望まれる。そして、このような影生成手法としては、例えばシャドウボリューム(広義にはモディファイアボリューム)を用いる手法などが知られている。
【0004】
しかしながら、これまでの影生成手法では、オブジェクトのシェーディング処理の完了後に、影エリアを半透明処理により暗くすることで影を生成していた。このため、リアルなライティングとは異なった印象の画像が生成されてしまうという問題があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、リアルな影を少ない処理負荷で生成できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0006】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像を生成するための画像生成システムであって、光源と照明モデルに基づいてオブジェクトに対してシェーディング処理を施すシェーディング部と、オブジェクト空間において所与の視点から見える画像を生成する画像生成部とを含み、前記シェーディング部が、輝度減衰用に設定される第1のベクトルと光源ベクトルとの方向関係に基づき光源色の輝度を減衰させる輝度減衰シェーディング処理を、影空間に入ったオブジェクト部分に対して施し、該輝度減衰シェーディング処理により、影空間に入ったオブジェクト部分に影を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0007】
本発明によれば、第1のベクトル(影の投影方向等を表すベクトル)と光源(少なくとも1つの光源。望ましくは複数の光源)の光源ベクトルとの方向関係(ベクトル間のなす角度等)に基づき光源色の輝度(光の強さ)が減衰するような輝度減衰シェーディング処理が、影空間に入ったオブジェクト部分に対して施される。即ち、オブジェクトの全部が影空間に入った場合にはオブジェクト全部に、オブジェクトの一部が影空間に入った場合にはオブジェクトの一部に対して、輝度減衰シェーディング処理が施される。そして、本発明では、この輝度減衰シェーディング処理を利用して、影空間に入ったオブジェクト部分に対して影が生成される。このように本発明では、シェーディング処理を利用して影が生成されるため、リアルな影を少ない処理負荷で生成できる。
【0008】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング部が、第1のベクトルと光源ベクトルとが、直交状態から平行状態になるにつれて、光源色の輝度を減衰させてもよい。
【0009】
本発明では、第1のベクトルと光源の光源ベクトルとが、直交状態から平行状態(平行且つ反対方向或いは平行且つ同方向)になるにつれて、その光源についての光源色の輝度が減衰する。従って、その光源からの光が他のオブジェクトに遮られて影が生成されるという事象を表現できる。
【0010】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング部が、第1のベクトルと光源ベクトルとの内積に基づいて、光源色の輝度を減衰させてもよい。
【0011】
この場合、第1のベクトルと光源ベクトルとの内積を引数とする関数(線形関数、非線形関数、n次関数、正弦関数又は余弦関数等)に基づいて、光源色の輝度を減衰させることができる。
【0012】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第1のベクトルの方向が、複数の光源のうちの主光源の光源ベクトルの方向に基づいて設定されてもよい。
【0013】
この場合、主光源とは、複数の光源の中で最も支配的な光源(輝度の高い光源、光の到達距離が長い光源等)であり、例えば、太陽、月、或いは暗いゲーム場面での松明などを表す光源である。
【0014】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング部が、影空間に入ったオブジェクト部分に対しては、光源色の輝度を減衰させる輝度減衰シェーディング処理を施し、影空間に入っていないオブジェクト部分に対しては、輝度減衰シェーディング処理とは異なる通常のシェーディング処理を施してもよい。
【0015】
また本発明は、画像を生成するための画像生成システムであって、少なくとも1つの光源と照明モデルに基づいてオブジェクトに対してシェーディング処理を施すシェーディング部と、オブジェクト空間において所与の視点から見える画像を生成する画像生成部とを含み、前記シェーディング部が、影空間に入ったオブジェクト部分に対しては、光源色の輝度を減衰させる輝度減衰シェーディング処理を施し、影空間に入っていないオブジェクト部分に対しては、輝度減衰シェーディング処理とは異なる通常のシェーディング処理を施す画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0016】
本発明によれば、影空間に入ったオブジェクト部分に対しては輝度減衰シェーディング処理が施される。一方、影空間に入っていないオブジェクト部分に対しては通常のシェーディング処理(第1のベクトルと光源ベクトルとの方向関係に基づいて輝度を減衰させないシェーディング処理)が施される。例えば、オブジェクトの全部が影空間に入った場合には、オブジェクト全部に輝度減衰シェーディング処理が施される。一方、オブジェクトの全部が影空間の外にある場合には、オブジェクト全部に通常のシェーディング処理が施される。また、オブジェクトの一部が影空間に入った場合には、その一部に対して輝度減衰シェーディング処理が施され、他の部分については通常のシェーディング処理が施される。これにより、シェーディング処理を利用して少ない処理負荷で、オブジェクトに影を生成できるようになる。
【0017】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング部が、ディフューズ光或いはディフューズ光及びスペキュラ光についての、輝度減衰シェーディング処理を行ってもよい。
【0018】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【0019】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0020】
1.構成
図1に、本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外の各部(機能ブロック)については任意の構成要素とすることができる。
【0021】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【0022】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0023】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部(各手段)としてコンピュータを機能させるためのプログラム(各部をコンピュータに実現させるためのプログラム)が記憶(記録、格納)される。
【0024】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0025】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【0026】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0027】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0028】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0029】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、プログラム(ゲームプログラム)により実現できる。
【0030】
ここで、処理部100が行う処理としては、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【0031】
処理部100は、移動・動作処理部110、オブジェクト空間設定部112、視点制御部114、画像生成部120、音生成部130を含む。なお、処理部100は、これらの各部(機能ブロック)を全て含む必要はなく、その一部を省略してもよい。
【0032】
移動・動作処理部110は、オブジェクト(移動体)の移動情報(位置、回転角度)や動作情報(オブジェクトの各パーツの位置、回転角度)を求める処理を行う。即ち、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作(モーション、アニメーション)させたりする処理を行う。
【0033】
オブジェクト空間設定部112は、移動体(キャラクタ、車、戦車、ロボット)、柱、壁、建物、マップ(地形)などの各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度(方向)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転)でオブジェクトを配置する。
【0034】
視点制御部114は、オブジェクト空間内の所与(任意)の視点での画像を生成するために、視点(仮想カメラ)を制御する処理を行う。即ち、視点位置や視線方向を制御する処理(仮想カメラの位置(X、Y、Z)又はX、Y、Z軸回りでの回転を制御する処理)等を行う。
【0035】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部190に出力する。例えば、いわゆる3次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点(構成点)に付与される位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)の画像が、VRAM174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できる描画バッファ)に描画される。これにより、オブジェクト空間内において所与の視点(仮想カメラ)から見える画像が生成されるようになる。
【0036】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0037】
画像生成部120が含むフレーム画像生成部122は、ジオメトリ処理(透視変換)後のオブジェクト(狭義にはプリミティブ面。以下の説明でも同様)をVRAM(Video RAM)174に描画することで、フレーム画像(1画面の画像)を生成する。
【0038】
画像生成部120が含むテクスチャマッピング部124は、オブジェクトの描画の際に(フレーム画像の生成の際に)、オブジェクトにテクスチャをマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて、VRAM174のテクスチャ記憶部からテクスチャ(色、輝度、法線、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピング(project)する。この場合に、画素とテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。また、インデックスカラー・テクスチャマッピング用のLUT(ルックアップテーブル)を用いたテクスチャマッピングを行うようにしてもよい。
【0039】
画像生成部120が含む隠面消去部126は、オブジェクトの描画の際に(フレーム画像の生成の際に)、オブジェクトの隠面消去処理を行う。具体的には、各ピクセルに対応づけてZ値(奥行き情報)を記憶するZバッファ(奥行きバッファ)を用いて、Zバッファ法(奥行き比較法)により隠面消去処理を行う。
【0040】
画像生成部120が含むシェーディング部128は、オブジェクトにシェーディング処理を施す。より具体的には、光源(光源ベクトル、色又は光源位置等)、照明モデル、オブジェクトの法線ベクトル(頂点毎又はピクセル毎の法線ベクトル。面の法線ベクトル)などに基づいてシェーディング処理を行う。
【0041】
ここで、シェーディング処理は、例えばオブジェクトの各点(ドット、ピクセル)での光源色(RGB)の輝度(光の強度)を決定する処理である。そして、このシェーディング処理は、実世界での照明現象を模擬した数学的なモデルである照明モデル(シェーディングモデル)を用いて行われる。この照明モデルとしては、実世界現象のモデル化の態様に応じて、ランバート(Lambert)、フォン(Phong)、又はブリン(Blinn)などの種々のモデルがある。また、プリミティブ面(ポリゴン、曲面等)のシェーディングを滑らかにして、プリミティブ面の境界を目立たなくする手法として、グーロー(Gouraud)シェーディング、フォン(Phong)シェーディングなどの種々のスムースシェーディング手法がある。
【0042】
そして本実施形態では、シェーディング部128が、光源色の輝度を減衰させるシェーディング処理(以下、輝度減衰シェーディング処理と呼ぶ)を、影空間に入ったオブジェクト部分(オブジェクトの一部が影空間に入った場合にはその部分。オブジェクトの全部が影空間に入った場合にはオブジェクトの全部)に対して施す。そして、この輝度減衰シェーディング処理を利用して、影空間に入ったオブジェクト部分に影を生成する。
【0043】
より具体的には、シェーディング部128は、輝度減衰シェーディング処理において、輝度減衰用に設定される第1のベクトル(影の投影方向を表すベクトル、影空間を特定するためのベクトル)と光源ベクトル(オブジェクトと光源を結ぶ方向のベクトル、平行光源の光の方向を表すベクトル)との方向関係(ベクトルのなす角度等)に基づき光源色の輝度(光の強度)を減衰させる。例えば、第1のベクトルと光源ベクトルとが、直交状態(90度)から平行状態(180度又は0度)になるにつれて、光源色の輝度を減衰させる。
【0044】
また、シェーディング部128は、影空間に入ったオブジェクト部分(一部又は全部)に対しては、輝度減衰シェーディング処理を施す一方で、影空間に入っていないオブジェクト部分(一部又は全部)に対しては、輝度減衰シェーディング処理とは異なる通常のシェーディング処理(第1のベクトルと光源ベクトルとの方向関係に基づき光源色の輝度を減衰させないシェーディング処理)を施す。
【0045】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0046】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0047】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0048】
2.1 輝度減衰シェーディング処理による影の生成
さて、図2では、オブジェクトOB1と光源LS1、LS2の間に、オブジェクトOB2が介在している。従って、このような状況では、光源LS1、LS2からの光は、オブジェクトOB2により遮られ、オブジェクトOB1には当たらないはずである。
【0049】
しかしながら、これまでの影生成手法では、図2のような状況の場合でも、図3(A)、(B)に示すような手法で影を生成していた。
【0050】
即ち、まず、図3(A)に示すように、全ての光源LS1〜LS6を用いて、照明モデル(ランバート、フォン、ブリン等)により、オブジェクトOB1にシェーディング処理を施す。
【0051】
そして、その後に図3(B)に示すように、オブジェクトOB1が、オブジェクトOB2により形成される影空間内にあるか否かを判断する。そして、オブジェクトOB1が影空間内にあると判断された場合には、半透明処理等によりOB1の色を黒に変化させる。
【0052】
しかしながら、この影生成手法では、図3(A)に示すように、本来ならオブジェクトOB2に遮られて当たらないはずの光源LS1、LS2からの光により、オブジェクトOB1に対するシェーディング処理が行われてしまう。従って、現実世界の事象とは異なるシェーディングが行われてしまうという問題がある。
【0053】
また、図3(B)では、影空間に入った場合にオブジェクトOB1の色が強制的に単一色の黒に設定される。即ち、オブジェクトOB1は、光源LS3〜LS5により照らされているはずなのに、これらの光源LS3〜LS5によるシェーディングの効果は無視されてしまう。従って、画一的で単一色の影が生成されてしまい、いわゆるソフト・シャドウを実現できない。このため、生成される影が、現実世界の影とは異なり人工的で不自然な影になってしまい、リアルな影画像を生成できないという問題があった。
【0054】
そこで本実施形態では、このような問題を解決するために、以下の手法を採用している。
【0055】
即ち図4において、オブジェクトOB1の周りには複数の光源LS1〜LS6(平行光源又は点光源等)が配置されている。そして、オブジェクトOB1と光源LS1、LS2との間には、オブジェクトOB2が介在しており、このOB2が作る影空間内にOB1が入っている。
【0056】
この場合に本実施形態では、輝度減衰用のベクトルVP(第1のベクトル)と光源LS1〜LS6の光源ベクトルVL1〜VL6との方向関係(なす角度)に応じて光源色の輝度を減衰させる輝度減衰シェーディング処理を、オブジェクトOB1に対して施す。より具体的には、ベクトルVPと光源ベクトルVL1〜VL6とが、直交状態(90度)から平行状態(180度又は0度)になるにつれて輝度を減衰させる輝度減衰シェーディング処理をOB1に施す。
【0057】
例えば図4において、光源LS1、LS2の光源ベクトルVL1、VL2とベクトルVPは、平行状態(180度)又は平行に近い状態になっている。この場合には、光源LS1、LS2の輝度を大きな減衰率で減衰させる輝度減衰シェーディング処理を、LS1、LS2を用いてオブジェクトOB1に施す。
【0058】
一方、光源LS3の光源ベクトルVL3とベクトルVPは、直交状態(90度)又は直交に近い状態になっている。この場合には、光源LS3の輝度を小さな減衰率で減衰させる輝度減衰シェーディング処理を、LS3を用いてオブジェクトOB1に施す。
【0059】
なお、光源LS4、LS5、LS6については、輝度を減衰させない通常のシェーディング処理を、LS4〜LS6を用いてオブジェクトOB1に施す。
【0060】
このようにすれば、光源LS1、LS2の輝度については大きく減衰されて、オブジェクトOB1のシェーディング処理が行われる。従って、光源LS1、LS2からの光がオブジェクトOB2により遮られる(図2参照)のと同等の効果を得ることができる。
【0061】
一方、光源LS3の輝度については小さく減衰されて、オブジェクトOB1のシェーディング処理が行われる。従って、光源LS3からの光がオブジェクトOB2により少しだけ遮られるのと同等の効果を得ることができる。
【0062】
また、光源LS4〜LS6の輝度については全く減衰されずに、これらのLS4〜LS5を用いて、オブジェクトOB1のシェーディング処理が行われる。従って、光源LS4〜LS5によるシェーディング効果が全く無視されてしまうという図3(B)の手法の問題点を解消できる。
【0063】
従って、図3(B)のような画一的な影ではなく、現実世界の影に近いリアルな影を生成できるようになり、いわゆるソフト・シャドウの実現も可能になる。
【0064】
しかも、本実施形態では、光源色の輝度を減衰させる輝度減衰シェーディング処理を行うだけで、影が生成される。従って、図3(B)のように半透明処理等を利用してオブジェクトOB1の色を黒に変化させるという処理も不要になる。また、レイ・トレーシングのような負荷の重い処理も不要であり、少ない処理負荷でリアルな影を生成できる。
【0065】
なお、図4において、光源ベクトルVL1〜VL6とベクトルVPとの方向関係とは、VL1〜VL6とVPとのなす角度や、VL1〜VL6の第1、第2の座標成分(例えばX、Z座標)で規定されるベクトルと、VPの第1、第2の座標成分で規定されるベクトルとのなす角度などで表される。
【0066】
また、図4において、光源LS1〜LS6は平行光源であってもよいし、点光源であってもよい。例えば、平行光源を表現する場合には、光源を無限遠に配置し、オブジェクトと無限遠の光源を結ぶ方向を、平行光源の光源ベクトルの方向に設定してもよい。或いは、オブジェクトとの位置関係に依らずに一定の方向に設定される方向を、平行光源の光源ベクトルの方向に設定してもよい。
【0067】
また、図4では、光源ベクトルの方向を、オブジェクトから光源に向かう方向に設定しているが、光源からオブジェクトに向かう方向を、光源ベクトルの方向に設定してもよい。
【0068】
また、ベクトルVP(第1のベクトル)は、影の投影方向(影が落ちる方向)を表すベクトルであり、影空間を定義するためのベクトルである。このベクトルVPは、ゲーム状況等に応じて種々の方向に設定できる。
【0069】
例えば、ベクトルVPの方向は、複数の光源LS1〜LS6のうち主光源(太陽又は月等を表す光源。最も輝度の高い光源)となる光源LS1の光源ベクトルVL1の方向に基づいて設定できる。即ち、ベクトルVPの方向を、主光源LS1の光源ベクトルVL1と平行な方向(平行且つ逆方向)に設定したり、平行に近い方向に設定できる。
【0070】
また、オブジェクトOB1(OB1のドット)が、影空間に入った否かを判定する手法としては、種々のものが考えられる。例えば、シャドウボリューム(モディファイアボリューム)とステンシルバッファ(格納されている値に増加、減少又は反転等の演算を施すことができるバッファ)を用いて、オブジェクトOB1が影空間に入った否かを判定してもよい。
【0071】
2.2 詳細な処理例
次に、本実施形態の詳細な処理例について図5のフローチャートを用いて説明する。
【0072】
まず、ディフューズ色DC(拡散光成分)、スペキュラ色SC(鏡面光成分)を下式(1)、(2)のようにクリアする(ステップS1)。
【0073】
【数1】
Figure 0004159082
【0074】
【数2】
Figure 0004159082
【0075】
次に、処理対象となるピクセル(或いは頂点)が影空間内(影エリア内)にあるか否かを判断する(ステップS2)。この判断は、例えば、シャドウボリュームとステンシルバッファを用いる手法により実現できる。
【0076】
そして、処理対象となるピクセル(頂点)が影空間内にはないと判断された場合には、下式(3)のように、n番目の光源についての通常のシェーディング処理を行い(ステップS3)、ディフューズ色DCを求める。
【0077】
【数3】
Figure 0004159082
【0078】
上式(3)は、図6(A)に示すディフューズ光に関するランバートの照明モデル(ランバートの余弦則)である。上式(3)において、CLAMP01(X)は、Xの値を0〜1の範囲にクランプする関数である。また、VLnは、ディフューズ光の光源ベクトルである。また、Nは、オブジェクトの面の向きを表す法線ベクトル(各ピクセル又は各頂点の法線ベクトル)である。また、VLn・Nの「・」は内積を意味する。また、CLは、ディフューズ光の光源色である。なお、VLn、Nは共に単位ベクトルである。
【0079】
ステップS3の処理の後、全ての光源の処理が終了したか否かを判断し(ステップS4)、終了していない場合には、ステップS3に戻る。
【0080】
一方、終了した場合には、下式(4)のように、スペキュラ色SCの成分を求める通常のシェーディング処理を行う(ステップS5)。
【0081】
【数4】
Figure 0004159082
【0082】
上式(4)は、図6(B)に示すスペキュラ光に関するフォンの照明モデルである。上式(4)において、Dfはディフューズ反射率であり、Sfはマテリアルのスペキュラ反射率である。また、POWはスペキュラパワーの係数である。また、VSは、スペキュラ光の光源ベクトルであり、Eは、視線方向を表す視線ベクトルである。また、Hは、図6(B)に示すように、光源ベクトルVSと視線ベクトルEの中間ベクトルである。また、CSは、スペキュラ光の光源色である。
【0083】
図5のステップS2において、処理対象となるピクセル(頂点)が影空間内にあると判断された場合には、下式(5)のように、n番目の光源についての輝度減衰シェーディング処理を行い(ステップS6)、ディフューズ色DCの成分を求める。
【0084】
【数5】
Figure 0004159082
【0085】
上式(5)において、CLAMP-10(X)は、Xの値を−1〜0の範囲にクランプする関数である。また、VPは、図4で説明した影の投影方向を表すベクトル(第1のベクトル)である。
【0086】
ステップS6の処理の後、全ての光源の処理が終了したか否かを判断し(ステップS7)、終了していない場合には、ステップS6に戻る。
【0087】
一方、終了した場合には、下式(6)のように、スペキュラ色SCの成分を求める輝度減衰シェーディング処理を行い(ステップS8)、ステップS9に移行する。
【0088】
【数6】
Figure 0004159082
【0089】
ステップS9では、ステップS3、S5、S6、S8で得られたディフューズ色DC、スペキュラ色SCと、テクスチャ色(或いはマテリアル色)TCに基づいて、下式(7)のように、各ピクセル(或いは各頂点)の色PCを求める。
【0090】
【数7】
Figure 0004159082
【0091】
以上により、1ピクセル分(或いは1頂点分)の処理が終了する。そして、この処理を全ピクセル分だけ行うことで、フレーム画像(画面サイズの画像)の生成が終了する。
【0092】
さて、上式(5)において、下式(8)のF1が、ディフューズ光についての通常のシェーディング処理部分に相当し、下式(9)のA1が、ディフューズ光についての輝度(光の強度)の減衰率に相当する。
【0093】
【数8】
Figure 0004159082
【0094】
【数9】
Figure 0004159082
【0095】
また、上式(6)において、下式(10)のF2が、スペキュラ光についての通常のシェーディング処理部分に相当し、下式(11)のA2が、スペキュラ光についての輝度(光の強度)の減衰率(色減衰率)に相当する。
【0096】
【数10】
Figure 0004159082
【0097】
【数11】
Figure 0004159082
【0098】
図7(A)に、これらの減衰率A1、A2と内積IP(VLn・VP又はVS・VP)の関係の一例を示す。
【0099】
図7(A)に示すように、輝度の減衰率A1、A2は、内積IPが0.0〜1.0(VLn又はVSとVPのなす角度θが90度〜0度)の場合に、1.0にクランプされる。そして、内積IP=0.0(θ=90度)の場合に、減衰率A1、A2は1.0になる。
【0100】
そして、内積IPが0.0から−1.0に変化すると(θが90度から180度に変化すると)、減衰率A1、A2は1.0から0.0に変化する。即ち、内積IP=−1.0(θ=180度)の場合に、光源色の輝度(光の強さ)が最も減衰するようになる。これにより、図4の光源LS1の光がオブジェクトOB2により遮られるという事象を表現できる。
【0101】
なお、内積IPと減衰率A1、A2の関係は、図7(A)に示す関係に限定されず、例えば図7(B)に示すような種々の関係を採用できる。また、このような内積IPを用いずに輝度を減衰させるようにしてもよい。
【0102】
また、例えば光源ベクトルの方向を、オブジェクトから光源に向かう方向ではなく、光源からオブジェクトに向かう方向として定義した場合には、減衰率A1、A2は、内積IPが0.0〜−1.0(θが90度〜180度)の場合に、1.0にクランプされる。そして、内積IPが0.0から1.0に変化すると(θが90度から0度に変化すると)、減衰率A1、A2は1.0から0.0に変化する。即ち、内積IP=1.0(θ=0度)の場合に、光源色の輝度が最も減衰するようになる。
【0103】
図8〜図11に、本実施形態により生成される画像の例を示す。図8〜図11において、VL1〜VL4は光源ベクトルに相当し、SDSPは影空間である。
【0104】
図8は、オブジェクトOB1の全部が影空間SDSPの外にある場合の画像例である。この場合には、オブジェクトOB1の全体に対して、光源ベクトルVL1〜VL4に基づく通常のシェーディング処理(図5のステップS3、S5)が施される。
【0105】
一方、図9、図10は、オブジェクトOB1の一部が影空間SDSPの中に入っている場合の画像例である。この場合には、オブジェクトOB1のうち影空間SDSPに入っている部分に対して、光源ベクトルVL1等についての輝度を減衰させるシェーディング処理(図5のステップS6、S8)が施される。なお、図11では、オブジェクトOB1の全部が影空間SDSPの中に入っている場合の画像例である。
【0106】
図8〜図11に示すように、本実施形態によれば、オブジェクトOB1のうち影空間SDSPに入っている部分に、リアルな影を生成できる。
【0107】
また、オブジェクトOB1のうち影部分と非影部分との境界で輝度が滑らかに変化するようになり、いわゆるソフト・シャドウを実現できる。
【0108】
また、光源からの光によるシェーディング処理を利用して影が生成されるため、図3(A)、(B)に示すような画一的で単一色の影とは異なる、リアルな影を生成できる。即ち、シェーディング部分が黒い色の影で塗りつぶされることはなく、シェーディング処理の光源色を減衰させることで影が生成されるため、レイ・トレーシングで生成されるようなリアルな影を生成できる。
【0109】
しかも、本実施形態では、上式(8)、(10)のシェーディング処理部分F1、F2に対して上式(9)、(11)の減衰率A1、A2を乗算する処理を追加するだけでよい。従って、レイ・トレーシングのような負荷の重い処理を必要とすることなく、リアルな影を生成できる。
【0110】
なお、本実施形態のシェーディング処理は、頂点オーダで行うことも可能であるが(グーローシェーディング)、よりリアルな影を生成するためには、ピクセルオーダで行うことが望ましい(ピクセル・シェーディング、ピクセル・シェーダ)。
【0111】
例えば、フォンのスムーズシェーディング等の手法を用いて、法線ベクトルを補間して、ピクセル毎の法線ベクトルを求める。そして、このピクセル毎の法線ベクトルを用いて、シェーディング処理を行う。このようにすることで、影部分と非影部分の境界を、更に目立たなくすることが可能になる。
【0112】
2.3 ピクセルオーダのシェーディング
次に、高速なピクセルオーダのシェーディング処理(ピクセル・シェーディング)を実現できる画像生成システムについて説明する。
【0113】
図12に、このような画像生成システムの構成例(図1の画像生成部、VRAMの詳細例)を示す。図12において、画像生成部120は、フレーム画像生成部122、テクスチャマッピング部124、隠面消去部126、シェーディング部128を含む。また、VRAM174は、色(原色)バッファ200、法線バッファ202、座標バッファ204、Zバッファ206、輝度(光源色)バッファ208、フレーム(最終画像)バッファ210、ステンシルバッファ212、テクスチャ記憶部214を含む。なお、本実施形態の画像生成システムは、図12の全てのブロック(機能ブロック)を含む必要はなく、その一部を省略してもよい。
【0114】
フレーム画像生成部122は、Zバッファ206を用いて隠面消去処理を行いながら、プリミティブ面(ポリゴン、自由曲面、プリミティブ)を描画し、シェーディング未処理のフレーム画像を生成する。即ち、テクスチャ記憶部214のテクスチャをプリミティブ面にマッピングし、シェーディング処理を行うことなく、プリミティブ面を色(原色)バッファ200に描画する。これにより、シェーディング処理が施されていない原色のフレーム画像が、色バッファ200に生成される。
【0115】
なお、色バッファ200へのプリミティブ面の描画の際のテクスチャマッピング処理はテクスチャマッピング部124が行い、隠面消去処理は隠面消去部126が行う。
【0116】
そして本実施形態では、このフレーム画像の生成の際に得られるオブジェクトの法線ベクトル(法線ベクトルの座標成分)が、各ピクセルに対応づけられて、法線バッファ202に書き込まれる。即ち、ジオメトリデータに基づいてオブジェクトを色バッファ200に描画する際に、フォンのスムーズシェーディング等による法線ベクトルの補間処理が行われる。そして、補間処理により得られた各ピクセルの法線ベクトルが、法線バッファ202の、対応するピクセル位置(ピクセルアドレス)に書き込まれる。
【0117】
また本実施形態では、フレーム画像の生成の際に得られるオブジェクトの空間座標(視点座標系の座標。広義には座標情報)が、各ピクセルに対応づけられて、座標バッファ204に書き込まれる。即ち、ジオメトリデータに基づいてオブジェクトを色バッファ200に描画する際に、オブジェクトの各ドット(ピクセル)での空間座標(オブジェクトの各ドットが、視点座標系等の空間座標系においてどの位置に存在するかを示す座標)が求められる。そして、この求められた各ドットの空間座標が、座標バッファ204の、対応するピクセル位置に書き込まれる。
【0118】
また本実施形態では、対象となるピクセルが影空間(影エリア)内のピクセルであるか否かを判定するための影空間判定情報を、シャドウボリュームなどを利用して、ステンシルバッファ212に生成する。
【0119】
より具体的には、シャドウボリューム(モディファイアボリューム)を構成するプリミティブ面(ポリゴン)のうち視点から見て表向きのプリミティブ面を描画する。この際、そのZ値が、Zバッファ206のZ値よりも手前にあるピクセルについて、ステンシルバッファ212の値を1だけ減算する。
【0120】
次に、シャドウボリュームを構成するプリミティブ面のうち視点から見て裏向きのプリミティブ面を描画する。この際、そのZ値が、Zバッファ206のZ値よりも手前にあるピクセルについて、ステンシルバッファ212の値を1だけ加算する。
【0121】
以上のような処理を全てのオブジェクトに対して行うと、ステンシルバッファ212の値(影空間判定情報)が最大値でないピクセルが、影空間内のピクセルであると判定できるようになる。
【0122】
シェーディング部128は、光源(光源ベクトル、光源色又は光源位置等)と、照明モデルと、ステンシルバッファ212の影空間判定情報と、法線バッファ202の法線ベクトルとに基づいて、シェーディング処理を行い、各ピクセルでの光源色の輝度を求める。そして、求められた光源色の輝度を、各ピクセルに対応づけて輝度バッファ208に書き込む。そして、この輝度と、色バッファ200の色とに基づいて、シェーディング処理が施されたフレーム画像が生成され、フレームバッファ210(描画バッファ)に書き込まれることになる。
【0123】
この場合に、シェーディング部128は、図5で説明したシェーディング処理を行う。即ち、影空間判定情報に基づいて、影空間の外にあると判定されたピクセルについては、図5のステップS3〜S5の通常のシェーディング処理により、そのピクセルの輝度を求める。そして、求めた輝度を、輝度バッファ208の、対応するピクセル位置に書き込む。
【0124】
一方、影空間判定情報に基づいて、影空間内にあると判定されたピクセルについては、図5のステップS6〜S8の輝度減衰シェーディング処理により、そのピクセルの輝度を求める。そして、求めた輝度を、輝度バッファ208の、対応するピクセル位置に書き込む。
【0125】
このようにして得られた輝度を用いることで、図8〜図11に示すようなリアルな影画像を生成できるようになる。
【0126】
また本実施形態では、シェーディング部128が、座標バッファ204の空間座標(座標情報)に基づいて、点光源(スポット光源)などについてのシェーディング処理を行う。
【0127】
即ち、点光源を用いたシェーディング処理を行うためには、オブジェクトの各ドット(点)と点光源との間の距離の情報が必要になる。本実施形態では、オブジェクトの各ドットの空間座標(X、Y、Z座標又はX、Y座標)が、各ピクセルに対応づけて座標バッファ204に保存されている。シェーディング部128は、この座標バッファ204の空間座標に基づいて、点光源とオブジェクトの各ドット(ピクセル)との距離を求める。そして、求められた距離に基づいて点光源についてシェーディング処理を行う。
【0128】
また、座標バッファ204の空間座標を用いれば、図6(B)に示す視線ベクトルEについても容易に求めることができる。これにより、スペキュラ光についてのシェーディング処理も実現できる。
【0129】
即ち、例えば座標バッファ204の空間座標に基づいて、オブジェクトの各ドットと視点とを結ぶ視線ベクトルEを求める。そして、視線ベクトルEと光源ベクトルVSとに基づいて中間ベクトルEを求め、この中間ベクトルEと法線バッファ202からの法線ベクトルNに基づいて、各ピクセルでのスペキュラ光のシェーディング処理を行う。
【0130】
次に、図12の画像生成システムの動作について図13、図14、図15のフローチャートを用いて説明する。
【0131】
まず、色(原色)バッファ200、Zバッファ206、輝度(光源色)バッファ208等の記憶値をクリアする(ステップS11)。
【0132】
次に、処理対象となるプリミティブ面(プリミティブ)をピクセル単位で描画する(ステップS12)。そして、そのピクセル位置でのZ値がZバッファ206のZ値よりも視点から見て手前側か否かを判断する(ステップS13)。そして、奥側であると判断された場合には、そのピクセル部分は隠面消去される部分であるため、ステップS18に移行する。
【0133】
一方、手前側であると判断された場合には、そのピクセル位置でのテクスチャ色(又はマテリアル色)を、シェーディング処理することなく色バッファ200に書き込む(ステップS14)。そして、この際に、そのピクセル位置での空間座標(視点座標系)を、座標バッファ204に書き込む(ステップS15)。また、そのピクセル位置での法線ベクトル(法線ベクトルの座標成分)を、法線バッファ202に書き込む(ステップS16)。そして、必要であればZバッファ206の更新を行う(ステップS17)。なお、ステップS14〜S17の処理順序は任意(順不同)である。
【0134】
次に、プリミティブ面の全てのピクセルの処理が終了したか否かを判断し(ステップS18)、終了していない場合にはステップS13に戻る。一方、終了した場合には、全てのプリミティブ面の処理が終了したか否かを判断し(ステップS19)、終了していない場合にはステップS12に戻る。
【0135】
次に、ピクセルが影空間(影エリア)内のピクセルか否かを判定するための影空間判定情報を、ステンシルバッファ212を用いて取得する(ステップS20)。
【0136】
次に、光源(光源属性)と、照明モデル(照明モデルの演算式)と、影空間判定情報と、法線バッファ202からの法線ベクトルに基づいて、ディフューズ光のシェーディング処理を行い、全てのピクセルでの光源色の輝度を求め、輝度バッファ208に書き込む(ステップS21)。
【0137】
次に、色バッファ200の色(原色)と輝度バッファ208の輝度を乗算し、ディフューズ光のシェーディング処理が施されたフレーム画像を生成し、フレームバッファ210に書き込む(ステップS22)。
【0138】
次に、光源と、照明モデルと、影空間判定情報と、法線バッファ202からの法線ベクトルと、座標バッファ204からの空間座標(視点座標系)に基づいて、スペキュラ光のシェーディング処理を行い、得られた光源色の輝度をフレームバッファ210に加算する(ステップS23)。
【0139】
なお、ステップS22、S23の処理を行う代わりに、色バッファ200の色と輝度バッファ208の輝度を乗算し、得られた乗算値にスペキュラ色を加算した値を、フレームバッファ210に書き込むようにしてもよい。
【0140】
以上のようにすることで、シェーディング処理が施され、影が描画されたフレーム画像(不透明プリミティブ面についてのフレーム画像)を生成できるようになる。
【0141】
しかも、この画像生成手法によれば、隠面消去されない部分についてのみシェーディング処理が行われ、隠面消去される部分についてはシェーディング処理が行われるようになるため、処理の高速化、処理負荷の軽減化を図れる。
【0142】
即ち、図13のステップS14、S16で得られた色、法線ベクトルは、色バッファ200、法線バッファ202に書き込まれ、これらの色、法線ベクトルに基づいて、図14のステップS21〜S23のシェーディング処理が行われる。従って、このステップS21〜S23のシェーディング処理は、1画面(フレーム)のピクセル数の分だけ行えばよいことになる。従って、オブジェクトの隠面消去部分において、無駄にシェーディング処理が行われる事態を防止でき、処理の高速化、処理負荷の軽減化を図れる。
【0143】
図15は、半透明プリミティブプリミティブ面の描画処理に関するフローチャートである。この処理は、図13、図14の不透明プリミティブ面の描画処理の後に行われる。
【0144】
まず、半透明プリミティブ面の全てのピクセルについて、図13のステップS13〜S18と同様の処理を行う(ステップS31)。この際、輝度バッファ208はクリアしておく。
【0145】
次に、半透明プリミティブ面の隠面消去されなかった部分(半透明プリミティブ面がバッファを更新した部分)のみについて、その全てのピクセルの光源色(ディフューズ光)を求め、輝度バッファ208に書き込む(ステップS32)。
【0146】
次に、半透明プリミティブ面の隠面消去されなかった部分(半透明プリミティブ面がバッファを更新した部分)のみについて、色バッファ200の色と輝度バッファ208の輝度を乗算し、その乗算値に、座標バッファ204の空間座標に基づき得られた輝度(スペキュラ光)を加算する。そして、得られたピクセル色を、α値(半透明パラメータ)に基づいて、フレームバッファ210に既に書かれているピクセル色と合成する(ステップS33)。そして、全ての半透明プリミティブ面の処理が終了したか否かを判断し(ステップS34)、終了していない場合にはステップS31に戻る。
【0147】
以上のようにすることで、無駄の無い少ない処理負荷で半透明プリミティブ面を描画できるようになる。
【0148】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図16を用いて説明する。
【0149】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0150】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0151】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0152】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0153】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0154】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0155】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0156】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0157】
RAM960は、各種プロセッサの作業領域として用いられる。
【0158】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0159】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0160】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0161】
なお、本実施形態の各部は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0162】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【0163】
図17(A)に、本実施形態を業務用ゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、操作部1102(レバー、ボタン)を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラム(格納情報)と呼ぶ。
【0164】
図17(B)に、本実施形態を家庭用のゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、コントローラ1202、1204などを操作してゲームを楽しむ。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209などに格納されている。
【0165】
図17(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-n(ゲーム機、携帯電話)とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム(格納情報)は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0166】
なお、図17(C)の構成の場合に、本実施形態の各部を、ホスト装置(サーバー)と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム(格納情報)を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0167】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【0168】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0169】
例えば、明細書中の記載において広義な用語(方向関係、座標情報、モディファイアボリューム等)として引用された用語(なす角度、空間座標、シャドウボリューム等)は、明細書中の他の記載においても広義な用語に置き換えることができる。
【0170】
また、本発明の輝度減衰手法は、図4〜図7(B)で説明した手法に限定されない。例えば、上述した式(5)、(6)と異なった式で、輝度減衰シェーディングを行ってもよい。また、光源ベクトルと第1のベクトルの内積とは異なるパラメータを用いて、光源色を減衰させてもよい。
【0171】
また、本実施形態の画像生成手法は、図12〜図15で説明した手法に限定されない。例えば、ピクセルオーダではなく、頂点オーダでシェーディング処理を行ってもよい。また、例えばVRAMではなく1つのレジスタを用いてピクセル・シェーディングを行ってもよい。
【0172】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0173】
また、本発明は種々のゲーム(格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等)に適用できる。
【0174】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システムの機能ブロック図の例である。
【図2】従来の手法の問題点について説明するための図である。
【図3】図3(A)、(B)も、従来の手法の問題点について説明するための図である。
【図4】本実施形態の手法について説明するための図である。
【図5】本実施形態の処理について説明するためのフローチャートである。
【図6】図6(A)、(B)は、照明モデルについて説明するための図である。
【図7】図7(A)、(B)は、内積と減衰率の関係について説明するための図である。
【図8】本実施形態により生成された画像の例を示す図である。
【図9】本実施形態により生成された画像の例を示す図である。
【図10】本実施形態により生成された画像の例を示す図である。
【図11】本実施形態により生成された画像の例を示す図である。
【図12】高速なシェーディング処理を可能にする画像生成システムの機能ブロック図の例である。
【図13】図12の画像生成システムの動作を説明するためのフローチャートである。
【図14】図12の画像生成システムの動作を説明するためのフローチャートである。
【図15】図12の画像生成システムの動作を説明するためのフローチャートである。
【図16】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図17】図17(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
OB1、OB2 オブジェクト
LS1〜LS6 光源
VL1〜VL6 光源ベクトル
VP 第1のベクトル
100 処理部
110 移動・動作処理部
112 オブジェクト空間設定部
114 視点制御部
120 画像生成部
122 フレーム画像生成部
124 テクスチャマッピング部
126 隠面消去部
128 シェーディング部
130 音生成部
160 操作部
170 記憶部
172 主記憶部
174 VRAM
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部
200 色(原色)バッファ
202 法線バッファ
204 座標バッファ
206 Zバッファ
208 輝度(光源色)バッファ
210 フレームバッファ
212 ステンシルバッファ
214 テクスチャ記憶部

Claims (13)

  1. 画像を生成するための画像生成システムであって、
    光源と照明モデルに基づいてオブジェクトに対してシェーディング処理を施すシェーディング部と、
    オブジェクト空間において所与の視点から見える画像を生成する画像生成部とを含み、
    前記シェーディング部が、
    輝度減衰用に設定される第1のベクトルと光源ベクトルとの方向関係に基づき光源色の輝度を減衰させる輝度減衰シェーディング処理を、影空間に入ったオブジェクト部分に対して施し、該輝度減衰シェーディング処理により、影空間に入ったオブジェクト部分に影を生成することを特徴とする画像生成システム。
  2. 請求項1において、
    前記シェーディング部が、
    第1のベクトルと光源ベクトルとが、直交状態から平行状態になるにつれて、光源色の輝度を減衰させることを特徴とする画像生成システム。
  3. 請求項1又は2において、
    前記シェーディング部が、
    第1のベクトルと光源ベクトルとの内積に基づいて、光源色の輝度を減衰させることを特徴とする画像生成システム。
  4. 請求項1乃至3のいずれかにおいて、
    前記第1のベクトルの方向が、複数の光源のうちの主光源の光源ベクトルの方向に基づいて設定されることを特徴とする画像生成システム。
  5. 請求項1乃至4のいずれかにおいて、
    前記シェーディング部が、
    影空間に入ったオブジェクト部分に対しては、光源色の輝度を減衰させる輝度減衰シェーディング処理を施し、影空間に入っていないオブジェクト部分に対しては、輝度減衰シェーディング処理とは異なる通常のシェーディング処理を施すことを特徴とする画像生成システム。
  6. 請求項1乃至のいずれかにおいて、
    前記シェーディング部が、
    ディフューズ光或いはディフューズ光及びスペキュラ光についての、輝度減衰シェーディング処理を行うことを特徴とする画像生成システム。
  7. 画像を生成するためのプログラムであって、
    光源と照明モデルに基づいてオブジェクトに対してシェーディング処理を施すシェーディング部と、
    オブジェクト空間において所与の視点から見える画像を生成する画像生成部として、
    コンピュータを機能させると共に、
    前記シェーディング部が、
    輝度減衰用に設定される第1のベクトルと光源ベクトルとの方向関係に基づき光源色の輝度を減衰させる輝度減衰シェーディング処理を、影空間に入ったオブジェクト部分に対して施し、該輝度減衰シェーディング処理により、影空間に入ったオブジェクト部分に影を生成することを特徴とするプログラム。
  8. 請求項において、
    前記シェーディング部が、
    第1のベクトルと光源ベクトルとが、直交状態から平行状態になるにつれて、光源色の輝度を減衰させることを特徴とするプログラム。
  9. 請求項又はにおいて、
    前記シェーディング部が、
    第1のベクトルと光源ベクトルとの内積に基づいて、光源色の輝度を減衰させることを特徴とするプログラム。
  10. 請求項乃至のいずれかにおいて、
    前記第1のベクトルの方向が、複数の光源のうちの主光源の光源ベクトルの方向に基づいて設定されることを特徴とするプログラム。
  11. 請求項乃至10のいずれかにおいて、
    前記シェーディング部が、
    影空間に入ったオブジェクト部分に対しては、光源色の輝度を減衰させる輝度減衰シェーディング処理を施し、影空間に入っていないオブジェクト部分に対しては、輝度減衰シェーディング処理とは異なる通常のシェーディング処理を施すことを特徴とするプログラム。
  12. 請求項乃至11のいずれかにおいて、
    前記シェーディング部が、
    ディフューズ光或いはディフューズ光及びスペキュラ光についての、輝度減衰シェーディング処理を行うことを特徴とするプログラム。
  13. コンピュータ読み取り可能な情報記憶媒体であって、請求項乃至12のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
JP2002229145A 2002-08-06 2002-08-06 画像生成システム、プログラム及び情報記憶媒体 Expired - Fee Related JP4159082B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002229145A JP4159082B2 (ja) 2002-08-06 2002-08-06 画像生成システム、プログラム及び情報記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002229145A JP4159082B2 (ja) 2002-08-06 2002-08-06 画像生成システム、プログラム及び情報記憶媒体

Publications (2)

Publication Number Publication Date
JP2004070669A JP2004070669A (ja) 2004-03-04
JP4159082B2 true JP4159082B2 (ja) 2008-10-01

Family

ID=32015652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002229145A Expired - Fee Related JP4159082B2 (ja) 2002-08-06 2002-08-06 画像生成システム、プログラム及び情報記憶媒体

Country Status (1)

Country Link
JP (1) JP4159082B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7835892B2 (en) 2004-09-28 2010-11-16 Immersion Medical, Inc. Ultrasound simulation apparatus and method
US20060082593A1 (en) * 2004-10-19 2006-04-20 Microsoft Corporation Method for hardware accelerated anti-aliasing in 3D
US9171484B2 (en) 2008-03-06 2015-10-27 Immersion Corporation Determining location and orientation of an object positioned on a surface
US9679499B2 (en) 2008-09-15 2017-06-13 Immersion Medical, Inc. Systems and methods for sensing hand motion by measuring remote displacement
US8428326B2 (en) 2008-10-23 2013-04-23 Immersion Corporation Systems and methods for ultrasound simulation using depth peeling
JP5237066B2 (ja) 2008-11-28 2013-07-17 キヤノン株式会社 複合現実感提示システムおよび複合現実感提示方法、プログラム
US8442806B2 (en) 2010-03-03 2013-05-14 Immersion Medical, Inc. Systems and methods for simulations utilizing a virtual coupling

Also Published As

Publication number Publication date
JP2004070669A (ja) 2004-03-04

Similar Documents

Publication Publication Date Title
JP2006318389A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4527853B2 (ja) ゲームシステム及び情報記憶媒体
JP4804120B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4079410B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4223244B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3777288B2 (ja) ゲームシステム及び情報記憶媒体
JP4187188B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4610748B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2002063596A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP2004334661A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4159082B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3280355B2 (ja) 画像生成システム及び情報記憶媒体
JP2004298375A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4073031B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP3467259B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP4707078B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4577968B2 (ja) ゲームシステム及び情報記憶媒体
JP4187192B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4229317B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4056035B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4913399B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4528008B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3254195B2 (ja) 画像生成システム及び情報記憶媒体
JP4704615B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4574058B2 (ja) 画像生成システム、プログラム及び情報記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080619

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4159082

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees