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

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

Info

Publication number
JP4187188B2
JP4187188B2 JP2002127033A JP2002127033A JP4187188B2 JP 4187188 B2 JP4187188 B2 JP 4187188B2 JP 2002127033 A JP2002127033 A JP 2002127033A JP 2002127033 A JP2002127033 A JP 2002127033A JP 4187188 B2 JP4187188 B2 JP 4187188B2
Authority
JP
Japan
Prior art keywords
value
virtual
unevenness
setting
pixel
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 - Lifetime
Application number
JP2002127033A
Other languages
English (en)
Other versions
JP2003323630A (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 JP2002127033A priority Critical patent/JP4187188B2/ja
Priority to US10/419,869 priority patent/US7248260B2/en
Publication of JP2003323630A publication Critical patent/JP2003323630A/ja
Application granted granted Critical
Publication of JP4187188B2 publication Critical patent/JP4187188B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム(RPG)を楽しむことができる画像生成システムを例にとれば、プレーヤは、自身の分身であるキャラクタ(オブジェクト)を操作してオブジェクト空間内のマップ上で移動させ、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【0003】
さて、このような画像生成システムでは、霧、もや、煙、ホコリなどのフォグ(fog)が掛かったゲーム場面を表示する場合がある。そして、プレーヤの仮想現実感の向上のためには、フォグのむら(nonuniformity,unevenness)についてもリアルに表現できることが望まれる。
【0004】
このようなフォグむらを表現する1つの手法として、半透明ポリゴンのビルボードを利用する手法が考えられる。この手法では、フォグのむら模様(nonuniform pattern)をマッピングした複数枚の半透明ポリゴンを用意し、これらの半透明ポリゴンを仮想カメラに正対するように奥行き方向に並べる。
【0005】
しかしながら、この手法では、フォグ表現用の半透明ポリゴンとその他のポリゴンとの交差ラインが見えてしまうため、不自然な画像が生成されてしまう。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、フォグのむら模様等を少ない処理負荷でリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0007】
【課題を解決するための手段】
本発明は、オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、元画像の各画素のZ値に応じた値に各画素のα値が設定される第1のα値と、各画素のα値が仮想プレーン内で不均一に設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0008】
本発明では、元画像のZ値(奥行き値)に応じて設定された第1のα値と、αむら設定用α値が合成され、得られた第2のα値に基づいて、元画像の色と所与の色(例えばフォグの色)が合成される。このようにすることで、元画像のZ値とαむら(むら模様)の両方が加味された画像エフェクトを、元画像に対して施すことができる。これにより、リアルで自然な画像を生成できる。
【0009】
なお、元画像のZ値をインデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として扱い(Z値をインデックス番号とみなし)、このルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行うことで、元画像のZ値を第1のα値に変換してもよい。
【0010】
また本発明では、色合成部を省略する構成にすることもできる。
【0011】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、仮想プレーン内でのむら模様が異なる複数のαむら設定用α値を合成して、前記第1のα値の合成対象となるαむら設定用α値を生成してもよい。
【0012】
この場合、複数のαむら設定用α値に対応する複数の仮想プレーンに対して、仮想カメラからの仮想距離を設定し、この仮想距離に基づいて、複数のαむら設定用α値の合成に使用するα値を制御したり、複数のαむら設定用α値の仮想プレーン内でのむら模様を制御してもよい。
【0013】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、前記複数のαむら設定用α値に対応する複数の仮想プレーンのうち最も手前側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも小さくなった場合に、最も手前側の仮想プレーンに対応するαむら設定用α値の合成率を低くし、前記複数の仮想プレーンのうち最も奥側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも大きくなった場合に、最も奥側の仮想プレーンに対応するαむら設定用α値の合成率を低くしてもよい。
【0014】
なお、最も手前側の仮想プレーンに対応するαむら設定用α値の合成率を低くした後に(零にした後に)、最も奥側の仮想プレーンの更に奥側に、新たな仮想プレーンを発生させてもよい。また、最も奥側の仮想プレーンに対応するαむら設定用α値の合成率を低くした後に(零にした後に)、最も手前側の仮想プレーンの更に手前側に、新たな仮想プレーンを発生させてもよい。
【0015】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、仮想カメラ情報及び時間情報の少なくとも一方に応じて、αむら設定用α値の仮想プレーン内でのむら模様を変化させてもよい。
【0016】
このようにすれば、仮想カメラの動きや時間経過に応じて、むら模様が多様に変化するようになり、更にリアルな画像を生成できる。
【0017】
なお、この場合に、複数のαむら設定用α値の仮想プレーン内でのむら模様を変化させてもよいし、複数のαむら設定用α値を合成することで得られるαむら設定用α値(第1のα値の合成対象になるαむら設定用α値)のむら模様を変化させてもよい。
【0018】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、αむら設定用α値に対応する仮想プレーンについての仮想カメラからの仮想距離が小さくなるほど、αむら設定用α値のむら模様を拡大してもよい。
【0019】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、スクリーンに平行な第1の方向に仮想カメラが移動した場合に、αむら設定用α値のむら模様を、第1の方向とは逆方向の第2の方向に移動させてもよい。
【0020】
なお、この場合に、αむら設定用α値のむら模様の移動距離を、仮想カメラからの仮想距離に応じて変化させてもよい。
【0021】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、むら模様テクスチャを仮想オブジェクトにマッピングすることで、αむら設定用α値を生成すると共に、前記仮想オブジェクトに設定されるテクスチャ座標を、仮想カメラ情報及び時間情報の少なくとも一方に応じて変化させてもよい。
【0022】
このようにすれば、むら模様の変化を簡素な処理で実現できるようになる。
【0023】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定してもよい。
【0024】
このようにすれば、元画像のZ値を考慮して、αむら設定用α値の合成に使用するα値を設定できるようになる。
【0025】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、αむら設定用α値に対応する仮想プレーンの仮想Z値よりも元画像のZ値の方が仮想カメラから見て手前側にある画素については、αむら設定用α値の合成が行われないように、αむら設定用α値の合成に使用するα値を設定してもよい。
【0026】
なお、そのZ値が、αむら設定用α値に対応する仮想プレーンの仮想Z値よりも所与の範囲(Z値の範囲)だけ奥側にある画素については、αむら設定用α値の合成に使用するα値を、徐々に大きくして行くことが望ましい。
【0027】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記α値合成部が、元画像のZ値をインデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として扱い、前記ルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行うことで、元画像のZ値を、αむら設定用α値の合成に使用するα値に変換するようにしてもよい。
【0028】
このようにすれば、少ない処理負荷で、元画像のZ値を、αむら設定用α値の合成に使用するα値に変換できるようになる。
【0029】
また本発明は、オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、第1のα値と、各画素のα値が仮想プレーン内において不均一に設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、前記α値合成部が、仮想プレーン内でのむら模様が異なる複数のαむら設定用α値を合成して、前記第1のα値の合成対象となるαむら設定用α値を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0030】
また本発明は、オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、第1のα値と、各画素のα値が仮想プレーン内において不均一に設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、前記α値合成部が、仮想カメラ情報及び時間情報の少なくとも一方に応じて、αむら設定用α値の仮想プレーン内でのむら模様を変化させる画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0031】
また本発明は、オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、第1のα値と、各画素のα値が仮想プレーン内において不均一に設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、前記α値合成部が、元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0032】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【0033】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0034】
1.構成
図1に、本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外の各部(機能ブロック)については任意の構成要素とすることができる。
【0035】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【0036】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0037】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部(各手段)としてコンピュータを機能させるためのプログラム(各部をコンピュータに実現させるためのプログラム)が記憶(記録、格納)される。
【0038】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0039】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【0040】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0041】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0042】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0043】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、プログラム(ゲームプログラム)により実現できる。
【0044】
処理部100は、移動・動作処理部110、オブジェクト空間設定部112、仮想カメラ制御部114、画像生成部120、音生成部130を含む。なお、処理部100は、これらの各部(機能ブロック)を全て含む必要はなく、その一部を省略してもよい。
【0045】
移動・動作処理部110は、オブジェクト(移動体)の移動情報(位置、回転角度)や動作情報(オブジェクトの各パーツの位置、回転角度)を求める処理を行う。即ち、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作(モーション、アニメーション)させたりする処理を行う。
【0046】
オブジェクト空間設定部112は、移動体(キャラクタ、車、戦車、ロボット)、柱、壁、建物、マップ(地形)などの各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度(方向)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転)でオブジェクトを配置する。
【0047】
仮想カメラ制御部114は、オブジェクト空間内に設定される仮想カメラを制御する処理を行う。即ち、仮想カメラの位置(X、Y、Z)又は回転(X、Y、Z軸回りでの回転)などの仮想カメラ情報を求め、仮想カメラを制御する(視点位置や視線方向を制御する)。
【0048】
例えば、仮想カメラにより移動オブジェクトを後方から撮影する場合には、移動オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転(仮想カメラの方向)を制御することが望ましい。この場合には、移動・動作処理部110で得られた移動オブジェクトの位置、方向又は速度などの情報に基づいて、仮想カメラを制御することになる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた角度で回転させるようにしてもよい。この場合には、仮想カメラの位置(移動経路)や回転角度を特定するためのカメラ経路情報を予め用意しておき、このカメラ経路情報に基づいて仮想カメラを制御する。
【0049】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。例えば、いわゆる3次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点(構成点)に付与される位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)の画像が、描画バッファ174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成されるようになる。
【0050】
なお、画像生成部120は、Z値(奥行き値)が格納されるZバッファ176(奥行きバッファ)を用いて、Zバッファ法(奥行き比較法)により陰面消去を行う。更に、画像生成部120は、テクスチャ記憶部178に記憶されるテクスチャをオブジェクト(プリミティブ面)にマッピングするための処理も行う。この場合に、画像生成部120は、LUT記憶部179に記憶されるインデックスカラー・テクスチャマッピング用のLUT(ルックアップテーブル)を用いてテクスチャマッピングを行うことができる。
【0051】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0052】
画像生成部120が含むα値合成部122は、第1のα値とαむら設定用α値とを合成(α値の乗算、加算、除算又は減算等)して、第2のα値を生成する処理を行う。
【0053】
ここで、第1のα値では、例えば、元画像の各画素のZ値に応じた値に、各画素のα値が設定されている。また、αむら設定用α値では、仮想プレーン内(画素間)において各画素のα値が不均一(nonuniform)に設定されている。
【0054】
また、元画像は、例えば、Z値を格納するZバッファ176を用いて陰面消去を行いながらオブジェクトを描画バッファ174に描画することで生成される画像である。そして、元画像のZ値は、この描画処理の際に行われるZバッファ法(奥行き比較法)により、Zバッファ176上に生成(格納)される。
【0055】
なお、本実施形態のZ値(奥行き値)は、カメラ座標系のZ座標軸のZ値そのものであってもよいし、このZ値と数学的な均等なパラメータであってもよい。例えば、カメラ座標系のZ値の逆数に相当するパラメータや、カメラ座標系のZ値に所与の変換処理を施すことで得られるパラメータであってもよい。
【0056】
画像生成部120が含む色合成部124は、元画像の色と所与の色(例えばフォグの色)とを、第2のα値に基づいて合成する処理(広義には第2のα値に基づく画像生成処理)を行う。この場合の合成処理としては、αブレンディング(狭義のαブレンディング)、加算αブレンディング又は減算αブレンディング等を考えることができる。このような合成処理を行うことで、元画像にフォグ(霧、雲、湯気、もや、ほこり、ちり、煙、竜巻又は露等)が掛かった画像を生成できる。
【0057】
合成処理がαブレンディング(狭義のαブレンディング)である場合を例にとれば、色合成部124は下式に従った合成処理を行う。
【0058】
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
ここで、R、G、Bは、元画像(描画バッファ174に既に描画されている画像)の色(輝度)のR、G、B成分であり、R、G、Bは、所与の色(フォグの色)のR、G、B成分である。また、R、G、Bは、αブレンディングにより得られる画像(完成画像、フォグ画像)の色のR、G、B成分である。
【0059】
なお、α値(A値)は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、又はバンプ情報などとして使用できる。
【0060】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0061】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0062】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0063】
なお、以下では、フォグむらの表現に本実施形態の手法を適用した場合を主に例にとり説明するが、本実施形態の手法は、フォグむら以外の画像表現に適用することも可能である。
【0064】
2.1 距離に応じたフォグ濃度の変化
よりリアルなフォグ効果を表現するためには、仮想カメラ(視点)からの距離に応じてフォグ濃度を変化させることが望ましい。即ち、仮想カメラからの距離が遠くなるほどフォグ濃度を濃くする。
【0065】
そして、このようにフォグ濃度を変化させるためには、フォグ濃度を制御するパラメータであるα値を、仮想カメラからの距離に応じて変化させることが望ましい。即ち、仮想カメラからの距離が遠くなるほどフォグ濃度が濃くなるようにα値を制御する。
【0066】
そこで本実施形態では、仮想カメラからの距離パラメータであるZ値(奥行き距離)をα値に変換する手法を採用している。具体的には図2のA1に示すように、元画像(描画バッファ上に描画された画像)のZ値ZPを第1のα値αP1に変換する。
【0067】
そして図2のA2に示すように、元画像の色ICP(RGB、YUV等)と、フォグの色(白、灰色等)CPとを、αP1に基づいて合成(αブレンディング等)する。これにより、元画像にフォグ効果が施されたフォグ画像(広義には完成画像)を生成できる。
【0068】
そして本実施形態では図1のA1に示すZ値からα値への変換を、インデックスカラー・テクスチャマッピングを有効利用して実現している。
【0069】
即ち、インデックスカラー・テクスチャーマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、図3のB1に示すように、実際の色情報(RGB)ではなくインデックス番号が、テクスチャの各テクセルに関連づけて記憶される。また、図3のB2に示すように、インデックスカラー・テクスチャマッピング用のLUT(カラーパレット)には、インデックス番号により指定される色情報が記憶される。そして、オブジェクトに対してテクスチャマッピングを行う際には、テクスチャの各テクセルのインデックス番号に基づいてLUTを参照し、対応する色情報をLUTから読み出し、読み出された色情報を描画バッファ(フレームバッファ等)に描画する。
【0070】
このようなインデックスカラーモードのテクスチャマッピングでは、LUTを用いない通常モードのテクスチャマッピングに比べて、使用できる色数は少なくなる(例えば256色)。しかしながら、テクスチャ記憶部に実際の色情報(例えば24ビットの色情報)を記憶する必要が無くなるため、テクスチャ記憶部の使用記憶容量を大幅に節約できる。
【0071】
本実施形態は、このようなインデックスカラー・テクスチャマッピングを通常とは異なる形態で利用している。
【0072】
即ち、まず図4のB3に示すように、元画像の各画素のZ値を、ルックアップテーブルLUTのインデックス番号として扱う(Z値をインデックス番号とみなす)。そしてB4に示すように、元画像のZ値(画像情報)がインデックス番号として設定されたLUTを用いて、仮想オブジェクト(例えば表示画面サイズのスプライト、ポリゴン)に対してインデックスカラー・テクスチャマッピングを行い、元画像のZ値を変換する。これにより、元画像の各画素のZ値に応じた値に設定されたα値を得ることができる。
【0073】
なお、図4では、表示画面サイズの仮想オブジェクトに対してテクスチャマッピングを行っているが、表示画面を分割したサイズの仮想オブジェクトに対してテクスチャマッピングを行うようにしてもよい。
【0074】
2.2 フォグむら
さて、図2の手法によれば、Z値(仮想カメラからの距離)に応じて濃淡が変化するフォグ効果を元画像に対して施すことが可能になる。しかも、図2の手法では、仮想オブジェクトにインデックスカラー・テクスチャマッピングを行うだけで済むため、処理負荷が軽いという利点がある。
【0075】
しかしながら、図2の手法では、濃淡(濃度)にむらがあるフォグ(不均一なフォグ)を表現できないという課題がある。
【0076】
この場合、例えば、図2の色CP(フォグ色のスプライト)に、白、灰色、黒などの色の濃淡をつける手法を考えることもできる。
【0077】
しかしながら、この手法では、生成されるフォグは、灰色や黒のフォグになるだけで、濃淡にむらがあるフォグにはならない。
【0078】
そこで本実施形態では、α値にむらをつける手法、即ちα値を仮想プレーン内(画素間)で不均一にする手法を採用している。
【0079】
即ち、まず本実施形態では図5のC1に示すように、図2の手法と同様に、元画像のZ値(Zプレーン)ZPを変換し、ZPに応じて各画素のα値が設定される第1のα値(第1のαプレーン)αPを得る。この場合、ZPからαP1への変換は、例えば図4で説明したインデックスカラー・テクスチャマッピングを利用した変換手法で実現する。
【0080】
また本実施形態では図5のC2に示すように、仮想プレーン内でα値が不均一に設定されたαむら設定用α値(αむら設定用αプレーン)αUPを用意する。このαUPの生成手法の詳細については後述する。
【0081】
そして本実施形態では図5のC3に示すように、αP1とαUPを合成して、第2のα値(第2のαプレーン)αP2を得る。このようにすることで、Z値とαむら(むら模様)の両方が加味されたα値(フォグ濃度値)を得ることができる。なお、α値の合成処理としては、各画素のαP1、αUPを乗算する処理を考えることができる。但し、α値の加算、減算又は除算等、乗算以外の合成処理を採用してもよい。
【0082】
次に本実施形態では図5のC4に示すように、得られたαP2に基づいて、元画像の色ICPと色CP(フォグの色)とを合成し、フォグ画像(完成画像)を生成する。ここで、色の合成としては、狭義のαブレンディング(上式(1)〜(3))又は加算αブレンディングなどを考えることができる。
【0083】
以上のようにすることで、Z値(距離)に応じて濃度が変化すると共にその濃度にむらがあるフォグを、元画像に対して施すことが可能になる。
【0084】
図6に、本実施形態で用いられる元画像の例を示す。この元画像では、複数の立方体形状のオブジェクトが、仮想カメラから見て左手前側から右奥側に向かって配列されている。
【0085】
図7に、αむら設定用α値αUPの例を示し、図8に、このαUPを生成するために使用されるむら模様テクスチャTEXの例を示す。図7、図8において、白い部分ほどα値が低くなっており、フォグ濃度が薄くなっている。一方、黒い部分ほどα値が高くなっており、フォグ濃度が濃くなっている。このように、図7、図8では、α値(フォグ濃度)が仮想プレーン(画面)内で不均一になっている。
【0086】
図9、図10に、本実施形態により生成されるフォグ画像の例を示す。図9、図10に示すように本実施形態によれば、視点(仮想カメラ)からの距離が遠くなるほど、フォグの濃度が濃くなっている。また、フォグの濃度にむらがあるため、あたかも本物のフォグがオブジェクトに掛かっているように見え、これまでにないリアルな画像の生成に成功している。
【0087】
2.3 フォグの濃度と強度
図11に、指数フォグにおけるZ値(Zバッファ値)とフォグ濃度との関係を示す。図11のE1〜E5は、フォグ強度を変えた特性曲線である。E1の特性曲線はフォグ強度が最も強いものであり、E5は最も弱いものである。
【0088】
フォグのむらを表現するためには、フォグ強度とZ値(仮想カメラからの距離)とによって決まるフォグ濃度に対して、むらによる変化をつけることになる。そして、むらによるフォグ濃度の変化は、フォグ強度の強弱となるべく似た傾向になることが望ましい。
【0089】
一方、むらをつけるのに用いるαブレンディングの式は、前述の式(1)〜(3)に示すように1次関数である。従って、このαブレンディングにおいて、フォグ濃度(α値)に対して可能な操作は、所与の値を中心にして所与の倍率を乗算する操作に限られる。
【0090】
そこで本実施形態では、図12に示すように、F2に示す元のフォグ濃度(α値)に対して、1以上の値のフォグむら値を乗算して、F2とF3の間の範囲(F1)のフォグ濃度を得る。そしてF4に示すように、得られたF3のフォグ濃度に対して、上限を1.0(最大値)にリミットするクランプ処理を施す。このようにして得られたF3、F4に示すフォグ濃度の特性曲線は、例えば図11のE5に示すフォグ濃度の特性曲線と似たものになり、より現実世界に近いフォグ濃度を得ることができる。
【0091】
なお、本実施形態のようにフォグむら値を1以上に設定する手法を採用すれば、フォグむらの強さが一定のままでも、フォグ強度を弱めるにつれてフォグむらが消えるようになる。もし、フォグむらの強さをフォグ強度に連動して変化させるのであれば、フォグむら値を1以上に設定する手法を採用しなくてもよい。
【0092】
2.4 むらの多層化
さて、αむら設定用α値の仮想プレーンが1枚だけであると、ある奥行きにだけフォグむらが存在するかのように見えてしまい、今ひとつリアルなフォグを表現できない。
【0093】
そこで本実施形態では、図13に示すように、仮想カメラVCからの仮想距離d0、d1、d2が異なる複数の仮想プレーンPL0、PL1、PL2(2枚でもよいし、4枚以上でもよい)を仮想配置する。例えば図13では、仮想距離がd0であるPL0は、仮想カメラVCから見て最も手前側に仮想配置され、仮想距離がd2であるPL2は、VCから見て最も奥側に仮想配置されている。
【0094】
そして本実施形態では、これらの複数の仮想プレーンPL0、PL1、PL2に対応して、仮想プレーン内でのむら(nonuniformity pattern)が異なる複数のαむら設定用α値(αプレーン)αUP0〜αUP2を用意する。要するに、複数の仮想プレーンPL0、PL1、PL2に対応して、仮想プレーン内でのむらの状態(例えば、むら模様)が異なる複数のαむら設定用α値αUP0〜αUP2を用意する。そして、これらの複数のαむら設定用α値αUP0〜αUP2を、仮想距離d0〜d2などに基づき得られるα値α0〜α2(合成率)を用いて合成することで、αむら設定用α値αUPを生成する。具体的には、仮想プレーンPL0〜PL2に対応するスプライトSP0〜SP2(広義には仮想オブジェクト)を配置し、これらのスプライトSP0〜SP2にαむら設定用α値αUP0〜αUP2のテクスチャ(図8参照)をマッピングして、ワークバッファ上で複数回重ね描きする。これにより、むらが2層以上重なって見える画像を生成できるようになる。
【0095】
また本実施形態では図14(A)に示すように、仮想カメラVCが移動(前進)し、最も手前側の仮想プレーンPL0の仮想距離d0が所与の距離以下になると、PL0に対応するαむら設定用α値αUP0の合成率(ブレンド率)を低くし、徐々に消して行く。そして、仮想プレーンPL2の奥側に新たな仮想プレーンPLNを発生し、PLNに対応するαむら設定用α値αUPNの合成率を徐々に高くする。
【0096】
一方、図14(B)に示すように、仮想カメラVCが移動(後退)し、最も奥側の仮想プレーンPL2の仮想距離d2が所与の距離以上になると、PL2に対応するαUP2の合成率を低くし、徐々に消して行く。そして、PL0の手前側に新たな仮想プレーンPLNを発生し、PLNに対応するαUPNの合成率を徐々に高くする。
【0097】
図14(A)、(B)に示すような処理を行うことで、有限の枚数のαUP0〜αUP2の仮想プレーンを用いながらも、無限の枚数の仮想プレーンを用いた場合と同様の効果を得ることができる。
【0098】
2.5 仮想カメラ情報に基づくむらの変化
本実施形態では、仮想カメラ情報(仮想カメラの位置又は方向等)や時間情報(時間やフレームの経過を表す情報)に基づいて、αむら設定用α値の仮想プレーン内でのむらを変化させている。要するに、仮想カメラ情報や時間情報に基づいて、αむら設定用α値の仮想プレーン内でのむらの状態(例えば、むら模様)を変化させている。
【0099】
具体的には図15(A)に示すように、仮想カメラVCと仮想プレーンPL(PL0〜PL2)との仮想距離d(d0〜d2)が小さくなるほど、PLに対応するαUPのむら模様を拡大する。逆に、仮想距離dが遠くなるほど、αUPのむら模様を縮小する。
【0100】
このようにすれば、例えば図13において、仮想カメラVCからの仮想距離d0が近い仮想プレーンPL0のαUP0では、そのむら模様が大きくなり、仮想距離d2が遠い仮想プレーンPL2のαUP2では、そのむら模様が小さくなる。従って、むら模様に奥行き感や立体感を持たせることができ、よりリアルな画像を生成できるようになる。
【0101】
また、本実施形態では図15(B)に示すように、スクリーン(スクリーン座標系のXY平面)に平行な第1の方向(例えば上下左右のうちの左方向)に仮想カメラVCが移動した場合に、それとは逆の第2の方向(例えば右方向)に、αUP(αUP0〜αUP2)のむら模様を適正距離だけ移動させる。
【0102】
この場合に本実施形態では、むら模様の移動距離を、仮想プレーンPL(PL0〜PL2)の仮想距離d(d0〜d2)に応じて変化させている。具体的には図13において、短い仮想距離d0の仮想プレーンPL0のαUP0では、仮想カメラVCの移動に対するむら模様の移動距離を大きくし、遠い仮想距離d2の仮想プレーンPL2のαUP2では、仮想カメラVCの移動に対するむら模様の移動距離を小さくする。
【0103】
このようにすることで、平面の仮想プレーンを用いているのにもかかわらず、あたかも立体的なフォグが目の前にあるかのように見える画像を生成できる。
【0104】
なお、本実施形態では、図8に示すようなむら模様テクスチャTEX(αむら設定用テクスチャ)を仮想オブジェクト(スプライト、ポリゴン)にマッピングすることで、図7に示すようなαむら設定用α値αUP(αUP0〜αUP2)を生成している。そして本実施形態では、仮想オブジェクトに設定されるテクスチャ座標(各頂点に与えられるテクスチャ座標)を、仮想カメラ情報(又は時間情報)に基づいて、変化させている。
【0105】
具体的には図16(A)、(B)に示すように、仮想オブジェクトに与えるテクスチャ座標(U0、V0)〜(U3、V3)を仮想カメラ情報に基づいて変化させる。
【0106】
例えば図16(A)に示すように、テクスチャTEXを読み出すためのテクスチャ座標を(U0、V0)〜(U3、V3)から(U0’、V0’)〜(U3’、V3’)に変更すれば、図15(A)で説明したむら模様の拡大を実現できる。逆に、テクスチャ座標を(U0’、V0’)〜(U3’、V3’)から(U0、V0)〜(U3、V3)に変更すれば、むら模様の縮小を実現できる。
【0107】
一方、図16(B)に示すように仮想オブジェクトのテクスチャ座標を変更すれば、図15(B)で説明したむら模様の移動を実現できる。即ち、いわゆるテクスチャスクロールの手法を用いることで、むら模様の移動を実現できる。
【0108】
なお、時間情報に基づいて(時間経過に応じて)、むら模様を移動させたり、むら模様を拡大・縮小すれば、風によるフォグの流れを表現できるようになる。即ち、仮想カメラの動きベクトルをVECC、風のベクトルをVECWとした場合に、関数F(VECC−VECW)に基づきむら模様を移動させる。これにより、フォグむらに対して流れを与えることが可能になる。
【0109】
2.6 Zバッファ値の考慮
さて、フォグむら(αむら設定用α値)を重ね合わせる際には、既に描画されている元画像のZ値(Zバッファ値)を考慮することが望ましい。奥にあるはずのフォグむらが、手前にあるオブジェクトに掛かってしまうと、不自然になるからである。
【0110】
そして、フォグむらを重ね合わせる際に、Zテストのように前後関係をオン/オフ方式で判定して描画すると、生成される画像が不自然になる。従って、ON/OFF方式ではなく連続的に変化する方式が望ましい。
【0111】
そこで本実施形態では、元画像のZ値に基づいて、αむら設定用α値の合成に使用するα値(図13のα0〜α2)を設定している。
【0112】
より具体的には、例えば図17(A)に示すようなZ値−α値特性になるように、αUPの合成に使用するα値α(α0〜α2)を設定する。
【0113】
例えば図17(B)において、オブジェクトOBの面SKのZ値がZK、面SLのZ値がZK〜ZL、背景のZ値がZMであったとする。また、αむら設定用α値αUPの仮想プレーンの仮想Z値(仮想カメラからの仮想的な奥行き距離)がZVに設定されていたとする。
【0114】
この場合に、図17(A)のようにαUPの合成に使用するαを設定すれば、Z>ZVにおいてα=0(最小値)になるため、面SKではαUPが合成されないようになる。従って、オブジェクトOBの面SKにはフォグむらが掛からないようになる。
【0115】
一方、Z値がZK〜ZLとなるオブジェクトOBの面SLでは、Z値に対してαUPの合成に使用するαが連続的に変化する。従って、面SLのフォグむらの濃度が連続的に変化するようになる。
【0116】
また、Z値がZMとなる背景においては、αUPの合成に使用するαがα=aになるため、αUPはα=aの合成率(ブレンド率)で合成されるようになる。従って、背景には濃度の濃いフォグむらが掛かるようになる。
【0117】
例えば図7では、G1に示す部分においてαが所定値(例えば0x80)になっている。従って、この部分においてはフォグむらが掛からないようになり、図9に示すような自然でリアルなフォグ画像を生成できる。
【0118】
なお、図17(A)に示すZ値−α値特性は、図4で説明したインデックスカラー・テクスチャマッピングを利用した手法で実現できる。
【0119】
具体的には、元画像のZ値をインデックスカラー・テクスチャマッピング用のルックアップテーブルLUTのインデックス番号として扱う(Z値をインデックス番号とみなす)。更に、ルックアップテーブルLUTの内容を、図17(A)に示すようなZ値−α値特性を表す内容にする。そして、このルックアップテーブルLUTを用いて仮想オブジェクト(スプライト、ポリゴン)に対してインデックスカラー・テクスチャマッピングを行う。これにより、元画像のZ値を、図17(A)に示すようなZ値−α値特性に基づき、αむら設定用α値の合成に使用するα値に変換できる。
【0120】
このようにすれば、ルックアップテーブルの内容を変更するだけ、様々なZ値−α値特性を得ることができる。また、例えば1回のテクスチャマッピングを行うだけで元画像のZ値をα値に変換できるため、処理負荷も少なくて済む。但し、図4で説明した手法と異なる手法により、元画像のZ値をα値に変換してもよい。
【0121】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図18、図19、図20、図21のPAD図を用いて説明する。
【0122】
なお、図18、図19では便宜上、フレームバッファ(描画バッファ)の各画素が3つのα値(A1、A2、A3とする)を持つことができる場合を想定する。フレームバッファの各画素が1つのα値しか持つことができないシステムの場合には、後述する図20、図21の処理のように、メモリ上に作業領域を確保し、A1、A2、A3を適宜α値以外の値(例えばGreen値)で代用し、その後、その値(Green値)をα値に変換すればよい。
【0123】
また、ルックアップテーブル(LUT)を使ってZ値(Zバッファ値)を他の値に変換する際に、変換できるZ値の範囲が限定される場合がある。例えば、Z値が24ビットであり、Z値が手前側で大きい値となり奥側で小さい値になるシステムにおいて、24ビットの中央の8ビットのみを使って変換する場合は、次のようになる。
【0124】
即ち、Z値(0x000000)から(0x00ffff)の範囲を変換対象にすると、(0x00ffff)よりも手前側の領域、即ち(0x010000)以上の領域を変換対象にできない。本来、一般的には、(0x010000)に対する変換結果と(0x000000)に対する変換結果は、異なる結果になるべきである。ところが、(0x010000)は(0x000000)と中央の8ビットが同じ値(0x00)であるため、変換結果が同一になってしまう。そのため、Z値が(0x010000)以上の領域は変換対象にできなくなる。このように変換対象にできない領域のうち、手前側の領域をニア(near)領域と呼ぶことにする。
【0125】
また、図18〜図21では、フレームバッファをFB、ZバッファをZB、ワークバッファをWBと略記する。また、Red、Green、BlueをそれぞれR、G、Bと略記し、α値をA1、A2、A3、Aと略記する。例えば、フレームバッファのGreenは、FB:Gと略記する。
【0126】
図18について説明する。
【0127】
まず、図12のF2に示すようなフォグ特性(Z値−α値特性)をルックアップテーブル(LUT)lut_0にセットする(ステップS1)。そして、毎フレームの処理に移行する(ステップS2)。なお、lut_0は、図4で説明した変換処理を実現するためのルックアップテーブルである。
【0128】
毎フレームの処理では、まず、フォグ特性が変わったか否かを判断する(ステップS3)。そして、変わった場合には、新しいフォグ特性をlut_0にセットする(ステップS4)。
【0129】
次に、フォグを掛ける対象となるオブジェクトをFB:R,G,Bに描画する(ステップS5)。この際、同時にZ値(奥行き値)をZB(Zバッファ)に書き込む。
【0130】
次に、カメラの動き(仮想カメラ情報)、風の流れに基づき、仮想距離d0、d1、d2、及びスプライトSP0、SP1、SP2に使用するUV値を求める(ステップS6)。そして、FB:A2に対して、ニア領域用のむら値を上書きで書き込む(ステップS7)。
【0131】
例えば本実施形態では図22に示すように、仮想カメラVCからの仮想距離d0〜d2が設定された仮想プレーンPL0〜PL2(αむら設定用α値αUP0〜αUP2)が仮想配置され、このPL0〜PL2に対応するスプライトSP0〜SP2(広義には仮想オブジェクト)が配置される。
【0132】
図22に示すように、仮想プレーンPL0〜PL2は仮想カメラVCの光軸に対して垂直になるように仮想配置されている。そして、仮想カメラVCからPL0〜PL2までの仮想距離を、近いほうから順にd0、d1、d2とする。d0の初期値をDEPTH0とする。また、仮想プレーン同士の間隔をDIST(定数)とする。
【0133】
つまり、
d1=d0+DIST (4)
d2=d1+DIST (5)
の関係を保ったまま、d0、d1、d2は変化する。
【0134】
本実施形態では、仮想カメラVCの動き(仮想カメラ情報)や風の流れに応じてd0(及びd1、d2)を変化させる。例えば、仮想カメラが前進する場合や、風の流れが仮想カメラに向かっている場合に、d0は時間とともに小さくなる。
【0135】
仮想プレーンPL0〜PL2のすり替え処理を行うために、次のように定数D0、D1、D2を定め、各仮想プレーンPL0〜PL2の存在範囲を図23(A)のように制限する。
【0136】
D0=DEPTH0−0.5×DIST (6)
D1=DEPTH0+0.5×DIST (7)
D2=DEPTH0+1.5×DIST (8)
D3=DEPTH0+2.5×DIST (9)
仮想カメラの動きや風の流れから仮想距離及びUV値を求める手法(図18のステップS6)は以下の通りである。
【0137】
なお、画面の画素は正方形であるとし、むら模様テクスチャの縦横比は画面の縦横比に等しいものとする。また、使用される記号の意味は以下の通りである。
T:1フレームの時間(60フレーム/秒の場合、T=1/60秒)
tx,ty,tz:時間Tの間に仮想カメラが移動した距離(カメラ座標系)
rx,ry,rz:時間Tの間に仮想カメラが回転した角度(カメラ座標系)
wx,wy,wz:時間Tの間に風が流れた距離(カメラ座標系)
θz:仮想カメラのZ軸回りの回転角度
TEXW:むら模様テクスチャの幅(ピクセル数)
SCR_DEPTH:透視変換に使う仮想カメラから仮想スクリーンまでの距離
SCR_W:透視変換に使う仮想スクリーンの幅
U0,V0:スプライトの左上隅のUV値
U1,V1:スプライトの右上隅のUV値
U2,V2:スプライトの右下隅のUV値
U3,V3:スプライトの左下隅のUV値
ASP:画面の縦横比(縦サイズ/横サイズ)
d0は以下のようにして求める。
【0138】
即ち1フレーム前のd0の値に(tz−wz)を加えたものを新しいd0とする。そして、d0<D0又はd0>D1となった場合には、仮想プレーンのすり替えを行い、d0の値も修正する。
【0139】
より具体的には、d0=D0の状態から、更にd0を小さくなった場合(仮想カメラが更に前進する場合等)には、仮想プレーンのすり替えを行う。即ちPL1の役割をPL0に移し、PL2の役割をPL1に移す。そして、PL2の仮想距離は新たにd2=D3に設定する。
【0140】
これとは逆に、d0=D1(即ちd2=D3)の状態から、更にd0を大きくなった場合(仮想カメラが後退する場合等)には、逆の仮想プレーンすり替えを行う。そして、PL0の仮想距離は新たにd0=D0に設定する。
【0141】
UV値は以下のようにして求める。
【0142】
むら模様テクスチャの中で、仮想プレーンPL0に対応するスプライトSP0にマッピングされる領域の中心を(cx、cy)とし、領域の幅をw(ピクセル数)とする。すると、wは次式で得られる。
【0143】
w=TEXW×(d0/DEPTH0) (10)
また、1フレーム前のcx、cyの値に、それぞれ下記のdcx、dcyを加えたものを、新しいcx、cyとする。
【0144】
dcx=(tx−wx−d0×ry)×SCD×WSC (11)
dcy=(−ty+wy−d0×rx)×SCD×WSC (12)
但し、
SCD=SCR_DEPTH/d0 (13)
WSC=w/SCR_W (14)
である。
【0145】
すると、UV値は次式により得られる。
U0=cx−w×cos(θz)/2−w×sin(θz)×ASP/2(15)
U1=cx+w×cos(θz)/2−w×sin(θz)×ASP/2(16)
U2=cx+w×cos(θz)/2+w×sin(θz)×ASP/2(17)
U3=cx−w×cos(θz)/2+w×sin(θz)×ASP/2(18)
V0=cy−w×sin(θz)/2−w×cos(θz)×ASP/2(19)
V1=cy−w×sin(θz)/2−w×cos(θz)×ASP/2(20)
V2=cy−w×sin(θz)/2+w×cos(θz)×ASP/2(21)
V3=cy+w×sin(θz)/2+w×cos(θz)×ASP/2(22)
なお、θzとして仮想カメラのZ軸回りの回転角度を使う代わりに、θzに所与の初期値を与え、毎フレーム、θzに対してrzを加算したものを新しいθzとしてもよい。
【0146】
図18の説明に戻る。
【0147】
ステップS7の後、仮想距離d0に基づいてa0を求める(ステップS8)。そして、d0、a0に基づいてルックアップテーブルlut_a0を作る(ステップS9)。
【0148】
次に、lut_a0を使ってZBの値をα値に変換し、FB:A1に上書きで書き込む(ステップS10。図17(A)、(B)参照)。そして、むら模様テクスチャとUV値(SP0用)を使って、むら模様をFB:A2に書き込む(ステップS11)。この際、ニア領域をマスクし、FB:A1を使って、既に書かれている値とのαブレンディング処理を行う。
【0149】
以上のようにして、1枚目のαむら設定用α値のプレーン(むら模様)がFB:A2に書き込まれる。
【0150】
次に、仮想距離d1に基づいてa1を求める(ステップS12)。そして、d1、a1に基づいてルックアップテーブルlut_a1を作る(ステップS13)。
【0151】
次に、lut_a1を使ってZBの値をα値に変換し、FB:A1に上書きで書き込む(ステップS14)。そして、むら模様テクスチャとUV値(SP1用)を使って、むら模様をFB:A2に書き込む(ステップS15)。この際、ニア領域をマスクし、FB:A1を使って、既に書かれている値とのαブレンディング処理を行う。
【0152】
以上のようにして、1枚目、2枚目のαむら設定用α値のプレーン(むら模様)が合成されたものがFB:A2に書き込まれることになる。
【0153】
次に、仮想距離d2に基づいてa2を求める(ステップS16)。そして、d2、a2に基づいてルックアップテーブルlut_a2を作る(ステップS17)。
【0154】
次に、lut_a2を使ってZBの値をα値に変換し、FB:A1に上書きで書き込む(ステップS18)。そして、むら模様テクスチャとUV値(SP2用)を使って、むら模様をFB:A2に書き込む(ステップS19)。この際に、ニア領域をマスクし、FB:A1を使って、既に書かれている値とのαブレンディング処理を行う。
【0155】
以上のようにして、1枚目、2枚目、3枚目のαむら設定用α値のプレーン(むら模様)が合成されたものがFB:A2に書き込まれることになる(図13参照)。
【0156】
次に、ニア領域用のα値にFB:A2の値を乗算し、1.0でクランプし、FB:A3に上書きで書き込む(ステップS20)。
【0157】
次に、図18のステップS1又はステップS4にセットされたルックアップテーブルlut_0を使ってZBの値をα値に変換し、これにFB:A2の値を乗算し、1.0でクランプし、FB:A3に書き込む(ステップS21)。この際に、ニア領域をマスクして上書きで書き込む。
【0158】
以上のようにすることで、図5のC1に示すZ値からα値への変換処理と、C3に示すα値の合成処理が実現される。
【0159】
次に、FB:R,G,Bに全画面サイズのフォグ色オブジェクトを描画する(ステップS22)。この際に、FB:A3を使って、既に書かれている値とのαブレンド処理を行う。これにより、図5のC4に示す色の合成処理が実現される。
【0160】
最後に、フォグを掛たくないオブジェクトをFB:R,G,Bに上書きで描画する(ステップS23)。
【0161】
なお、図18、図19のステップS8、S12、S16のa0、a1、a2を求める処理は、以下のようにして実現できる。
【0162】
即ち、仮想プレーンPL0、PL2、PL2のブレンドウェイトをw0、w1、w2とした場合に、これらのw0、w1、w2を図23(B)のように設定する。
【0163】
即ち、w1は常に1にする。
【0164】
また、w0については、d0≧D0+DIST/2の場合には、w0=1にする。そして、d0<D0+DIST/2の場合には、d0が小さくなるにつれてw0を小さくし、d0=D0でw0=0にする。
【0165】
w2については、d2≦D2+DIST/2の場合にw2=1にする。そして、d2>D2+DIST/2の場合は、d2が大きくなるにつれてw2を小さくし、d2=D3でw2=0にする。
【0166】
仮想プレーンPL0、PL2、PL3のα値をa0、a1、a2とすると、これらのa0〜a2は、次のように、ブレンドウェイトw0〜w2に基づき、求めることができる。
【0167】
a0=w0/(1+w0) (23)
a1=w1/(1+w0+w1) (24)
a2=w2/(1+w0+w1+w2) (25)
また、図18、図19のステップS9、S13、S17で作られるルックアップテーブルlut_a0、lut_a1、lut_a2の変換特性(α値α0、α1、α2)の例を、図24(A)、(B)、(C)に示す。
【0168】
図24(A)、(B)、(C)において、Z0、Z1、Z2、Z3は、仮想プレーンPL0、PL1、PL2の仮想距離d0、d1、d2とd2+DISTにより得られる仮想Z値である。具体的には、これらのZ0、Z1、Z2、Z3は、d0、d1、d2、d2+DISTの逆数などに基づき得ることができる。なお、d0、d1、d2、d2+DISTそのものをZ0、Z1、Z2、Z3に設定してもよい。
【0169】
また、図24(A)、(B)、(C)のa0、a1、a2は、ステップS8、S12、S16で求められた仮想プレーンPL0、PL1、PL2のα値である。
【0170】
例えば、仮想プレーンPL0、PL1、PL2の仮想距離d0、d1、d2が、図23(B)のH1、H2、H3に示す位置にあったとする。すると、この図23(B)の変換特性に基づいて、その時のブレンドウェイトw0、w1、w2が求められる。
【0171】
そして、求められたブレンドウェイトw0、w1、w2を上式(23)、(24)、(25)に代入することで、a0、a1、a2が得られる。これにより、図24(A)、(B)、(C)のI1、I2、I3に示すa0、a1、a2が特定される。また、仮想距離d0、d1、d2、d2+DISTに基づいて、図24(A)、(B)、(C)のI4、I5、I6、I7に示す仮想Z値Z0、Z1、Z2、Z3が特定される。以上により、lut_a0、lut_a1、lut_a2の変換特性が特定される。
【0172】
そして、図24(A)、(B)、(C)の変換特性で、元画像の各画素のZ値がα値に変換され、得られたα値に基づいて、むら模様(αむら設定用α値)のブレンディング処理が行われる。
【0173】
従って、元画像の画素のZ値が図24(A)のI8に示す範囲にある場合には、その画素については、αUP0(PL0)の合成処理は行われないようになる。同様に、元画像の画素のZ値が図24(B)、(C)のI9、I10に示す範囲にある場合には、その画素については、αUP1(PL1)、αUP2(PL2)の合成処理は行われないようになる。これにより、図9、図10に示すような自然でリアルなフォグ画像を生成できる。
【0174】
図20、図21は、フレームバッファの各画素が1つのα値しか持てないシステムの場合の処理例を示すPAD図である。
【0175】
図20、図21の処理が図18、図19と異なるのは以下の点である。
【0176】
例えば、図20のステップS37では、ワークバッファであるWB:Gにニア領域用のむら値を上書きで書き込んでいる。
【0177】
また、図20、図21のステップS40、S44、S48では、ルックアップテーブルlut_a0、lut_a1、lut_a2を使ってZBの値をα値に変換し、WB:Aに上書きで書き込んでいる。
【0178】
また、ステップS41、S45、S49では、むら模様テクスチャとUV値(SP0、SP1、SP2用)を使って、むら模様をWB:Gに書き込んでいる。そして、この際に、ニア領域をマスクし、WB:Aを使って、既に書かれている値とのαブレンディング処理を行っている。
【0179】
そして、図21のステップS50で、WB:GをWB:Aにコピーする。
【0180】
次に、ステップS51で、ニア領域用のα値にWB:Aの値を乗算し、1.0でクランプし、WB:Gに上書きで書き込む。そしてステップS52で、lut_0を使ってZBの値をα値に変換し、これにWB:Aの値を乗算し、1.0でクランプし、WB:Gに書き込む。この際に、ニア領域をマスクして上書きする。
【0181】
次に、ステップS53で、WB:GをFB:Aにコピーする。そして、ステップS54で、FB:R,G,Bに全画面サイズのフォグ色オブジェクトを描画する。この際に、FB:Aを使って、既に書かれている値とブレンディング処理を行う。
【0182】
最後に、ステップS55で、フォグを掛たくないオブジェクトをFB:R,G,Bに描画する。
【0183】
以上のようにすることで、フレームバッファの各画素が1つのα値しか持てないシステムにおいても、本実施形態の処理を実現できるようになる。
【0184】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図25を用いて説明する。
【0185】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0186】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0187】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0188】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0189】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0190】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0191】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0192】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0193】
RAM960は、各種プロセッサの作業領域として用いられる。
【0194】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0195】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0196】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0197】
なお、本実施形態の各部(各手段)は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0198】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【0199】
図26(A)に、本実施形態を業務用ゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、操作部1102(レバー、ボタン)を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラム(格納情報)と呼ぶ。
【0200】
図26(B)に、本実施形態を家庭用のゲームシステム(画像生成システム)に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、コントローラ1202、1204などを操作してゲームを楽しむ。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209などに格納されている。
【0201】
図26(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に伝送し端末において出力することになる。
【0202】
なお、図26(C)の構成の場合に、本実施形態の各部を、ホスト装置(サーバー)と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム(格納情報)を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0203】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【0204】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0205】
例えば、明細書中の記載において広義な用語(仮想オブジェクト、αむら、合成等)として引用された用語(スプライト、フォグむら、ブレンディング等)は、明細書中の他の記載においても広義な用語に置き換えることができる。
【0206】
また、α値の合成手法も、本実施形態で詳細に説明した手法に限定されず、種々の変形実施が可能である。
【0207】
また、本実施形態では、αむら設定用α値の合成対象が、元画像のZ値を変換することで得られるα値である場合について説明したが、αむら設定用α値の合成対象は、これに限定されない。
【0208】
また、本実施形態では、第1のα値とαむら設定用α値を合成することで得られる第2のα値を、元画像の色とフォグの色の合成処理に用いる場合について説明した。しかしながら、第2のα値を、このような合成処理とは異なる画像生成処理に用いてもよい。
【0209】
また、α値や色の合成処理は、プレーン単位で行ってもよいし、画素単位で行ってもよい。例えば図27に、α値や色の合成処理を画素単位で行う場合の例を示す。図27において、α0、α1、α2は、図24(A)、(B)、(C)に示すα値(αむら設定用α値の合成に使用するα値)である。これらのα0、α1、α2を用いて、フォグむらテクスチャ(図8参照)のテクセル値であるαUP0、αUP1、αUP2を合成することで、αむら設定用α値αUPが得られる。そして、このαUPと、Z値に基づき得られる第1のα値αP1を合成し、クランプ処理を行うことで、第2のα値αP2が得られる。そして、このαP2を用いて、元画像の色とフォグの色を合成することで、フォグ画像が生成される。図27では、このようなα値、色の合成処理を画素単位で行い、最終的なフォグ画像をフレームバッファに描画している。
【0210】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0211】
また、本発明は種々のゲーム(格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等)に適用できる。
【0212】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システムの機能ブロック図の例である。
【図2】元画像のZ値をα値に変換し、得られたα値で元画像の色とフォグの色を合成する手法について説明するための図である。
【図3】インデックスカラー・テクスチャマッピングについて説明するための図である。
【図4】インデックスカラー・テクスチャマッピングを利用して、Z値をα値に変換する手法について説明するための図である。
【図5】本実施形態の合成手法について説明するための図である。
【図6】元画像の例を示す図である。
【図7】αむら設定用α値の例を示す図である。
【図8】むら模様テクスチャの例を示す図である。
【図9】本実施形態により生成されるフォグ画像の例を示す図である。
【図10】本実施形態により生成されるフォグ画像の例を示す図である。
【図11】指数フォグにおけるZ値とフォグ濃度との関係を示す図である。
【図12】フォグのむらの付け方について説明するための図である。
【図13】仮想プレーン内でのむら模様が異なる複数のαむら設定用α値を合成する手法について説明するための図である。
【図14】図14(A)、(B)も、仮想プレーン内でのむら模様が異なる複数のαむら設定用α値を合成する手法について説明するための図である。
【図15】図15(A)、(B)は、仮想カメラ情報に基づいてむら模様を変化させる手法について説明するための図である。
【図16】図16(A)、(B)は、仮想オブジェクトのテクスチャ座標の設定により、むら模様を変化させる手法について説明するための図である。
【図17】図17(A)、(B)は、αむら設定用α値の合成に使用するα値を元画像のZ値に基づいて設定する手法について説明するための図である。
【図18】本実施形態の処理の詳細例について示すPAD図である。
【図19】本実施形態の処理の詳細例について示すPAD図である。
【図20】本実施形態の処理の詳細例について示すPAD図である。
【図21】本実施形態の処理の詳細例について示すPAD図である。
【図22】仮想距離の設定手法について説明するための図である。
【図23】図23(A)は、仮想プレーンの存在範囲を制限する手法を説明するための図であり、図23(B)は、ブレンドウェイトの設定について説明するための図である。
【図24】図24(A)、(B)、(C)は、ルックアップテーブルの変換特性の例について説明するための図である。
【図25】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図26】図26(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【図27】α値の合成や色の合成を画素単位で行う手法について説明するための図である。
【符号の説明】
ICP 元画像の色
ZP 元画像のZ値
αP1 第1のα値
αUP αむら設定用α値
αP2 第2のα値
CP フォグの色
VC 仮想カメラ
αUP0、αUP1、αUP2 αむら設定用α値
PL0、PL1、PL2 仮想プレーン
d0、d1、d2 仮想距離
SP0、SP1、SP2 スプライト(仮想オブジェクト)
100 処理部
110 移動・動作処理部
112 オブジェクト空間設定部
114 仮想カメラ制御部
120 画像生成部
122 α値合成部
124 色合成部
130 音生成部
160 操作部
170 記憶部
172 主記憶部
174 描画バッファ
176 Zバッファ
178 テクスチャ記憶部
179 LUT記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

Claims (15)

  1. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    元画像の各画素のZ値に応じて各画素のα値が設定される第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部として、
    コンピュータを機能させ、
    前記α値合成部が、
    前記仮想プレーン内でのむらが異なる複数のαむら設定用α値を合成して、前記第1のα値の合成対象となるαむら設定用α値を生成し、
    前記複数のαむら設定用α値に対応する複数の前記仮想プレーンのうち最も手前側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも小さくなった場合に、前記最も手前側の仮想プレーンに対応するαむら設定用α値の合成率を低くし、前記複数の仮想プレーンのうち最も奥側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも大きくなった場合に、前記最も奥側の仮想プレーンに対応するαむら設定用α値の合成率を低くすることを特徴とするプログラム。
  2. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    元画像の各画素のZ値に応じて各画素のα値が設定される第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部として、
    コンピュータを機能させ、
    前記α値合成部が、
    仮想カメラ情報及び時間情報の少なくとも一方に応じて、前記仮想プレーン内でのむらが変化するように、αむら設定用α値が設定され、
    αむら設定用α値に対応する前記仮想プレーンについての仮想カメラからの仮想距離が小さくなるほど、前記仮想プレーン内でのむらが拡大するように、αむら設定用α値が設定されることを特徴とするプログラム。
  3. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    元画像の各画素のZ値に応じて各画素のα値が設定される第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部として、
    コンピュータを機能させ、
    前記α値合成部が、
    仮想カメラ情報及び時間情報の少なくとも一方に応じて、前記仮想プレーン内でのむらが変化するように、αむら設定用α値が設定され、
    スクリーンに平行な第1の方向に仮想カメラが移動した場合に、前記仮想プレーン内でのむらが第1の方向とは逆方向の第2の方向に移動するように、αむら設定用α値が設定されることを特徴とするプログラム。
  4. 請求項2又は3において、
    前記α値合成部が、
    むら模様テクスチャを仮想オブジェクトにマッピングすることで、αむら設定用α値を生成すると共に、前記仮想オブジェクトに設定されるテクスチャ座標を、仮想カメラ情報及び時間情報の少なくとも一方に応じて変化させることを特徴とするプログラム。
  5. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    元画像の各画素のZ値に応じて各画素のα値が設定される第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部として、
    コンピュータを機能させ、
    前記α値合成部が、
    元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定することを特徴とするプログラム。
  6. 請求項において、
    前記α値合成部が、
    αむら設定用α値に対応する前記仮想プレーンの仮想Z値よりも元画像のZ値の方が仮想カメラから見て手前側にある画素については、αむら設定用α値の合成が行われないように、αむら設定用α値の合成に使用するα値を設定することを特徴とするプログラム。
  7. 請求項5又は6において、
    前記α値合成部が、
    元画像のZ値をインデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として扱い、前記ルックアップテーブルを用いて仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行うことで、元画像のZ値を、αむら設定用α値の合成に使用するα値に変換することを特徴とするプログラム。
  8. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部として、
    コンピュータを機能させると共に、
    前記α値合成部が、
    前記仮想プレーン内でのむらが異なる複数のαむら設定用α値を合成して、前記第1のα値の合成対象となるαむら設定用α値を生成し、
    前記複数のαむら設定用α値に対応する複数の前記仮想プレーンのうち最も手前側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも小さくなった場合に、前記最も手前側の仮想プレーンに対応するαむら設定用α値の合成率を低くし、前記複数の仮想プレーンのうち最も奥側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも大きくなった場合に、前記最も奥側の仮想プレーンに対応するαむら設定用α値の合成率を低くすることを特徴とするプログラム。
  9. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部として、
    コンピュータを機能させると共に、
    前記α値合成部が、
    仮想カメラ情報及び時間情報の少なくとも一方に応じて、前記仮想プレーン内でのむらが変化するように、αむら設定用α値が設定され
    αむら設定用α値に対応する前記仮想プレーンについての仮想カメラからの仮想距離が小さくなるほど、前記仮想プレーン内でのむらが拡大するように、αむら設定用α値が設定されることを特徴とするプログラム。
  10. オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部として、
    コンピュータを機能させると共に、
    前記α値合成部が、
    元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定することを特徴とするプログラム。
  11. コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜10のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
  12. オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
    元画像の各画素のZ値に応じて各画素のα値が設定される第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    元画像の各画素の色と所与の色とを、前記第2のα値に基づいて合成する色合成部と、
    を含み、
    前記α値合成部が、
    元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定することを特徴とする画像生成システム。
  13. オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、
    前記α値合成部が、
    前記仮想プレーン内でのむらが異なる複数のαむら設定用α値を合成して、前記第1のα値の合成対象となるαむら設定用α値を生成し、
    前記複数のαむら設定用α値に対応する複数の前記仮想プレーンのうち最も手前側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも小さくなった場合に、前記最も手前側の仮想プレーンに対応するαむら設定用α値の合成率を低くし、前記複数の仮想プレーンのうち最も奥側の仮想プレーンについての仮想カメラからの仮想距離が、所与の距離よりも大きくなった場合に、前記最も奥側の仮想プレーンに対応するαむら設定用α値の合成率を低くすることを特徴とする画像生成システム。
  14. オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、
    前記α値合成部が、
    仮想カメラ情報及び時間情報の少なくとも一方に応じて、前記仮想プレーン内でのむらが変化するように、αむら設定用α値が設定され
    αむら設定用α値に対応する前記仮想プレーンについての仮想カメラからの仮想距離が小さくなるほど、前記仮想プレーン内でのむらが拡大するように、αむら設定用α値が設定されることを特徴とする画像生成システム。
  15. オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
    第1のα値と、各画素のα値がスクリーンに概平行な仮想プレーン内でむらとなるように設定されるαむら設定用α値とを合成して、第2のα値を生成するα値合成部と、
    生成された第2のα値に基づいて画像生成処理を行う画像生成部とを含み、
    前記α値合成部が、
    元画像の各画素でのZ値に基づいて、αむら設定用α値の合成に使用するα値を設定することを特徴とする画像生成システム。
JP2002127033A 2002-04-26 2002-04-26 画像生成システム、プログラム及び情報記憶媒体 Expired - Lifetime JP4187188B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002127033A JP4187188B2 (ja) 2002-04-26 2002-04-26 画像生成システム、プログラム及び情報記憶媒体
US10/419,869 US7248260B2 (en) 2002-04-26 2003-04-22 Image generation system, program, information storage medium and image generation method

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2003323630A JP2003323630A (ja) 2003-11-14
JP4187188B2 true JP4187188B2 (ja) 2008-11-26

Family

ID=29541270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002127033A Expired - Lifetime JP4187188B2 (ja) 2002-04-26 2002-04-26 画像生成システム、プログラム及び情報記憶媒体

Country Status (2)

Country Link
US (1) US7248260B2 (ja)
JP (1) JP4187188B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4563070B2 (ja) * 2004-04-26 2010-10-13 任天堂株式会社 ゲーム装置及びゲームプログラム
CN1998153A (zh) * 2004-05-10 2007-07-11 辉达公司 用于视频数据的处理器
JP4693159B2 (ja) * 2005-07-20 2011-06-01 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
JP4913399B2 (ja) * 2005-12-16 2012-04-11 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
US8179396B2 (en) * 2006-08-02 2012-05-15 General Electric Company System and methods for rule-based volume rendition and navigation
JP4827250B2 (ja) * 2006-09-20 2011-11-30 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
JP2009075867A (ja) * 2007-09-20 2009-04-09 Sega Corp 画像処理用のプログラム、当該プログラムを記録したコンピュータ読み取り可能な記録媒体、画像処理装置、画像処理方法
US8411089B2 (en) * 2009-07-27 2013-04-02 Disney Enterprises, Inc. Computer graphics method for creating differing fog effects in lighted and shadowed areas
JP2011141898A (ja) * 2011-04-08 2011-07-21 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
DE102011122457A1 (de) * 2011-12-24 2013-06-27 Connaught Electronics Ltd. Verfahren zum Betreiben einer Kameraanordnung, Kameraanordnung und Fahrerassistenzsystem
US9092888B1 (en) * 2012-09-27 2015-07-28 Rockwell Collins, Inc. Volume rendering a graphical 3D scene containing a 3D volumetric object and atmospheric effects
US10559095B2 (en) * 2016-08-31 2020-02-11 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and medium
EP3696773A1 (en) * 2019-02-15 2020-08-19 Koninklijke Philips N.V. Apparatus and method for generating a light intensity image

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724561A (en) * 1995-11-03 1998-03-03 3Dfx Interactive, Incorporated System and method for efficiently determining a fog blend value in processing graphical images
US6064392A (en) * 1998-03-16 2000-05-16 Oak Technology, Inc. Method and apparatus for generating non-homogenous fog
US6184891B1 (en) * 1998-03-25 2001-02-06 Microsoft Corporation Fog simulation for partially transparent objects
US6762760B2 (en) * 2000-03-15 2004-07-13 Sun Microsystems, Inc. Graphics system configured to implement fogging based on radial distances
US7046243B1 (en) * 2000-11-21 2006-05-16 Microsoft Corporation Rendering volumetric fog and other gaseous phenomena
US6940504B1 (en) * 2000-11-21 2005-09-06 Microsoft Corporation Rendering volumetric fog and other gaseous phenomena using an alpha channel
US6686915B2 (en) * 2001-04-19 2004-02-03 Webtv Networks, Inc. Systems and methods for rendering visual effects that are a function of depth

Also Published As

Publication number Publication date
US20030228052A1 (en) 2003-12-11
US7248260B2 (en) 2007-07-24
JP2003323630A (ja) 2003-11-14

Similar Documents

Publication Publication Date Title
JP2006318389A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4187188B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3777288B2 (ja) ゲームシステム及び情報記憶媒体
JP4610748B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2007140842A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3538393B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP3449993B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4223244B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2004334661A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3280355B2 (ja) 画像生成システム及び情報記憶媒体
JP4159082B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3467259B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP4651204B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4577968B2 (ja) ゲームシステム及び情報記憶媒体
JP4187192B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4707078B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4656617B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP2004341570A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3538394B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP4704615B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4056035B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4574058B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4913898B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
JP4698701B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3538392B2 (ja) ゲームシステム、プログラム及び情報記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4187188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130919

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term