JP6205200B2 - ソート機能を持つ画像処理装置及び画像処理方法 - Google Patents

ソート機能を持つ画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP6205200B2
JP6205200B2 JP2013160491A JP2013160491A JP6205200B2 JP 6205200 B2 JP6205200 B2 JP 6205200B2 JP 2013160491 A JP2013160491 A JP 2013160491A JP 2013160491 A JP2013160491 A JP 2013160491A JP 6205200 B2 JP6205200 B2 JP 6205200B2
Authority
JP
Japan
Prior art keywords
pixel
pixel data
processing
information
processing unit
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
JP2013160491A
Other languages
English (en)
Other versions
JP2015032099A (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 JP2013160491A priority Critical patent/JP6205200B2/ja
Publication of JP2015032099A publication Critical patent/JP2015032099A/ja
Application granted granted Critical
Publication of JP6205200B2 publication Critical patent/JP6205200B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は,三次元グラフィック描画処理用の画像処理装置及び画像処理方法に関する。具体的に説明すると,本発明の画像処理装置は,各ピクセルについてシェーディング処理を行う前に,その処理順番を適切に並べ替える(ソートする)処理を行う。これにより,本発明は,同じマテリアル情報を持つ複数のピクセルデータをまとめて処理できるため,シェーディング処理の効率性を高めることができる。
従来から,ゲーム機やカーナビゲーション装置などの分野においては,3次元コンピュータグラフィックスをリアルタイムに描画する3次元画像処理装置が普及している。3次元コンピュータグラフィックスでは,一般的に,3次元空間のオブジェクトを多数のポリゴンにより表現するポリゴンモデルが利用される。ポリゴンモデルの描画処理においては,光源,視点位置,視線方向,物体表面の反射率などを考慮してポリゴン表面に陰影をつけるシェーディング処理が行われる。また,写実性の高い画像を生成するために,ポリゴンモデルの表面にテクスチャ画像を貼り付けるテクスチャマッピングも行われる。
例えば特許文献1には,3次元グラフィックの描画処理の一例が示されている。3次元グラフィックを描画する一連の処理手順は,例えば,ジオメトリ処理とレンダリング処理の2つに大別される。
ジオメトリ処理は,3次元シーンを構成するポリゴンの各頂点に幾何学処理を施し,2次元画面(スクリーン座標)の描画に使用する頂点データを求める処理である。ジオメトリ処理には,例えば,座標変換処理,クリッピング処理,及びライティング処理が含まれる。まず,座標変換処理では,ポリゴンを定義する各頂点の座標を,視点の位置や方向に合わせて2次元のスクリーン座標系へ変換する。また,ライティング処理では,各頂点と光源の距離や,各頂点と光源の角度に基づいて,その頂点の輝度を計算する。また,クリッピング処理では,表示画面の外に位置するポリゴンを取り除く処理を行う。
上記ジオメトリ処理の後には,レンダリング処理が行われる。レンダリング処理は,ジオメトリ処理で求めたポリゴンの頂点データから画素データを生成して,フレームバッファに書き込む処理である。レンダリング処理には,例えば,セットアップ処理,ラスタライズ処理,テクスチャマッピング処理,ピクセルテスト処理,ピクセルブレンディング処理,ライティング処理,及びシェーディング処理が含まれる。まず,セットアップ処理では,頂点データからラスタライズ処理に必要な増分値等のパラメータを算出する。また,ラスタライズ処理では,セットアップ処理で求められたパラメータに従って所定の補間を行い,ベクタ表現で表されているポリゴンを,ラスタ表現で表されているピクセルへと変換(ラスタ化)する。また,テクスチャマッピング処理では,各ピクセルに対してテクスチャイメージのピクセルデータを貼り付ける処理を行う。ピクセルテスト処理では,各ピクセルデータの奥行きを表すZ値の大小比較する深度テストや,アルファ値(透過度)を比較するアルファテスト等を行い,そのピクセルデータをスクリーン座標に描画するか否か,すなわちフレームバッファへ書き込むか否かを判定する。ピクセルブレンディング処理では,ピクセルテスト処理においてフレームバッファへ書き込む決定を下したピクセルのカラー値を,既にフレームバッファに書き込まれているカラー値とブレンディングしてフレームバッファへ書き込む。また,ライティング処理では,3次元シーンから2次元スクリーン空間への光反射強度や光反射率を計算する。さらに,シェーディング処理では,光の角度と光源からの距離を考慮して,オブジェクトを構成する各ピクセルのカラー値(色調や階調)を変化させ,実写のような効果を得る。
ところで,描画する3次元グラフィックスによっては,上記レンダリング処理のうちのシェーディング処理が,非常に複雑な処理(重い処理)となることがある。このような場合に,実際に描画結果として表示されないピクセルに対してまで複雑なシェーディング処理を行なってしまうと,必要のない処理を無駄に行うこととなり,描画効率が低下する。このため,従来から一般的に,複雑なシェーディング処理を行う際に,実際に描画結果として表示されないピクセルに対しては,シェーディング処理を行わないようにしている。つまり,まず,シェーディング処理を省いたレンダリング処理を行い,ピクセルのZ値,法線,テクスチャのUV座標などの情報を出力し,中間バッファに格納する。そして,その後,中間バッファに格納されているデータをテクスチャとして読み出し,中間バッファに格納されているピクセル(実際に表示させるためのピクセル)についてのみ,シェーディング処理を行う。これにより,実際に表示されないピクセルに対しては,シェーディング処理を行わなくて済むようになる。
特開2003−271986号公報
しかしながら,上記のように中間バッファを形成する場合,この中間バッファには,複数の異なるマテリアル情報が付加されたピクセルデータが混在することとなる。マテリアル情報の例は,ピクセルによって現されるオブジェクトの物体特性を示す情報である。例えば,物体特性の情報には,例えば,オブジェクトのカラー情報(色調や階調)や,双方向反射率分布関数(BRDF)によって定義される情報が含まれている。このように,中間バッファ内に異なるマテリアル情報が付加されたピクセルデータが混在していると,中間バッファからピクセルデータを読み出してシェーディング処理を行う際に,各マテリアルに対応する機能の切り替え処理が頻繁に発生する。例えば,中間バッファ内に格納されている順番に従ってシェーディング処理を行うと,「赤」,「青」,「緑」,「青」,「赤」,「緑」のような順番で,マテリアル情報が付与されたピクセルのシェーディング処理を行う必要があるとする。ここで「赤」,「青」,「緑」のマテリアル情報を持つピクセルは,それぞれ,ハードウェア的若しくはソフトウェア的に異なる機能で処理する必要がある。このため,「赤」のマテリアル情報を持つピクセルデータの次に「青」のマテリアル情報を持つピクセルデータを処理するときには,「赤」のマテリアルから「青」のマテリアルに対応する機能への切り替え処理が必要となっていた。
従って,中間バッファ内に異なるマテリアル情報が付加されたピクセルデータが混在していると,中間バッファからピクセルデータを読み出してシェーディング処理を行う際に,異なるマテリアルに対する機能への切り替え処理が頻繁に発生する。そうすると,3次元グラフィックスを描画するにあたり,画像処理装置全体の処理速度が低下するという問題があった。
そこで,現在では,中間バッファ内に異なるマテリアル情報が付加されたピクセルデータが混在する場合であっても,異なるマテリアル間での処理の切り替えコストを低減することができ,描画処理の効率化を図ることのできる技術が求められている。
そこで,本発明の発明者らは,上記の従来発明の問題点を解決する手段について鋭意検討した結果,中間バッファ内に格納されているピクセルデータを読み出すにあたり,同じマテリアル情報を持つピクセルデータをまとめて処理できるように,中間バッファ内のデータを並べ替える(ソートする)ことにより,異なるマテリアル間での切り替えコストを低減できるという知見を得た。そして,本発明者らは,上記知見に基づけば,従来技術の課題を解決できることに想到し,本発明を完成させた。
具体的に説明すると,本発明は以下の構成を有する。
本発明の第1の側面は,画像処理装置に関する。
本発明の画像処理装置は,ピクセル処理部と,中間バッファと,ソート処理部と,シェーディング処理部と,を備える。
ピクセル処理部は,スクリーン座標に描画することを決定したピクセルデータを中間バッファに出力する。
中間バッファには,ピクセル処理部から出力されたピクセルデータが格納される。また,中間バッファは,同一のマテリアル情報を有するピクセルデータに対しては,同じID情報を付与して記憶している。
ソート処理部は,中間バッファを解析し,ピクセルデータの処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える。すなわち,ソート処理部は,ピクセルデータの処理順番を,ID情報に基づいてソートする。
シェーディング処理部は,ソート処理部を介して中間バッファを読み込み,同一のID情報が付与されたピクセルデータごとにシェーディング処理を行う。
上記構成のように,本発明では,ソート処理部が,同一のID情報が付与されたピクセルデータを一括してシェーディングできるように,中間バッファに格納されているピクセルデータの処理順番をソートしておく。これにより,中間バッファ内に異なるマテリアル情報が付加されたピクセルデータが混在している場合であっても,異なるマテリアル間での切り替え処理を,必要最小限に抑えることができる。
本発明の画像処理装置において,マテリアル情報はピクセルのカラー値を含むことが好ましい。
上記のように,中間バッファ内に格納されているピクセルデータを,カラー値を基準にしてソートすることにより,シェーディング処理の効率化を図ることができる。
本発明の画像処理装置において,ソート処理部は,以下の処理を行うことが好ましい。
すなわち,ソート処理部は,まず,中間バッファを解析し,スクリーン座標において隣接する複数のピクセルデータを一つのピクセル群として,複数のピクセル群を形成する処理を行う。その後,ソート処理部は,ピクセル群の処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える処理を行う。
この場合に,シェーディング処理部は,ソート処理部を介して中間バッファを読み込み,同一のID情報が付与されたピクセル群ごとに,シェーディング処理を行うことが好ましい。
上記のように,複数のピクセルデータを含むピクセル群ごとにソート処理を行うことで,ピクセルデータを一つ一つソートする場合と比較して,ソート処理を高速に行うことが可能となる。また,ピクセル群ごとにソート処理をすることで,ソート処理に必要となるメモリ容量を節約することができ,回路規模を低減することが可能になる。
本発明の画像処理装置において,ソート処理部は,以下の処理を行うことが好ましい。
前記ソート処理部は,
すなわち,ソート処理部は,まず,中間バッファを解析し,スクリーン座標において隣接する複数のピクセルデータを一つのピクセル群として,複数のピクセル群を形成する処理を行う。その後,ソート処理部は,複数のピクセル群を,ピクセルデータに付与されたID情報が全て共通している第1タイプと,異なるID情報を有するピクセルデータが混在している第2タイプとに分類する処理を行う。また,ソート処理部は,第1タイプに属するピクセル群の処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える処理を行う。
この場合に,シェーディング処理部は,ソート処理部を介して中間バッファを読み込み,まず第1タイプのピクセル群についてシェーディング処理を行い,その後に第2タイプのピクセル群についてシェーディング処理を行うものであることが好ましい。このとき,シェーディング処理部は,第1タイプのピクセル群については,同一のID情報が付与されたピクセル群ごとに,シェーディング処理を行う。
上記のように,複数のピクセルデータをまとめたピクセル群を複数形成する場合,その複数のピクセル群の中には,ID情報が統一された第1タイプと,ID情報が混在している第2タイプが存在する。このような場合には,ID情報が統一された第1タイプについては,先にシェーディング処理を行い,その後にID情報が混在している第2タイプのシェーディング処理を行うことで,異なるマテリアル間での処理の切り替えを,必要最小限に抑えることが可能となる。
本発明の第2の側面は,画像処理方法に関する。
本発明に係る画像処理方法は,
ピクセル処理部が,スクリーン座標に描画することを決定したピクセルデータを出力する工程と,
ピクセル処理部により出力されたピクセルデータを,同一のマテリアル情報を有するピクセルデータに同じID情報を付与して中間バッファに記憶する工程と,
ソート処理部が,中間バッファを解析し,ピクセルデータの処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える工程と,
シェーディング処理部が,ソート処理部を介して中間バッファを読み込み,同一のID情報が付与されたピクセルデータごとに,シェーディング処理を行う工程と,を含む。
本発明の他の側面は,上記第1の側面に係る画像処理装置を具備するコンピュータである。
本発明の他の側面は,上記第1の側面に係る画像処理装置を具備するゲーム機である。
本発明によれば,中間バッファ内に異なるマテリアル情報が付加されたピクセルデータが混在する場合であっても,異なるマテリアル間での処理の切り替えコストを低減することができ,描画処理の効率化を図ることができる。
図1は,画像処理装置のブロック図であり,前段処理を行うときのフローを示している。 図2は,画像処理装置のブロック図であり,後段処理を行うときのフローを示している。 図3は,ソート処理を行わないで,中間バッファからピクセルデータを読み出したときの状態を概念的に示している。 図4は,ソート処理を行わないで,中間バッファからピクセルデータを読み出したときの状態を概念的に示している。 図5は,ソート処理におけるデータの構造例を示している。 図6は,本発明の他の実施形態に係るコンピュータを示すブロック図である。 図7は,本発明の他の実施形態に係るゲーム機を示すブロック図である。
以下,図面を用いて本発明を実施するための形態について説明する。本発明は,以下に説明する形態に限定されるものではなく,以下の形態から当業者が自明な範囲で適宜修正したものも含む。
図1及び図2は,本発明に係る画像処理装置1の構成例を示すブロック図である。図1は,画像処理装置1により実行される画像処理方法の前段処理の流れを示している。図1に示される前段処理は,中間バッファにピクセルデータを出力するまでの処理である。また,図2は,画像処理装置1により実行される画像処理方法の後段処理の流れを示している。図2に示される後段処理は,中間バッファにピクセルデータを出力した後の処理である。
まず,図1を参照して,画像処理方法の前段処理の流れについて説明する。
図1に示されるように,コマンドプロセッサ10は,頂点バッファ11から頂点データを読み出すと共に,コマンドバッファ12からコマンドデータを読み出す。
頂点バッファ11には,色やテクスチャマッピング座標といった属性を示す頂点データが,各頂点の座標に関連付けて記憶される。また,コマンドバッファ12には,ポリゴンを構成する頂点データの配列が描画コマンドとして記録され,頂点の並び順に沿って各頂点のアドレス情報が記録されている。
頂点バッファ11においては,例えば,V〜VのN個の頂点データが記録されている。他方,コマンドバッファ12においては,ポリゴンの頂点データが三角形や,四角形(矩形),その他の多角形を一単位とした配列として記録されている。また,コマンドバッファ12においては,2つの隣接する三角形のポリゴンを四角形(矩形)のポリゴンとして記録するものであってもよい。また,コマンドバッフ12における記録の仕方として,プリミティブの配列情報は,隣接する三角形のうち共通する2点の頂点についてはコマンドバッファに記録せずに,異なる頂点データへの参照値のみが記録されるものであってもよい。この場合,コマンドバッファ12の記録容量を抑制することができる。
コマンドプロセッサ10は,頂点バッファ11及びコマンドバッファ12から読み出した頂点データ及びコマンドデータを,シェーダプロセッサ13(「シェーディング処理部」に相当)に入力する。シェーダプロセッサ13は,コマンドプロセッサ10から入力された各頂点データに対して,頂点処理を行う。頂点処理では,頂点の移動処理や,座標変換(ワールド座標変換,カメラ座標変換,スクリーン座標変換),ライティング処理,クリッピング処理,透視変換,及び光源処理等のジオメトリ処理が行われる。座標変換処理では,ポリゴンを定義する各頂点の座標を,視点の位置や方向に合わせて2次元のスクリーン座標系へ変換する。また,ライティング処理では,各頂点と光源の距離や,各頂点と光源の角度に基づいて,その頂点の輝度を計算する。また,クリッピング処理では,表示画面の外に位置するポリゴンを取り除く処理を行う。シェーダプロセッサ13は,それらの頂点処理の結果に基づいて,オブジェクトを構成する頂点群について与えられた頂点データを変更(更新,調整)する。
頂点処理における座標変換ついて具体的に説明する。シェーダプロセッサ13は,まず,オブジェクトのローカル座標を含む頂点データを取得し,取得した頂点データのローカル座標を,ワールド座標に変換する。この第1の座標変換は,1つのワールド座標系の所定の位置に,オブジェクトを配置するために行うものであり,ローカル座標系からワールド座標系への座標変換が実行される。なお,第1の座標変換において,オブジェクトの向き指定する回転角,位置を指定する並進ベクトル,大きさを指定するスケール比等のパラメータがメモリから読み出される。次に,シェーダプロセッサ13は,ワールド座標系におけるオブジェクトの座標を,カメラ位置を原点としてカメラから見たカメラ座標系での座標へと変換する。この第2の座標変換を行なって,視点をカメラ位置に決定し,カメラの方向やズームレベルを指定することにより,オブジェクトを投影するスクリーンが決定される。また,シェーダプロセッサ13は,特定の光源位置から照射される光をオブジェクトに当てたときの各頂点における照度の計算を行う。また,シェーダプロセッサ13は,特定の光源位置から照射される光をオブジェクトに当てたときの各頂点の色などの他の物体特性についても,同様に計算する。最後に,シェーダプロセッサ13は,ディスプレイの解像度等を含んだディスプレイ情報を読み出し,3次元のワールド座標をスクリーンに投影する座標変換を行う。この第3の座標変換によって,3次元の仮想空間上にある頂点の座標は,2次元のスクリーン座標に変換される。このように,シェーダプロセッサ13は,頂点処理を行なって,ローカル座標系で定義されたオブジェクトの頂点データを,スクリーン平面上の2次元座標と照度等の頂点の特性を示す情報を含んだ頂点データに変換にする。
上記頂点処理完了後,シェーダプロセッサ13は,頂点処理済みの頂点データと,コマンドバッファ12から取得したコマンドデータを参照し,複数の頂点を組み合わせたポリゴン(三角形)を形成する。シェーダプロセッサ13は,このポリゴンデータを,ラスタライザ14に入力する。ここで,ラスタライザ14は,三角形で定義されたポリゴンに対してサンプリングを行う。つまり,ラスタライザ14は,入力されたポリゴンに対しラスタライズ処理を行い,ピクセルに変換する。このように,ラスタライザ14は,3次元空間上のポリゴンを,描画平面上(スクリーン座標系)のフラグメントに変換するビュー変換を行う。さらに,ラスタライザ14は,描画平面上のフラグメントを描画平面の水平方向に沿ってスキャンしながら,ラスタライン毎に量子化されたピクセルに変換していく。ラスタライザ14は,上記のラスタライズ処理によって生成したピクセルデータを,シェーダプロセッサ13に出力する。
ここで,シェーダプロセッサ13は,ラスタライザ14から受け取ったピクセルデータを用いて,シェーディング処理を省いた3D描画処理を行う。例えば,シェーダプロセッサ13では,フラグメント処理が行われる。フラグメント処理では,画像を構成するピクセル(表示画面を構成するフラグメント)が描画される。例えば,シェーダプロセッサ13は,必要に応じてテクスチャ処理部15からテクスチャ情報を読み込み,テクスチャ処理を行う。テクスチャ処理は,三次元オブジェクトの表面に質感を与えるためのテクスチャ画像を貼り付ける処理である。テクスチャ処理により,テクスチャ画像に対応したテクスチャ座標(u,v)がピクセルデータに付与される。また,シェーダプロセッサ13は,3D描画処理を行うにあたり,ライティング処理やブレンディング処理などの典型的な処理に関わる回路を備える固定機能パイプライン16にアクセスすることとしてもよい。これらライティング処理やブレンディング処理などの典型的な処理を,固定機能パイプライン16に実行させることで,処理の高速化・効率化を図ることができる。
上記のようなシェーディング処理を省いた3D描画処理(フラグメント処理)の後,シェーダプロセッサ13は,処理済みのピクセルデータを,ピクセル処理部17へと出力する。ピクセル処理部17は,深度テストやアルファテストを含むピクセルテストを行い,各ピクセルデータを実際にスクリーン座標上に描画するか否かを判定する。深度テストは,各ピクセルデータの奥行きを表すZ値の大小比較し,そのピクセルが描かれる予定の2D座標上に,よりカメラに近い他のピクセルがあるかどうかで描画の有無を判定するテストである。また,アルファテストは,各ピクセルデータの透明度を表すアルファ値を比較し,そのピクセルを描画するかしないかを決定するテストである。ピクセル処理部17は,これらのピクセルテストに合格したピクセルのデータを,中間バッファ18へと出力する。このため,中間バッファ18には,スクリーン座標上に描画することが決定されたピクセルデータのみが格納されることとなる。
続いて,図2を参照して,画像処理方法の後段処理の流れについて説明する。
図2に示されるように,まず,コマンドプロセッサ10は,コマンドバッファ12から必要なコマンドデータを再度読み出して,シェーダプロセッサ13に入力する。
その後,シェーダプロセッサ13は,コマンドプロセッサ10から入力されたコマンドデータに基づいて,ラスタライザ14に対して,矩形プリミティブの情報(4頂点の座標上)を入力する。ここで,ラスタライザ14は,矩形プリミティブに対してサンプリングを行う。つまり,ラスタライザ14は,この矩形を塗りつぶすようなピクセルデータを,例えば左上から水平方向に生成しながら右下まで生成するとともに,各頂点座標に負荷されているパラメータの補完を行う。ラスタライザ14は,矩形を塗りつぶすようなピクセルデータを,フラグメント処理向けにシェーダプロセッサに対して出力する。
その後,シェーダプロセッサ13は,ラスタライザ14から入力されたピクセルデータを用いて,テクスチャ処理部15及びソート処理部19を経由して,中間バッファ18の読み込みを行う。すなわち,シェーダプロセッサ13は,テクスチャ処理部15に対し,中間バッファ18に格納されているピクセルデータにテクスチャ処理を実行するように指示する。このような指示を受けたテクスチャ処理部15は,ソート処理部19を経由して,中間バッファ18からピクセルデータを読み出す。このソート処理部19は,中間バッファ10内に格納されているピクセルデータ(実際に表示させることが決定しているピクセル)を,処理しやすい順番に並べ替えて読み出し,テクスチャ処理部15へと受け渡す。このため,テクスチャ処理部15は,ソート処理部19によって効率的にソートされた順番に従って,ピクセルデータを処理できるようになる。
ここで,図3は,中間バッファ18に格納されているピクセルデータの例を示している。図3(a)では,中間バッファ18内に格納されているピクセルデータが,スクリーン座標上の位置に従って,配置されている状態を概念的に示している。なお,ここにいうスクリーン座標とは,モデリングされたオブジェクトをディスプレイ上に表示する際に使用する座標系である。スクリーン座標系において,通常,原点は画面の左上になる。なお,図3(a)では,各ピクセルに対し,ディスプレイ等のスキャンラインに従った順番の番号(0〜31)を付している。
中間バッファ18に格納されているピクセルデータは,それぞれマテリアル情報を有している。マテリアル情報の例は,ピクセルによって現されるオブジェクトの物体特性の情報である。例えば,物体特性の情報には,例えば,オブジェクトのカラー情報(色調や階調)や,双方向反射率分布関数(BRDF)によって定義される情報が含まれている。中間バッファ18に格納刺されている複数のピクセルデータには,同じマテリアル情報を持つものも存在するし,異なるマテリアル情報を持つものの存在している。ここで,図3(a)では,概念的に,同じマテリアル情報を持つピクセルデータには,同じ模様(ハッチング)を付与して分類している。図3(a)等では,例示的に,4種類のマテリアル情報が設定されている。さらに,図3(a)に示されるように,同一のマテリアル情報を有するピクセルデータに対しては,同じID情報(Light ID)が付与される。つまり,このID情報(Light ID)は,ピクセルデータが持つマテリアル情報を識別するための情報である。例えば,図3(a)に示した例では,No.0のピクセルデータに対し「0」のID情報が付与され,No.5のピクセルデータに対し「1」のID情報が付与され,No.11のピクセルデータに対し「2」のID情報が付与され,No.30のピクセルデータに対し「3」のID情報が付与されている。このようにすることで,同じID情報を持つピクセルデータは同じマテリアル情報をもつものであり,異なるID情報を持つピクセルデータは異なるマテリアル情報をもつものであることがわかるようになる。ただし,これらのID情報の割り当ては,一例であり,例えばピクセルデータのカラー値などに応じて0〜255等のID情報の割り当てを行うこともできる。
さらに,図3(a)に示された例では,スクリーン座標において横方向及び縦方向(X方向Y方向)に隣接する2×2の4つのピクセルを,一つのピクセル群としている。このように,本例では,中間バッファ18内のピクセルデータを処理する際に,2×2のピクセル単位でのフラグメント処理を想定している。例えば,本例では,No.0−1−8−9のピクセル群や,No.2−3−10−11のピクセル群といった単位で,処理が行われる。ただし,本例では,2×2の粒度で処理を行うこととしているが,ピクセルの粒度は実装に応じて1×1のような小さい粒度であってもよいし,4×4のような大きい粒度であってもよいし,1×2や2×1のような正方形以外の粒度であってもよい。
続いて,図3(b)は,中間バッファ18内のピクセルデータを,ソートせずに読み出した場合の処理手順を示している。中間バッファ10からピクセルデータをソートせずに読み出した場合,図3(b)に示されるように,基本的には,スキャンラインに沿った順番で読み出されることとなる。例えば,図3(b)に示されるように,通常は,No.0−1−8−9のピクセル群の後に,No.2−3−10−11のピクセル群が処理され,さらにその後,No.4−5−12−13のピクセル群が処理されるといった順番となる。
しかしながら,図3(b)に示されるように,中間バッファ18内に異なるマテリアル情報が付加されたピクセルデータが混在している場合に,通常通り中間バッファ18からピクセルデータを読みすと,その後の処理において,マテリアルに対応する機能への切り替え処理が頻繁に発生する。例えば,中間バッファ18から読みだした後の処理において,
「0」のID情報が付与されたピクセルデータと,「1」のID情報が付与されたピクセルデータとでは,異なる処理を行う必要がある。このため,「0」のID情報が付与されたピクセルデータの後に,「1」のID情報が付与されたピクセルデータを処理する際には,処理機能を切り替えるための処理が必要となる。図3(b)に示された読み出し順序では,処理機能を切り替えるためのコストが考慮されておらず,機能の切り替え処理が頻発するといえる。
そこで,本発明では,ソート処理部19によって,中間バッファ18からピクセルデータを読み出す順番を適切なものに並べ替える。ソート処理部19によるソート処理の一例は,図4に示されている。ソート処理部19は,図4(a)に示された順番で中間バッファ18に記憶されているピクセルデータを,図4(b)に示された順番となるように並べ替えて読み出す。すなわち,ソート処理部19は,図4(b)に示されるように,各ピクセルデータに付与されたID情報(Light ID)に基づいて,ソートを行う。ソート処理部19は,中間バッファ18を解析し,ピクセルデータの処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替えるものである。図4(b)に示されるように,ソート後のピクセルデータは,ID情報が「0」,「1」,「2」,「3」,「その他」の順に読み出されるようになっている。
また,図4に示された例では,図3と同様に,2×2のピクセル群の単位で処理を行うこととしている。このため,中間バッファ18内のピクセル群には,ピクセルデータに付与されたID情報が全て共通しているタイプ(第1タイプ:TypeA)と,異なるID情報を有するピクセルデータが混在しているタイプ(第2タイプ:TypeB)が存在する。このため,ソート処理部19は,ソート処理を行うにあたり,まず,中間バッファ18内のピクセル群を第1タイプ(TypeA)と第2タイプ(TypeB)に分ける。そして,ソート処理部19は,第1タイプ(TypeA)のピクセル群について,ID情報(Light ID)に基づいたソートを行う。さらに,ソート処理部19は,第1タイプ(TypeA)が先に処理され,第2タイプ(TypeB)が後に処理されるように,ピクセル軍を中間バッファ18から読み出すようにする。
また,図5には,ソート処理におけるデータの構造例が示されている。まず,図5(a)に示されるように,中間バッファ18内に格納されているピクセルデータにID情報(Light ID)を付与して,分類を行う。このとき,異なるID情報を有するピクセルデータが混在しているタイプ(第2タイプ:TypeB)については,専用のID情報(例:255)を付与する。その後,図5(b)に示すような一覧表を作成する。一覧表には,各ID情報を持つピクセルデータが中間バッファ18内にいくつ存在するかの情報が記録される。さらに,図3(c)に示されるように,ソート処理後のデータは,バッファ内に記録されている。このようなソート処理後のデータを格納するためのソートバッファは,中間バッファ18内に構築されたものであってもよいし,他の記憶装置に構築されたものであってもよい。ソートバッファにデータを記憶するにあたり,ピクセルデータの個数がオフセット値として記憶されている。このオフセット値は,図3(b)の一覧表に記録された各ピクセルデータの個数を加算することによって求めることができる。
図2に戻って説明を行うと,ソート処理部19は,中間バッファ18からピクセルデータを読み出す順番をソートする。そして,ソート処理部19は,ソート後の順番で,中間バッファ18から読み出したピクセルデータを,テクスチャ処理部15に入力する。このため,テクスチャ処理部15は,ソート処理部19によって効率的にソートされた順番に従って,ピクセルデータを処理できるようになる。
また,シェーダプロセッサ13は,ソート処理部19を介して中間バッファ18を読み込む。このとき,ソート処理部19は,上述した処理に従って,中間バッファ18からピクセルデータを読み出す順番をソートして,ピクセルデータの処理の順番を,処理機能の切り替えコストが低いものに並べ替える。すなわち,ソート処理部19は,ピクセルデータの処理順番を,同一のID情報(Light ID)が付与されたピクセルデータをまとめて処理できるように並べ替えた上で,シェーダプロセッサ13に入力する。
シェーダプロセッサ13は,ソート処理部19からピクセルデータを受け取ると,このソートされた順番に従って,図1に示した前段処理において省略されていたシェーディング処理を実行する。シェーディング処理では,光の角度と光源からの距離を考慮して,オブジェクトを構成する各ピクセルのカラー値(色調や階調)を変化させる。例えば,シェーダプロセッサ13は,ジオメトリ処理において光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点のカラー値(RGB)を求める。また,シェーダプロセッサ13は,この各頂点のカラー値に基づいて,ポリゴンに対応する各ピクセルのカラー値を,例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
このように,同一のID情報が付与されたピクセルデータを一括してシェーディングできるように,ソート処理部19が,中間バッファ18に格納されているピクセルデータの処理順番をソートしておく。これにより,中間バッファ18内に異なるマテリアル情報が付加されたピクセルデータが混在している場合であっても,異なるマテリアル間での切り替え処理を,必要最小限に抑えることができる。
また,シェーダプロセッサ13は,ソート処理部19からの出力を,ライティングやブレンディングに係る機能を持つ固定機能パイプライン16に入力させることもできる。この場合,シェーダプロセッサ13には,固定機能パイプライン16において処理されたピクセルデータが入力されるようになる。このようにすれば,ライティング処理やブレンディング処理などの典型的な処理を,効率的に実行できる。また,固定機能パイプライン16側においても,マテリアル情報(Light ID)に応じた切り替え処理時間を,最適化することが可能となる。なお,ここにいうシェーディング処理には,フラグメントシェーダ処理や,テクスチャ処理,ライティング処理,及びブレンディング処理が含まれていてもよい。
上記したシェーディング処理後,シェーダプロセッサ13は,処理済みのピクセルデータをピクセル処理部17へと出力する。ピクセル処理部19は,アルファテストなど行い,描画結果をカラーバッファ20に出力する。カラーバッファ20は,ピクセルのカラー値をスクリーン座標に対応付けて格納するバッファである。カラーバッファ20に格納されたピクセルのカラー値は,ディスプレイ装置に画像を表示する際に参照される。カラーバッファ20は,フレームバッファの一部として構築されたものであってもよい。
図6は,本発明の他の実施態様に係るコンピュータを示すブロック図である。この実施態様は,上記した画像処理装置1を備えたコンピュータグラフィックス処理用のコンピュータに関する。図6に示されるとおり,このコンピュータは,中央演算装置(CPU)102,ジオメトリ演算回路103などのジオメトリ演算部,レンダラー104などの描画部,テクスチャ生成回路105などのテクスチャ生成部,照明処理回路107などの照光処理部,表示回路108などの表示情報作成部,フレームバッファ109,及びモニター110を具備する。これらの要素は,バスなどにより接続され,相互にデータを伝達できる。そのほか,図示しないメインメモリや,各種テーブル,ワーク領域となるワークメモリ111,テクスチャを格納するテクスチャメモリ112などを具備する記憶部などを有してもよい。各部を構成するハードウェアは,例えばバスなどを介して連結されている。なお,記憶部は,VRAMなどのRAMや,CR−ROM,DVD,ハードディスクなどにより構成されても良い。本発明に係る画像処理装置1は,このようなコンピュータグラフィックス用のコンピュータに具備されて,実装されたものであってもよい。
図7は,本発明の他の実施形態に係るゲーム機のブロック図である。このブロック図で表される実施形態は,特に携帯用,家庭用又は業務用のゲーム機として好適に利用されうる。そこで,以下では,ゲーム機として説明する。なお,同図に示されるゲーム機は,少なくとも処理部200を含むものであればよい。また,ゲーム機は,処理部200と,記憶部270と,情報記憶媒体280を含んでいてもよい。それ以外のブロック,例えば,操作部260,表示部290,音出力部292,携帯型情報記憶装置294,及び通信部296については,任意の構成要素とすることができる。本発明に係る画像処理装置1は,このようなゲーム機に具備されて,実装されたものであってもよい。
処理部200は,ゲーム処理部220,画像処理部230,及び音処理部250を含むものがあげられる。具体的には,メインプロセッサ,コプロセッサ,ジオメトリプロセッサ,描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ここでゲーム処理部220は,コイン(代価)の受け付け処理,各種モードの設定処理,ゲームの進行処理,選択画面の設定処理,オブジェクトの位置や回転角度(X,Y又はZ軸回り回転角度)を求める処理,オブジェクトを動作させる処理(モーション処理),視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理,マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理,ヒットチェック処理,ゲーム結果(成果,成績)を演算する処理,複数のプレーヤが共通のゲーム空間でプレイするための処理,又はゲームオーバー処理などの種々のゲーム処理を,操作部260からの操作データや,携帯型情報記憶装置294からの個人データ,保存データや,ゲームプログラムなどに基づいて行う。
画像処理部230は,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行うものである。また,音処理部250は,ゲーム処理部220からの指示等にしたがって,各種の音処理を行う。画像処理部230は,ジオメトリ演算部232(3次元座標演算部),描画部240(レンダリング部)を含むものがあげられる。
ジオメトリ演算部232は,ジオメトリ演算部232は,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。ジオメトリ演算部232は,法線ベクトル処理部234を含むものがあげられる。法線ベクトル処理部234は,オブジェクトの各頂点の法線ベクトル(広義にはオブジェクトの面の法線ベクトル)を,ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。
描画部240は,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどに基づいて,オブジェクトをフレームバッファ274に描画する。描画部240は,例えば,テクスチャマッピング部242,シェーディング処理部244を含むものがあげられる。具体的には,描画プロセッサにより実装できる。描画プロセッサは,テクスチャ記憶部,各種テーブル,フレームバッファ,VRAMなどとバスなどを介して接続され,更にディスプレイと接続される。テクスチャマッピング部242は,環境テクスチャをテクスチャ記憶部276から読み出し,読み出された環境テクスチャを,オブジェクトに対してマッピングする。シェーディング処理部244は,オブジェクトに対するシェーディング処理を行う。例えば,ジオメトリ処理部232が光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点の輝度(RGB)を求める。シェーディング処理部244は,この各頂点の輝度に基づいて,プリミティブ面(ポリゴン,曲面)の各ドットの輝度を例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
なお,ゲーム機における構成を適宜利用すれば,スロットマシーンやパチンコ遊技機などにおける画像表示装置としても機能しうるものを得ることができる。
以上,本願明細書では,本発明の内容を表現するために,図面を参照しながら本発明の実施形態の説明を行った。ただし,本発明は,上記実施形態に限定されるものではなく,本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
本発明は,空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法等に関する。従って,本発明はコンピュータ産業において好適に利用されうる。
1…画像処理装置 10…コマンドプロセッサ 11…コマンドバッファ
12…頂点データ 13…シェーダプロセッサ(シェーダ処理部)
14…ラスタライザ 15…テクスチャ回路 16…固定機能パイプライン
17…ピクセル処理部 18…中間バッファ 19…ソート処理手段
20…カラーバッファ

Claims (6)

  1. スクリーン座標に描画することを決定したピクセルデータを出力するピクセル処理部と,
    前記ピクセル処理部から出力された前記ピクセルデータが格納される中間バッファであって,同一のマテリアル情報を有するピクセルデータに対しては,同じID情報を付与して記憶する中間バッファと,
    前記中間バッファを解析し,スクリーン座標において隣接する複数のピクセルデータを一つのピクセル群として,複数のピクセル群を形成する処理と,前記複数のピクセル群を,ピクセルデータに付与されたID情報が全て共通している第1タイプと,異なるID情報を有するピクセルデータが混在している第2タイプとに分類する処理と,前記第1タイプに属するピクセル群の処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える処理とを行うソート処理部と,
    前記ソート処理部を介して前記中間バッファを読み込み,前記第1タイプのピクセル群については,同一のID情報が付与されたピクセル群ごとにシェーディング処理を行うシェーディング処理部と,を備える
    画像処理装置。
  2. 前記マテリアル情報は,ピクセルのカラー値を含む
    請求項1に記載の画像処理装置。
  3. 前記シェーディング処理部は,前記ソート処理部を介して前記中間バッファを読み込み,まず前記第1タイプのピクセル群についてシェーディング処理を行い,その後に前記第2タイプのピクセル群についてシェーディング処理を行う
    請求項1に記載の画像処理装置。
  4. ピクセル処理部が,スクリーン座標に描画することを決定したピクセルデータを出力する工程と,
    前記ピクセル処理部により出力された前記ピクセルデータを,同一のマテリアル情報を有するピクセルデータに同じID情報を付与して中間バッファに記憶する工程と,
    ソート処理部が,前記中間バッファを解析し,スクリーン座標において隣接する複数のピクセルデータを一つのピクセル群として,複数のピクセル群を形成する処理と,前記複数のピクセル群を,ピクセルデータに付与されたID情報が全て共通している第1タイプと,異なるID情報を有するピクセルデータが混在している第2タイプとに分類する処理と,前記第1タイプに属するピクセル群の処理順番を,同一のID情報が付与されたピクセルデータをまとめて処理できるように並べ替える処理とを行う工程と,
    シェーディング処理部が,前記ソート処理部を介して前記中間バッファを読み込み,前記第1タイプのピクセル群については,同一のID情報が付与されたピクセル群ごとに,シェーディング処理を行う工程と,を含む
    画像処理方法。
  5. 請求項1に記載の画像処理装置を具備するコンピュータ。
  6. 請求項1に記載の画像処理装置を具備するゲーム機。
JP2013160491A 2013-08-01 2013-08-01 ソート機能を持つ画像処理装置及び画像処理方法 Active JP6205200B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013160491A JP6205200B2 (ja) 2013-08-01 2013-08-01 ソート機能を持つ画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013160491A JP6205200B2 (ja) 2013-08-01 2013-08-01 ソート機能を持つ画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2015032099A JP2015032099A (ja) 2015-02-16
JP6205200B2 true JP6205200B2 (ja) 2017-09-27

Family

ID=52517370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013160491A Active JP6205200B2 (ja) 2013-08-01 2013-08-01 ソート機能を持つ画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP6205200B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2937212B2 (ja) * 1991-07-01 1999-08-23 ソニー株式会社 データ処理装置
JPH0535243A (ja) * 1991-07-30 1993-02-12 Canon Inc 画像処理装置
JP3350655B2 (ja) * 2000-01-25 2002-11-25 株式会社ナムコ ゲームシステム及び情報記憶媒体
JP2007200251A (ja) * 2006-01-30 2007-08-09 Renesas Technology Corp 画像データ処理装置
JP2010238110A (ja) * 2009-03-31 2010-10-21 Sega Corp 画像処理装置、画像処理方法および画像処理プログラム
US20130271465A1 (en) * 2011-12-30 2013-10-17 Franz P. Clarberg Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling

Also Published As

Publication number Publication date
JP2015032099A (ja) 2015-02-16

Similar Documents

Publication Publication Date Title
US10282813B2 (en) Flex rendering based on a render target in graphics processing
EP3308359B1 (en) Rendering using ray tracing to generate a visibility stream
US10049426B2 (en) Draw call visibility stream
TWI584223B (zh) 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體
US8659589B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
EP2786350B1 (en) Switching between direct rendering and binning in graphics processing using an overdraw tracker
TWI245235B (en) Image processor, components thereof, and rendering method
EP3180773B1 (en) Bandwidth reduction using texture lookup by adaptive shading
US10331448B2 (en) Graphics processing apparatus and method of processing texture in graphics pipeline
US20130127858A1 (en) Interception of Graphics API Calls for Optimization of Rendering
CN107851330B (zh) 用于图形处理的零像素剔除
US10262391B2 (en) Graphics processing devices and graphics processing methods
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
US11270494B2 (en) Shadow culling
KR102477265B1 (ko) 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법
JP5864474B2 (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
JP6205200B2 (ja) ソート機能を持つ画像処理装置及び画像処理方法
JP2014229217A (ja) 2次元グラフィックス処理の高速化を図る画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170628

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170904

R150 Certificate of patent or registration of utility model

Ref document number: 6205200

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