(57)【要約】【課題】より簡単に３次元的な明るさの調節を行うことのできるグラフィックス描画装置を安価に提供すること。従来の照度計算では演算コストが高く、高速に処理するためにはハードウェアリソースが増大してしまうという課題があった。また、光源の位置やマテリアルなどのパラメータの設定が煩雑で、ユーザーが手軽に明るさをプログラムするということが容易ではなく、明るさのプログラマブル性が低いという課題があった。【解決手段】複数のガンマ補正曲線を設定するためのルックアップテーブルを備え、各画素の奥行き値（Ｚ値）に応じて、前記ルックアップテーブルによりガンマ補正が適用された複数のカラー値のうちの１つを選択することにより、Ｚ値に応じた明るさの調節を行う。【選択図】図１
2006127368.tif 000002
【特許請求の範囲】
【請求項１】
各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素の奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの１つを選択し、前記選択されたカラー値を前記画素のカラー値とすることにより、前記奥行き値に応じた明るさ調節を行うことを特徴とするグラフィックス描画装置。
【請求項２】
各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素の奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの２つを選択し、前記選択された２つのカラー値を前記奥行き値を用いて線形補間し、前記線形補間されたカラー値を前記画素のカラー値とすることにより、前記奥行き値に応じた明るさ調節を行うことを特徴とするグラフィックス描画装置。
【請求項３】
各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素のスクリーン座標および奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの１つを選択し、前記選択されたカラー値を前記画素のカラー値とすることにより、前記スクリーン座標および前記奥行き値に応じた明るさ調節を行うことを特徴とするグラフィックス描画装置。
【請求項４】
前記ガンマ補正手段がルックアップテーブルであることを特徴とする請求項１乃至３のいずれか一項に記載のグラフィックス描画装置。
【請求項５】
前記ルックアップテーブルが、インデックステクスチャの生成のために共用されることを特徴とする請求項４記載のグラフィックス描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス技術に関し、特に３次元グラフィックス描画において、従来よりも簡単な方法で、奥行き感のあるリアルな画像を生成するための技術に関する。
【背景技術】
【０００２】
一般的な３次元グラフィックス描画では、仮想的な３次元空間内に配置された複数の多角形（ポリゴン）からなる複数のオブジェクトを、観測者の視線に垂直な２次元平面（スクリーン）上に投影することによって行われる。このとき、観測者から見てポリゴンの前後関係が正しくなるようにするために、ポリゴンの陰面消去が一般的に行われる。ポリゴンの陰面処理の方法としては、Ｚバッファ法が広く用いられている。Ｚバッファ法では、ディスプレイの画素数分のカラー値を格納するカラーバッファの他に、ディスプレイの画素数分の奥行き値（Ｚ値）を格納するＺバッファを用いる。Ｚバッファには、すでに描画済みの、視点から最も近い位置にあるオブジェクトのＺ値を格納しておき、画素単位でこのＺバッファのＺ値と、これから描画しようとするポリゴンのＺ値とを比較することによって、Ｚ値が小さいポリゴンの画素だけを描画することにより陰面消去を行う。
【０００３】
Ｚバッファを用いて３次元オブジェクトの陰面消去が行われる様子を、図２および図３を用いて説明する。図２（Ａ）は３次元空間内に配置された２個のポリゴン２０１および２０２が、スクリーン２００上に投影される様子を示している。ポリゴン２０３は、ポリゴン２０１がスクリーン２００上に投影された図形を示しており、ポリゴン２０４は、ポリゴン２０２がスクリーン２００上に投影された図形を示している。図２（Ｂ）は、Ｚバッファによる描画を示す図であって、図２（Ａ）のスクリーン２００上に表示された２個のポリゴン２０３および２０４が、ＺバッファのＺ値とポリゴンのＺ値の比較によって、画素ごとに陰面消去しながら描画された結果を示している。図３は、Ｚバッファを用いて、より多くのポリゴンからなるオブジェクトの陰面消去を行った例である。図３（Ａ）は、奥行きのある部屋オブジェクト３０１の中で、多数の細かいポリゴンからなる球状のオブジェクト３０２および３０３が宙に浮かんでいるシーンを描画する様子を示している。図３（Ｂ）は、スクリーン３００上に投影された描画結果を示している。以上のように、Ｚバッファを用いることで、より複雑な３次元画像を生成することが可能である。
【０００４】
しかしながら、単にＺバッファを用いてポリゴンを陰面消去するだけでは、実写のようなリアル感を得ることは難しい。なぜなら、３次元空間内に配置されているオブジェクトの明るさの３次元的な広がりが考慮されていないからである。すなわち、ポリゴンの頂点や画素についているカラー値が見た目に不自然であるため、実写に比べてリアリティに欠けてしまうからである。そこで、よりリアリティの高いグラフィックス画像が求められる用途では、３次元的な明るさの広がりを持たせる手段として、３次元空間内に仮想的な光源を配置して、ポリゴンの頂点あるいは画素ごとに照度値を計算することが一般的に行われている。例えば図４は、オブジェクトの配置が図３と同じ状況において、仮想的な点光源４００を配置することにより、オブジェクトに明るさの強弱をつけ、３次元的な視覚効果を高める様子を示している。
【０００５】
文献（ＯｐｅｎＧＬ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  １．３）によれば、照度値の計算式は次式で表される。
【０００６】
【数１】
2006127368.tif 000003
【０００７】
上式の照度計算はＲＧＢカラーごとに行われる。上式において、ＭＥ、ＭＡ、ＭＤ、ＭＳはポリゴンの材質（マテリアル）に関するパラメータであって、それぞれエミッションカラー、アンビエントカラー、ディフューズカラー、スペキュラーカラーを示す。ＣＡは全体環境（シーン）のアンビエントカラーである。記号Σは、複数の光源（ｉ）について加算することを示している。ＬＡ（ｉ）、ＬＤ（ｉ）、ＬＳ（ｉ）はそれぞれ光源（ｉ）のアンビエント強度、ディフューズ強度、スペキュラー強度である。Ａｔｔ（ｉ）およびＳｐｏｔ（ｉ）は、光源（ｉ）に関する減衰項およびスポットライト項であり、Ｄｃ（ｉ）およびＳｃ（ｉ）は、光源（ｉ）に関するディフューズ項およびスペキュラー項である。これらの各項は、光源（ｉ）とポリゴンの頂点または画素の相互関係から求められる。すなわち、３次元空間における光源（ｉ）の位置ベクトルと、ポリゴンの頂点または画素の位置ベクトルまたは法線ベクトルを用いて、ベクトルの内積計算や指数計算を行うことにより求められる値である。このように、３次元空間において、オブジェクトに相対して光源を配置し、ポリゴンの頂点あるいは画素ごとに照度値を求めることによって、３次元的な明るさの強弱をつけることができ、より実写に近いリアルな３次元グラフィックス画像を生成することができる。
【０００８】
上記の照度計算の他に、３次元的な視覚効果を与える手段として、フォグが知られている。上記の文献によれば、フォグの計算式は次式で表される。
【０００９】
【数２】
2006127368.tif 000004
【００１０】
上式のフォグ計算はＲＧＢカラーごとに行われる。Ｃｉは入力されるポリゴンの頂点または画素のカラー値であり、Ｃｆはフォグカラーである。ｆはこれら２つのカラーを混合する際のブレンド係数であって、ポリゴンの頂点または画素の位置から視点までの距離（Ｚ値）の関数である。一般的なフォグのブレンド係数はＺ値について減少関数であって、視点から遠くなるほどフォグカラーＣｆの割合が多くなり、視点に近くなるほど入力カラーＣｉの割合が多くなる。すなわち、視点から遠い位置にあるポリゴンは、フォグ（霧）がかかったような、ぼやけた感じの色になる。このようにフォグは、遠くの位置にあるオブジェクトをぼかす手法（被写界深度）の１つであって、照度計算のような３次元的に明るさの強弱を求めるものではない。
【００１１】
さらに別の方法として、特許文献１に、インデックスカラー・テクスチャ用のルックアップテーブル（ＬＵＴ）に、あらかじめ不透明度（α値）を格納しておき、前記ＬＵＴのインデックスとしてＺ値を設定してα値を引き、前記α値に応じてアルファブレンドを行う方法が公開されている。この方法についてもフォグと同様、視点から遠い位置にあるポリゴンをぼかすものであって、照度計算のような３次元的に明るさの強弱を求めるものではない。
【特許文献１】特開２００２−９２６２９号公報（第２２頁、図１４）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
３次元グラフィックス描画において、オブジェクトに３次元的な明るさの広がりを与えるという目的に対し、従来の方法では以下のような課題がある。すなわち、光源の配置による照度計算は、（数１）に示されるように、演算コストが非常に高く、高速に処理するためにはハードウェアリソースが増大してしまうという課題があった。また、光源の位置やマテリアルなどのパラメータの設定が煩雑で、ユーザーが手軽に明るさをプログラムするということが容易ではない、すなわち、明るさのプログラマブル性が低いという課題があった。
【００１３】
また、フォグや、Ｚ値をインデックスとしてＬＵＴからα値を求めてアルファブレンドを行う方法については、Ｚ値に応じてオブジェクトをぼかすことはできるが、３次元空間内の明るさの調節を行うことはできないので、上記の課題を解決するものではない。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明では以下の手段を講じた。すなわち、各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素の奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの１つを選択し、前記選択されたカラー値を前記画素のカラー値とすることにより、前記奥行き値に応じた明るさ調節を行う。
【００１５】
あるいは、各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素の奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの２つを選択し、前記選択された２つのカラー値を前記奥行き値を用いて線形補間し、前記線形補間されたカラー値を前記画素のカラー値とすることにより、前記奥行き値に応じた明るさ調節を行う。
【００１６】
あるいは、各画素のカラー値を変換するためのガンマ補正手段を複数備え、各画素のスクリーン座標および奥行き値に応じて前記複数のガンマ補正手段から出力された複数のカラー値のうちの１つを選択し、前記選択されたカラー値を前記画素のカラー値とすることにより、前記スクリーン座標および前記奥行き値に応じた明るさ調節を行う。
【発明の効果】
【００１７】
本発明によれば、ユーザーが奥行きに応じたガンマ補正曲線を自由に、かつ簡単に設定できるので、３次元空間内の明るさのプログラマブル性の高いという効果がある。また本発明によれば、従来の照度計算に比べて演算コストが低く、より少ないハードウェアリソースにより高速に処理することが可能であるという効果がある。
【００１８】
また、Ｚ値に応じたガンマ補正が画質的にもたらす効果としては、例えば、Ｚ値が大きくなるほど入力階調に対する出力階調の比が小さくなるように複数のガンマ補正曲線を設定すれば、遠い位置の画素ほど、すべての階調について全体的に暗くなるという視覚効果を生み出すことができる。また、Ｚ値が小さくなるほど非線形性の度合いが大きくなるようにるガンマ補正曲線を設定すれば、近い位置の画素ほど、中間調付近で明るい階調はより明るくなり、暗い階調はより暗くなり、したがってコントラストが大きくなるという視覚効果を生み出すことができる。結果として、Ｚ値の大きい画素と小さい画素では、ガンマ補正曲線、すなわち明るさやコントラストに差が生じて奥行き感がより一層得られるので、よりリアルな３次元グラフィックス画像を得ることができるという効果がある。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２０】
（実施の形態１）
図１に本発明の実施の形態１における構成を示す。図１において、入力カラーＣｉｎがガンマ補正部１００に入力されている。ガンマ補正部１００は、４個のルックアップテーブルＬＵＴ０〜ＬＵＴ３により構成され、それぞれ異なるガンマ補正曲線があらかじめ設定されている。各ルックアップテーブルには、入力カラーＣｉｎがインデックスとして入力され、それぞれインデックスに対応するカラー値、すなわちガンマ補正済みのカラー値を出力する。ここで、入力カラー値Ｃｉｎを例えば８ビットとすると、ルックアップテーブルのインデックスは８ビットであって、２５６通りのインデックス値に応じて８ビットのガンマ補正済みカラー値を出力する。なお、本実施の形態の入力カラーＣｉｎは、ＲＧＢカラー値ではなく、輝度値であるものと仮定する。
【００２１】
これらのルックアップテーブルＬＵＴ０〜ＬＵＴ３に設定するガンマ補正曲線の例を図５に示す。図５では、ＬＵＴ０→ＬＵＴ１→ＬＵＴ２→ＬＵＴ３と変化するにつれて、入力階調に対する出力階調の比が小さくなり、かつ非線形性の度合いが小さくなるようなガンマ補正曲線が設定されている。
【００２２】
選択信号生成部１０１は、現在描画しようとしている画素のＺ値から、特定の２ビットを抽出するブロックである。抽出された２ビットのＺ値は、ガンマ補正曲線選択信号Ｚｓｅｌとしてマルチプレクサ１０２に入力される。なお、ガンマ補正曲線選択信号Ｚｓｅｌとしては、Ｚ値の最上位ビットから順に２ビットを抽出するのが最も簡単な構成であるが、任意の連続した２ビットを抽出するような構成にしても良い。例えば、シーンによってはＺ値が特定の範囲に偏っている場合もあるので、Ｚ値の最上位の２ビットではなく、さらに下位の２ビットをガンマ補正曲線選択信号Ｚｓｅｌとして採用することができる。このような場合は、選択信号生成部１０１が、Ｚ値のどのビットを抽出するかをあらかじめ設定できるような構成にしておけばよい。
【００２３】
マルチプレクサ１０２は、前記ガンマ補正曲線選択信号Ｚｓｅｌに応じて、ガンマ補正部１００の出力である４つのガンマ補正済みカラーからいずれか１つを選択するブロックである。Ｚｓｅｌが”００”の場合は、ルックアップテーブルＬＵＴ０の出力が選択され、Ｚｓｅｌが”０１”の場合は、ルックアップテーブルＬＵＴ１の出力が選択され、Ｚｓｅｌが”１０”の場合は、ルックアップテーブルＬＵＴ２の出力が選択され、Ｚｓｅｌが”１１”の場合は、ルックアップテーブルＬＵＴ３の出力が選択される。このように、マルチプレクサ１０２により、Ｚ値に応じたガンマ補正済みの最終的なカラー値Ｃｏｕｔが得られる。
【００２４】
図６に、本実施の形態における３次元空間とガンマ補正曲線の対応関係を示す。図６では、奥行きのある部屋オブジェクト６０１の中に、多数の細かいポリゴンからなる球状のオブジェクト６０２および６０３が宙に浮かんでいるシーンを描画することを想定している。このとき、Ｚ値によって区分された４つの領域（Ａ）〜（Ｄ）においてそれぞれ描画される画素に対して、図５のガンマ補正曲線（Ａ）〜（Ｄ）が適用される。すなわち、オブジェクトを構成する画素のＺ値に応じて異なるガンマ補正曲線が適用され、結果として、図７のような３次元グラフィックス画像が生成される。
【００２５】
以上のように、現在描画しようとしている画素のカラー値は、その画素のＺ値によって任意のガンマ補正が適用される。これにより、例えば、図５のようにガンマ補正曲線を設定しておけば、Ｚ値が大きくなるほど入力階調に対する出力階調の比が小さくなっているガンマ補正曲線が選択されるので、遠い位置の画素ほど、すべての階調について全体的に暗くなる。また、Ｚ値が小さくなるほど非線形性の度合いが大きくなっているガンマ補正曲線が選択されるので、近い位置の画素ほど、中間調付近で明るい階調はより明るくなり、暗い階調はより暗くなり、したがってコントラストが大きくなる。結果として、Ｚ値の大きい画素と小さい画素では、ガンマ補正曲線、すなわち明るさやコントラストに差が生じて奥行き感がより一層得られるので、よりリアルな３次元グラフィックス画像を得ることができる。
【００２６】
なお、本実施の形態ではガンマ補正部１００が４つのルックアップテーブルから構成されているが、ルックアップテーブルの個数については、これに限られるものではない。その場合、ルックアップテーブルの数に応じて、ガンマ補正曲線選択信号Ｚｓｅｌのビット数が変化するので、選択信号生成部１０１やマルチプレクサ１０２を、Ｚｓｅｌのビット数に対応させる必要がある。またガンマ補正曲線は、図５の例に限らず、ユーザーが自由に設定できる。例えば、図５とは逆に、Ｚ値が大きいほど明るくしたり、コントラストを大きくしたりすることも可能である。また本実施の形態では、入力カラーＣｉｎが、ＲＧＢカラー値ではなく輝度値であると仮定したが、ＲＧＢカラー値であっても良い。その場合は、ＲＧＢごとにガンマ補正を行うために、ルックアップテーブルやマルチプレクサの個数が３倍必要になる。
【００２７】
（実施の形態２）
図８に本発明の実施の形態２における構成を示す。図８（Ａ）は図１と比較して、ガンマ補正部８００に関しては同じものであるが、マルチプレクサ８０２の出力が２種類存在し、線形補間部８０３に入力されている点と、選択信号生成部８０１がガンマ補正曲線選択信号Ｚｓｅｌの他に線形補間部８０３への混ぜ率Ｚαを出力している点が異なっている。
【００２８】
本実施の形態は、２つの異なるルックアップテーブルからの出力を、線形補間部８０３によりフィルタリングすることによって、色の境目を目立たなくすることを特徴としている。そのような必要性があるのは、図５の４つのガンマ補正曲線の中で、隣り合う２つのガンマ補正曲線の設定値に大きな差がある場合であって、図６の（Ａ−Ｂ間）あるいは（Ｂ−Ｃ間）あるいは（Ｃ−Ｄ間）の境界付近の画素において、色の段差が出てしまう可能性があるからである。
【００２９】
マルチプレクサ８０２は、選択信号生成部８０１からのガンマ補正曲線選択信号Ｚｓｅｌにしたがって、ルックアップテーブルＬＵＴ０〜ＬＵＴ３の合計４つの出力から２つを選択する。Ｚｓｅｌが”００”の場合は、ルックアップテーブルＬＵＴ０およびＬＵＴ１の出力が選択され、Ｚｓｅｌが”０１”の場合は、ルックアップテーブルＬＵＴ１およびＬＵＴ２の出力が選択され、Ｚｓｅｌが”１０”の場合は、ルックアップテーブルＬＵＴ２およびＬＵＴ３の出力が選択され、Ｚｓｅｌが”１１”の場合は、ルックアップテーブルＬＵＴ３の出力のみが選択される。
【００３０】
線形補間部８０３への混ぜ率Ｚαは、例えばビット幅を８ビットとして、図８（Ｂ）のように、Ｚ値のガンマ補正曲線選択信号Ｚｓｅｌより下の８ビットを使用することができる。この混ぜ率Ｚαと、マルチプレクサ８０２の出力Ｃｍ０およびＣｍ１を用いて、以下のようにフィルタリングを行うことができる。
【００３１】
【数３】
2006127368.tif 000005
【００３２】
なお、本実施の形態ではガンマ補正部８００が４つのルックアップテーブルから構成されているが、ルックアップテーブルの個数については、これに限られるものではない。その場合、ルックアップテーブルの数に応じて、ガンマ補正曲線選択信号Ｚｓｅｌのビット数が変化するので、選択信号生成部８０１やマルチプレクサ８０２を、Ｚｓｅｌのビット数に対応させる必要がある。また本実施の形態では、混ぜ率Ｚαを８ビットとしたが、これ以外であってもよい。また本実施の形態では、入力カラーＣｉｎが、ＲＧＢカラー値ではなく輝度値であると仮定したが、ＲＧＢカラー値であっても良い。その場合は、ＲＧＢごとにガンマ補正を行うために、ルックアップテーブルやマルチプレクサ、線形補間部の個数が３倍必要になる。
【００３３】
（実施の形態３）
上述した実施の形態１および２では、図６のように、Ｚ軸の方向に３次元空間を分割して、ガンマ補正曲線を割り当てたが、本実施の形態では、図９のように、Ｚ軸に限らずＸ軸およびＹ軸の方向にも領域を分割して、ガンマ補正曲線を割り当てるものである。あるいは、図１０のように、３次元空間の定義された任意のベクトルＰの方向に、領域を分割することも可能である。このような場合には、画素のＸ、Ｙ、Ｚ値からガンマ補正曲線選択信号を生成する必要がある。
【００３４】
本実施形態の構成を図１１に示す。図１１は図１に比べて、選択信号生成部１１０１への入力が画素のＸ、Ｙ、Ｚ値となっている点が異なっている。選択信号生成部１１０１は、２ビットのガンマ補正曲線選択信号ｓｅｌを出力する必要があるが、図９（Ａ）のような領域分割では、Ｚ値とＸ値からそれぞれ上位のビットを１ビットずつ取ればよく、また図９（Ｂ）のような領域分割では、Ｚ値とＹ値からそれぞれ上位ビットを１ビットずつ取ればよい。
【００３５】
図１０のような領域分割では、ベクトルの始点Ｐの３次元空間座標を（Ｘｐ，Ｙｐ，Ｚｐ）として、次の領域判定関数Ｆを求め、上位２ビットをガンマ補正曲線選択信号ｓｅｌとして出力すればよい。
【００３６】
【数４】
2006127368.tif 000006
【００３７】
ただし、（数４）において、ｓｑｒｔは平方根演算を示す。（数４）の計算は多少複雑であって、演算コストが高くなるため、ベクトルＰの始点を原点に取ったり、平方根演算を省略することで、選択信号生成部の構成を簡単化することができる。なお、本実施形態では、３次元空間を４つの領域に分割して、異なるガンマ補正曲線を割り当てたが、さらにもっと多くの領域に分割しても良い。
【００３８】
（実施の形態４）
図１２、図１３および図１４に、本発明のＺ値によるガンマ補正部を備えたグラフィックス描画装置に関する一実施の形態を示す。図１２は、前記グラフィックス描画装置の最上位階層の構成を示し、ＣＰＵ（中央演算装置）１２０１、グラフィックスエンジン１２０２、メモリコントローラ１２０３、表示コントローラ１２０４、メモリデバイス１２０５、表示デバイス１２０６で構成されている。なお、これらのブロックは別々の半導体で構成されていても良いし、いくつかのブロックをまとめて、１つのシステムＬＳＩとして集積されていても良い。メモリコントローラ１２０３はメモリデバイス１２０６を制御し、表示コントローラは１２０４は表示デバイス１２０７を制御する。
【００３９】
グラフィックスエンジン１２０２は、ＣＰＵバス１２０７を介してＣＰＵ１２０１に接続され、制御されている。また、グラフィックスエンジン１２０２はメモリバス１２０８を介してメモリコントローラ１２０３に接続され、メモリデバイス１２０５上のデータにアクセスできる。メモリデバイス１２０５上には、グラフィックスエンジン１２０２による３次元グラフィックス描画で用いられる、カラーバッファおよびＺバッファの画素データ、ディスプレイリスト、テクスチャデータなどが格納されている。なお、メモリアクセスの高速化のために、これらのデータを格納するメモリがグラフィックスエンジン１２０２の内部に存在していても良い。
【００４０】
次に、グラフィックスエンジン１２０２の内部構成を図１３に示す。ホストインターフェース１３０１はＣＰＵバスに接続され、ＣＰＵとの通信を行う。グラフィックスコントローラ１３０２は、ＣＰＵからの命令に従い、グラフィックスパイプライン１３０４にポリゴン描画データを投入する。前記ポリゴン描画データは、ＣＰＵからの命令列に含まれていても良いし、前記メモリデバイス１２０５上にあるディスプレイリストに含まれていても良い。後者の場合、グラフィックスコントローラ１３０２は、メモリバスインターフェース１３０３を介してディスプレイリストをリードし、ポリゴン描画データを取得する。グラフィックスパイプラインは１３０４は、次の３つの主要なブロックに分かれている。頂点処理部１３０５は、ポリゴンの頂点ごとに座標変換や照度計算などの処理を行うブロックである。ラスタライザ１３０７は、ポリゴン内部をピクセル単位で走査し、各ピクセルに対してＺ値による陰面処理やテクスチャマッピング、各種ブレンド処理などを行うブロックである。セットアップ部１３０６はそれら両者の間にあって、頂点処理部１３０５が出力する座標変換および照度計算済みの３つの頂点データから、ポリゴンの幾何形状やポリゴン内部のカラー値やテクスチャ座標などの傾斜情報などを求め、ラスタライザ１３０７に入力できるデータ形式に変換する処理を行う。なお、図１３は本発明におけるグラフィックスエンジンの構成であるが、一般的なグラフィックスエンジンもほぼ同様の構成であって、本実施の形態を特徴づける構成はラスタライザ１３０７よりも下層にある。
【００４１】
図１４にラスタライザの内部構成を示す。図１４において、ピクセル座標生成部１４０１はポリゴン内部をピクセル単位で走査し、ポリゴン内部に含まれる画素の位置座標（Ｘ座標およびＹ座標）を求める。テクスチャアドレス生成部１４０２、カラー生成部１４０３、フォグ生成部１４０４、Ｚ値生成部１４０５は、前記位置座標からそれぞれ画素のテクスチャ座標値、カラー値、フォグ値、Ｚ値を求める。テクスチャカラー生成部１４０６はメモリバスインターフェースを介して外部メモリ（図１２のメモリデバイス１２０５）上にあるテクスチャカラーをリードし、フィルタリングなどの処理を行う。テクスチャカラー生成部１４０６から出力されるテクスチャカラーは、カラー生成部１４０３から出力されるカラーとテクスチャ環境演算部１４０７においてブレンドされた後、フォグ生成部１４０４から出力されるフォグ値とフォグ演算部１４０８においてブレンドされ、Ｚ値によるガンマ補正部１４０９に送られる。なお、テクスチャマッピングを行わない場合は、テクスチャ環境演算部１４０７はカラー生成部１４０３から入力されるカラーをそのまま出力することは言うまでもない。フォグを行わない場合もまた同様である。また、図１４のラスタライザの内部構成には、フォグ生成部１４０４およびフォグ演算部１４０８が含まれるが、これらのブロックが存在しない構成であっても本実施の形態の特徴を損なうものではない。図１４において、本実施の形態を特徴づけるブロックは、Ｚ値によるガンマ補正部１４０９である。このブロックの内部構成は、すでに実施の形態１および２で説明した、図１および図８に示された構成と同様の構成をとる。すなわち、Ｚ値によるガンマ補正部１４０９は、ガンマ補正曲線を格納できるルックアップテーブルを複数持ち、Ｚ値によって、いずれかのルックアップテーブルの出力を選択するものである。
【００４２】
なお、前記ルックアップテーブルに関しては、Ｚ値によるガンマ補正部１４０９とテクスチャカラー生成部１４０６とで共用できるような構成にしても良い。これは以下のような理由による。従来より、「インデックステクスチャ」というテクスチャのデータ形式が、外部メモリ上のテクスチャデータの容量を小さくする目的で一般的に用いられている。この形式のテクスチャでは、テクスチャカラー生成部１４０６の内部にルックアップテーブルが必要である。しかしながら、近年の半導体技術の進歩により、メモリバスのバンド幅が向上し、使用可能なメモリ容量が増大する傾向にある。また高画質化の要求から、必ずしもインデックステクスチャを使わなければならないという状況が少なくなってきているのも事実である。したがって、従来のインデックステクスチャと、本発明のＺ値によるガンマ補正の２つの用途に対して、同じルックアップテーブルを流用できれば、回路を効率的に使用でき、回路面積の増加も抑えられるという利点がある。
【００４３】
ピクセルテスト部１４１０では、アルファテスト、ステンシルテスト、Ｚテスト（Ｚ値による陰面処理）などが行われる。Ｚテストが行われる場合、Ｚ値生成部１４０５から出力されるＺ値と、前記外部メモリからリードされたＺ値が比較され、前者が後者よりも小さい（手前にある）と判断された画素だけがこのテストをパスする。ディスティネーションブレンド部１４１１では、Ｚ値によるガンマ補正部１４０９からの出力されたガンマ補正済みのカラーと、前記レンダリングバッファからリードされたカラー値が必要に応じてブレンドされる。最終的に、ブレンド処理後のカラー値とＺ値生成部１４０５が生成したＺ値が、前記外部メモリにライトされる。
【産業上の利用可能性】
【００４４】
本発明の奥行き値によるガンマ補正機能を備えたグラフィックス描画装置は、グラフィックス描画機能を搭載するさまざまな電子機器、例えば、携帯電話、ＰＤＡ、デジタルテレビ、カーナビゲーションシステム、家庭用ゲーム機、パーソナルコンピュータ等において用いることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態１における構成を示す図
【図２】従来技術におけるＺバッファを用いた陰面消去を説明するための図
【図３】従来技術におけるＺバッファを用いた陰面消去を説明するための図
【図４】従来技術における光源による照度計算を説明するための図
【図５】本発明の実施の形態１におけるガンマ補正曲線の設定例を示す図
【図６】本発明の実施の形態１における３次元空間とガンマ補正曲線の対応関係を示す図
【図７】本発明の実施の形態１において生成された３次元グラフィックス画像を示す図
【図８】本発明の実施の形態２における構成を示す図
【図９】本発明の実施の形態３における３次元空間とガンマ補正曲線の対応関係を示す図
【図１０】本発明の実施の形態３における３次元空間とガンマ補正曲線の対応関係を示す図
【図１１】本発明の実施の形態３における構成を示す図
【図１２】本発明の実施の形態４における全体構成を示す図
【図１３】本発明の実施の形態４におけるグラフィックスエンジンの構成を示す図
【図１４】本発明の実施の形態４におけるラスタライザの構成を示す図
【符号の説明】
【００４６】
１００，８００，１１００    ガンマ補正部
１０１，８０１，１１０１    選択信号生成部
１０２，８０２，１１０２    マルチプレクサ
２００，３００    スクリーン
２０１〜２０４    ポリゴン
３０１〜３０３，６０１〜６０３    描画オブジェクト
４００    光源
８０３    線形補間部
１２０１    ＣＰＵ
１２０２    グラフィックスエンジン
１２０３    メモリコントローラ
１２０４    表示コントローラ
１２０５    メモリデバイス
１２０６    表示デバイス
１２０７    ＣＰＵバス
１２０８    メモリバス
１３０１    ホストインターフェース
１３０２    グラフィックスコントローラ
１３０３    メモリバスインターフェース
１３０４    グラフィックスパイプライン
１３０５    頂点処理部
１３０６    セットアップ部
１３０７    ラスタライザ
１４０１    ピクセル座標生成部
１４０２    テクスチャアドレス生成部
１４０３    カラー生成部
１４０４    フォグ生成部
１４０５    Ｚ値生成部
１４０６    テクスチャカラー生成部
１４０７    テクスチャ環境演算部
１４０８    フォグ演算部
１４０９    Ｚ値によるガンマ補正部
１４１０    ピクセルテスト部
１４１１    ディスティネーションブレンド部
【図１】
2006127368.tif 000007
【図２】
2006127368.tif 000008
【図３】
2006127368.tif 000009
【図４】
2006127368.tif 000010
【図５】
2006127368.tif 000011
【図６】
2006127368.tif 000012
【図７】
2006127368.tif 000013
【図８】
2006127368.tif 000014
【図９】
2006127368.tif 000015
【図１０】
2006127368.tif 000016
【図１１】
2006127368.tif 000017
【図１２】
2006127368.tif 000018
【図１３】
2006127368.tif 000019
【図１４】
2006127368.tif 000020