説明

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

【課題】半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながらも比較的高品質な画像を生成可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】半透明部分を有するオブジェクトを描画するためのオブジェクトデータは、ピクセル選択情報を含む。ピクセル選択情報に基づいて第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成し、ピクセル選択情報に基づいて、第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成し、第1の画像と第2の画像を合成し、半透明部分を有するオブジェクトの画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システム(ゲームシステム)では、キャラクタの髪を描画する際には、髪の毛の一束の形状を定義するポリゴンメッシュを複数枚重ね、各ポリゴンメッシュに髪の毛を表すテクスチャを貼り付けることでより自然な髪を表現する手法が一般的に行われている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−323512号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、髪の毛の束の輪郭部分や毛先の部分を半透明に描画することでよりリアルな髪を表現することができる。ところが、髪の毛の束全体を半透明なオブジェクトとして扱って描画しているためデプスバッファ(Zバッファ)を用いた隠面消去を行うことができず、何ら対策をしなければ髪の毛の束の前後関係が破綻した画像が描画される可能性があった。例えば、図15に示す髪の画像では円で囲んだ部分において髪の毛の束の前後関係が破綻している。
【0006】
この問題を回避するために、髪のオブジェクトデータ(モデルデータ)を作成する際に、擬似的にポリゴンメッシュの描画順を設定する方法が考えられる。しかしながら、どのような角度で描画しても前後関係に破綻が生じないように描画順を設定するのは非常に難しいため、モデル制作コストが増大したりデザイン自体の制約に繋がる場合も多く、その上、描画負荷も増大するため、望ましい回避策ではない。
【0007】
他の回避策として、描画時に描画順の指定が必要無いクリッピングを使用する事もできるが、髪の毛の輪郭部分や毛先部分のジャギーが発生し易く、高品質な画像が得られないという問題がある。
【0008】
本発明は、以上のような課題に鑑みてなされたものであり、本発明のいくつかの態様によれば、半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながらも比較的高品質な画像を生成可能なプログラム、情報記憶媒体及び画像生成システムを提供することができる。
【課題を解決するための手段】
【0009】
(1)本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成する第1画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成する第2画像生成部と、
前記第1の画像と前記第2の画像を合成し、前記オブジェクトの画像を生成する画像合成部としてコンピュータを機能させることを特徴とする。
【0010】
また、本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶している情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関する。
【0011】
本発明では、第1の描画対象ピクセルに対しては隠面消去を行うので第1の画像では前後関係が破綻することはない。一方、第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを描画した第2の画像では前後関係が破綻する可能性があるが、ピクセル選択情報を適切に設定すれば第2の描画対象ピクセルの数を少なくすることができるので前後関係の破綻が目立たないようにすることができる。このような第1の画像と第2の画像を合成することで、前後関係の破綻がほとんどわからない画像を効率的に生成することができる。つまり、本発明によれば、ピクセル選択情報を適切に設定することで、処理負荷を軽減しながらも比較的高品質な画像を生成することができる。
【0012】
特に、半透明部分が少ないオブジェクトであれば、第1の描画対象ピクセルを不透明のピクセル、第2の描画対象ピクセルを不透明でないピクセル(半透明のピクセル)とすることで、違和感の少ないリアルな画像を生成することができる。
【0013】
(2)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記第1画像生成部は、
前記ピクセル選択情報に基づいて第1のアルファテストを行って前記第1の描画対象ピクセルを選択し、
前記第2画像生成部は、
前記ピクセル選択情報に基づいて第2のアルファテストを行って前記第2の描画対象ピクセルを選択するようにしてもよい。
【0014】
本発明によれば、テスト条件を変えてアルファテストを2回行うことで、第1の描画対象ピクセルと第2の描画対象ピクセルをより簡単に選択することができる。
【0015】
(3)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
アルファ値が定義されたテクスチャを記憶するテクスチャ記憶部と、
前記オブジェクトのピクセルに前記テクスチャをマッピングするテクスチャマッピング部としてさらにコンピュータを機能させ(テクスチャマッピング部をさらに含み)、
前記第1画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第1のアルファテストを行い、
前記第2画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第2のアルファテストを行うようにしてもよい。
【0016】
(4)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ピクセル選択情報は、
前記オブジェクトの各ピクセルを、透明度に応じて前記第1の描画対象ピクセルと前記第2の描画対象ピクセルのいずれか一方として選択するための情報であってもよい。
【0017】
このようにすれば、第1画像生成部と第2画像生成部により、半透明部分を有するオブジェクトのすべてのピクセルが、第1の描画対象ピクセルか第2の描画対象ピクセルとして必ず1回だけ選択されるようにすることができる。従って、描画すべきピクセルを過不足無く描画することができる。
【0018】
(5)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有する複数のオブジェクトの各々を描画するための複数の前記オブジェクトデータを記憶し、
前記第1画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して前記第1の画像を生成し、
前記第2画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して前記第2の画像を生成し、
前記画像合成部は、
前記第1の画像と前記第2の画像を合成し、前記複数のオブジェクトを含む画像を生成するようにしてもよい。
【0019】
本発明では、半透明部分を有する複数のオブジェクトを描画する場合、各オブジェクトについて第1の描画対象ピクセルを選択した後、選択した第1の描画対象ピクセルを隠面消去処理を行いながら描画するので、第1の画像では、各オブジェクトの構成部分の前後関係もオブジェクト同士の前後関係も破綻しない。一方、第2の描画対象ピクセルを描画した第2の画像では、各オブジェクトの構成部分の前後関係やオブジェクト同士の前後関係が破綻する可能性があるが、各オブジェクトデータのピクセル選択情報を適切に設定すれば第2の描画対象ピクセルの数を少なくすることができるのでこれらの前後関係の破綻が目立たないようにすることができる。このような第1の画像と第2の画像を合成することで、各オブジェクトの構成部分の前後関係やオブジェクト同士の前後関係の破綻がほとんどわからない画像を効率的に生成することができる。つまり、本発明によれば、半透明部分を有する複数のオブジェクトを描画する場合も、各オブジェクトデータのピクセル選択情報を適切に設定することで、処理負荷を軽減しながらも比較的高品質な画像を生成することができる。
【0020】
(6)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有する髪オブジェクトを描画するための前記オブジェクトデータを記憶するようにしてもよい。
【0021】
キャラクタの髪は非常に目立つ部分であり、髪の毛の束の前後関係が破綻していると大きな違和感がある画像になってしまうが、本発明によれば、処理負荷を軽減しながらも比較的高品質な髪の画像を生成することができる。また、髪オブジェクトは、髪の毛の束の輪郭部分や毛先部分だけが半透明であるのが自然であり、半透明部分が極めて少ないので、本発明により半透明部分の前後関係が破綻してもほとんどわからない。つまり、本発明は特に髪オブジェクトの描画に適している。
【0022】
(7)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するための前記オブジェクトデータと、半透明部分を有し、前記髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するための前記オブジェクトデータと、を記憶するようにしてもよい。
【0023】
本発明によれば、髪ベースオブジェクトに髪パーツオブジェクトを取り付けることで髪型のカスタマイズが可能であるような場合でも、各オブジェクトを構成する髪の毛の束の前後関係やオブジェクト同士の前後関係の破綻がほとんどわからない画像を効率的に生成することができる。
【図面の簡単な説明】
【0024】
【図1】本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す図。
【図2】図2(A)、図2(B)は、髪オブジェクトデータの構造の一例を示す図。
【図3】髪オブジェクトの形状データの一例を示す図。
【図4】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図5】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図6】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図7】本実施形態の手法で生成した髪の画像の一例を示す図。
【図8】図8(A)、図8(B)は、髪型をカスタマイズする一例を示す図。
【図9】髪ベースオブジェクトデータと髪パーツオブジェクトデータの一例を示す図。
【図10】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図11】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図12】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図13】オブジェクトを描画する処理の一例を示すフローチャート図。
【図14】複数のオブジェクトを描画する処理の一例を示すフローチャート図。
【図15】従来手法で生成した髪の画像の一例を示す図。
【発明を実施するための形態】
【0025】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0026】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0027】
操作部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0028】
なお、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【0029】
例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
【0030】
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【0031】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶される描画バッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトに対応付けられたテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
【0032】
特に本実施形態のオブジェクトデータ記憶部176は、描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶する。例えば、オブジェクトデータ記憶部176は、半透明部分を有する髪オブジェクトを描画するためのオブジェクトデータを記憶する。また、オブジェクトデータ記憶部176は、半透明部分を有する複数のオブジェクトをそれぞれ描画するための複数のオブジェクトデータを記憶するようにしてもよい。例えば、オブジェクトデータ記憶部176は、半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するためのオブジェクトデータと、半透明部分を有し、髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するためのオブジェクトデータを記憶する。ピクセル選択情報は、オブジェクトの各ピクセルを、透明度に応じて第1の描画対象ピクセルと第2の描画対象ピクセルのいずれか一方として選択するための情報であってもよい。
【0033】
また、本実施形態のテクスチャ記憶部178は、アルファ値が定義されたテクスチャを記憶する。
【0034】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0035】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0036】
通信部196は外部(例えば他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0037】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【0038】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0039】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0040】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0041】
オブジェクト空間設定部110は、雪、雨、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ライン(線)、ラインポリゴン、ポリゴン、多角形、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0042】
移動・動作処理部112は、オブジェクト(キャラクタ、移動体等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0043】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。例えば、仮想カメラ制御部114は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行うようにしてもよい。すなわち、仮想カメラによりオブジェクト(例えばキャラクタ、移動体)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0044】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0045】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(視点を基準とした透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0046】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0047】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0048】
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0049】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0050】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0051】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0052】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0053】
特に本実施形態では、描画部120は、第1画像生成部122、第2画像生成部124、画像合成部126、テクスチャマッピング部128を含む。
【0054】
テクスチャマッピング部128は、半透明部分を有するオブジェクトのピクセルに、テクスチャ記憶部178に記憶される、アルファ値が定義されたテクスチャをマッピングする。
【0055】
第1画像生成部122は、オブジェクトデータのピクセル選択情報に基づいて半透明部分を有するオブジェクトの第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成する。例えば、第1画像生成部122は、ピクセル選択情報に基づいて第1のアルファテストを行って第1の描画対象ピクセルを選択するようにしてもよい。例えば、アルファ値が定義されたテクスチャをマッピングしたオブジェクトのピクセルに対して第1のアルファテストを行うようにしてもよい。
【0056】
第2画像生成部124は、オブジェクトデータのピクセル選択情報に基づいて半透明部分を有するオブジェクトの第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成する。例えば、第2画像生成部124は、ピクセル選択情報に基づいて第2のアルファテストを行って第2の描画対象ピクセルを選択するようにしてもよい。例えば、アルファ値が定義されたテクスチャをマッピングしたオブジェクトのピクセルに対して第2のアルファテストを行うようにしてもよい。
【0057】
画像合成部126は、第1の画像と第2の画像を合成し、半透明部分を有するオブジェクトの画像を生成する。
【0058】
特に、半透明部分を有する複数のオブジェクトを描画する場合は、第1画像生成部122は、複数のオブジェクトデータの各々のピクセル選択情報に基づいて、複数のオブジェクトの各々の第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成する。また、第2画像生成部124は、複数のオブジェクトデータの各々のピクセル選択情報に基づいて、複数のオブジェクトの各々の第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成する。そして、画像合成部126は、第1の画像と第2の画像を合成し、半透明部分を有する複数のオブジェクトを含む画像を生成する。
【0059】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0060】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0061】
2.本実施形態の手法
(1)概要
本実施形態は、髪、破れた布の解れ部分、ファー、植物の枝葉などの半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながら高品質な画像を描画する処理を行うものである。例えば、髪のオブジェクト(髪オブジェクト)は、データ量を削減する目的で髪の毛の束を複数組み合わせて表現される場合が多いが、髪の毛の束の輪郭や毛先を半透明にすることでよりリアルな髪を表現することができる。本実施形態は、そのような髪オブジェクトを描画する際に、髪の毛の束の前後関係を破綻させることなく、処理負荷を軽減しながら高品質な髪の画像を描画する処理を行う。以下、髪オブジェクトを描画する場合を例にとり、本実施形態の手法について説明する。
【0062】
(2)髪のオブジェクトデータ
本実施形態では、髪オブジェクトを描画するために図2(A)に示すような構造のオブジェクトデータ(モデルデータ)を定義する。
【0063】
オブジェクトデータ200は、オブジェクト識別情報210、形状データ220、ピクセル選択情報230、テクスチャ識別情報240を含む。
【0064】
オブジェクト識別情報210は、オブジェクトを識別するための情報(例えば髪オブジェクトのID)である。
【0065】
形状データ220は、オブジェクトの形状を特定するためのデータであり、オブジェクトを構成するポリゴンの頂点座標1〜nと頂点座標1〜nに対応づけるテクスチャ座標1〜nを含む。
【0066】
ピクセル選択情報220は、オブジェクトの描画対象となるピクセルを選択するための情報であり、アルファテストの2つの条件(アルファテスト条件1、2)に関する情報を含む。本実施形態では、各ピクセルのα値の範囲は0≦α≦1とし、α=0が透明、α=1が不透明を表し、αが0に近づくほど透明度が高くなる(逆に言えばαが1に近づくほど透明度が低くなる)ものとする。そして、例えば、αテスト条件1ではα≧1のピクセルを描画対象ピクセル(第1の描画対象ピクセル)とし、αテスト条件2ではα<1のピクセルを描画対象ピクセル(第2の描画対象ピクセル)とする。すなわち、αテスト条件1では不透明のピクセルを描画対象ピクセルとし、αテスト条件2では半透明のピクセル(不透明でないピクセル)を描画対象ピクセルとする。
【0067】
テクスチャ識別情報240は、テクスチャマッピングに用いるテクスチャ(例えば髪テクスチャ)の情報である。
【0068】
また、髪オブジェクトを描画するために図2(B)に示すような構造のオブジェクトデータ(モデルデータ)を定義することもできる。すなわち、1つのオブジェクトに対して、形状データ1(220a)と形状データ2(220b)を定義し、形状データ1(220a)には、ピクセル選択情報1(230a)とテクスチャ識別情報1(240a)を対応づける。すなわち、形状データ1(220a)に対して、テクスチャ識別情報1(240a)により識別されるテクスチャをマッピングするとともにピクセル選択情報1(230a)により描画対象となるピクセル(第1の描画対象ピクセル)を選択する。また、形状データ2(220b)には、ピクセル選択情報2(230b)とテクスチャ識別情報2(240b)を対応づける。すなわち、形状データ2(220b)に対して、テクスチャ識別情報2(240b)により識別されるテクスチャをマッピングするとともにピクセル選択情報2(230b)により描画対象となるピクセル(第2の描画対象ピクセル)を選択する。
【0069】
ピクセル選択情報1(230a)は、例えば、アルファテスト条件1(α≧1)であり、ピクセル選択情報2(230b)は、例えば、アルファテスト条件2(α<1)であってもよい。このようにすれば、アルファテスト条件1(α≧1)とアルファテスト条件2(α<1)を適用する形状データを微妙に異ならせることができる。ただし、アルファテスト条件1が適用される形状データ1(220a)とアルファ条件2が適用される形状データ2(220b)が全く同じであるような場合は、図2(A)の構造のオブジェクトデータを定義することで、記憶すべきデータ量を削減することができる。
【0070】
以下では、髪オブジェクトが図2(A)の構造のオブジェクトデータで表現されるものとして説明するが、以下の説明は、図2(B)の構造のオブジェクトデータにも同様に適用することができる。
【0071】
図3は、髪オブジェクトの形状データ220の一例を示す図である。本実施形態では、形状データ220は、7つの髪の毛の束(ポリゴンメッシュ)M1〜M7を有する髪の形状を定義する。具体的には、髪の毛の束M1〜M7に含まれる各ポリゴン(三角形P)の頂点座標を、例えばトライアングルストリップ形式で定義する。すなわち、ポリゴンメッシュM1〜M7毎に形状データ(頂点座標、テクスチャ座標)を定義するのではなく、髪オブジェクト全体としての1つの形状データ(頂点座標、テクスチャ座標)を定義する。
【0072】
(3)髪の描画手法
次に、図4〜図6を用いて、本実施形態の髪オブジェクトの描画手法について説明する。なお、髪オブジェクトは、髪の毛の束(M1〜M7)の輪郭部分や毛先部分には半透明のテクセル(α<1)がマッピングされ、その他の部分には不透明のテクセル(α=1)がマッピングされるものとする。
【0073】
まず、図4に示すように、オブジェクトデータ200で定義された髪オブジェクトの形状データ220(正確には頂点処理とラスタライズを行った後の形状データ)に対して髪テクスチャ300を用いてテクスチャマッピングし、さらにアルファテスト条件1(ピクセル選択情報)でアルファテストを行い、α≧1のピクセルを描画対象ピクセル400(第1の描画対象ピクセル)として選択する。従って、α=1のピクセル、すなわち不透明のピクセル(髪の毛の束の輪郭部分と毛先部分以外の部分)のみが描画対象ピクセル400として選択される。続いて、Zバッファ179を用いて隠面消去を行いながら描画対象ピクセル400を描画バッファ174(第1のワークバッファ)に描画し、不透明部分の画像410(第1の画像)を生成する。この画像410は、隠面消去を行っているので、髪の毛の束M1〜M7の前後関係が破綻することはない。
【0074】
次に、図5に示すように、形状データ220(正確には頂点処理とラスタライズを行った後の形状データ)に対して髪テクスチャ300を用いてテクスチャマッピングし、さらにアルファテスト条件2(ピクセル選択情報)でアルファテストを行い、α<1のピクセルを描画対象ピクセル(第2の描画対象ピクセル)として選択する。従って、α<1のピクセル、すなわち半透明のピクセル(髪の毛の束の輪郭部分と毛先部分)のみが描画対象ピクセルとして選択される。続いて、この描画対象ピクセルを描画バッファ174(第2のワークバッファ)に描画し、半透明部分の画像420(第2の画像)を生成する。ここで、この描画対象ピクセルを半透明で描画するため、画像420では前後関係が破綻する可能性がある。しかし、半透明部分(髪の毛の束の輪郭部分と毛先部分)は極めて小さいので、前後関係が破綻してもほとんど目立たない。
【0075】
最後に、図6に示すように、不透明部分の画像410に半透明部分の画像420を合成して髪の画像430を生成し、描画バッファ174(フレームバッファ等)に描画する。図7に、本実施形態の手法で生成した髪の画像430の一例を示す。図15に示した従来手法により生成した髪の画像と違い、図7に示す髪の画像430では不透明部分の前後関係が破綻しておらず、違和感のない高品質な画像になっている。
【0076】
このように、本実施形態の描画手法によれば、半透明部分(髪の毛の束の輪郭部分や毛先部分)では前後関係の破綻が生じる可能性があるが、髪の大部分を占める不透明部分では前後関係の破綻がなく、また、髪の毛の束の輪郭部分や毛先部分にジャギーが発生しないので、髪型全体としての違和感がほとんどない高品質な画像を得ることができる。
【0077】
(4)複数のパーツを組み合わせた髪の描画手法
次に、選択した髪のベースオブジェクトにパーツオブジェクトを取り付けることで、プレーヤがキャラクタの髪型を自由にカスタマイズできるゲームを例にとり、複数のパーツを組み合わせて髪を描画する手法について説明する。図8(A)は、髪ベースオブジェクトBOとして「ポニーテールA」が選択され、「ポニーテールA」に取り付ける髪パーツオブジェクトPOとして「後ろ髪A」、「右前髪A」、「左前髪A」が選択された場合のキャラクタの髪型のカスタマイズ例を示す。「ポニーテールA」は、1束の後ろ髪を表す髪パーツオブジェクトPOが後頭部の1箇所において取り付けられる髪ベースオブジェクトBOであり、1束の後ろ髪を表す髪パーツオブジェクトPOが取り付けられた場合に自然な表現となるように、後ろ髪の取り付け位置(1つの結び目)に向かって髪の毛が集まる態様をしている。また「ポニーテールA」には、前髪を表す髪パーツオブジェクトPOを少なくとも1つ取り付けることができる。また、図8(B)は、髪ベースオブジェクトBOとして「ツインテールA」が選択され、「ツインテールA」に取り付ける髪パーツオブジェクトPOとして「後ろ髪E」、「前髪B」が選択された場合のキャラクタの髪型のカスタマイズ例を示す。「ツインテールA」は、2束の後ろ髪を表す髪パーツオブジェクトPOが後頭部の2箇所において取り付けられる髪ベースオブジェクトBOであり、2束の後ろ髪を表す髪パーツオブジェクトPOが取り付けられた場合に自然な表現となるように、後ろ髪の2つの取り付け位置(2つの結び目)のそれぞれに向かって髪の毛が集まる態様をしている。
【0078】
以下では、一例として、図8(A)に示す髪型を描画する手法について説明する。
【0079】
図9に、本実施形態における「ポニーテールA」、「後ろ髪A」、「右前髪A」、「左前髪A」の各オブジェクトデータ(モデルデータ)の構造を示す。このデータ構造は、図2(A)に示したデータ構造と同じである。
【0080】
「ポニーテールA」のオブジェクトデータ501は、オブジェクト識別情報511として「ポニーテールA」のID、形状データ521として「ポニーテールA」を構成するポリゴンの頂点座標1〜n1と頂点座標1〜n1にそれぞれ対応づけるテクスチャ座標1〜n1、ピクセル選択情報531としてアルファテスト条件1(α≧1)とαテスト条件2(α<1)、テクスチャ識別情報541として髪テクスチャのIDを含む。
【0081】
「後ろ髪A」のオブジェクトデータ502は、オブジェクト識別情報512として「後ろ髪A」のID、形状データ522として「後ろ髪A」を構成するポリゴンの頂点座標1〜n2と頂点座標1〜n2にそれぞれ対応づけるテクスチャ座標1〜n2、ピクセル選択情報532としてアルファテスト条件1(α≧1)とαテスト条件2(α<1)、テクスチャ識別情報541として髪テクスチャのIDを含む。
【0082】
「右前髪A」のオブジェクトデータ503は、オブジェクト識別情報513として「右前髪A」のID、形状データ523として「右前髪A」を構成するポリゴンの頂点座標1〜n3と頂点座標1〜n3にそれぞれ対応づけるテクスチャ座標1〜n3、ピクセル選択情報533としてアルファテスト条件1(α≧1)とαテスト条件2(α<1)、テクスチャ識別情報543として髪テクスチャのIDを含む。
【0083】
「左前髪A」のオブジェクトデータ504は、オブジェクト識別情報514として「左前髪A」のID、形状データ524として「左前髪A」を構成するポリゴンの頂点座標1〜n4と頂点座標1〜n4にそれぞれ対応づけるテクスチャ座標1〜n4、ピクセル選択情報534としてアルファテスト条件1(α≧1)とαテスト条件2(α<1)、テクスチャ識別情報544として髪テクスチャのIDを含む。
【0084】
次に、図10〜図11を用いて、複数のパーツを組み合わせて髪を描画する手法について説明する。なお、「ポニーテールA」、「後ろ髪A」、「右前髪A」、「左前髪A」は、すべて、輪郭部分や毛先部分には半透明のテクセル(α<1)がマッピングされ、その他の部分には不透明のテクセル(α=1)がマッピングされるものとする。
【0085】
まず、図10に示すように、オブジェクトデータ501で定義された「ポニーテールA」の形状データ521(正確には頂点処理とラスタライズを行った後の形状データ)に対して髪テクスチャ300を用いてテクスチャマッピングし、さらにアルファテスト条件1(ピクセル選択情報)でアルファテストを行い、α≧1のピクセルを描画対象ピクセル601(第1の描画対象ピクセル)として選択する。また、オブジェクトデータ502で定義された「後ろ髪A」の形状データ522に対して同様の処理を行い、描画対象ピクセル602(第1の描画対象ピクセル)を選択する。また、オブジェクトデータ503で定義された「右前髪A」の形状データ523に対して同様の処理を行い、描画対象ピクセル603(第1の描画対象ピクセル)を選択する。また、オブジェクトデータ504で定義された「左前髪A」の形状データ524に対して同様の処理を行い、描画対象ピクセル604(第1の描画対象ピクセル)を選択する。これらの描画対象ピクセル601、602、603、604として、α=1のピクセル、すなわち不透明のピクセル(輪郭部分と毛先部分以外の部分)のみが選択される。続いて、Zバッファ179を用いて隠面消去を行いながら描画対象ピクセル601、602、603、604を描画バッファ174(第1のワークバッファ)に描画し、不透明部分の画像610(第1の画像)を生成する。この画像610は、隠面消去を行っているので、「ポニーテールA」の各部の前後関係、「後ろ髪A」の各部の前後関係、「右前髪A」の各部の前後関係、「左前髪A」の各部の前後関係も、「ポニーテールA」、「後ろ髪A」、「右前髪A」、「左前髪A」の前後関係も破綻することはない。
【0086】
次に、図11に示すように、オブジェクトデータ501で定義された「ポニーテールA」の形状データ521(正確には頂点処理とラスタライズを行った後の形状データ)に対して髪テクスチャ300を用いてテクスチャマッピングし、さらにアルファテスト条件2(ピクセル選択情報)でアルファテストを行い、α<1のピクセルを描画対象ピクセル621(第2の描画対象ピクセル)として選択する。また、オブジェクトデータ502で定義された「後ろ髪A」の形状データ522に対して同様の処理を行い、描画対象ピクセル622(第2の描画対象ピクセル)を選択する。また、オブジェクトデータ503で定義された「右前髪A」の形状データ523に対して同様の処理を行い、描画対象ピクセル623(第2の描画対象ピクセル)を選択する。また、オブジェクトデータ504で定義された「左前髪A」の形状データ524に対して同様の処理を行い、描画対象ピクセル624(第2の描画対象ピクセル)を選択する。これらの描画対象ピクセル621、622、623、624として、α<1のピクセル、すなわち半透明のピクセル(輪郭部分と毛先部分)のみが選択される。続いて、描画対象ピクセル621、622、623、624を描画バッファ174(第2のワークバッファ)に描画し、半透明部分の画像620(第2の画像)を生成する。ここで、描画対象ピクセル621、622、623、624をすべて半透明で描画するため、「ポニーテールA」の各部の前後関係、「後ろ髪A」の各部の前後関係、「右前髪A」の各部の前後関係、「左前髪A」の各部の前後関係や、「ポニーテールA」、「後ろ髪A」、「右前髪A」、「左前髪A」の前後関係が破綻する可能性がある。しかし、「ポニーテールA」、「後ろ髪A」、「右前髪A」、「左前髪A」の各々の半透明部分(輪郭部分と毛先部分)は極めて小さいので、前後関係が破綻してもほとんど目立たない。
【0087】
最後に、図12に示すように、不透明部分の画像610に半透明部分の画像620を合成して髪型全体の画像630を生成し、描画バッファ174(フレームバッファ等)に描画する。
【0088】
このように、本実施形態の描画手法によれば、複数の髪のパーツを組み合わせる場合であっても、髪型の大部分を占める不透明部分では前後関係の破綻がなく、また、髪型の輪郭部分や毛先部分にジャギーが発生しないので、髪型全体としての違和感がほとんどない高品質な画像を非常に効率的に得ることができる。
【0089】
3.本実施形態の処理
図2(A)に示した構造のオブジェクトデータを有する1つのオブジェクトを描画する処理の一例について図13のフローチャートを用いて説明する。
【0090】
まず、オブジェクトデータ記憶部176からオブジェクトデータを読み出し、形状データ(各頂点データ)に対して頂点処理を行う(ステップS10)。
【0091】
次に、ステップS10で頂点処理を行った後の頂点データに基づいてラスタライズを行う(ステップS20)。
【0092】
次に、ステップS10で読み出したオブジェクトデータで指定されるテクスチャをテクスチャ記憶部178から読み出し、ステップS20でラスタライズにより生成したピクセルデータに対してテクスチャマッピングを行う(ステップS30)。
【0093】
次に、ピクセル選択情報(アルファテスト条件1)に基づいて、ステップS30でテクスチャマッピングを行った後のピクセルから第1の描画対象ピクセル(例えばα≧1のピクセル)を選択する(ステップS40)。
【0094】
次に、ピクセル選択情報(アルファテスト条件2)に基づいて、ステップS30でテクスチャマッピングを行った後のピクセルから第2の描画対象ピクセル(例えばα<1のピクセル)を選択する(ステップS50)。
【0095】
最後に、ステップS40で生成した第1の画像とステップS50で生成した第2の画像を合成し、半透明部分を有するオブジェクトの画像を生成する(ステップS60)。
【0096】
また、図2(A)に示した構造のオブジェクトデータを有する複数のオブジェクトを描画する処理の一例について図14のフローチャートを用いて説明する。
【0097】
まず、オブジェクトデータ記憶部176から新たなオブジェクトデータを読み出し、形状データ(各頂点データ)に対して頂点処理を行う(ステップS110)。
【0098】
次に、ステップS110で頂点処理を行った後の頂点データに基づいてラスタライズを行う(ステップS120)。
【0099】
次に、ステップS110で読み出したオブジェクトデータで指定されるテクスチャをテクスチャ記憶部178から読み出し、ステップS120でラスタライズにより生成したピクセルデータに対してテクスチャマッピングを行う(ステップS130)。
【0100】
次に、ピクセル選択情報(アルファテスト条件1)に基づいて、ステップS130でテクスチャマッピングを行った後のピクセルから第1の描画対象ピクセル(例えばα≧1のピクセル)を選択する(ステップS140)。
【0101】
次に、ピクセル選択情報(アルファテスト条件2)に基づいて、ステップS130でテクスチャマッピングを行った後のピクセルから第2の描画対象ピクセル(例えばα<1のピクセル)を選択する(ステップS150)。
【0102】
描画対象の複数のオブジェクトの各々に対してステップS110〜S150の処理を繰り返し、各オブジェクトに対してS110〜S150の処理が終了すれば(ステップS160でYの場合)、ステップS140で選択した描画対象の各オブジェクトの第1の描画対象ピクセルを隠面消去を行いながら描画し、第1の画像を生成する(ステップS170)。
【0103】
次に、ステップS150で選択した描画対象の各オブジェクトの第2の描画対象ピクセルを描画し、第2の画像を生成する(ステップS180)。
【0104】
最後に、ステップS170で生成した第1の画像とステップS180で生成した第2の画像を合成し、半透明部分を有するオブジェクトの画像を生成する(ステップS190)。
【0105】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0106】
例えば、本実施形態では、2つのアルファテストの条件をα≧1とα<1に設定しているが、このαテストの設定値(閾値)は1に限らず、0.8や0.9等に設定してもよい。例えば、オブジェクトデータを作成する際にオブジェクトの見た目がよくなるようにアルファテストの設定値を調整するようにしてもよい。
【0107】
また、例えば、本実施形態では、ピクセル選択情報として2つのアルファテストの条件を設定しているが、2つのアルファテストの条件において閾値となるα値(例えば1、0.9、0.8等)のみを設定し、第1の描画対象ピクセルを選択する際にはα値が閾値以上(例えばα≧1)のピクセルを選択する第1のアルファテストを行い、第2の描画対象ピクセルを選択する際にはα値が閾値未満(例えばα<1)のピクセルを選択する第2のアルファテストを行うようにしてもよい。
【0108】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0109】
P ポリゴン、M1〜M7 ポリゴンメッシュ、BO 髪ベースオブジェクト、PO 髪パーツオブジェクト、100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、120 描画部、122 第1画像生成部、124 第2画像生成部、126 画像合成部、128 テクスチャマッピング部、130 音生成部、160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、176 オブジェクトデータ記憶部、178 テクスチャ記憶部、179 Zバッファ、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部、200 オブジェクトデータ、210 オブジェクト識別情報、220,220a,220b 形状データ、230,230a,230b ピクセル選択情報、240,240a,240b テクスチャ識別情報、300 髪テクスチャ、400 不透明部分の描画対象ピクセル、410 不透明部分の画像、420 半透明部分の画像、430 髪の画像、501,502,503,504 オブジェクトデータ、511,512,513,514 オブジェクト識別情報、521,522,523,524 形状データ、531,532,533,534 ピクセル選択情報、541,542,543,544 テクスチャ識別情報、601,602,603,604 不透明部分の描画対象ピクセル、610 不透明部分の画像、620 半透明部分の画像、621,622,623,624 不透明部分の描画対象ピクセル、630 髪型全体の画像

【特許請求の範囲】
【請求項1】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成する第1画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成する第2画像生成部と、
前記第1の画像と前記第2の画像を合成し、前記オブジェクトの画像を生成する画像合成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記第1画像生成部は、
前記ピクセル選択情報に基づいて第1のアルファテストを行って前記第1の描画対象ピクセルを選択し、
前記第2画像生成部は、
前記ピクセル選択情報に基づいて第2のアルファテストを行って前記第2の描画対象ピクセルを選択することを特徴とするプログラム。
【請求項3】
請求項2において、
アルファ値が定義されたテクスチャを記憶するテクスチャ記憶部と、
前記オブジェクトのピクセルに前記テクスチャをマッピングするテクスチャマッピング部としてさらにコンピュータを機能させ、
前記第1画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第1のアルファテストを行い、
前記第2画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第2のアルファテストを行うことを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記ピクセル選択情報は、
前記オブジェクトの各ピクセルを、透明度に応じて前記第1の描画対象ピクセルと前記第2の描画対象ピクセルのいずれか一方として選択するための情報であることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有する複数のオブジェクトの各々を描画するための複数の前記オブジェクトデータを記憶し、
前記第1画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して前記第1の画像を生成し、
前記第2画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して前記第2の画像を生成し、
前記画像合成部は、
前記第1の画像と前記第2の画像を合成し、前記複数のオブジェクトを含む画像を生成することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有する髪オブジェクトを描画するための前記オブジェクトデータを記憶することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するための前記オブジェクトデータと、半透明部分を有し、前記髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するための前記オブジェクトデータと、を記憶することを特徴とするプログラム。
【請求項8】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1乃至7のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項9】
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第1の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第1の描画対象ピクセルを描画して第1の画像を生成する第1画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第1の描画対象ピクセルよりも透明度が高い第2の描画対象ピクセルを選択し、当該第2の描画対象ピクセルを描画して第2の画像を生成する第2画像生成部と、
前記第1の画像と前記第2の画像を合成し、前記オブジェクトの画像を生成する画像合成部と、を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図7】
image rotate

【図15】
image rotate


【公開番号】特開2011−209864(P2011−209864A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−75244(P2010−75244)
【出願日】平成22年3月29日(2010.3.29)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】