(57)【要約】【課題】半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながらも比較的高品質な画像を生成可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】半透明部分を有するオブジェクトを描画するためのオブジェクトデータは、ピクセル選択情報を含む。ピクセル選択情報に基づいて第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成し、ピクセル選択情報に基づいて、第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成し、第１の画像と第２の画像を合成し、半透明部分を有するオブジェクトの画像を生成する。【選択図】図１３
2011209864.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成する第１画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成する第２画像生成部と、
前記第１の画像と前記第２の画像を合成し、前記オブジェクトの画像を生成する画像合成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１画像生成部は、
前記ピクセル選択情報に基づいて第１のアルファテストを行って前記第１の描画対象ピクセルを選択し、
前記第２画像生成部は、
前記ピクセル選択情報に基づいて第２のアルファテストを行って前記第２の描画対象ピクセルを選択することを特徴とするプログラム。
【請求項３】
請求項２において、
アルファ値が定義されたテクスチャを記憶するテクスチャ記憶部と、
前記オブジェクトのピクセルに前記テクスチャをマッピングするテクスチャマッピング部としてさらにコンピュータを機能させ、
前記第１画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第１のアルファテストを行い、
前記第２画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第２のアルファテストを行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記ピクセル選択情報は、
前記オブジェクトの各ピクセルを、透明度に応じて前記第１の描画対象ピクセルと前記第２の描画対象ピクセルのいずれか一方として選択するための情報であることを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有する複数のオブジェクトの各々を描画するための複数の前記オブジェクトデータを記憶し、
前記第１画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して前記第１の画像を生成し、
前記第２画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して前記第２の画像を生成し、
前記画像合成部は、
前記第１の画像と前記第２の画像を合成し、前記複数のオブジェクトを含む画像を生成することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有する髪オブジェクトを描画するための前記オブジェクトデータを記憶することを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記オブジェクトデータ記憶部は、
半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するための前記オブジェクトデータと、半透明部分を有し、前記髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するための前記オブジェクトデータと、を記憶することを特徴とするプログラム。
【請求項８】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１乃至７のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項９】
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成する第１画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成する第２画像生成部と、
前記第１の画像と前記第２の画像を合成し、前記オブジェクトの画像を生成する画像合成部と、を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システム（ゲームシステム）では、キャラクタの髪を描画する際には、髪の毛の一束の形状を定義するポリゴンメッシュを複数枚重ね、各ポリゴンメッシュに髪の毛を表すテクスチャを貼り付けることでより自然な髪を表現する手法が一般的に行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３２３５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、髪の毛の束の輪郭部分や毛先の部分を半透明に描画することでよりリアルな髪を表現することができる。ところが、髪の毛の束全体を半透明なオブジェクトとして扱って描画しているためデプスバッファ（Ｚバッファ）を用いた隠面消去を行うことができず、何ら対策をしなければ髪の毛の束の前後関係が破綻した画像が描画される可能性があった。例えば、図１５に示す髪の画像では円で囲んだ部分において髪の毛の束の前後関係が破綻している。
【０００６】
この問題を回避するために、髪のオブジェクトデータ（モデルデータ）を作成する際に、擬似的にポリゴンメッシュの描画順を設定する方法が考えられる。しかしながら、どのような角度で描画しても前後関係に破綻が生じないように描画順を設定するのは非常に難しいため、モデル制作コストが増大したりデザイン自体の制約に繋がる場合も多く、その上、描画負荷も増大するため、望ましい回避策ではない。
【０００７】
他の回避策として、描画時に描画順の指定が必要無いクリッピングを使用する事もできるが、髪の毛の輪郭部分や毛先部分のジャギーが発生し易く、高品質な画像が得られないという問題がある。
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、本発明のいくつかの態様によれば、半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながらも比較的高品質な画像を生成可能なプログラム、情報記憶媒体及び画像生成システムを提供することができる。
【課題を解決するための手段】
【０００９】
（１）本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成する第１画像生成部と、
前記オブジェクトデータの前記ピクセル選択情報に基づいて前記オブジェクトの前記第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成する第２画像生成部と、
前記第１の画像と前記第２の画像を合成し、前記オブジェクトの画像を生成する画像合成部としてコンピュータを機能させることを特徴とする。
【００１０】
また、本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶している情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関する。
【００１１】
本発明では、第１の描画対象ピクセルに対しては隠面消去を行うので第１の画像では前後関係が破綻することはない。一方、第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを描画した第２の画像では前後関係が破綻する可能性があるが、ピクセル選択情報を適切に設定すれば第２の描画対象ピクセルの数を少なくすることができるので前後関係の破綻が目立たないようにすることができる。このような第１の画像と第２の画像を合成することで、前後関係の破綻がほとんどわからない画像を効率的に生成することができる。つまり、本発明によれば、ピクセル選択情報を適切に設定することで、処理負荷を軽減しながらも比較的高品質な画像を生成することができる。
【００１２】
特に、半透明部分が少ないオブジェクトであれば、第１の描画対象ピクセルを不透明のピクセル、第２の描画対象ピクセルを不透明でないピクセル（半透明のピクセル）とすることで、違和感の少ないリアルな画像を生成することができる。
【００１３】
（２）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記第１画像生成部は、
前記ピクセル選択情報に基づいて第１のアルファテストを行って前記第１の描画対象ピクセルを選択し、
前記第２画像生成部は、
前記ピクセル選択情報に基づいて第２のアルファテストを行って前記第２の描画対象ピクセルを選択するようにしてもよい。
【００１４】
本発明によれば、テスト条件を変えてアルファテストを２回行うことで、第１の描画対象ピクセルと第２の描画対象ピクセルをより簡単に選択することができる。
【００１５】
（３）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
アルファ値が定義されたテクスチャを記憶するテクスチャ記憶部と、
前記オブジェクトのピクセルに前記テクスチャをマッピングするテクスチャマッピング部としてさらにコンピュータを機能させ（テクスチャマッピング部をさらに含み）、
前記第１画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第１のアルファテストを行い、
前記第２画像生成部は、
前記ピクセル選択情報に基づいて、前記テクスチャをマッピングした前記オブジェクトのピクセルに対して前記第２のアルファテストを行うようにしてもよい。
【００１６】
（４）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ピクセル選択情報は、
前記オブジェクトの各ピクセルを、透明度に応じて前記第１の描画対象ピクセルと前記第２の描画対象ピクセルのいずれか一方として選択するための情報であってもよい。
【００１７】
このようにすれば、第１画像生成部と第２画像生成部により、半透明部分を有するオブジェクトのすべてのピクセルが、第１の描画対象ピクセルか第２の描画対象ピクセルとして必ず１回だけ選択されるようにすることができる。従って、描画すべきピクセルを過不足無く描画することができる。
【００１８】
（５）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有する複数のオブジェクトの各々を描画するための複数の前記オブジェクトデータを記憶し、
前記第１画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して前記第１の画像を生成し、
前記第２画像生成部は、
前記複数のオブジェクトデータの各々の前記ピクセル選択情報に基づいて、前記複数のオブジェクトの各々の前記第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して前記第２の画像を生成し、
前記画像合成部は、
前記第１の画像と前記第２の画像を合成し、前記複数のオブジェクトを含む画像を生成するようにしてもよい。
【００１９】
本発明では、半透明部分を有する複数のオブジェクトを描画する場合、各オブジェクトについて第１の描画対象ピクセルを選択した後、選択した第１の描画対象ピクセルを隠面消去処理を行いながら描画するので、第１の画像では、各オブジェクトの構成部分の前後関係もオブジェクト同士の前後関係も破綻しない。一方、第２の描画対象ピクセルを描画した第２の画像では、各オブジェクトの構成部分の前後関係やオブジェクト同士の前後関係が破綻する可能性があるが、各オブジェクトデータのピクセル選択情報を適切に設定すれば第２の描画対象ピクセルの数を少なくすることができるのでこれらの前後関係の破綻が目立たないようにすることができる。このような第１の画像と第２の画像を合成することで、各オブジェクトの構成部分の前後関係やオブジェクト同士の前後関係の破綻がほとんどわからない画像を効率的に生成することができる。つまり、本発明によれば、半透明部分を有する複数のオブジェクトを描画する場合も、各オブジェクトデータのピクセル選択情報を適切に設定することで、処理負荷を軽減しながらも比較的高品質な画像を生成することができる。
【００２０】
（６）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有する髪オブジェクトを描画するための前記オブジェクトデータを記憶するようにしてもよい。
【００２１】
キャラクタの髪は非常に目立つ部分であり、髪の毛の束の前後関係が破綻していると大きな違和感がある画像になってしまうが、本発明によれば、処理負荷を軽減しながらも比較的高品質な髪の画像を生成することができる。また、髪オブジェクトは、髪の毛の束の輪郭部分や毛先部分だけが半透明であるのが自然であり、半透明部分が極めて少ないので、本発明により半透明部分の前後関係が破綻してもほとんどわからない。つまり、本発明は特に髪オブジェクトの描画に適している。
【００２２】
（７）また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトデータ記憶部は、
半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するための前記オブジェクトデータと、半透明部分を有し、前記髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するための前記オブジェクトデータと、を記憶するようにしてもよい。
【００２３】
本発明によれば、髪ベースオブジェクトに髪パーツオブジェクトを取り付けることで髪型のカスタマイズが可能であるような場合でも、各オブジェクトを構成する髪の毛の束の前後関係やオブジェクト同士の前後関係の破綻がほとんどわからない画像を効率的に生成することができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す図。
【図２】図２（Ａ）、図２（Ｂ）は、髪オブジェクトデータの構造の一例を示す図。
【図３】髪オブジェクトの形状データの一例を示す図。
【図４】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図５】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図６】本実施形態による髪オブジェクトの描画手法について説明するための図。
【図７】本実施形態の手法で生成した髪の画像の一例を示す図。
【図８】図８（Ａ）、図８（Ｂ）は、髪型をカスタマイズする一例を示す図。
【図９】髪ベースオブジェクトデータと髪パーツオブジェクトデータの一例を示す図。
【図１０】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図１１】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図１２】本実施形態による複数のパーツを組み合わせて髪を描画する手法について説明するための図。
【図１３】オブジェクトを描画する処理の一例を示すフローチャート図。
【図１４】複数のオブジェクトを描画する処理の一例を示すフローチャート図。
【図１５】従来手法で生成した髪の画像の一例を示す図。
【発明を実施するための形態】
【００２５】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２６】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２７】
操作部１６０は、プレーヤがオブジェクト（プレーヤキャラクタ、移動体）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００２８】
なお、操作部１６０は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ（操作データ）を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【００２９】
例えば、入力機器に備えられた加速度センサは、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、５ｍｓｅｃ毎に加速度を検出している。また、加速度センサは、１軸、２軸、６軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置（本体装置）に送信される。
【００３０】
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子（イメージセンサ）、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部１９０に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【００３１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。記憶部１７０は、ワーク領域として使用される主記憶部１７２と、最終的な表示画像等が記憶される描画バッファ１７４と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトに対応付けられたテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００３２】
特に本実施形態のオブジェクトデータ記憶部１７６は、描画対象のピクセルを選択するためのピクセル選択情報を含み、半透明部分を有するオブジェクトを描画するためのオブジェクトデータを記憶する。例えば、オブジェクトデータ記憶部１７６は、半透明部分を有する髪オブジェクトを描画するためのオブジェクトデータを記憶する。また、オブジェクトデータ記憶部１７６は、半透明部分を有する複数のオブジェクトをそれぞれ描画するための複数のオブジェクトデータを記憶するようにしてもよい。例えば、オブジェクトデータ記憶部１７６は、半透明部分を有し、髪型のベースとなる髪ベースオブジェクトを描画するためのオブジェクトデータと、半透明部分を有し、髪ベースオブジェクトに取り付け可能な髪パーツオブジェクトを描画するためのオブジェクトデータを記憶する。ピクセル選択情報は、オブジェクトの各ピクセルを、透明度に応じて第１の描画対象ピクセルと第２の描画対象ピクセルのいずれか一方として選択するための情報であってもよい。
【００３３】
また、本実施形態のテクスチャ記憶部１７８は、アルファ値が定義されたテクスチャを記憶する。
【００３４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３６】
通信部１９６は外部（例えば他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３７】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００３９】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４０】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４１】
オブジェクト空間設定部１１０は、雪、雨、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ライン（線）、ラインポリゴン、ポリゴン、多角形、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４２】
移動・動作処理部１１２は、オブジェクト（キャラクタ、移動体等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４３】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。例えば、仮想カメラ制御部１１４は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行うようにしてもよい。すなわち、仮想カメラによりオブジェクト（例えばキャラクタ、移動体）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００４４】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４５】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（視点を基準とした透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００４６】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（フレームバッファや中間バッファ（ワークバッファ）などのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００４７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００４８】
そして描画部１２０は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００４９】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００５０】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００５１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００５２】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５３】
特に本実施形態では、描画部１２０は、第１画像生成部１２２、第２画像生成部１２４、画像合成部１２６、テクスチャマッピング部１２８を含む。
【００５４】
テクスチャマッピング部１２８は、半透明部分を有するオブジェクトのピクセルに、テクスチャ記憶部１７８に記憶される、アルファ値が定義されたテクスチャをマッピングする。
【００５５】
第１画像生成部１２２は、オブジェクトデータのピクセル選択情報に基づいて半透明部分を有するオブジェクトの第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成する。例えば、第１画像生成部１２２は、ピクセル選択情報に基づいて第１のアルファテストを行って第１の描画対象ピクセルを選択するようにしてもよい。例えば、アルファ値が定義されたテクスチャをマッピングしたオブジェクトのピクセルに対して第１のアルファテストを行うようにしてもよい。
【００５６】
第２画像生成部１２４は、オブジェクトデータのピクセル選択情報に基づいて半透明部分を有するオブジェクトの第１の描画対象ピクセルよりも透明度が高い第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成する。例えば、第２画像生成部１２４は、ピクセル選択情報に基づいて第２のアルファテストを行って第２の描画対象ピクセルを選択するようにしてもよい。例えば、アルファ値が定義されたテクスチャをマッピングしたオブジェクトのピクセルに対して第２のアルファテストを行うようにしてもよい。
【００５７】
画像合成部１２６は、第１の画像と第２の画像を合成し、半透明部分を有するオブジェクトの画像を生成する。
【００５８】
特に、半透明部分を有する複数のオブジェクトを描画する場合は、第１画像生成部１２２は、複数のオブジェクトデータの各々のピクセル選択情報に基づいて、複数のオブジェクトの各々の第１の描画対象ピクセルを選択し、隠面消去処理を行いながら当該第１の描画対象ピクセルを描画して第１の画像を生成する。また、第２画像生成部１２４は、複数のオブジェクトデータの各々のピクセル選択情報に基づいて、複数のオブジェクトの各々の第２の描画対象ピクセルを選択し、当該第２の描画対象ピクセルを描画して第２の画像を生成する。そして、画像合成部１２６は、第１の画像と第２の画像を合成し、半透明部分を有する複数のオブジェクトを含む画像を生成する。
【００５９】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６０】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６１】
２．本実施形態の手法
（１）概要
本実施形態は、髪、破れた布の解れ部分、ファー、植物の枝葉などの半透明部分を有するオブジェクトを描画する際に、処理負荷を軽減しながら高品質な画像を描画する処理を行うものである。例えば、髪のオブジェクト（髪オブジェクト）は、データ量を削減する目的で髪の毛の束を複数組み合わせて表現される場合が多いが、髪の毛の束の輪郭や毛先を半透明にすることでよりリアルな髪を表現することができる。本実施形態は、そのような髪オブジェクトを描画する際に、髪の毛の束の前後関係を破綻させることなく、処理負荷を軽減しながら高品質な髪の画像を描画する処理を行う。以下、髪オブジェクトを描画する場合を例にとり、本実施形態の手法について説明する。
【００６２】
（２）髪のオブジェクトデータ
本実施形態では、髪オブジェクトを描画するために図２（Ａ）に示すような構造のオブジェクトデータ（モデルデータ）を定義する。
【００６３】
オブジェクトデータ２００は、オブジェクト識別情報２１０、形状データ２２０、ピクセル選択情報２３０、テクスチャ識別情報２４０を含む。
【００６４】
オブジェクト識別情報２１０は、オブジェクトを識別するための情報（例えば髪オブジェクトのＩＤ）である。
【００６５】
形状データ２２０は、オブジェクトの形状を特定するためのデータであり、オブジェクトを構成するポリゴンの頂点座標１〜ｎと頂点座標１〜ｎに対応づけるテクスチャ座標１〜ｎを含む。
【００６６】
ピクセル選択情報２２０は、オブジェクトの描画対象となるピクセルを選択するための情報であり、アルファテストの２つの条件（アルファテスト条件１、２）に関する情報を含む。本実施形態では、各ピクセルのα値の範囲は０≦α≦１とし、α＝０が透明、α＝１が不透明を表し、αが０に近づくほど透明度が高くなる（逆に言えばαが１に近づくほど透明度が低くなる）ものとする。そして、例えば、αテスト条件１ではα≧１のピクセルを描画対象ピクセル（第１の描画対象ピクセル）とし、αテスト条件２ではα＜１のピクセルを描画対象ピクセル（第２の描画対象ピクセル）とする。すなわち、αテスト条件１では不透明のピクセルを描画対象ピクセルとし、αテスト条件２では半透明のピクセル（不透明でないピクセル）を描画対象ピクセルとする。
【００６７】
テクスチャ識別情報２４０は、テクスチャマッピングに用いるテクスチャ（例えば髪テクスチャ）の情報である。
【００６８】
また、髪オブジェクトを描画するために図２（Ｂ）に示すような構造のオブジェクトデータ（モデルデータ）を定義することもできる。すなわち、１つのオブジェクトに対して、形状データ１（２２０ａ）と形状データ２（２２０ｂ）を定義し、形状データ１（２２０ａ）には、ピクセル選択情報１（２３０ａ）とテクスチャ識別情報１（２４０ａ）を対応づける。すなわち、形状データ１（２２０ａ）に対して、テクスチャ識別情報１（２４０ａ）により識別されるテクスチャをマッピングするとともにピクセル選択情報１（２３０ａ）により描画対象となるピクセル（第１の描画対象ピクセル）を選択する。また、形状データ２（２２０ｂ）には、ピクセル選択情報２（２３０ｂ）とテクスチャ識別情報２（２４０ｂ）を対応づける。すなわち、形状データ２（２２０ｂ）に対して、テクスチャ識別情報２（２４０ｂ）により識別されるテクスチャをマッピングするとともにピクセル選択情報２（２３０ｂ）により描画対象となるピクセル（第２の描画対象ピクセル）を選択する。
【００６９】
ピクセル選択情報１（２３０ａ）は、例えば、アルファテスト条件１（α≧１）であり、ピクセル選択情報２（２３０ｂ）は、例えば、アルファテスト条件２（α＜１）であってもよい。このようにすれば、アルファテスト条件１（α≧１）とアルファテスト条件２（α＜１）を適用する形状データを微妙に異ならせることができる。ただし、アルファテスト条件１が適用される形状データ１（２２０ａ）とアルファ条件２が適用される形状データ２（２２０ｂ）が全く同じであるような場合は、図２（Ａ）の構造のオブジェクトデータを定義することで、記憶すべきデータ量を削減することができる。
【００７０】
以下では、髪オブジェクトが図２（Ａ）の構造のオブジェクトデータで表現されるものとして説明するが、以下の説明は、図２（Ｂ）の構造のオブジェクトデータにも同様に適用することができる。
【００７１】
図３は、髪オブジェクトの形状データ２２０の一例を示す図である。本実施形態では、形状データ２２０は、７つの髪の毛の束（ポリゴンメッシュ）Ｍ１〜Ｍ７を有する髪の形状を定義する。具体的には、髪の毛の束Ｍ１〜Ｍ７に含まれる各ポリゴン（三角形Ｐ）の頂点座標を、例えばトライアングルストリップ形式で定義する。すなわち、ポリゴンメッシュＭ１〜Ｍ７毎に形状データ（頂点座標、テクスチャ座標）を定義するのではなく、髪オブジェクト全体としての１つの形状データ（頂点座標、テクスチャ座標）を定義する。
【００７２】
（３）髪の描画手法
次に、図４〜図６を用いて、本実施形態の髪オブジェクトの描画手法について説明する。なお、髪オブジェクトは、髪の毛の束（Ｍ１〜Ｍ７）の輪郭部分や毛先部分には半透明のテクセル（α＜１）がマッピングされ、その他の部分には不透明のテクセル（α＝１）がマッピングされるものとする。
【００７３】
まず、図４に示すように、オブジェクトデータ２００で定義された髪オブジェクトの形状データ２２０（正確には頂点処理とラスタライズを行った後の形状データ）に対して髪テクスチャ３００を用いてテクスチャマッピングし、さらにアルファテスト条件１（ピクセル選択情報）でアルファテストを行い、α≧１のピクセルを描画対象ピクセル４００（第１の描画対象ピクセル）として選択する。従って、α＝１のピクセル、すなわち不透明のピクセル（髪の毛の束の輪郭部分と毛先部分以外の部分）のみが描画対象ピクセル４００として選択される。続いて、Ｚバッファ１７９を用いて隠面消去を行いながら描画対象ピクセル４００を描画バッファ１７４（第１のワークバッファ）に描画し、不透明部分の画像４１０（第１の画像）を生成する。この画像４１０は、隠面消去を行っているので、髪の毛の束Ｍ１〜Ｍ７の前後関係が破綻することはない。
【００７４】
次に、図５に示すように、形状データ２２０（正確には頂点処理とラスタライズを行った後の形状データ）に対して髪テクスチャ３００を用いてテクスチャマッピングし、さらにアルファテスト条件２（ピクセル選択情報）でアルファテストを行い、α＜１のピクセルを描画対象ピクセル（第２の描画対象ピクセル）として選択する。従って、α＜１のピクセル、すなわち半透明のピクセル（髪の毛の束の輪郭部分と毛先部分）のみが描画対象ピクセルとして選択される。続いて、この描画対象ピクセルを描画バッファ１７４（第２のワークバッファ）に描画し、半透明部分の画像４２０（第２の画像）を生成する。ここで、この描画対象ピクセルを半透明で描画するため、画像４２０では前後関係が破綻する可能性がある。しかし、半透明部分（髪の毛の束の輪郭部分と毛先部分）は極めて小さいので、前後関係が破綻してもほとんど目立たない。
【００７５】
最後に、図６に示すように、不透明部分の画像４１０に半透明部分の画像４２０を合成して髪の画像４３０を生成し、描画バッファ１７４（フレームバッファ等）に描画する。図７に、本実施形態の手法で生成した髪の画像４３０の一例を示す。図１５に示した従来手法により生成した髪の画像と違い、図７に示す髪の画像４３０では不透明部分の前後関係が破綻しておらず、違和感のない高品質な画像になっている。
【００７６】
このように、本実施形態の描画手法によれば、半透明部分（髪の毛の束の輪郭部分や毛先部分）では前後関係の破綻が生じる可能性があるが、髪の大部分を占める不透明部分では前後関係の破綻がなく、また、髪の毛の束の輪郭部分や毛先部分にジャギーが発生しないので、髪型全体としての違和感がほとんどない高品質な画像を得ることができる。
【００７７】
（４）複数のパーツを組み合わせた髪の描画手法
次に、選択した髪のベースオブジェクトにパーツオブジェクトを取り付けることで、プレーヤがキャラクタの髪型を自由にカスタマイズできるゲームを例にとり、複数のパーツを組み合わせて髪を描画する手法について説明する。図８（Ａ）は、髪ベースオブジェクトＢＯとして「ポニーテールＡ」が選択され、「ポニーテールＡ」に取り付ける髪パーツオブジェクトＰＯとして「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」が選択された場合のキャラクタの髪型のカスタマイズ例を示す。「ポニーテールＡ」は、１束の後ろ髪を表す髪パーツオブジェクトＰＯが後頭部の１箇所において取り付けられる髪ベースオブジェクトＢＯであり、１束の後ろ髪を表す髪パーツオブジェクトＰＯが取り付けられた場合に自然な表現となるように、後ろ髪の取り付け位置（１つの結び目）に向かって髪の毛が集まる態様をしている。また「ポニーテールＡ」には、前髪を表す髪パーツオブジェクトＰＯを少なくとも１つ取り付けることができる。また、図８（Ｂ）は、髪ベースオブジェクトＢＯとして「ツインテールＡ」が選択され、「ツインテールＡ」に取り付ける髪パーツオブジェクトＰＯとして「後ろ髪Ｅ」、「前髪Ｂ」が選択された場合のキャラクタの髪型のカスタマイズ例を示す。「ツインテールＡ」は、２束の後ろ髪を表す髪パーツオブジェクトＰＯが後頭部の２箇所において取り付けられる髪ベースオブジェクトＢＯであり、２束の後ろ髪を表す髪パーツオブジェクトＰＯが取り付けられた場合に自然な表現となるように、後ろ髪の２つの取り付け位置（２つの結び目）のそれぞれに向かって髪の毛が集まる態様をしている。
【００７８】
以下では、一例として、図８（Ａ）に示す髪型を描画する手法について説明する。
【００７９】
図９に、本実施形態における「ポニーテールＡ」、「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」の各オブジェクトデータ（モデルデータ）の構造を示す。このデータ構造は、図２（Ａ）に示したデータ構造と同じである。
【００８０】
「ポニーテールＡ」のオブジェクトデータ５０１は、オブジェクト識別情報５１１として「ポニーテールＡ」のＩＤ、形状データ５２１として「ポニーテールＡ」を構成するポリゴンの頂点座標１〜ｎ１と頂点座標１〜ｎ１にそれぞれ対応づけるテクスチャ座標１〜ｎ１、ピクセル選択情報５３１としてアルファテスト条件１（α≧１）とαテスト条件２（α＜１）、テクスチャ識別情報５４１として髪テクスチャのＩＤを含む。
【００８１】
「後ろ髪Ａ」のオブジェクトデータ５０２は、オブジェクト識別情報５１２として「後ろ髪Ａ」のＩＤ、形状データ５２２として「後ろ髪Ａ」を構成するポリゴンの頂点座標１〜ｎ２と頂点座標１〜ｎ２にそれぞれ対応づけるテクスチャ座標１〜ｎ２、ピクセル選択情報５３２としてアルファテスト条件１（α≧１）とαテスト条件２（α＜１）、テクスチャ識別情報５４１として髪テクスチャのＩＤを含む。
【００８２】
「右前髪Ａ」のオブジェクトデータ５０３は、オブジェクト識別情報５１３として「右前髪Ａ」のＩＤ、形状データ５２３として「右前髪Ａ」を構成するポリゴンの頂点座標１〜ｎ３と頂点座標１〜ｎ３にそれぞれ対応づけるテクスチャ座標１〜ｎ３、ピクセル選択情報５３３としてアルファテスト条件１（α≧１）とαテスト条件２（α＜１）、テクスチャ識別情報５４３として髪テクスチャのＩＤを含む。
【００８３】
「左前髪Ａ」のオブジェクトデータ５０４は、オブジェクト識別情報５１４として「左前髪Ａ」のＩＤ、形状データ５２４として「左前髪Ａ」を構成するポリゴンの頂点座標１〜ｎ４と頂点座標１〜ｎ４にそれぞれ対応づけるテクスチャ座標１〜ｎ４、ピクセル選択情報５３４としてアルファテスト条件１（α≧１）とαテスト条件２（α＜１）、テクスチャ識別情報５４４として髪テクスチャのＩＤを含む。
【００８４】
次に、図１０〜図１１を用いて、複数のパーツを組み合わせて髪を描画する手法について説明する。なお、「ポニーテールＡ」、「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」は、すべて、輪郭部分や毛先部分には半透明のテクセル（α＜１）がマッピングされ、その他の部分には不透明のテクセル（α＝１）がマッピングされるものとする。
【００８５】
まず、図１０に示すように、オブジェクトデータ５０１で定義された「ポニーテールＡ」の形状データ５２１（正確には頂点処理とラスタライズを行った後の形状データ）に対して髪テクスチャ３００を用いてテクスチャマッピングし、さらにアルファテスト条件１（ピクセル選択情報）でアルファテストを行い、α≧１のピクセルを描画対象ピクセル６０１（第１の描画対象ピクセル）として選択する。また、オブジェクトデータ５０２で定義された「後ろ髪Ａ」の形状データ５２２に対して同様の処理を行い、描画対象ピクセル６０２（第１の描画対象ピクセル）を選択する。また、オブジェクトデータ５０３で定義された「右前髪Ａ」の形状データ５２３に対して同様の処理を行い、描画対象ピクセル６０３（第１の描画対象ピクセル）を選択する。また、オブジェクトデータ５０４で定義された「左前髪Ａ」の形状データ５２４に対して同様の処理を行い、描画対象ピクセル６０４（第１の描画対象ピクセル）を選択する。これらの描画対象ピクセル６０１、６０２、６０３、６０４として、α＝１のピクセル、すなわち不透明のピクセル（輪郭部分と毛先部分以外の部分）のみが選択される。続いて、Ｚバッファ１７９を用いて隠面消去を行いながら描画対象ピクセル６０１、６０２、６０３、６０４を描画バッファ１７４（第１のワークバッファ）に描画し、不透明部分の画像６１０（第１の画像）を生成する。この画像６１０は、隠面消去を行っているので、「ポニーテールＡ」の各部の前後関係、「後ろ髪Ａ」の各部の前後関係、「右前髪Ａ」の各部の前後関係、「左前髪Ａ」の各部の前後関係も、「ポニーテールＡ」、「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」の前後関係も破綻することはない。
【００８６】
次に、図１１に示すように、オブジェクトデータ５０１で定義された「ポニーテールＡ」の形状データ５２１（正確には頂点処理とラスタライズを行った後の形状データ）に対して髪テクスチャ３００を用いてテクスチャマッピングし、さらにアルファテスト条件２（ピクセル選択情報）でアルファテストを行い、α＜１のピクセルを描画対象ピクセル６２１（第２の描画対象ピクセル）として選択する。また、オブジェクトデータ５０２で定義された「後ろ髪Ａ」の形状データ５２２に対して同様の処理を行い、描画対象ピクセル６２２（第２の描画対象ピクセル）を選択する。また、オブジェクトデータ５０３で定義された「右前髪Ａ」の形状データ５２３に対して同様の処理を行い、描画対象ピクセル６２３（第２の描画対象ピクセル）を選択する。また、オブジェクトデータ５０４で定義された「左前髪Ａ」の形状データ５２４に対して同様の処理を行い、描画対象ピクセル６２４（第２の描画対象ピクセル）を選択する。これらの描画対象ピクセル６２１、６２２、６２３、６２４として、α＜１のピクセル、すなわち半透明のピクセル（輪郭部分と毛先部分）のみが選択される。続いて、描画対象ピクセル６２１、６２２、６２３、６２４を描画バッファ１７４（第２のワークバッファ）に描画し、半透明部分の画像６２０（第２の画像）を生成する。ここで、描画対象ピクセル６２１、６２２、６２３、６２４をすべて半透明で描画するため、「ポニーテールＡ」の各部の前後関係、「後ろ髪Ａ」の各部の前後関係、「右前髪Ａ」の各部の前後関係、「左前髪Ａ」の各部の前後関係や、「ポニーテールＡ」、「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」の前後関係が破綻する可能性がある。しかし、「ポニーテールＡ」、「後ろ髪Ａ」、「右前髪Ａ」、「左前髪Ａ」の各々の半透明部分（輪郭部分と毛先部分）は極めて小さいので、前後関係が破綻してもほとんど目立たない。
【００８７】
最後に、図１２に示すように、不透明部分の画像６１０に半透明部分の画像６２０を合成して髪型全体の画像６３０を生成し、描画バッファ１７４（フレームバッファ等）に描画する。
【００８８】
このように、本実施形態の描画手法によれば、複数の髪のパーツを組み合わせる場合であっても、髪型の大部分を占める不透明部分では前後関係の破綻がなく、また、髪型の輪郭部分や毛先部分にジャギーが発生しないので、髪型全体としての違和感がほとんどない高品質な画像を非常に効率的に得ることができる。
【００８９】
３．本実施形態の処理
図２（Ａ）に示した構造のオブジェクトデータを有する１つのオブジェクトを描画する処理の一例について図１３のフローチャートを用いて説明する。
【００９０】
まず、オブジェクトデータ記憶部１７６からオブジェクトデータを読み出し、形状データ（各頂点データ）に対して頂点処理を行う（ステップＳ１０）。
【００９１】
次に、ステップＳ１０で頂点処理を行った後の頂点データに基づいてラスタライズを行う（ステップＳ２０）。
【００９２】
次に、ステップＳ１０で読み出したオブジェクトデータで指定されるテクスチャをテクスチャ記憶部１７８から読み出し、ステップＳ２０でラスタライズにより生成したピクセルデータに対してテクスチャマッピングを行う（ステップＳ３０）。
【００９３】
次に、ピクセル選択情報（アルファテスト条件１）に基づいて、ステップＳ３０でテクスチャマッピングを行った後のピクセルから第１の描画対象ピクセル（例えばα≧１のピクセル）を選択する（ステップＳ４０）。
【００９４】
次に、ピクセル選択情報（アルファテスト条件２）に基づいて、ステップＳ３０でテクスチャマッピングを行った後のピクセルから第２の描画対象ピクセル（例えばα＜１のピクセル）を選択する（ステップＳ５０）。
【００９５】
最後に、ステップＳ４０で生成した第１の画像とステップＳ５０で生成した第２の画像を合成し、半透明部分を有するオブジェクトの画像を生成する（ステップＳ６０）。
【００９６】
また、図２（Ａ）に示した構造のオブジェクトデータを有する複数のオブジェクトを描画する処理の一例について図１４のフローチャートを用いて説明する。
【００９７】
まず、オブジェクトデータ記憶部１７６から新たなオブジェクトデータを読み出し、形状データ（各頂点データ）に対して頂点処理を行う（ステップＳ１１０）。
【００９８】
次に、ステップＳ１１０で頂点処理を行った後の頂点データに基づいてラスタライズを行う（ステップＳ１２０）。
【００９９】
次に、ステップＳ１１０で読み出したオブジェクトデータで指定されるテクスチャをテクスチャ記憶部１７８から読み出し、ステップＳ１２０でラスタライズにより生成したピクセルデータに対してテクスチャマッピングを行う（ステップＳ１３０）。
【０１００】
次に、ピクセル選択情報（アルファテスト条件１）に基づいて、ステップＳ１３０でテクスチャマッピングを行った後のピクセルから第１の描画対象ピクセル（例えばα≧１のピクセル）を選択する（ステップＳ１４０）。
【０１０１】
次に、ピクセル選択情報（アルファテスト条件２）に基づいて、ステップＳ１３０でテクスチャマッピングを行った後のピクセルから第２の描画対象ピクセル（例えばα＜１のピクセル）を選択する（ステップＳ１５０）。
【０１０２】
描画対象の複数のオブジェクトの各々に対してステップＳ１１０〜Ｓ１５０の処理を繰り返し、各オブジェクトに対してＳ１１０〜Ｓ１５０の処理が終了すれば（ステップＳ１６０でＹの場合）、ステップＳ１４０で選択した描画対象の各オブジェクトの第１の描画対象ピクセルを隠面消去を行いながら描画し、第１の画像を生成する（ステップＳ１７０）。
【０１０３】
次に、ステップＳ１５０で選択した描画対象の各オブジェクトの第２の描画対象ピクセルを描画し、第２の画像を生成する（ステップＳ１８０）。
【０１０４】
最後に、ステップＳ１７０で生成した第１の画像とステップＳ１８０で生成した第２の画像を合成し、半透明部分を有するオブジェクトの画像を生成する（ステップＳ１９０）。
【０１０５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１０６】
例えば、本実施形態では、２つのアルファテストの条件をα≧１とα＜１に設定しているが、このαテストの設定値（閾値）は１に限らず、０．８や０．９等に設定してもよい。例えば、オブジェクトデータを作成する際にオブジェクトの見た目がよくなるようにアルファテストの設定値を調整するようにしてもよい。
【０１０７】
また、例えば、本実施形態では、ピクセル選択情報として２つのアルファテストの条件を設定しているが、２つのアルファテストの条件において閾値となるα値（例えば１、０．９、０．８等）のみを設定し、第１の描画対象ピクセルを選択する際にはα値が閾値以上（例えばα≧１）のピクセルを選択する第１のアルファテストを行い、第２の描画対象ピクセルを選択する際にはα値が閾値未満（例えばα＜１）のピクセルを選択する第２のアルファテストを行うようにしてもよい。
【０１０８】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【０１０９】
Ｐ  ポリゴン、Ｍ１〜Ｍ７  ポリゴンメッシュ、ＢＯ  髪ベースオブジェクト、ＰＯ  髪パーツオブジェクト、１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、１１４  仮想カメラ制御部、１２０  描画部、１２２  第１画像生成部、１２４  第２画像生成部、１２６  画像合成部、１２８  テクスチャマッピング部、１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、１７６  オブジェクトデータ記憶部、１７８  テクスチャ記憶部、１７９  Ｚバッファ、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部、２００  オブジェクトデータ、２１０  オブジェクト識別情報、２２０，２２０ａ，２２０ｂ  形状データ、２３０，２３０ａ，２３０ｂ  ピクセル選択情報、２４０，２４０ａ，２４０ｂ  テクスチャ識別情報、３００  髪テクスチャ、４００  不透明部分の描画対象ピクセル、４１０  不透明部分の画像、４２０  半透明部分の画像、４３０  髪の画像、５０１，５０２，５０３，５０４  オブジェクトデータ、５１１，５１２，５１３，５１４  オブジェクト識別情報、５２１，５２２，５２３，５２４  形状データ、５３１，５３２，５３３，５３４  ピクセル選択情報、５４１，５４２，５４３，５４４  テクスチャ識別情報、６０１，６０２，６０３，６０４  不透明部分の描画対象ピクセル、６１０  不透明部分の画像、６２０  半透明部分の画像、６２１，６２２，６２３，６２４  不透明部分の描画対象ピクセル、６３０  髪型全体の画像
【図１】
2011209864.tif 000003
【図２】
2011209864.tif 000004
【図３】
2011209864.tif 000005
【図４】
2011209864.tif 000006
【図５】
2011209864.tif 000007
【図６】
2011209864.tif 000008
【図８】
2011209864.tif 000009
【図９】
2011209864.tif 000010
【図１０】
2011209864.tif 000011
【図１１】
2011209864.tif 000012
【図１２】
2011209864.tif 000013
【図１３】
2011209864.tif 000014
【図１４】
2011209864.tif 000015
【図７】
2011209864.tif 000016
【図１５】
2011209864.tif 000017