(57)【要約】      （修正有）【課題】ＣＧアプリケーションを２次元グラフィックスハードウェアと３次元グラフィックスハードウェアとを用いて高速に処理する。【解決手段】コンパイラ処理部１０は、グラフィックスアプリケーション３０内のシェーダプログラム３１を読み込み、２次元グラフィックス処理に必要な機能を抽出した２次元グラフィックスハードウェア向け設定３３と、当該２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリ３２と、を出力する。プリミティブ変換処理部２０は、グラフィックスアプリケーション３０内の頂点データ及び描画コマンドを読み込んで矩形プリミティブを抽出し、当該矩形プリミティブについては、２次元グラフィックス処理用のコマンドバッファ２５へと出力し、当該矩形プリミティブ以外のプリミティブについては、頂点バッファ２６と３次元グラフィックス処理用のコマンドバッファへ２７と出力する。【選択図】図１
2014229217.tif 000002
【特許請求の範囲】
【請求項１】
２次元グラフィックス及び３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェア（２）及び３次元グラフィックスハードウェア（３）に処理させるための画像処理装置（１）であって，
前記画像処理装置（１）は，
前記グラフィックスアプリケーション内のシェーダプログラムを読み込み，２次元グラフィックス処理に必要な機能を抽出した２次元グラフィックスハードウェア向け設定と，当該２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリと，を出力するコンパイラ処理部（１０）と，
前記グラフィックスアプリケーション内の頂点データ及び描画コマンドを読み込んで矩形プリミティブを抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファへと出力し，当該矩形プリミティブ以外のプリミティブについては，頂点バッファと，３次元グラフィックス処理用のコマンドバッファへと出力するプリミティブ変換処理部（２０）と，を備え，
前記２次元グラフィックスハードウェア向け設定と，前記２次元グラフィックス処理用のコマンドバッファとを用いて，２次元グラフィックスを前記２次元グラフィックスハードウェア（２）に描画処理させると共に，
前記シェーダバイナリと，前記頂点バッファと，前記３次元グラフィックス処理用のコマンドバッファとを用いて，３次元グラフィックスを前記３次元グラフィックスハードウェア（３）に描画処理させる
画像処理装置。
【請求項２】
前記コンパイラ処理部（１０）は，
前記シェーダプログラムに対してフロントエンド処理を行い，中間表現へと変換するフロントエンド処理部（１１）と，
前記中間表現と，前記２次元グラフィックスハードウェアの処理パターンとのパターンマッチ処理を行うことにより，当該中間表現から，２次元グラフィックス処理に必要な機能を抽出する２次元機能抽出部（１２）と，
前記中間表現に対してバックエンド処理を行い，前記２次元機能抽出部（１２）が抽出した前記２次元グラフィックス処理に必要な機能を２次元グラフィックスハードウェア向け設定として出力すると共に，前記２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリを出力するバックエンド処理部（１３）と，を有する。
請求項１に記載の画像処理装置。
【請求項３】
前記プリミティブ変換処理部（２０）は，
前記グラフィックスアプリケーションから，頂点データ及び描画コマンドを取得するドライバ（２１）と，
前記ドライバ（２１）により取得された頂点データが格納される頂点バッファ（２２）と，
前記ドライバ（２２）により取得された描画コマンドが格納されるコマンドバッファ（２３）と，
前記頂点バッファ（２２）と前記コマンドバッファ（２３）を参照して，前記グラフィックスアプリケーション内の平面的な矩形プリミティブの抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファ（２５）へと出力し，当該矩形プリミティブ以外のプリミティブについては，再構成された頂点バッファ（２６）と，３次元グラフィックス処理用のコマンドバッファ（２７）へと出力するプリミティブ変換部（２４）と，を有する
請求項１又は請求項２に記載の画像処理装置。
【請求項４】
画像処理装置（１）が，２次元グラフィックス及び３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェア（２）及び３次元グラフィックスハードウェア（３）に処理させる画像処理方法であって，
前記画像処理装置（１）が，
前記グラフィックスアプリケーション内のシェーダプログラムを読み込み，２次元グラフィックス処理に必要な機能を抽出した２次元グラフィックスハードウェア向け設定と，当該２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリと，を出力するコンパイラ処理工程と，
前記グラフィックスアプリケーション内の頂点データ及び描画コマンドを読み込んで矩形プリミティブを抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファへと出力し，当該矩形プリミティブ以外のプリミティブについては，頂点バッファと，３次元グラフィックス処理用のコマンドバッファへと出力するプリミティブ変換処理工程と，
前記２次元グラフィックスハードウェア向け設定と，前記２次元グラフィックス処理用のコマンドバッファとを用いて，２次元グラフィックスを前記２次元グラフィックスハードウェア（２）に描画処理させる２次元描画工程と，
前記シェーダバイナリと，前記頂点バッファと，前記３次元グラフィックス処理用のコマンドバッファとを用いて，３次元グラフィックスを前記３次元グラフィックスハードウェア（３）に描画処理させる３次元描画工程と，を行う
画像処理方法。
【請求項５】
請求項１に記載の画像処理装置を具備するコンピュータ。
【請求項６】
請求項１に記載の画像処理装置を具備するゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，３次元グラフィックスアプリケーションから，２次元の矩形プリミティブと，この矩形プリミティブに対する処理を抽出し，低コストかつ高速な２次元グラフィックスハードウェアに処理させるための画像処理装置に関するものである。すなわち，本発明の画像処理装置は，グラフィックスアプリケーションに含まれる２次元グラフィックスと３次元グラフィックスを分離して，２次元グラフィックスハードウェアと３次元グラフィックスハードウェアのそれぞれに描画処理させることにより，処理の効率化を図る。
【背景技術】
【０００２】
近年，ゲーム機やカーナビゲーション装置などの分野においては，グラフィックスを３次元的にリアルタイムに描画する３次元画像表示装置が普及している。３次元画像表示装置は，例えばグラフィック処理チップなどにより実現されている。このグラフィックス処理チップには，プロセッサが搭載されており，このプロセッサは，プログラマが画像生成アルゴリズムを定義するシェーダが組み込まれることによって画像処理に特化した機能を有するものとなっている。シェーダは，主として，ライティング（光源計算），シェーディング（陰影処理），及びレンダリング（ピクセルに対する色値演算）等を実行するためにグラフィックリソースに対して使用するソフトウェア命令の組み合わせである。グラフィック処理チップで３次元の画像表示を行う方法としては，ＣＰＵ側で処理を行うほか，グラフィック処理チップにおいて実装されたシェーダをプログラム可能に構成し，各シェーダを通じて最終的にレンダリングされるオブジェクトに対して処理を行うようにすることもできる。
【０００３】
ところで，ゲーム機やカーナビゲーション装置には，３次元グラフィックスだけでなく，２次元グラフィックスも表示される。例えば，ゲーム機を例に挙げて説明すると，キャラクタや建造物等の３次元的な描写が可能なオブジェクトは，３次元グラフィックスとして表示される。他方，アイコンや選択画面のような３次元的な描画の必要がないユーザーインターフェース等は，２次元グラフィックスとして表示されることが多い。このように，ゲーム機等に搭載された画像表示装置で処理されるグラフィックスアプリケーションは，平面的な矩形プリミティブ等で表現される２次元グラフィックスと，それ以外のプリミティブ等で表現される３次元グラフィックスが内在していることがある。このような場合であっても，従来，グラフィックスアプリケーションに含まれる２次元グラフィックスと３次元グラフィックスは，共に高性能な３次元グラフィックスハードウェアによって描画処理することが一般的であった。
【０００４】
ただし，２次元用のグラフィックスアプリケーションと３次元用のグラフィックスアプリケーションのそれぞれについて処理を行う際には，２次元用のグラフィックスアプリケーションについては，低コストで高速な２次元グラフィックスハードウェアで処理を行い，３次元用のグラフィックスアプリケーションについては，高性能な３次元グラフィックスハードウェアで処理を行うようにすることで，グラフィックス処理の効率化を図ることができるため，好ましいとされている。このような課題に対し，例えば特許文献１では，一つの装置において，２次元グラフィックスアプリケーションタと３次元グラフィックスアプリケーションの両方を扱うことができる技術が提案されている。
【０００５】
特許文献１に開示された発明は，２次元グラフィックス処理と３次元グラフィック処理とを共用するグラフィックス装置に関するものである。このグラフィックス装置は，一枚のボード上に，２次元グラフィックス処理用の２次元処理コントローラと，３次元グラフィック処理用の３次元処理コントローラと，描画コマンドの種類によって２次元処理コントローラと３次元処理コントローラとを切り替え可能なコントローラ切り替え回路と，を備えている。また，このグラフィックス装置は，２次元及び３次元用のアプリケーションから呼び出された描画コマンドに切り替え用のフラグを付すグラフィックスドライバを有している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−３５３４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら，特許文献１のグラフィックス装置は，２次元グラフィックスデータの処理命令と３次元グラフィックスデータの処理命令とを識別し，その識別結果により，２次元処理コントローラと３次元処理コントローラのどちらか一方にグラフィックスアプリケーションを入力して描画処理を実行するものに過ぎなかった。例えば，特許文献１のグラフィックス装置では，２次元グラフィックスデータの処理と３次元グラフィックスデータの処理の切り替えを行うために，２次元グラフィックスデータの処理を実行する場合には，２次元アプリケーション（Ｗｉｎ３２＿ＧＵＩ）から，装置に対して，２Ｄ処理であることが明示的に分かる形のコマンドを送り込む必要がある。このため，グラフィックスアプリケーション内に２次元グラフィックスデータと３次元グラフィックスデータの両方が含まれているような場合には，グラフィックスアプリケーションを処理することが出来なくなるか，もしくは描画処理機能の切替回数が増加してグラフィックスアプリケーションを高速に処理することが困難になるという問題があった。
【０００８】
そこで，本発明は，上記従来発明の問題点に鑑みてなされたものであり，２次元グラフィックスと３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェアと３次元グラフィックスハードウェアを効率的に用いて，高速に描画処理することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の発明者は，上記の従来発明の問題点を解決する手段について鋭意検討した結果，ドライバ後にプリミティブ変換処理を行うと共に，コンパイラ内で２次元機能抽出処理を行うことにより，グラフィックスアプリケーションから，２次元の矩形プリミティブと，２次元グラフィックス処理に必要な機能とを抽出して，低コストかつ高速な２次元グラフィックスハードウェアにて処理させることにより，３次元グラフィックスハードウェアだけでなく，２次元グラフィックスハードウェアを効率的に用いた高速な描画処理を実現することができるという知見を得た。そして，本発明者は，上記知見に基づけば，従来技術の課題を解決できることに想到し，本発明を完成させた。
具体的に説明すると，本発明は以下の構成を有する。
【００１０】
本発明の第１の側面は，２次元グラフィックス及び３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェア２及び３次元グラフィックスハードウェア３に処理させるための画像処理装置１に関する。
画像処理装置１は，コンパイラ処理部１０と，プリミティブ変換処理部２０を含む。
コンパイラ処理部１０は，グラフィックスアプリケーション内のシェーダプログラムを読み込み，２次元グラフィックス処理に必要な機能を抽出した２次元グラフィックスハードウェア向け設定と，当該２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリと，を出力する。
プリミティブ変換処理部２０は，グラフィックスアプリケーション内の頂点データ及び描画コマンドを読み込んで矩形プリミティブを抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファへと出力し，当該矩形プリミティブ以外のプリミティブについては，頂点バッファと，３次元グラフィックス処理用のコマンドバッファへと出力する。
そして，画像処理装置１は，２次元グラフィックスハードウェア向け設定と，２次元グラフィックス処理用のコマンドバッファとを用いて，２次元グラフィックスを２次元グラフィックスハードウェア２に描画処理させる。さらに，画像処理装置１は，シェーダバイナリと，頂点バッファと，３次元グラフィックス処理用のコマンドバッファとを用いて，３次元グラフィックスを３次元グラフィックスハードウェア３に描画処理させる。
【００１１】
本発明の画像処理装置において，コンパイラ処理部１０は，フロントエンド処理部１１と，２次元機能抽出部１２と，バックエンド処理部１３とを有していることが好ましい。
フロントエンド処理部１１は，シェーダプログラムに対してフロントエンド処理を行い，中間表現へと変換する。
２次元機能抽出部１２は，中間表現と，２次元グラフィックスハードウェアの処理パターンとのパターンマッチ処理を行うことにより，当該中間表現から，２次元グラフィックス処理に必要な機能を抽出する。
バックエンド処理部１３は，中間表現に対してバックエンド処理を行い，２次元機能抽出部１２が抽出した２次元グラフィックス処理に必要な機能を２次元グラフィックスハードウェア向け設定として出力すると共に，２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリを出力する。
【００１２】
本発明の画像処理装置において，プリミティブ変換処理部２０は，ドライバ２１と，頂点バッファ２２と，コマンドバッファ２３と，プリミティブ変換部２４とを有していることが好ましい。
ドライバ２１は，グラフィックスアプリケーションから，頂点データ及び描画コマンドを取得する。
頂点バッファ２２は，ドライバ２１により取得された頂点データが格納される。
コマンドバッファ２３は，ドライバ２１により取得された描画コマンドが格納される。
プリミティブ変換部２４は，頂点バッファ２２とコマンドバッファ２３を参照して，グラフィックスアプリケーション内の平面的な矩形プリミティブの抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファ２５へと出力し，当該矩形プリミティブ以外のプリミティブについては，再構成された頂点バッファ２６と，３次元グラフィックス処理用のコマンドバッファ２７へと出力する。
【００１３】
本発明の第２の側面は，画像処理装置１が，２次元グラフィックス及び３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェア２及び３次元グラフィックスハードウェア３に処理させる画像処理方法に関する。
本発明の画像処理方法においては，画像処理装置１が，コンパイラ処理工程と，プリミティブ変換処理工程と，２次元描画工程と，３次元描画工程とを実行する。
コンパイラ処理工程は，グラフィックスアプリケーション内のシェーダプログラムを読み込み，２次元グラフィックス処理に必要な機能を抽出した２次元グラフィックスハードウェア向け設定と，当該２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリと，を出力する工程である。
プリミティブ変換処理工程は，グラフィックスアプリケーション内の頂点データ及び描画コマンドを読み込んで矩形プリミティブを抽出し，当該矩形プリミティブについては，２次元グラフィックス処理用のコマンドバッファへと出力し，当該矩形プリミティブ以外のプリミティブについては，頂点バッファと，３次元グラフィックス処理用のコマンドバッファへと出力する工程である。
２次元描画工程は，２次元グラフィックスハードウェア向け設定と，２次元グラフィックス処理用のコマンドバッファとを用いて，２次元グラフィックスを２次元グラフィックスハードウェア２に描画処理させる工程である。
３次元描画工程は，シェーダバイナリと，頂点バッファと，３次元グラフィックス処理用のコマンドバッファとを用いて，３次元グラフィックスを３次元グラフィックスハードウェア３に描画処理させる工程である。
【００１４】
本発明の第３の側面は，上記第１の側面に係る画像処理装置を具備するコンピュータに関する。
【００１５】
本発明の第４の側面は，上記第１の側面に係る画像処理装置を具備するゲーム機に関する。
【発明の効果】
【００１６】
本発明は，グラフィックスアプリケーション内に矩形プリミティブによって表現される２次元グラフィックスが含まれている場合には，この矩形プリミティブを抽出して２次元グラフィックスハードウェアで高速に処理することができる。従って，本発明は，２次元グラフィックスと３次元グラフィックスを含むグラフィックスアプリケーションを，２次元グラフィックスハードウェアと３次元グラフィックスハードウェアの両方を効率的に用いて高速に描画処理することができる。すなわち，通常は３次元グラフィックスハードウェアで行われていた処理を，２次元グラフィックスハードウェアで行うことにより，高解像度のデバイスに対する描画を行う際にも，高性能な３次元グラフィックスハードウェアを使用する必要がなくなる。また，ユーザーインターフェースのような画面を描画処理する場合，３次元グラフィックスよりも，アイコンや選択画面のように矩形プリミティブをベースとした２次元グラフィックスの画面が生成されることが多いため，２次元グラフィックスハードウェアを効率的に利用して矩形プリミティブに関する処理を高速化することで，グラフィックスアプリケーションに関する処理性能を全体的に改善することができる。
【００１７】
また，本発明では，３次元グラフィックス処理を前提とした３次元グラフィックスアプリケーション（ＯｐｅｎＧＬ）を実行する場合であっても，その３次元グラフィックスアプリケーション内にある矩形プリミティブとこれに関連するシェーダを抽出することで，その３次元グラフィックスアプリケーション内の２次元グラフィックス処理を自動的に抽出することができる。従って，本発明では，３次元グラフィックスアプリケーション内にある２次元グラフィックス処理を，２次元グラフィックスハードウェアに自動的にマッピングすることが可能となる。その結果，本発明では，２次元グラフィックスハードウェアと３次元グラフィックスハードウェアを並列的又は時分割に実行して，３次元グラフィックスアプリケーションを実行することができる。特に，本発明では，３次元グラフィックスアプリケーション内の２次元グラフィックス処理が高速化される。さらに，本発明において，２次元グラフィックスハードウェアと３次元グラフィックスハードウェアの明示的な切り替えは必要とされない。
【００１８】
また，従来，２次元グラフィックスアプリケーションは，専用のＡＰＩを利用して生成される場合が多かったため，ソフトウェア資産を様々なプラットフォーム向けに展開することが難しいという問題があった。これに対し，本発明では，３次元グラフィックスアプリケーション内に含まれる矩形プリミティブを自動的に抽出することが可能であるため，３次元グラフィックスアプリケーションとは別に，専用のＡＰＩを利用して２次元グラフィックスアプリケーションを生成する必要がなくなる。すなわち，本発明の技術を利用することで，標準的な３次元グラフィックス用ＡＰＩでつくられたアプリケーション内で生成される矩形プリミティブを，ソフトウェアの変更なしで高速に処理することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】図１は，画像処理装置，２次元グラフィックスハードウェア，及び３次元グラフィックスハードウェアを含むシステムの例を示すブロック図である。
【図２】図２は，コンパイラにおける処理の一例を示すフロー図である。
【図３】図３は，２次元グラフィックスハードウェアにおける処理の一例を示すフロー図である。
【図４】図４は，グラフィックス処理用のコンピュータの構成の例を示すブロック図である。
【図５】図５は，ゲーム機の構成の例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下，図面を用いて本発明を実施するための形態について説明する。本発明は，以下に説明する形態に限定されるものではなく，以下の形態から当業者が自明な範囲で適宜修正したものも含む。
【００２１】
［１．画像処理装置，画像処理方法］
図１は，本発明に係る画像処理装置１と，２次元グラフィックスハードウェア２と，３次元グラフィックスハードウェア３を含む，システム全体のブロック図を示している。
図１に示されるように，画像処理装置１は，２次元グラフィックスハードウェア２及び３次元グラフィックスハードウェア３に接続されている。また，画像処理装置１は，コンパイラ処理部１０とプリミティブ変換処理部２０とを含む。画像処理装置１は，グラフィックスアプリケーション３０を読み込んで，コンパイラ処理部１０及びプリミティブ変換処理部２０において処理することにより，２次元グラフィックスハードウェア２向けの情報と，３次元グラフィックスハードウェア３向けの情報とを出力する。すなわち，画像処理装置１のコンパイラ処理部１０及びプリミティブ変換処理部２０からの出力は，２次元グラフィックスハードウェア２又は３次元グラフィックスハードウェア３に選択的に入力されるように構成されている。
【００２２】
コンパイラ処理部１０には，グラフィックスアプリケーション３０内のシェーダプログラム３１が入力される。コンパイラ処理部１０は，シェーダプログラム３１を解析してコンパイルを行うことにより，コンパイル済のバイナリファイルであるシェーダバイナリ３２を出力する。また，コンパイラ処理部１０は，シェーダプログラム３１から，２次元グラフィックス処理に必要な機能を抽出し，２次元グラフィックスハードウェア向け設定３３を出力する。なお，２次元グラフィックスハードウェア向け設定３３は，グラフィックスアプリケーション３０内に含まれる２次元グラフィックス処理用のシェーダプログラムに関する情報である。図１に示されるように，コンパイラ処理部１０は，フロントエンド処理部１１と，２次元機能抽出部１２と，バックエンド処理部１３と，を有している。コンパイラ処理部１０では，フロントエンド処理部１１がプログラミング言語のソースコードを中間表現に変換し，バックエンド処理部１３がその中間表現をさらに変換して機械語などの出力言語のバイナリコードを生成し，バックエンド処理部１３は，バックエンド（２次元グラフィックスハードウェア２又は３次元グラフィックスハードウェア３）において高速に動作する最適化したコードを生成する。また，コンパイラ処理部１０では，フロントエンド処理部１１とバックエンド処理部１３の間において，２次元機能抽出部１２が，シェーダプログラム３１に記述された指令のうち，２次元グラフィックス処理用のシェーダプログラムを抽出し，３次元グラフィックス用のシェーダプログラムとは別に出力する。
【００２３】
フロントエンド処理部１１は，グラフィックスアプリケーション３０内のシェーダプログラム３１が入力されると，構文解析等の一般的なフロントエンド処理を行い，シェーダ内演算機能を示す中間表現へと変換する。例えば，構文解析では，ソースプログラムの字句解析及び意味解析を行うことにより，ソースプログラムを中間表現（中間プログラム）へと変換する。
【００２４】
フロントエンド処理後の中間表現は，２次元機能抽出部１２において解析される。２次元機能抽出部１２は，２次元グラフィックスハードウェア２の処理パターンを予め保持しており，この２次元グラフィックスハードウェア２の処理パターンと，フロントエンド処理後の中間表現とのパターンマッチ処理を行う。そして，２次元機能抽出部１２は，中間表現のうち，この２次元グラフィックスハードウェア２の処理パターンとマッチした部分（機能）を，２次元グラフィックス処理に必要な機能として抽出する。ここで，マッチングに必要な２次元グラフィックスハードウェア２の処理パターンは，画像処理装置１に接続された２次元グラフィックスハードウェア２を分析して，その２次元グラフィックスハードウェア２において実行可能な処理パターンを，予めグラフィックス処理用のメモリ等に記憶しておけばよい。また，処理パターンは，２次元グラフィックスハードウェア２特有のものであるため，画像処理装置１に接続された２次元グラフィックスハードウェア２が変更された場合には，その変更された２次元グラフィックスハードウェア２の処理パターンを保持することが好ましい。また，２次元グラフィックスハードウェア２の処理パターンとしては，例えば，２次元グラフィックスハードウェア２が有するブレンド式（例えば，アルファブレンド式）等を含む情報を用いることができる。このようにして２次元グラフィックス処理に必要な機能を抽出することで，２次元機能抽出部１２は，フロントエンド処理後の中間表現を，２次元グラフィックス処理用の中間表現と，３次元グラフィックス処理用の中間表現とに分離する。
【００２５】
２次元機能抽出処理の後，バックエンド処理部１３は，バックエンド処理を行なってハードウェアに依存するコードを生成する。すなわち，バックエンド処理部１３は，２次元機能抽出部１２によって抽出された２次元グラフィックス処理に必要な機能（中間表現）についてバックエンド処理を行うことで，２次元グラフィックスハードウェア向け設定３３を出力する。他方，バックエンド処理部１３は，２次元機能抽出部１２によって抽出されなかった機能，すなわち３次元グラフィックス処理に必要な機能（中間表現）についてバックエンド処理を行うことで，２次元グラフィックス処理が含まれていない処理を含むシェーダバイナリ３２を出力する。このようにバックエンド処理部１３では，２次元機能抽出部１２により得られた３次元グラフィックス処理用の中間表現と２次元グラフィックス処理用の中間表現のそれぞれにバックエンド処理を行うことで，３次元グラフィックスハードウェア３向けのシェーダバイナリ３２と共に，２次元グラフィックスハードウェア向け設定３３を出力する。バックエンド処理部１３は，各中間表現を，２次元グラフィックスハードウェア２又は３次元グラフィックスハードウェア３において高速に動作する最適化したコードに変換する通常のバックエンド処理を行えばよい。
【００２６】
ここで，図２には，コンパイラ処理部１０による処理工程の一実施形態が示されている。図２に示されるように，コンパイラ処理部１０に入力されたシェーダプログラムは，構文解析などのフロントエンド処理が行われた後，シェーダ内演算機能を示す中間表現への変換処理が行われる。その後，変換された中間表現と，事前に用意された２次元グラフィックスハードウェアの処理パターンとのパターンマッチ処理が行われる。そして，中間表現のうち，２次元グラフィックスハードウェアの処理パターンとマッチした部分は，２次元グラフィックス処理用のシェーダ（２次元グラフィックスハードウェア向け設定）として出力処理される。他方，中間表現のうち，２次元グラフィックスハードウェアの処理パターンとマッチしなかった部分は，３次元グラフィックスハードウェア処理用のシェーダ（シェーダバイナリ）として出力処理される。
【００２７】
なお，本実施形態において，上記コンパイラ処理部１０によるコンパイラ処理は，グラフィックスアプリケーションの実行時に行われるものであるが，例えば，コンパイラ処理は，アプリケーション実行前に事前に行われるものであってもよい。例えば，グラフィックスアプリケーションの実行前に，このグラフィックスアプリケーションを解析し，２次元グラフィックスハードウェア２の処理パターンとマッチングした部分を，２次元グラフィックス処理に必要な機能として抽出して予め保持しておくこととしてもよい。
【００２８】
他方，プリミティブ変換処理部２０は，グラフィックスアプリケーション３０から，２次元グラフィックス処理用の矩形プリミティブと，３次元グラフィックス処理用の他のプリミティブとを抽出して出力する。図１に示されるように，プリミティブ変換処理部２０は，３次元グラフィックスドライバ２１と，頂点バッファ２２と，コマンドバッファ２３と，プリミティブ変換部２４と，を備えている。
【００２９】
３次元グラフィックスドライバ２１は，グラフィックスアプリケーションから，３次元グラフィックス描画処理に必要となる頂点の位置情報（頂点座標）と，各頂点座標についての属性情報を持つ頂点データと，プリミティブを構成する頂点データの配列に関する描画コマンドを生成する。また，３次元グラフィックスドライバ２１は，グラフィックスアプリケーションから生成した頂点データ及び描画コマンドを，それぞれ，頂点バッファ２２とコマンドバッファ２３に出力して記憶する。頂点バッファ２２とコマンドバッファ２３は，グラフィックス処理用のメモリの記憶領域内に生成すればよい。
【００３０】
頂点バッファ２２には，色やテクスチャマッピング座標といった属性を示す頂点データが，各頂点の座標に関連付けて記憶される。また，コマンドバッファ２３には，プリミティブを構成する頂点データの配列が描画コマンドとして記録され，頂点の並び順に沿って各頂点のアドレス情報が記録されている。頂点バッファ２２においては，例えば，Ｖ０〜ＶＮのＮ個の頂点データが記録されている。他方，コマンドバッファ２３においては，プリミティブの頂点データが三角形や，四角形（矩形），その他の多角形を一単位とした配列として記録されている。このため，頂点バッファ２２とコマンドバッファ２３を参照することで，２次元処理用又は３次元処理用のプリミティブを把握することができる。また，コマンドバッファ２３においては，２つの隣接する三角形のプリミティブを四角形（矩形）のプリミティブとして記録するものであってもよい。また，コマンドバッファにおける記録の仕方として，プリミティブの配列情報は，隣接する三角形のうち共通する２点の頂点についてはコマンドバッファに記録せずに，異なる頂点データへの参照値のみが記録されるものであってもよい。この場合，コマンドバッファ２３の記録容量を抑制することができる。また，コマンドバッファ２３は，アドレス情報への参照値である頂点インデックス値がシーケンスで記録されるとともに，このシーケンスの先頭データの位置に，プリミティブのサイズが記録される領域が設けられていてもよい。プリミティブサイズの記録領域が設けられることで，コマンドバッファ２３の開始位置とサイズを把握可能となるため，プリミティブに属する頂点を識別することが可能となる。なお，プリミティブ変換部２４に入力される頂点バッファ２２としては，３次元グラフィックスハードウェア３によって予め座標変換が行われたバッファを用いることもできる。
【００３１】
プリミティブ変換部２４は，頂点バッファ２２とコマンドバッファ２３を参照し，グラフィックスアプリケーションに含まれるプリミティブの中から平面的な矩形プリミティブを抽出することにより，２次元グラフィックス処理用のプリミティブと３次元グラフィックス処理用のプリミティブとを分離する。ここで，プリミティブ変換部２４によって抽出される「平面的な矩形プリミティブ」とは，４つの頂点により定義されるプリミティブであって，カメラ座標系における４つの頂点のＺ座標（奥行き値）がすべて等しいものを意味する。このように，Ｚ座標が等しい４つの頂点によって定義される矩形プリミティブは，平面画像としてレンダリングされるものであるため，２次元グラフィックスハードウェア２によって描画処理することができる。なお，矩形プリミティブは，２点の頂点を共有する隣接した２つ三角形によって定義されるものであってもよい。図１に示されるように，プリミティブ変換部２４は，頂点バッファ２２とコマンドバッファ２３とを読み込み，平面的な矩形プリミティブを抽出すると，抽出した矩形プリミティブを２次元グラフィックスハードウェア２において処理させるために，その矩形プリミティブに関する情報（描画コマンド）を，２次元グラフィックス処理用のコマンドバッファ２５へと出力して記録する。他方，プリミティブ変換部２４は，頂点バッファ２２とコマンドバッファ２３とを読み込み，上記平面的な矩形プリミティブ以外のプリミティブについては，３次元グラフィックスハードウェア３において処理させるために，矩形プリミティブ以外のプリミティブに関する情報（頂点データと描画コマンド）を，再構成された頂点バッファ２６及び３次元グラフィックス処理用のコマンドバッファ２７へと出力して記録する。このようにして，プリミティブ変換部２４は，２次元グラフィックスハードウェア２によって処理することができる矩形プリミティブと，３次元グラフィックスハードウェア３によって処理する必要があるプリミティブとを分離する。
【００３２】
上述したコンパイラ処理及びプリミティブ変換処理の後，画像処理装置１は，グラフィックスアプリケーションから抽出した２次元グラフィックスを，２次元グラフィックスハードウェア２に描画処理させる。すなわち，画像処理装置１は，コンパイラ処理部１０によって抽出した２次元グラフィックスハードウェア向け設定３３と，２次元グラフィックス処理用のコマンドバッファ２５に格納されているプリミティブ変換部２４によって抽出した平面的な矩形プリミティブの情報とを，２次元グラフィックスハードウェア２へと出力する。２次元グラフィックスハードウェア２は，２次元グラフィックスハードウェア向け設定３３と，２次元グラフィックス処理用のコマンドバッファ２５とを用いて，矩形プリミティブを描画処理する。すなわち，２次元グラフィックスハードウェア２は，２次元グラフィックス処理用のコマンドバッファ２５から矩形プリミティブを読み出し，２次元グラフィックスハードウェア向け設定３３に基づいて，読み出した矩形プリミティブの描画処理を実行する。
【００３３】
２次元グラフィックスハードウェア２は，矩形プリミティブを処理可能な公知の装置を用いればよい。例えば，２次元グラフィックスハードウェア２としては，特開２０００−２４２２５３号に開示されている「２次元画像処理装置」や，特開２０００−０２００４９号に開示されている「２Ｄグラフィックス処理装置」等を適宜用いればよい。２次元グラフィックスハードウェア２は，グラフィックスアプリケーションから抽出した平面的な矩形プリミティブのみを処理するものであるため，比較的低コストで，２次元グラフィックス処理に特化した高速のハードウェアを利用することが好ましい。
【００３４】
図３は，２次元グラフィックスハードウェア２における画像処理工程の一実施形態を示している。図４に示されるように，２次元グラフィックスハードウェア２は，矩形プリミティブが配置される複数の画面レイヤーに対して，画像の一部を切り出す切り出し処理，画像の回転処理，画像の拡大縮小を行うリサイズ処理，及び色空間の変換を行う色変換処理をそれぞれの画面レイヤーごとに行う。上記処理の後，２次元グラフィックスハードウェア２は，レイヤー合成処理において，すべての画面レイヤーを合成する。そして，２次元グラフィックスハードウェア２は，合成結果のイメージを，液晶ディスプレイ等の表示装置に出力する。
【００３５】
２次元グラフィックスハードウェア２は，図３に示されるように固定機能のパイプラインによって実現されたものであってもよいし，プログラマブルのパイプラインによって実現されたものであってもよい。また，２次元グラフィックスハードウェア２には，シェーダコアが搭載されていてもよい。シェーダコアでは，テクスチャ座標の生成，演算を用いテクスチャパターンの拡大縮小・回転操作や，プログラマブルな演算処理によるブレンディング処理を行うことが出来る。なお，２次元グラフィックスハードウェア２にシェーダコアを搭載した実施形態においては，コンパイラ処理部１０において２次元グラフィックス処理機能を抽出する工程を省略することができる。
【００３６】
他方，上述したコンパイラ処理及びプリミティブ変換処理の後，画像処理装置１は，グラフィックスアプリケーションから得られた３次元グラフィックスを，３次元グラフィックスハードウェア３に描画処理させる。すなわち，画像処理装置１は，コンパイラ処理部１０によって生成したシェーダバイナリ３２と，再構成された頂点バッファ２６に格納されている矩形プリミティブ以外のプリミティブの頂点データと，３次元グラフィックス処理用のコマンドバッファ２７に格納されている矩形プリミティブ以外のプリミティブのコマンドデータとを，３次元グラフィックスハードウェア３へと出力する。３次元グラフィックスハードウェア３は，これらのシェーダバイナリ３２と，再構成された頂点バッファ２６と，３次元グラフィックス処理用のコマンドバッファ２７とを用いて，平面的な矩形プリミティブ以外のプリミティブを描画処理する。すなわち，３次元グラフィックスハードウェア３は，再構成された頂点バッファ２６及び３次元グラフィックス処理用のコマンドバッファ２７から３次元用のプリミティブ（矩形プリミティブ以外）を読み出し，シェーダバイナリ３２に基づいて，読み出した３次元用のプリミティブの描画処理を実行する。なお，図１に示した実施形態において，プリミティブ変換部２４に入力される頂点バッファ２２と，プリミティブ変換部２４から出力される頂点バッファ（再構成されたもの）２６を別々に示しているが，これらの頂点バッファ２２，２６は，同一のバッファ（メモリ）によって実現されたものであってもよい。
【００３７】
３次元グラフィックスハードウェア３は，プリミティブを処理可能な公知の装置を用いればよい。例えば，３次元グラフィックスハードウェア３としては，特開平０５−２６６１７０に開示されている「３次元画像処理装置」や，特開平０９−３０５７９４に開示されている「３次元画像処理装置」等を適宜用いればよい。
【００３８】
上記のようにして，コンパイラ処理によって出力された２次元グラフィックス処理用のシェーダ及び３次元グラフィックス処理用のシェーダと，プリミティブ変換処理により出力された２次元グラフィックス処理用のプリミティブ及び３次元グラフィックス処理用のプリミティブとを，それぞれ２次元グラフィックスハードウェア２又は３次元グラフィックスハードウェア３に入力することにより，各グラフィックスハードウェア２，３によって，描画処理が実行される。各グラフィックスハードウェア２，３における描画処理は，並列して行い，それぞれのハードウェアで描画されたイメージバッファを後処理で合成すればよい。もしくは，同じイメージバッファにそれぞれのグラフィックスハードウェア２，３を描画順で起動して描画を行うこととしてもよい。このように，本発明では，３次元グラフィックス処理を前提とした３次元グラフィックスアプリケーションを実行する場合であっても，その中から２次元グラフィックス処理に関する情報を自動的に抽出することで，２次元グラフィックスハードウェア２と３次元グラフィックスハードウェア３の両方を効率的に利用した描画処理をおこなうことができる。
【００３９】
［２．コンピュータ］
図４は，本発明の一実施態様に係るコンピュータを示すブロック図である。この実施態様は，コンピュータグラフィックスによるコンピュータ（グラフィック用コンピュータなど）に関する。図４に示されるとおり，このコンピュータは，中央演算装置（ＣＰＵ）１０２，ジオメトリ演算回路１０３などのジオメトリ演算部，レンダラー１０４などの描画部，テクスチャ生成回路１０５などのテクスチャ生成部，照明処理回路１０７などの照光処理部，表示回路１０８などの表示情報作成部，フレームバッファ１０９，及びモニター１１０を具備する。これらの要素は，バスなどにより接続され，相互にデータを伝達できる。そのほか，図示しないメインメモリや，各種テーブル，ワーク領域となるワークメモリ１１１，テクスチャを格納するテクスチャメモリ１１２などを具備する記憶部などを有してもよい。各部を構成するハードウェアは，例えばバスなどを介して連結されている。なお，記憶部は，ＶＲＡＭなどのＲＡＭや，ＣＲ−ＲＯＭ，ＤＶＤ，ハードディスクなどにより構成されても良い。本発明に係る画像処理装置は，このようなコンピュータグラフィックス用のコンピュータに具備されて，実装されたものであってもよい。
【００４０】
中央演算装置（ＣＰＵ）１０２は，画像を生成するためのプログラムなどを制御するための装置である。ワークメモリ１１１は，ＣＰＵ１０２で使用するデータ及びディスプレイリストなどを記憶してもよい。そして，ＣＰＵ１０２は，メインメモリに記憶されたプログラムなどを読み出して，所定の処理を行ってもよい。ただし，ハードウェア処理のみにより所定の処理を行っても良い。ＣＰＵ１０２は，たとえばワークメモリ１１１から，ワールド座標の３次元オブジェクトデータとしてのポリゴンデータを読出し，ポリゴンデータをジオメトリ演算回路１０３へ出力する。具体的には，メインプロセッサ，コプロセッサ，データ処理プロセッサ，四則演算回路又は汎用演算回路などを適宜有するものがあげられる。これらはバスなどにより連結され，信号の授受が可能とされる。また，圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
【００４１】
具体的に説明すると，ジオメトリ演算回路１０３は，入力されたポリゴンデータに対して，視点を原点とするカメラ座標系のデータに座標変換などを行うための回路である。ジオメトリ演算回路１０３は，処理したポリゴンデータを，レンダラー１０４へ出力する。具体的なジオメトリ演算回路としては，前記メインプロセッサとバスなどで連結された，ジオメトリプロセッサ，コプロセッサ，データ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。
【００４２】
レンダラー１０４は，ポリゴン単位のデータをピクセル単位のデータに変換するための回路又は装置である。レンダラー１０４は，ピクセル単位のデータをテクスチャ生成回路１０５へ出力する。具体的なレンダラー１０４としては，前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。
【００４３】
テクスチャ生成回路１０５は，テクスチャメモリ１１２に記憶されるテクスチャデータに基づき，ピクセル単位のテクスチャカラーを生成するための回路である。テクスチャ生成回路１０５は，テクスチャカラー情報を有するピクセル単位のデータを，照明処理回路１０７へ出力する。具体的なテクスチャ生成回路１０５としては，前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。
【００４４】
照明処理回路１０７は，テクスチャカラー情報を有するポリゴンに対し，ピクセル単位で法線ベクトル，重心座標などを利用して陰影付けなどを行うための回路である。照明処理回路１０７は，陰影付けした画像データを，表示回路１０８へ出力する。具体的な照明処理回路１０７としては，前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。そして，メモリに格納されたテーブルなどから適宜光に関する情報を読み出して陰影付けを行えばよい。
【００４５】
表示回路１０８は，照明処理回路１０７から入力された画像データをフレームバッファ１０９に書き込み，またフレームバッファ１０９に書き込まれた画像データを読み出し，制御して表示画像情報を得るための回路である。表示回路１０８は，表示画像情報をモニター１１０へ出力する。具体的な表示回路としては，前記メインプロセッサとバスなどで連結された描画プロセッサ，データ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。
【００４６】
モニター１１０は，入力された表示画像情報にしたがって，コンピュータグラフィックス画像を表示するための装置である。
【００４７】
［３．ゲーム機］
図５は，本発明の他の実施形態に係るゲーム機のブロック図である。このブロック図で表される実施形態は，特に携帯用，家庭用又は業務用のゲーム機として好適に利用されうる。そこで，以下では，ゲーム機として説明する。なお，同図に示されるゲーム機は，少なくとも処理部２００を含めばよく（又は処理部２００と記憶部２７０，又は処理部２００と記憶部２７０と情報記憶媒体２８０を含んでもよく），それ以外のブロック（例えば操作部２６０，表示部２９０，音出力部２９２，携帯型情報記憶装置２９４，通信部２９６）については，任意の構成要素とすることができる。本発明に係る画像処理装置は，このようなゲーム機に具備されて，実装されたものであってもよい。
【００４８】
処理部２００は，システム全体の制御，システム内の各ブロックへの命令の指示，ゲーム処理，画像処理，音処理などの各種の処理を行うものである。処理部２００の機能は，各種プロセッサ（ＣＰＵ，ＤＳＰ等），又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや，所与のプログラム（ゲームプログラム）により実現できる。
【００４９】
操作部２６０は，プレーヤが操作データを入力するためのものである。操作部２６０は，の機能は，例えば，レバー，ボタン，外枠，及びハードウェアを備えたコントローラにより実現できる。なお，特に携帯用ゲーム機の場合は，操作部２６０は，ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は，シリアルインターフェース（Ｉ／Ｆ）やバスを介してメインプロセッサなどに伝えられる。
【００５０】
記憶部２７０は，処理部２００や通信部２９６などのワーク領域となるものである。また，プログラムや各種テーブルなどを格納しても良い。記憶部２７０は，例えば，メインメモリ２７２，フレームバッファ２７４，及びテクスチャ記憶部２７６を含んでもよく，そのほか各種テーブルなどを記憶しても良い。記憶部２７０の機能は，ＲＯＭやＲＡＭなどのハードウェアにより実現できる。ＲＡＭとして，ＶＲＡＭ，ＤＲＡＭ又はＳＲＡＭなどがあげられ，用途に応じて適宜選択すればよい。フレームバッファ２７４を構成するＶＲＡＭなどは，各種プロセッサの作業領域として用いられる。
【００５１】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）２８０は，プログラムやデータなどの情報を格納するものである。情報記憶媒体２８０は，いわゆるゲームソフトなどとして販売されうる。そして，情報記憶媒体２８０の機能は，光ディスク（ＣＤ，ＤＶＤ），光磁気ディスク（ＭＯ），磁気ディスク，ハードディスク，磁気テープ，又はメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部２００は，この情報記憶媒体２８０に格納される情報に基づいて種々の処理を行う。情報記憶媒体２８０には，本発明（本実施形態）の手段（特に処理部２００に含まれるブロック）を実行するための情報（プログラム又はプログラム及びデータ）が格納される。
【００５２】
表示部２９０は，本実施形態により生成された画像を出力するものであり，その機能は，ＣＲＴ（ブラウン管），ＬＣＤ（液晶），ＯＥＬ（有機電界発光素子），ＰＤＰ（プラズマディスプレイパネル）又はＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００５３】
音出力部２９２は，音を出力するものである。音出力部２９２の機能は，スピーカなどのハードウェアにより実現できる。音出力は，例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより，音処理が施され，スピーカなどの音出力部から出力される。
【００５４】
携帯型情報記憶装置２９４は，プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置２９４としては，メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置２９４の機能は，メモリカード，フラッシュメモリ，ハードディスク，ＵＳＢメモリなど公知の記憶手段により達成できる。
【００５５】
通信部２９６は，外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行う任意のものである。通信部２９６の機能は，各種プロセッサ，又は通信用ＡＳＩＣなどのハードウェアや，プログラムなどにより実現できる。
【００５６】
ゲーム機を実行するためのプログラム又はデータは，ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部２９６を介して情報記憶媒体２８０に配信するようにしてもよい。
【００５７】
処理部２００は，ゲーム処理部２２０，画像処理部２３０，及び音処理部２５０を含むものがあげられる。具体的には，メインプロセッサ，コプロセッサ，ジオメトリプロセッサ，描画プロセッサ，データ処理プロセッサ，四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され，信号の授受が可能とされる。また，圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
【００５８】
ここでゲーム処理部２２０は，コイン（代価）の受け付け処理，各種モードの設定処理，ゲームの進行処理，選択画面の設定処理，オブジェクトの位置や回転角度（Ｘ，Ｙ又はＺ軸回り回転角度）を求める処理，オブジェクトを動作させる処理（モーション処理），視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理，マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理，ヒットチェック処理，ゲーム結果（成果，成績）を演算する処理，複数のプレーヤが共通のゲーム空間でプレイするための処理，又はゲームオーバー処理などの種々のゲーム処理を，操作部２６０からの操作データや，携帯型情報記憶装置２９４からの個人データ，保存データや，ゲームプログラムなどに基づいて行う。
【００５９】
画像処理部２３０は，ゲーム処理部２２０からの指示等にしたがって，各種の画像処理を行うものである。また，音処理部２５０は，ゲーム処理部２２０からの指示等にしたがって，各種の音処理を行う。
【００６０】
ゲーム処理部２２０，画像処理部２３０，音処理部２５０の機能は，その全てをハードウェアにより実現してもよいし，その全てをプログラムにより実現してもよい。又は，ハードウェアとプログラムの両方により実現してもよい。画像処理部２３０は，ジオメトリ演算部２３２（３次元座標演算部），描画部２４０（レンダリング部）を含むものがあげられる。
【００６１】
ジオメトリ演算部２３２は，座標変換，クリッピング処理，透視変換，又は光源計算などの種々のジオメトリ演算（３次元座標演算）を行う。そして，ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標，頂点テクスチャ座標，又は輝度データ等）は，例えば，記憶部２７０のメインメモリ２７２に格納されて，保存される。
【００６２】
描画部２４０は，ジオメトリ演算後（透視変換後）のオブジェクトデータと，テクスチャ記憶部２７６に記憶されるテクスチャなどに基づいて，オブジェクトをフレームバッファ２７４に描画する。
【００６３】
描画部２４０は，例えば，テクスチャマッピング部２４２，シェーディング処理部２４４を含むものがあげられる。具体的には，描画プロセッサにより実装できる。描画プロセッサは，テクスチャ記憶部，各種テーブル，フレームバッファ，ＶＲＡＭなどとバスなどを介して接続され，更にディスプレイと接続される。
【００６４】
テクスチャマッピング部２４２は，環境テクスチャをテクスチャ記憶部２７６から読み出し，読み出された環境テクスチャを，オブジェクトに対してマッピングする。
【００６５】
シェーディング処理部２４４は，オブジェクトに対するシェーディング処理を行う。例えば，ジオメトリ処理部２３２が光源計算を行い，シェーディング処理用の光源の情報や，照明モデルや，オブジェクトの各頂点の法線ベクトルなどに基づいて，オブジェクトの各頂点の輝度（ＲＧＢ）を求める。シェーディング処理部２４４は，この各頂点の輝度に基づいて，プリミティブ面（ポリゴン，曲面）の各ドットの輝度を例えば，ホンシェーディングや，グーローシェーディングなどにより求める。
【００６６】
ジオメトリ演算部２３２は，法線ベクトル処理部２３４を含むものがあげられる。法線ベクトル処理部２３４は，オブジェクトの各頂点の法線ベクトル（広義にはオブジェクトの面の法線ベクトル）を，ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。
【００６７】
なお，ゲーム機における構成を適宜利用すれば，スロットマシーンやパチンコ遊技機などにおける画像表示装置としても機能しうるものを得ることができる。
【産業上の利用可能性】
【００６８】
本発明は，２次元グラフィックス及び３次元グラフィックスの描画処理を行う画像処理装置等に関する。従って，本発明はコンピュータ産業において好適に利用されうる。
【符号の説明】
【００６９】
１…画像処理装置
２…２次元グラフィックスハードウェア
３…３次元グラフィックスハードウェア
１０…コンパイラ処理部
１１…フロントエンド処理部
１２…２次元機能抽出部
１３…バックエンド処理部
２０…プリミティブ変換処理部
２１…３次元グラフィックスドライバ
２２…頂点バッファ
２３…コマンドバッファ
２４…プリミティブ変換部
２５…２次元グラフィックス処理用のコマンドバッファ
２６…再構成された頂点バッファ
２７…３次元グラフィックス処理用のコマンドバッファ
３０…グラフィックスアプリケーション
３１…シェーダプログラム
３２…シェーダバイナリ
３３…２次元グラフィックスハードウェア向け設定
【図１】
2014229217.tif 000003
【図２】
2014229217.tif 000004
【図３】
2014229217.tif 000005
【図４】
2014229217.tif 000006
【図５】
2014229217.tif 000007