JP5864474B2 - 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 - Google Patents

空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP5864474B2
JP5864474B2 JP2013096577A JP2013096577A JP5864474B2 JP 5864474 B2 JP5864474 B2 JP 5864474B2 JP 2013096577 A JP2013096577 A JP 2013096577A JP 2013096577 A JP2013096577 A JP 2013096577A JP 5864474 B2 JP5864474 B2 JP 5864474B2
Authority
JP
Japan
Prior art keywords
processing
unit
processing unit
color
post
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.)
Active
Application number
JP2013096577A
Other languages
English (en)
Other versions
JP2014219739A (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.)
Digital Media Professionals Inc
Original Assignee
Digital Media Professionals 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 Digital Media Professionals Inc filed Critical Digital Media Professionals Inc
Priority to JP2013096577A priority Critical patent/JP5864474B2/ja
Publication of JP2014219739A publication Critical patent/JP2014219739A/ja
Application granted granted Critical
Publication of JP5864474B2 publication Critical patent/JP5864474B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は,空間を分割した上でグラフィックスの描画処理を行うことのできる画像処理装置及び画像処理方法に関するものである。具体的に説明すると,本発明は,空間を分割してグラフィックスの描画を行うことで,ユーザの画面操作等により描画の更新が必要となったような場合に,その描画の更新が必要な空間のみについてポリゴンの描画更新を実行することができる。これにより,本発明の画像処理装置等は,描画処理を高速化し,描画遅延を最小に抑える。
従来から,ゲーム機やカーナビゲーション装置などの分野においては,3次元コンピュータグラフィックスをリアルタイムに描画する3次元画像表示装置が普及している。3次元コンピュータグラフィックスでは,一般的に3次元空間のオブジェクトを多数のポリゴンにより表現するポリゴンモデルが利用される。ポリゴンモデルの描画処理においては,光源,視点位置,視線方向,物体表面の反射率などを考慮してポリゴン表面に陰影をつけるシェーディングが行われる。また,写実性の高い画像を生成するために,ポリゴンモデルの表面にテクスチャ画像を貼り付けるテクスチャマッピングが行われる。
また,3次元画像表示装置は,例えばグラフィック処理チップなどにより実現されている。このグラフィックス処理チップには,プロセッサが搭載されており,このプロセッサは,プログラマが画像生成アルゴリズムを定義するシェーダが組み込まれることによって画像処理に特化した機能を有するものとなっている。シェーダは,主として,ライティング(光源計算),シェーディング(陰影処理),及びレンダリング(ピクセル化)等を実行するためにグラフィックリソースに対して使用するソフトウェア命令の組み合わせである。グラフィック処理チップで3次元の画像表示を行う方法としては,CPU側で処理を行うほか,グラフィック処理チップにおいて実装されたシェーダをプログラム可能に構成し,各シェーダを通じて最終的にレンダリングされるオブジェクトに対して処理を行うようにすることもできる。
また,近年では,タイルベースでグラフィックス処理を行うシステムも開発されている(特許文献1等)。タイルベースのグラフィックスシステムは,各フレームを表示するために,フレームをタイルと呼ばれる複数領域に分割する。また,このシステムは,フレーム内に各グラフィックスプリミティブ(点,線,又は三角形等)を表示するためのビニング部を有している。ビニング部は,多様なタイルのうち,グラフィックスプリミティブが交差するものを決定するためのビニング動作を行うために用いられる。すなわち,ビニング部は,基本的に,複数のビン(例えば,各タイルにつき1つのビン)を指定し,グラフィックスプリミティブ用の座標データに基づいて,そのグラフィックスプリミティブが交差するタイル(単数または複数)を決定し,各交差するタイルについて,関連ビン内のグラフィックスプリミティブの識別子を記録するという処理を行う。そして,このグラフィックスシステムでは,ビニング動作の終了後,各タイルについてグラフィックスデータが生成される。すなわち,ビニング動作が終了した段階で,グラフィックスシステムのラスタライゼーション部に特定のタイルが割り当てられ,そのタイルに適用可能なタイルリストに応じ,割り当てられたタイルについてのグラフィックスデータが生成される。
特開2012−168951号公報
ところで,従来のタイルベースのグラフィックスシステムは,各フレームを,画一的に,タイルと呼ばれる複数の領域に分割するものである。例えば,特許文献1に示されたシステムでは,各フレームを256個のタイルに分割し,各タイルは256×256個の画素の解像度を有するものと定められている。しかしながら,描画を更新するグラフィックスの性質等に応じて処理の高速化が必要な空間領域は異なるものである。例えば,フレームの空間によってはプリミティブが密集する領域や,プリミティブが散在している領域がある。これに対し,従来のシステムのように,各フレームを画一的に分割して処理することとすると,処理の高速化が必要な空間領域についても,特に高速化の必要のない領域についても平等にタイルが振り分けられることとなるため,特に処理の高速化が必要な空間領域について重点的にグラフィックス処理を進めることができず,効率的でないという問題があった。また,従来のタイルベースのグラフィックスシステムのように,タイルベースでグラフィックス処理を行う場合,複数のタイルに跨ったプリミティブが多く存在すると処理の遅延に繋がるものであるが,従来のシステムでは,各タイルの大きさは全て等しいものであり,タイルそれぞれの大きさを変更することはできなくなっている。従って,従来のシステムでは,プリミティブの大きさ等に応じて,分割する大きさを変更するなどの柔軟な対応を行うことができず,この点においてもグラフィックスの効率性が低下するという問題があった。このように,従来の技術は,アプリケーションの重い部分の処理を負荷分散するために,空間領域分割を明示的に行うことが難しかった。さらに,任意の画面の一部分に対し更新処理を行う場合に,従来の技術では,その任意の一部の空間だけを分割して処理を実行することが出来なかった。
このため,現在では,空間分割描画を行うにあたり,効率的かつ高速にグラフィックスを処理することが可能な画像処理装置等が求められている。
そこで,本発明の発明者は,上記の従来発明の問題点を解決する手段について鋭意検討した結果,ポリゴンを構成する頂点データに対し頂点処理(座標変換や照度計算)を行った後,ユーザから与えられた任意の空間情報等に基づいて空間インデックスを生成し,ポリゴンの構成情報,処理済み頂点データ,及び空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファを作成して,このインデックス付き頂点バッファを利用したグラフィックス処理を行うようにすることで,グラフィックスの性質等に応じて分割する空間の位置,大きさ,範囲を柔軟に決定することができ,効率的かつ高速なグラフィックスの描画処理を実現することができるという知見を得た。そして,本発明者は,上記知見に基づけば,従来技術の課題を解決できることに想到し,本発明を完成させた。
具体的に説明すると,本発明は以下の構成を有する。
本発明の第1の側面は,コンピュータグラフィックス処理用の画像処理装置に関する。
本発明の画像処理装置は,コンパイラ処理部10と,空間インデックス追加部20と,前段処理部30と,後段処理部40と,ピクセル出力部50と,を備えている。
コンパイラ処理部10は,グラフィックスアプリケーション内のシェーダプログラムを読み込み,カラー・奥行き値の生成に必要な機能を抽出した前段処理用シェーダと,当該前段処理用シェーダに含まれていないテクスチャ・シェーディング処理を含む後段処理用シェーダとを,出力する。
空間インデックス追加部20は,グラフィックスアプリケーション内のポリゴンを構成する頂点データを読み込んで,座標変換を含む頂点処理を行い,処理済み頂点データを得ると共に,変換後の座標系における空間インデックスを生成し,当該ポリゴンの構成情報,当該処理済み頂点データ,及び当該空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファ21を作成する。
前段処理部30は,空間インデックス付き頂点バッファ21を読み込んでポリゴンを構築し,空間インデックスにより定義される空間ごとに,当該ポリゴンにラスタライズ処理を行なってピクセルに変換し,前段処理用シェーダに基づいて,ラスタライズ処理済みのピクセルのカラー値及び奥行き値を生成する。
後段処理部40は,ラスタライズ処理済みのピクセルの奥行き値を参照して出力カラーバッファ51に書き込むことが決定されたピクセルについて,後段処理用シェーダに基づいたテクスチャ・シェーディング処理を行い,テクスチャ・シェーディング処理済みのピクセルのカラー値を生成する。
ピクセル出力部50は,前段処理部30及び後段処理部40により得られたピクセルのカラー値を出力カラーバッファ51に出力する。
ここで,本発明の画像処理装置において,前段処理部30は,ラスタライズ処理を行う前段プロセッサコア31を有し,後段処理部40は,テクスチャ・シェーディング処理を行う後段プロセッサコア41を有することが好ましい。そして,これらの前段プロセッサコア31と後段プロセッサコア41は,互いに異なるハードウェアであることが好ましい。
また,本発明の画像処理装置において,空間インデックス追加部20は,ユーザによって任意に与えられた空間情報に基づいて空間分割を行い,空間インデックスを生成することが好ましい。
また,本発明の画像処理装置において,コンパイラ処理部10は,フロントエンド処理部11と,機能抽出部12と,バックエンド処理部13と,を有することが好ましい。
フロントエンド処理部11は,前記シェーダプログラムに対してフロントエンド処理を行い,中間表現へと変換する。
機能抽出部12は,中間表現と,事前に用意されたカラー・奥行き値の生成に関する処理パターンとのターンマッチ処理を行うことにより,当該中間表現から,カラー・奥行き値の生成に必要な機能を抽出する。
バックエンド処理部13は,中間表現に対してバックエンド処理を行い,機能抽出部12が抽出したカラー・奥行き値の生成に必要な機能を前段処理用シェーダとして出力すると共に,シェーダプログラムのうちのカラー・奥行き値の生成に必要な機能以外の機能を後段処理用シェーダとして出力する。
本発明の第2の側面は,コンピュータグラフィックス処理用の画像処理装置により実行される画像処理方法に関する。
本発明の画像処理方法では,画像処理装置が,コンパイラ処理工程と,空間インデックス追加工程と,前段処理工程と,後段処理工程と,ピクセル出力工程と,を行う。
コンパイラ処理部10は,グラフィックスアプリケーション内のシェーダプログラムを読み込み,カラー・奥行き値の生成に必要な機能を抽出した前段処理用シェーダと,当該前段処理用シェーダに含まれていないテクスチャ・シェーディング処理を含む後段処理用シェーダとを,出力する。
空間インデックス追加工程では,グラフィックスアプリケーション内のポリゴンを構成する頂点データを読み込んで,座標変換を含む頂点処理を行い,処理済み頂点データを得ると共に,変換後の座標系における空間インデックスを生成し,当該ポリゴンの構成情報,当該処理済み頂点データ,及び当該空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファ21を作成する。
前段処理部工程では,空間インデックス付き頂点バッファ21を読み込んでポリゴンを構築し,空間インデックスにより定義される空間ごとに,当該ポリゴンにラスタライズ処理を行なってピクセルに変換し,前段処理用シェーダに基づいて,ラスタライズ処理済みのピクセルのカラー値及び奥行き値を生成する。
後段処理部工程では,ラスタライズ処理済みのピクセルの奥行き値を参照して出力カラーバッファ51に書き込むことが決定されたピクセルについて,後段処理用シェーダに基づいたテクスチャ・シェーディング処理を行い,テクスチャ・シェーディング処理済みのピクセルのカラー値を生成する。
ピクセル出力部工程では,前段処理工程及び後段処理工程により得られたピクセルのカラー値を出力カラーバッファ51に出力する。
本発明の他の側面は,第1の側面に係る画像処理装置を具備するコンピュータに関する。
本発明の他の側面は,第1の側面に係る画像処理装置を具備するゲーム機に関する。
本発明は,空間インデックスを生成し,この空間インデックスに基づいた空間分割描画を行うことで,ユーザの画面操作等により描画の更新が必要となった場合にも,その描画の更新が必要な空間のみについてポリゴンの描画更新を実行することができるようになる。これにより,本発明は,描画処理を高速化し,描画遅延を最小に抑えることができる。また,本発明における空間分割は,フレームを画一的に複数の領域(タイル)に分割するものではなく,任意に与えられる空間インデックスに基づいて,ラスタライズによる変換後の座標系における空間を複数の領域に分割することが可能であるため,グラフィックスの性質等に応じて柔軟に空間の大きさ等を決定することができる。また,本発明の画像処理装置は,上記機構を有することで,ローカルのバッファ内で描画処理を行うことができるため,外部メモリへのアクセスを低減させることが可能であり,結果として,消費電力やメモリアクセスの際のオーバヘッドが低下し,グラフィックス処理の高速化を達成できる。
さらに,本発明の画像処理装置は,シェーダプログラムを,主としてカラー・奥行き値の生成に必要な機能を持つ前段処理用シェーダと,主としてテクスチャ・シェーディング処理に必要とされる後段処理用シェーダとに分割する。そして,この前段処理用シェーダに基づいて前段処理部でピクセルを処理した後,テクスチャ・シェーディング処理が必要なピクセルのみを後段処理部に入力して後段処理用シェーダに基づいた処理を実行するものである。従って,後段処理部においては不必要なピクセル処理を行う必要がなくなるため,処理時間の低減を図ることができる。また,前段処理部が処理するシェーダは,コンパイラよってカラー・奥行き値の生成に必要な機能に限定して抽出されたものである。従って,前段処理部は,不要な処理が省かれたシェーダを処理すればよいため,前段処理部用のプロセッサコアのサイズを最小限のものとすることができ,結果としてコスト低減に繋がる。
以上の通り,本発明は,空間分割描画を行うにあたり,効率的かつ高速にグラフィックスを処理することが可能な画像処理装置等を提供することができる。
図1は,本発明に係る画像処理装置の構成の例を示すブロック図である。 図2は,コンパイラにおける処理の一例を示すフロー図である。 図3は,空間インデックス追加部における処理の一例を示すフロー図である。 図4は,空間インデックス付き頂点バッファ内のデータ構造の一例を示している。 図5は,本発明に係る画像処理装置の変形例を示すブロック図である。 図6は,グラフィックス処理用のコンピュータの構成の例を示すブロック図である。 図7は,ゲーム機の構成の例を示すブロック図である。
以下,図面を用いて本発明を実施するための形態について説明する。本発明は,以下に説明する形態に限定されるものではなく,以下の形態から当業者が自明な範囲で適宜修正したものも含む。
[1.画像処理装置,画像処理方法]
図1は,本発明に係る画像処理装置1のブロック図を示している。本発明に係る画像処理装置1は,3次元コンピュータグラフィックス処理用のハードウェアとして利用される。
図1に示されるように,画像処理装置1は,グラフィックスアプリケーション60を読み込んで,所定のグラフィックス描画処理を行い,描画処理の結果を出力カラーバッファ51に出力する。画像処理装置1は,図1の上段に示されているコンパイラ処理部10と,図1の下段に示されているグラフィックスパイプラインを備えている。グラフィックスパイプラインは,空間インデックス追加部20と,前段処理部30と,後段処理部40と,ピクセル出力部50を含む。コンパイラ処理部10は,グラフィックスアプリケーション60からシェーダプログラム61を読み込んで,このシェーダプログラム61を前段処理用シェーダ62と後段処理用シェーダ63とに分割する。すなわち,コンパイラ処理部10は,シェーダプログラム61に記述された指令を,前段処理部30と後段処理部40に割り当てる処理を行う。グラフィックスパイプラインでは,空間インデックス追加部20によって空間インデックス付き頂点バッファ21を作成する処理を行った後,前段処理部30が,空間インデックス付き頂点バッファ21を読み込んで,空間ごとにラスタライズ処理を行うと共に,前処理用シェーダに基づいて,ピクセルのカラー値及び奥行き値を生成する。その後,後段処理部40は,必要なピクセルに対し,後段処理用シェーダ63に基づいてテクスチャ処理及びシェーディング処理を行う。ピクセル出力部50は,前段処理部30及び後段処理部40におけるピクセル処理の結果を,出力カラーバッファ51へと出力する。出力カラーバッファ51に蓄積されたピクセルのカラー値は,公知のディスプレイ装置によって動画像又は静止画像を表示する際に参照される。
コンパイラ処理部10には,グラフィックスアプリケーション60内のシェーダプログラム61が入力される。コンパイラ処理部10は,シェーダプログラム61を解析してコンパイルを行うことにより,コンパイル済のバイナリファイルである前段処理用シェーダ62と後段処理用シェーダ63とを出力する。前段処理用シェーダ62は,ピクセルのカラー値及び奥行き値の生成に必要な機能を抽出したシェーダコードである。前段処理用シェーダ62には,カラー値と奥行き値の生成に関わる処理として,例えば,奥行きテストや,アルファテスト,ステンシルテストなどが含まれる。また,後段処理用シェーダ63は,シェーダプログラム61のうち前段処理用シェーダ62以外のシェーダコードである。後段処理用シェーダ63には,少なくとも,テクスチャ処理及びシェーディング処理に必要な機能が含まれる。例えば,後段処理用シェーダ63には,テクスチャ処理やシェーディング処理の他にも,環境マッピング処理や,光の屈折率の計算処理等が含まれていてもよい。
また,図1に示されるように,コンパイラ処理部10は,フロントエンド処理部11と,機能抽出部12と,バックエンド処理部13と,を有している。コンパイラ処理部10では,フロントエンド処理部11が,プログラミング言語のソースコードを中間表現に変換し,バックエンド処理部13が,その中間表現をさらに変換して機械語などの出力言語のバイナリコードを生成する。このとき,バックエンド処理部13は,バックエンドにおいて高速に動作する最適化したコードを生成する。また,コンパイラ処理部10では,フロントエンド処理部11とバックエンド処理部13の間に,機能抽出部12が設けられている。機能抽出部12は,シェーダプログラム61に記述された指令のうち,ピクセルのカラー値及び奥行き値の生成に必要な機能を抽出したシェーダコード(前段処理用シェーダ62)を抽出し,それ以外の機能を持つシェーダコード(後段処理用シェーダ63)とは別に出力を行う。
フロントエンド処理部11は,グラフィックスアプリケーション60内のシェーダプログラム61が入力されると,構文解析等の一般的なフロントエンド処理を行い,シェーダ内演算機能を示す中間表現へと変換する。例えば,構文解析では,ソースプログラムの字句解析及び意味解析を行うことにより,ソースプログラムが中間表現(中間プログラム)へと変換される。
フロントエンド処理後の中間表現は,機能抽出部12において解析される。機能抽出部12は,ピクセルのカラー値及び奥行き値の生成に必要な機能の処理パターンを予め保持している。この処理パターンは,ユーザによって任意に設定されるものであってもよいし,カラー値及び奥行き値を生成するプロセッサコアの機能に応じたものであってもよい。例えば,機能抽出部12は,プロセッサコアの処理機能を解析し,当該プロセッサコアにて処理可能な形式に準拠したものを上記処理パターンとして保持していてもよい。ここで,機能抽出部12は,中間表現と,予め用意されたカラー値及び奥行き値に対する処理パターンとのマッチ処理を行う。そして,機能抽出部12は,中間表現のうち,上記処理パターンとマッチした部分(機能)を,カラー値及び奥行き値の生成に必要な機能として抽出する。マッチングに必要な処理パターンは,画像処理装置1が具備するプロセッサコアの能力を分析して,そのプロセッサコアにおいて実行可能な処理パターンを,予めグラフィックス処理用のローカルメモリ等に記憶しておけばよい。例えば,マッチングに必要とされる処理パターンとしては,例えば,奥行きテストやアルファテストの条件式等を含む情報を用いることができる。このようにして,機能抽出部12は,シェーダプログラム61の中から,カラー値及び奥行き値の生成に必要な機能を抽出することで,フロントエンド処理後の中間表現を,カラー値及び奥行き値の生成に必要な機能のための中間表現と,この機能以外の機能のための中間表現とに分離する。
機能抽出部12における機能抽出処理の後,バックエンド処理部13は,バックエンド処理を行なって,前段処理部30と後段処理部40のそれぞれに応じたシェーダコードを生成する。すなわち,バックエンド処理部13は,機能抽出部12によって抽出されたカラー値及び奥行き値の生成に必要な機能(中間表現)についてバックエンド処理を行うことで,前段処理用シェーダ62を出力する。同時に,バックエンド処理部13は,機能抽出部12によって抽出されなかった機能,例えばテクスチャ処理及びシェーディング処理に必要な機能(中間表現)についてバックエンド処理を行うことで,後段処理用シェーダ63を出力する。このように,バックエンド処理部13では,カラー値及び奥行き値の生成に必要な機能のための中間表現と,この機能以外の機能のための中間表現のそれぞれにバックエンド処理を行うことで,前段処理部30向けの前段処理用シェーダ62と,後段処理部40向けの後段処理用シェーダ63とを出力する。その他,バックエンド処理部13は,各中間表現を,前段処理部30に備えられたハードウェア又は後段処理部40に備えられたハードウェアにおいて,高速に動作する最適化したコードに変換する通常のバックエンド処理を行えばよい。
ここで,図2には,コンパイラ処理部10による処理工程の一実施形態が示されている。図2に示されるように,コンパイラ処理部10に入力されたシェーダプログラムは,構文解析などのフロントエンド処理が行われた後,シェーダ内演算機能を示す中間表現への変換処理が行われる。その後,変換された中間表現と,事前に用意されたカラー値及び奥行き値に対する処理パターンとのパターンマッチ処理が行われる。そして,中間表現のうち,カラー値及び奥行き値に対する処理パターンとマッチした部分は,バックエンド処理を経て,前段処理用シェーダ62としてとして出力処理される。他方,中間表現のうち,カラー値及び奥行き値に対する処理パターンとマッチしなかった部分は,バックエンド処理を経て,後段処理用シェーダ63として出力処理される。
なお,本実施形態において,上記コンパイラ処理部10によるコンパイラ処理は,グラフィックスアプリケーション60の実行時に行われるものであるが,例えば,コンパイラ処理は,アプリケーション実行前に事前に行われるものであってもよい。例えば,グラフィックスアプリケーション60の実行前に,このグラフィックスアプリケーション60を解析し,カラー値及び奥行き値に対する処理パターンとマッチングした部分を抽出して予め保持しておくこととしてもよい。
その後,上記コンパイラ処理部10から出力された前段処理用シェーダ62と後段処理用シェーダ63とを含むグラフィックスプログラムを用いて,図1の下段に示したグラフィックスパイプラインにより,実際のグラフィックス描画処理が行われる。
図1に示されるように,グラフィックスパイプラインにおいては,まず,空間インデックス追加部20に,グラフィックスアプリケーション60内のポリゴンを構成する頂点データが入力される。空間インデックス追加部20は,入力された各頂点データについて頂点処理を行うと共に,空間インデックスを生成し,空間インデックス付き頂点バッファ21を作成する機能を持つ。
図3には,空間インデックス追加部20によって行われる処理のフローが示されている。図3に示されるように,空間インデックス追加部20は,まず,グラフィックスアプリケーションから頂点データとポリゴンの構成データを読み込んで,頂点処理を行う。すなわち,グラフィックスアプリケーションには,例えばゲーム空間内のキャラクタや構造物等のオブジェクトに関し,このオブジェクトをポリゴンでモデリングしたときの頂点の座標情報を含む頂点データと,どの頂点を結んでポリゴンが構成されるかを示す情報を含んだ構成情報が含まれている。このため,空間インデックス追加部20は,グラフィックスアプリケーションから,これらの頂点データとポリゴンの構成情報とを読み込む。そして,空間インデックス追加部20は,読み込んだ頂点データとポリゴンの構成情報に基づいて,頂点処理を実行する。この頂点処理には,例えば,座標変換処理や照度計算処理などが含まれる。
頂点処理について具体的に説明すると,空間インデックス追加部20は,まず,グラフィックスアプリケーションから,モデリングされたオブジェクトのローカル座標を含む頂点データを取得し,取得した頂点データのローカル座標を,ワールド座標に変換する。この第1の座標変換は,1つのワールド座標系の所定の位置に,オブジェクトを配置するために行うものであり,ローカル座標系からワールド座標系への座標変換が実行される。なお,第1の座標変換において,オブジェクトの向き指定する回転角,位置を指定する並進ベクトル,大きさを指定するスケール比等のパラメータがメモリから読み出される。次に,空間インデックス追加部20は,ワールド座標系におけるオブジェクトの座標を,カメラ位置を原点としてカメラから見たカメラ座標系でのワールド座標へと座標変換する。この第2の座標変換を行なって,視点をカメラ位置に決定し,カメラの方向やズームレベルを指定することにより,オブジェクトを投影するスクリーンが決定される。また,空間インデックス追加部20は,特定の光源位置から照射される光をオブジェクトに当てたときの各頂点における照度の計算を行う。また,空間インデックス追加部20は,特定の光源位置から照射される光をオブジェクトに当てたときの各頂点の色などの他の特性についても,同様に計算を行う。最後に,空間インデックス追加部20は,ディスプレイの解像度等を含んだディスプレイ情報を読み出し,3次元のワールド座標をスクリーンに投影する座標変換を行う。この第3の座標変換によって,3次元の仮想空間上にある頂点の座標は,2次元のスクリーン座標に変換される。このように,空間インデックス追加部20は,頂点処理を行なって,ローカル座標系で定義されたオブジェクトの頂点データを,スクリーン平面上の2次元座標と照度等の頂点の特性を示す情報を含んだ頂点データに変換にする。これにより,空間インデックス追加部20は,上記頂点処理済みの頂点データを得ることができる。
上記頂点処理後,空間インデックス追加部20は,ユーザから与えられた空間情報に基づき,頂点処理による変換後の座標系において,空間インデックスを生成する。後述するように,本発明において前段処理部30は,空間ごとにラスタライズ処理を行うものであるが,ここで作成される空間インデックスは,前段処理部30がラスタライズ処理を行う空間を定義する参照値となる。すなわち,空間インデックスは,グラフィックス処理が行われる空間の位置,大きさ,及び範囲を定義する情報である。そして,空間インデックス追加部20は,空間インデックスの生成処理後,ポリゴンの構成情報と,頂点処理済みの頂点データと,生成した空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファ21を作成する。なお,この空間インデックス付き頂点バッファ21は,ローカルメモリに設けられることとすればよい。
ここで,図4には,空間インデックス付き頂点バッファ21内のデータ構造の一例が示されている。図4に示されるように,空間インデックス付き頂点バッファ21内のデータには,ポリゴンを構成する頂点データを示す情報(ポリゴンの構成データ)と,各頂点データの座標情報と共に,ポリゴンが属する空間を示す情報(空間インデックス)が登録されている。例えば,図4に示された例を参照して説明すると,空間インデックス付き頂点バッファ21内のデータを見れば,三角形0は,v,v,及びvの頂点により構成されることがわかる。また,頂点vの座標は(x,y,z)であり,頂点vの座標は(x,y,z)であり,頂点vの座標は(x,y,z)である。また,各頂点v〜vの座標値も,空間インデックス付き頂点バッファ21内に登録されている。さらに,三角形0は,頂点処理による変換後の座標系において,Spaseとして定義されている空間に属していることがわかる。このように,空間インデックス付き頂点バッファ21は,各ポリゴンが空間インデックスにより定義される空間に属するものであるか否かを示すと共に,ポリゴンが空間内に属するものである場合に,どの空間に属するものであるかを示している。また,空間インデックス付き頂点バッファ21を参照すると,空間インデックスにより定義される空間は,SpaseとSpaseとが存在していることがわかる。このように,本発明では,複数の空間に分割される。さらに,空間Spaseと空間Spaseとは,互いに一部が重畳している。このように,本発明では,複数の空間は互いに画一的に区分けされている必要はなく,一部が重畳したものであってもよい。さらに,図4に示された例では,三角形1は,頂点処理による変換後の座標系において,Spaseとして定義されている空間,及びSpaseとして定義されている空間の両方に跨って属していることがわかる。このように,本発明では,1つのポリゴン(三角形)が,複数の空間に跨って存在することも考えうる。
上述したように,本発明は,頂点処理による変換後の座標系を複数の空間に分割した上で,その後のグラフィックス描画処理を行う。この各空間を定義する空間インデックスは,ユーザが任意に決定することができる。例えば,ユーザは,空間を区画する空間インデックスとして,各空間を構成する各頂点の座標値や,各空間を構成する複数の頂点を示す空間構成情報を指定すればよい。すなわち,空間インデックスには,各空間を構成する各頂点の座標値や,各空間の構成情報が含まれる。これらの空間を構成する頂点の座標値や構成情報は,空間インデックス付き頂点バッファ21に記憶されている。また,空間の形状は,円形,三角形,又は四角形であってもよいし,五角形以上の多角形であってもよい。さらに,図4に示されるように,複数の空間は互いに一部が重畳するものであってもよい。
また,空間インデックスを作成するにあたり,この空間インデックスにより定義される空間の中にポリゴン全体やポリゴンを構成する頂点が属するか否かを判定することとしてもよい。例えば,空間の形状が矩形である場合には,
−w≦x≦w,
−w≦y≦w,
−w≦z≦w,
のような判定式を用いればよい。
他方,空間が任意形状の場合,クリッピングインデックスを定義するためには,例えば空間が4辺によって定義される場合を例に挙げて説明すると,
x+by+c= 0
x+by+c= 0
x+by+c= 0
x+by+c= 0
のような3つ以上の直線の方程式により空間を定義し,これら式に判定する対象(ポリゴンの頂点)のx,y座標を代入することで,計算結果の符号により空間の内外判定を行うことができる。なお,z方向については従来通り−w<z<wのような判定式で合わせて行うことも出来る。また,空間インデックスを生成する処理は,空間インデックス追加部20が,グラフィックスアプリケーション内の頂点シェーダプログラムに従って行うものであってもよい。
空間インデックス追加部20による処理の終了後,前段処理部30は,空間インデックス付き頂点バッファ21を読み込み,ポリゴンの構成情報と頂点処理済みの頂点データに基づいて,変換後の座標系におけるポリゴンを再構築する。そして,前段処理部30は,空間インデックスにより定義される空間ごとに,再構築したポリゴンに対しラスタライズ処理を行い,ピクセルに変換する。すなわち,前段処理部30は,ラスタライズ処理を行うことにより,3次元空間上のポリゴンを投影変換により描画平面上のフラグメントに変換するビュー変換を行うと共に,さらに,描画平面上のフラグメントを描画平面の水平方向に沿ってスキャンしながら,ラスタライン毎に量子化されたピクセルに変換する。このラスタライズ処理を行うにあたり,前段処理部30は,空間インデックス付き頂点バッファ21を参照し,空間インデックスにより定義される空間ごとに,ラスタライズ処理を実行する。このため,前段処理部30は,ユーザによる画面操作などにより,描画の更新が必要となった空間のみについてラスタライズ処理を行うことができる。例えば,前段処理部30は,現在描画処理を行なっているフレームと処理済みのフレーム(例えば既に処理を行った1つ前のフレーム)とを比較し,処理済みのフレームに対し変化があったと判定した空間についてのみラスタライズ処理を実行することとすればよい。他方,前段処理部30は,現在描画処理を行なっているフレームと処理済みのフレームとを比較し,処理済みのフレームに対し変化がないと判定した空間については,当該処理済みのフレームを構成しているピクセル情報を援用することで,ラスタライズ処理を省略することが可能になる。これにより,フレーム全体の描画を更新する必要がなくなり,更新が必要な空間についての処理を高速で行うことができる。
上記のように,本発明の画像処理装置は,空間インデックスを生成し,この空間インデックスに基づいた空間分割描画を行うことで,ユーザの画面操作等により描画の更新が必要となった場合には,その描画の更新が必要な空間のみについてポリゴンの描画更新を実行することができるようになる。これにより,本発明は,描画処理を高速化し,描画遅延を最小に抑えることができる。また,本発明における空間分割は,フレームを画一的に複数の領域(タイル)に分割するものではなく,任意に与えられる空間インデックスに基づいて,カメラ座標系における空間を複数の領域に分割することが可能であるため,グラフィックスの性質等に応じて柔軟に空間の大きさ等を決定することができる。また,ローカルのバッファ内で描画処理を行うことができるため,外部メモリへのアクセスを低減させることが可能であり,結果として,消費電力やメモリアクセスの際のオーバヘッドが低下し,グラフィックス処理の高速化を達成できる。
前段処理部30は,上記ラスタライズ処理の後,コンパイラ処理部10から出力された前段処理用シェーダ62をロードして,この前段処理用シェーダ62に基づいた処理を実行する。すなわち,前段処理用シェーダ62には,カラー値及び奥行き値の生成に必要な機能が記述されている。このため,前段処理部30は,前段処理用シェーダ62に従い,ラスタライズ処理により得られた各ピクセルについて,少なくとも,RGB3原色で表されるカラー値や,奥行きを示す奥行き値(Z値)を算出する。このとき,前段処理用シェーダ62は,カラーの透明度を示すアルファ値を求めることとしてもよい。ただし,前段処理部30による前段処理には,ポリゴンの表面にテクスチャ画像を貼り付けるテクスチャ処理や,ポリゴン表面に陰影をつけるシェーディング処理などは行われない。これらの,テクスチャ処理やシェーディング処理が必要である場合,これらの処理は,後述する後段処理部40によって行われる。
前段処理部30は,ポリゴンから変換されたフラグメントに対して,ブレンディングや,アルファテスト,奥行きテストを実行し,ピクセルのカラー値及び奥行き値を求め,そのレンダリングの結果をピクセルデータとして,カラー・奥行き値バッファ32に書き込む。このカラー・奥行き値バッファ32は,ローカルメモリ内に設けられたものであることが好ましい。
前段処理部30による処理の後,後段処理部40は,カラー・奥行き値バッファ32を読み込み,ラスタライズ処理済みのピクセルの奥行き値を参照して,画面上に表示するために,カラー値を出力カラーバッファ51に書き込むピクセルを決定する。すなわち,後段処理部40は,ラスタライズ処理済みのピクセルの奥行き値に基づいて奥行きテストを行い,この奥行きテストに合格したピクセルのカラー値を,出力カラーバッファ51に書き込むものとして決定すればよい。なお,この出力カラーバッファ51に書き込むピクセルを決定する処理は,前段処理部30によって行うこととしてもよい。
その後,後段処理部40は,コンパイラ処理部10から出力された後段処理用シェーダ63をロードし,出力カラーバッファ51にカラー値を書き込むことを決定したピクセルについて,ロードした後段処理用シェーダ63に基づいた描画処理を行う。すなわち,後段処理用シェーダ63には,シェーダプログラムのうちのカラー・奥行き値の生成に必要な機能以外の機能が記述されている。例えば,この後段処理用シェーダ63には,少なくとも,テクスチャ処理及びシェーディング処理が含まれる。このため,後段処理部40は,後段処理用シェーダ63に従い,前段処理部30により算出されたピクセル情報をもとに,シェーディング処理を行って,シェーディング処理後のピクセルのカラー値を算出する。さらに,後段処理部40は,テクスチャマッピングを行う場合は,テクスチャ画像のカラー値を合成して最終的なピクセルのカラー値を算出する。
このように,本発明の画像処理装置は,シェーダプログラム61を,主としてカラー・奥行き値の生成に必要な機能を持つ前段処理用シェーダ62と,主としてテクスチャ・シェーディング処理に必要とされる後段処理用シェーダ63とに分割すると共に,この前段処理用シェーダ62に基づいて前段処理部30によってピクセルを処理した後,テクスチャ・シェーディング処理が必要なピクセルのみを後段処理部40に入力して後段処理用シェーダ63に基づいた処理を実行するものである。従って,後段処理部40においては不必要なピクセル処理を行う必要がなくなるため,処理時間の低減を図ることができる。
また,図1に示されるように,前段処理部30は,前段プロセッサコア31を備え,後段処理部40は,後段プロセッサコア41を備える。前段プロセッサコア31は,前段処理部30おけるラスタライズ処理を実行するハードウェアであり,後段プロセッサコア41は,後段処理部40におけるテクスチャ処理やシェーディング処理を実行するハードウェアである。これらの,前段プロセッサコア31と後段プロセッサコア41は,ハードウェア的に互いに異なるものであることが好ましい。本発明において,前段処理部30の前段プロセッサコア31が処理するシェーダコード(前段処理用シェーダ62)は,コンパイラ処理部10よってカラー値及び奥行き値の生成に必要な機能に限定して抽出されたものである。従って,前段プロセッサコア31は,不要な処理が省かれたシェーダコードを処理すればよいため,そのサイズを最小限のものとすることができ,結果としてコスト低減に繋がる。また,後段処理部40に含まれる後段プロセッサコア41には,カラー・奥行き値バッファ32に記憶されているピクセルの奥行き値に基づく奥行きテストに合格したピクセルデータのみが入力されることが好ましい。例えば,後段処理部40は,後段プロセッサコア41の他に,奥行きテストを実行する別のハードウェアを備えていてもよい。また,奥行きテストを実行して出力カラーバッファ51にカラー値を書き込むピクセルを決定する処理は,前段処理部30を構成するハードウェア,例えば前段プロセッサコア31によって行われるものであってもよい。なお,前段処理部30と後段処理部40とを異なるハードウェアで構成する形態は,本発明の好ましい形態であり,他の実施形態においては,前段処理部30と後段処理部40とが実質的に同一のハードウェアにより構成されたものであってもよい。
後段処理部40による処理の後,前段処理部30及び後段処理部40によるピクセル処理により得られた最終的なピクセルのカラー値は,ピクセル出力部50に入力される。ピクセル出力部50は,後段処理部40から最終的なピクセルのカラー値を受け取り,出力カラーバッファ51に出力する。出力カラーバッファ51は,ピクセルのカラー値をスクリーン座標に対応付けて格納するバッファであり,格納されたピクセルのカラー値は,ディスプレイ装置に画像を表示する際に参照される。
ここで,図5には,本発明の画像処理装置の変形例の構成が示されている。図5に示された変形例では,前段処理部30と後段処理部40の間に,スペースクリップ処理部70が設けられる。スペースクリップ処理部70は,前段処理部30によるラスタライズ処理後に,クリッピング処理を行う。クリッピング処理は,オブジェクトのスクーンへの投影像が予め定義されたスペースからはみ出した場合に,そのはみ出した部分について,オブジェクトのピクセルデータをカットする処理である。スクリーンに表示するためのスペースに関する情報は,グラフィックスアプリケーション60に含まれている。このため,スペースクリップ処理部70は,グラフィックスアプリケーション60に含まれる情報に基づいて,上記したクリッピング処理を行うことができる。クリッピング処理後のピクセル情報は,後段処理部40に入力され,前述したテクスチャ処理やシェーディング処理が施される。スペースからはみ出した部分はディスプレイに描画する必要がないものであるため,上記したクリッピング処理を行うことで,後段処理部40によって無駄なピクセル処理をしなくて済むようになる。
[2.コンピュータ]
図6は,本発明の一実施態様に係るコンピュータを示すブロック図である。この実施態様は,コンピュータグラフィックスによるコンピュータ(グラフィック用コンピュータなど)に関する。図6に示されるとおり,このコンピュータは,中央演算装置(CPU)102,ジオメトリ演算回路103などのジオメトリ演算部,レンダラー104などの描画部,テクスチャ生成回路105などのテクスチャ生成部,照明処理回路107などの照光処理部,表示回路108などの表示情報作成部,フレームバッファ109,及びモニター110を具備する。これらの要素は,バスなどにより接続され,相互にデータを伝達できる。そのほか,図示しないメインメモリや,各種テーブル,ワーク領域となるワークメモリ111,テクスチャを格納するテクスチャメモリ112などを具備する記憶部などを有してもよい。各部を構成するハードウェアは,例えばバスなどを介して連結されている。なお,記憶部は,VRAMなどのRAMや,CR−ROM,DVD,ハードディスクなどにより構成されても良い。本発明に係る画像処理装置は,このようなコンピュータグラフィックス用のコンピュータに具備されて,実装されたものであってもよい。
中央演算装置(CPU)102は,画像を生成するためのプログラムなどを制御するための装置である。ワークメモリ111は,CPU102で使用するデータ及びディスプレイリストなどを記憶してもよい。そして,CPU102は,メインメモリに記憶されたプログラムなどを読み出して,所定の処理を行ってもよい。ただし,ハードウェア処理のみにより所定の処理を行っても良い。CPU102は,たとえばワークメモリ111から,ワールド座標の3次元オブジェクトデータとしてのポリゴンデータを読出し,ポリゴンデータをジオメトリ演算回路103へ出力する。具体的には,メインプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などを適宜有するものがあげられる。これらはバスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
具体的に説明すると,ジオメトリ演算回路103は,入力されたポリゴンデータに対して,視点を原点とするカメラ座標系のデータに座標変換などを行うための回路である。ジオメトリ演算回路103は,処理したポリゴンデータを,レンダラー104へ出力する。具体的なジオメトリ演算回路としては,前記メインプロセッサとバスなどで連結された,ジオメトリプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
レンダラー104は,ポリゴン単位のデータをピクセル単位のデータに変換するための回路又は装置である。レンダラー104は,ピクセル単位のデータをテクスチャ生成回路105へ出力する。具体的なレンダラー104としては,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
テクスチャ生成回路105は,テクスチャメモリ112に記憶されるテクスチャデータに基づき,ピクセル単位のテクスチャカラーを生成するための回路である。テクスチャ生成回路105は,テクスチャカラー情報を有するピクセル単位のデータを,照明処理回路107へ出力する。具体的なテクスチャ生成回路105としては,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
照明処理回路107は,テクスチャカラー情報を有するポリゴンに対し,ピクセル単位で法線ベクトル,重心座標などを利用して陰影付けなどを行うための回路である。照明処理回路107は,陰影付けした画像データを,表示回路108へ出力する。具体的な照明処理回路107としては,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。そして,メモリに格納されたテーブルなどから適宜光に関する情報を読み出して陰影付けを行えばよい。
表示回路108は,照明処理回路107から入力された画像データをフレームバッファ109に書き込み,またフレームバッファ109に書き込まれた画像データを読み出し,制御して表示画像情報を得るための回路である。表示回路108は,表示画像情報をモニター110へ出力する。具体的な表示回路としては,前記メインプロセッサとバスなどで連結された描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
モニター110は,入力された表示画像情報にしたがって,コンピュータグラフィックス画像を表示するための装置である。
[3.ゲーム機]
図7は,本発明の他の実施形態に係るゲーム機のブロック図である。このブロック図で表される実施形態は,特に携帯用,家庭用又は業務用のゲーム機として好適に利用されうる。そこで,以下では,ゲーム機として説明する。なお,同図に示されるゲーム機は,少なくとも処理部200を含めばよく(又は処理部200と記憶部270,又は処理部200と記憶部270と情報記憶媒体280を含んでもよく),それ以外のブロック(例えば操作部260,表示部290,音出力部292,携帯型情報記憶装置294,通信部296)については,任意の構成要素とすることができる。本発明に係る画像処理装置は,このようなゲーム機に具備されて,実装されたものであってもよい。
処理部200は,システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。処理部200の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
操作部260は,プレーヤが操作データを入力するためのものである。操作部260は,の機能は,例えば,レバー,ボタン,外枠,及びハードウェアを備えたコントローラにより実現できる。なお,特に携帯用ゲーム機の場合は,操作部260は,ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は,シリアルインターフェース(I/F)やバスを介してメインプロセッサなどに伝えられる。
記憶部270は,処理部200や通信部296などのワーク領域となるものである。また,プログラムや各種テーブルなどを格納しても良い。記憶部270は,例えば,メインメモリ272,フレームバッファ274,及びテクスチャ記憶部276を含んでもよく,そのほか各種テーブルなどを記憶しても良い。記憶部270の機能は,ROMやRAMなどのハードウェアにより実現できる。RAMとして,VRAM,DRAM又はSRAMなどがあげられ,用途に応じて適宜選択すればよい。フレームバッファ274を構成するVRAMなどは,各種プロセッサの作業領域として用いられる。
情報記憶媒体(コンピュータにより使用可能な記憶媒体)280は,プログラムやデータなどの情報を格納するものである。情報記憶媒体280は,いわゆるゲームソフトなどとして販売されうる。そして,情報記憶媒体280の機能は,光ディスク(CD,DVD),光磁気ディスク(MO),磁気ディスク,ハードディスク,磁気テープ,又はメモリ(ROM)などのハードウェアにより実現できる。処理部200は,この情報記憶媒体280に格納される情報に基づいて種々の処理を行う。情報記憶媒体280には,本発明(本実施形態)の手段(特に処理部200に含まれるブロック)を実行するための情報(プログラム又はプログラム及びデータ)が格納される。
表示部290は,本実施形態により生成された画像を出力するものであり,その機能は,CRT(ブラウン管),LCD(液晶),OEL(有機電界発光素子),PDP(プラズマディスプレイパネル)又はHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部292は,音を出力するものである。音出力部292の機能は,スピーカなどのハードウェアにより実現できる。音出力は,例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより,音処理が施され,スピーカなどの音出力部から出力される。
携帯型情報記憶装置294は,プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置294としては,メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置294の機能は,メモリカード,フラッシュメモリ,ハードディスク,USBメモリなど公知の記憶手段により達成できる。
通信部296は,外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行う任意のものである。通信部296の機能は,各種プロセッサ,又は通信用ASICなどのハードウェアや,プログラムなどにより実現できる。
ゲーム機を実行するためのプログラム又はデータは,ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部296を介して情報記憶媒体280に配信するようにしてもよい。
処理部200は,ゲーム処理部220,画像処理部230,及び音処理部250を含むものがあげられる。具体的には,メインプロセッサ,コプロセッサ,ジオメトリプロセッサ,描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ここでゲーム処理部220は,コイン(代価)の受け付け処理,各種モードの設定処理,ゲームの進行処理,選択画面の設定処理,オブジェクトの位置や回転角度(X,Y又はZ軸回り回転角度)を求める処理,オブジェクトを動作させる処理(モーション処理),視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理,マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理,ヒットチェック処理,ゲーム結果(成果,成績)を演算する処理,複数のプレーヤが共通のゲーム空間でプレイするための処理,又はゲームオーバー処理などの種々のゲーム処理を,操作部260からの操作データや,携帯型情報記憶装置294からの個人データ,保存データや,ゲームプログラムなどに基づいて行う。
画像処理部230は,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行うものである。また,音処理部250は,ゲーム処理部220からの指示等にしたがって,各種の音処理を行う。
ゲーム処理部220,画像処理部230,音処理部250の機能は,その全てをハードウェアにより実現してもよいし,その全てをプログラムにより実現してもよい。又は,ハードウェアとプログラムの両方により実現してもよい。画像処理部230は,ジオメトリ演算部232(3次元座標演算部),描画部240(レンダリング部)を含むものがあげられる。
ジオメトリ演算部232は,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。
描画部240は,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどに基づいて,オブジェクトをフレームバッファ274に描画する。
描画部240は,例えば,テクスチャマッピング部242,シェーディング処理部244を含むものがあげられる。具体的には,描画プロセッサにより実装できる。描画プロセッサは,テクスチャ記憶部,各種テーブル,フレームバッファ,VRAMなどとバスなどを介して接続され,更にディスプレイと接続される。
テクスチャマッピング部242は,環境テクスチャをテクスチャ記憶部276から読み出し,読み出された環境テクスチャを,オブジェクトに対してマッピングする。
シェーディング処理部244は,オブジェクトに対するシェーディング処理を行う。例えば,ジオメトリ処理部232が光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点の輝度(RGB)を求める。シェーディング処理部244は,この各頂点の輝度に基づいて,プリミティブ面(ポリゴン,曲面)の各ドットの輝度を例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
ジオメトリ演算部232は,法線ベクトル処理部234を含むものがあげられる。法線ベクトル処理部234は,オブジェクトの各頂点の法線ベクトル(広義にはオブジェクトの面の法線ベクトル)を,ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。
なお,ゲーム機における構成を適宜利用すれば,スロットマシーンやパチンコ遊技機などにおける画像表示装置としても機能しうるものを得ることができる。
本発明は,空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法等に関する。従って,本発明はコンピュータ産業において好適に利用されうる。
1…画像処理装置
10…コンパイラ処理部
11…フロントエンド処理部
12…機能抽出部
13…バックエンド処理部
20…空間インデックス追加部
21…空間インデックス付き頂点バッファ
30…前段処理部
31…前段プロセッサコア
32…カラー・奥行き値バッファ
40…後段処理部
41…後段プロセッサコア
50…ピクセル出力部
51…出力カラーバッファ
60…グラフィックスアプリケーション
61…シェーダプログラム
62…前段処理用シェーダ
63…後段処理用シェーダ
70…スペースクリップ処理部

Claims (7)

  1. コンピュータグラフィックス処理用の画像処理装置であって,
    グラフィックスアプリケーション内のシェーダプログラムを読み込み,カラー・奥行き値の生成に必要な機能を抽出した前段処理用シェーダコードと,当該前段処理用シェーダコードに含まれていないテクスチャ・シェーディング処理を含む後段処理用シェーダコードとを,出力するコンパイラ処理部(10)と,
    グラフィックスアプリケーション内のポリゴンを構成する頂点データを読み込んで,座標変換を含む頂点処理を行い,処理済み頂点データを得ると共に,変換後の座標系における空間インデックスを生成し,当該ポリゴンの構成情報,当該処理済み頂点データ,及び当該空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファ(21)を作成する空間インデックス追加部(20)と,
    前記空間インデックス付き頂点バッファ(21)を読み込んでポリゴンを構築し,前記空間インデックスにより定義される空間ごとに,当該ポリゴンにラスタライズ処理を行なってピクセルに変換し,前記前段処理用シェーダコードに基づいて,ラスタライズ処理済みのピクセルのカラー値及び奥行き値を生成する前段処理部(30)と,
    前記ラスタライズ処理済みのピクセルの奥行き値を参照して出力カラーバッファ(51)に書き込むことが決定されたピクセルについて,前記後段処理用シェーダコードに基づいたテクスチャ・シェーディング処理を行い,テクスチャ・シェーディング処理済みのピクセルのカラー値を生成する後段処理部(40)と,
    前記前段処理部(30)及び前記後段処理部(40)により得られたピクセルのカラー値を出力カラーバッファ(51)に出力するピクセル出力部(50)と,を備える
    画像処理装置。
  2. 前記前段処理部(30)は,前記ラスタライズ処理を行う前段プロセッサコア(31)を有し,
    前記後段処理部(40)は,前記テクスチャ・シェーディング処理を行う後段プロセッサコア(41)を有し,
    前記前段プロセッサコア(31)と後段プロセッサコア(41)は,異なるハードウェアである
    請求項1に記載の画像処理装置。
  3. 前記空間インデックス追加部(20)は,ユーザによって任意に与えられた空間情報に基づいて空間分割を行い,前記空間インデックスを生成する
    請求項1又は請求項2に記載の画像処理装置。
  4. 前記コンパイラ処理部(10)は,
    前記シェーダプログラムに対してフロントエンド処理を行い,中間表現へと変換するフロントエンド処理部(11)と,
    前記中間表現と,事前に用意されたカラー・奥行き値の生成に関する処理パターンとのターンマッチ処理を行うことにより,当該中間表現から,カラー・奥行き値の生成に必要な機能を抽出する機能抽出部(12)と,
    前記中間表現に対してバックエンド処理を行い,前記機能抽出部(12)が抽出した前記カラー・奥行き値の生成に必要な機能を前段処理用シェーダコードとして出力すると共に,前記シェーダプログラムのうちの前記カラー・奥行き値の生成に必要な機能以外の機能を後段処理用シェーダコードとして出力するバックエンド処理部(13)と,を有する
    請求項1から請求項3のいずれかに記載の画像処理装置。
  5. コンピュータグラフィックス処理用の画像処理装置により実行される画像処理方法であって,
    前記画像処理装置が,
    グラフィックスアプリケーション内のシェーダプログラムを読み込み,カラー・奥行き値の生成に必要な機能を抽出した前段処理用シェーダコードと,当該前段処理用シェーダコードに含まれていないテクスチャ・シェーディング処理を含む後段処理用シェーダコードとを,出力するコンパイラ処理工程と,
    グラフィックスアプリケーション内のポリゴンを構成する頂点データを読み込んで,座標変換を含む頂点処理を行い,処理済み頂点データを得ると共に,変換後の座標系における空間インデックスを生成し,当該ポリゴンの構成情報,当該処理済み頂点データ,及び当該空間インデックスを関連付けて記憶した空間インデックス付き頂点バッファ(21)を作成する空間インデックス追加工程と,
    前記空間インデックス付き頂点バッファ(21)を読み込んでポリゴンを構築し,前記空間インデックスにより定義される空間ごとに,当該ポリゴンにラスタライズ処理を行なってピクセルに変換し,前記前段処理用シェーダコードに基づいて,ラスタライズ処理を行ったピクセルのカラー値及び奥行き値を生成する前段処理工程と,
    前記ラスタライズ処理済みのピクセルの奥行き値を参照して出力カラーバッファ(51)に書き込むことが決定されたピクセルについて,前記後段処理用シェーダコードに基づいたテクスチャ・シェーディング処理を行い,テクスチャ・シェーディング処理を行ったピクセルのカラー値を生成する後段処理工程と,
    前記前段処理工程及び前記後段処理工程により得られたピクセルのカラー値を出力カラーバッファ(51)に出力するピクセル出力工程と,を行う
    画像処理方法。
  6. 請求項1に記載の画像処理装置を具備するコンピュータ。
  7. 請求項1に記載の画像処理装置を具備するゲーム機。
JP2013096577A 2013-05-01 2013-05-01 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 Active JP5864474B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013096577A JP5864474B2 (ja) 2013-05-01 2013-05-01 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013096577A JP5864474B2 (ja) 2013-05-01 2013-05-01 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2014219739A JP2014219739A (ja) 2014-11-20
JP5864474B2 true JP5864474B2 (ja) 2016-02-17

Family

ID=51938150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013096577A Active JP5864474B2 (ja) 2013-05-01 2013-05-01 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP5864474B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361697B1 (en) * 2014-12-23 2016-06-07 Mediatek Inc. Graphic processing circuit with binning rendering and pre-depth processing method thereof
JP2022137826A (ja) 2021-03-09 2022-09-22 株式会社Mawari 3dオブジェクトのストリーミング方法、装置、及びプログラム
CN114820990B (zh) * 2022-06-29 2022-09-20 浙江远算科技有限公司 一种基于数字孪生的流域防洪可视化方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944697A (ja) * 1995-07-27 1997-02-14 Toshiba Corp 図形描画装置
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
EP3385913B1 (en) * 2008-09-22 2020-04-01 Imagination Technologies Limited Systems and methods for a ray tracing shader api
JP5296656B2 (ja) * 2009-10-26 2013-09-25 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法
US9619918B2 (en) * 2011-04-28 2017-04-11 Digital Media Professionals Inc. Heterogenious 3D graphics processor and configuration method thereof

Also Published As

Publication number Publication date
JP2014219739A (ja) 2014-11-20

Similar Documents

Publication Publication Date Title
US10510183B2 (en) Graphics processing enhancement by tracking object and/or primitive identifiers
EP3308359B1 (en) Rendering using ray tracing to generate a visibility stream
CN106575228B (zh) 图形处理中的渲染目标命令重新排序
CN106233326B (zh) 图形处理中基于显现目标的灵活显现
CN110084875B (zh) 使用计算着色器作为顶点着色器的前端
CN105518742B (zh) 用于图形处理的任意控制点处的容错抢占机制
JP5866457B2 (ja) オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替
CN103946895B (zh) 基于平铺块的呈现中的镶嵌方法和设备
EP2946364B1 (en) Rendering graphics data using visibility information
CN110097625B (zh) 片段着色器执行顶点着色器计算
US7394464B2 (en) Preshaders: optimization of GPU programs
US20100188404A1 (en) Single-pass bounding box calculation
JP5864474B2 (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
US10062140B2 (en) Graphics processing systems
CN114902274A (zh) 混合分箱
Es et al. Accelerated regular grid traversals using extended anisotropic chessboard distance fields on a parallel stream processor
JP6205200B2 (ja) ソート機能を持つ画像処理装置及び画像処理方法
JP2007272389A (ja) プログラム、情報記録媒体および画像生成システム
KR20230028373A (ko) 비닝 하드웨어에서 세분화 재생 제어
JP2014229217A (ja) 2次元グラフィックス処理の高速化を図る画像処理装置及び画像処理方法
ARCH for the degree of Master of Science in the Department of Game Technologies
Bateman et al. Optimizing Tips and Tricks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151224

R150 Certificate of patent or registration of utility model

Ref document number: 5864474

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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