(57)【要約】【課題】三次元グラフィックスの描画処理において、表現力を向上するために曲面やサブディビジョンを伴ったポリゴンを利用することが増えている。これらはスクリーン上のサイズなどに応じて細かくポリゴンに分割するなどして処理するが、この処理には多大な計算を行う必要が有り、描画処理の性能低下や処理ハードウェアの大規模化を招いていた。【解決手段】印面処理を行うためのＺバッファ法において距離を現すＺ値を確定的な１つの値で記録するのではなく、最大値と最小値で表現されるあいまいな範囲で記録する。別のオブジェクトを描画する際にはあいまいなＺの範囲が重ならなければ前後判定を行い、範囲が重なる場合は両者のＺ値を確定させて判定する。確定的なＺ値を計算するよりもあいまいな範囲で計算するほうが計算量を削減できるため、確定的なＺ値の計算が少ない場合は計算量を大幅に削減できる。【選択図】図１
2006127369.tif 000002
【特許請求の範囲】
【請求項１】
画素毎にカラー、あいまいＺ値（奥行き値の取りうる範囲）、ＩＤ（必要に応じて奥行き値の範囲を正確にするための情報へのインデックス）を記録し利用する三次元グラフィックスの描画装置であって、描画オブジェクト（点、線、ポリゴン、曲面など）の各画素が既に描き込まれている画素より手前にあるかどうかを判断し、手前に有れば描画するという判断を行う際に、
前記描画オブジェクトの各画素のあいまいＺ値の範囲と、前記既に描き込まれている画素のあいまいＺ値の範囲を比較し、範囲が重ならない場合はそのまま前後関係を判定し、
範囲が重なる場合は、
前記描画オブジェクトの各画素の正確な奥行き値と、前記既に描き込まれている画素の正確な奥行き値をＩＤ情報から計算して画素の前後関係を判定し、前記描画オブジェクトの各画素が手前に有る場合のみ前記既に描き込まれている画素を前記描画オブジェクトの各画素の値で更新する描画装置。
【請求項２】
あいまいＺ値の範囲が重なった場合、まず書き込もうとしている画素の正確な奥行き値だけ計算し、前後関係が判断できるかどうかを試みる、請求項１に記載の描画装置。
【請求項３】
あいまいＺ値の範囲が重なった場合、まず今までの書き込み結果の正確な奥行き値だけ計算し、前後関係が判断できるかどうかを試みる、請求項１に記載の描画装置。
【請求項４】
あいまいＺ値の範囲が重なった場合、まず書き込もうとしている画素か今までの書き込み結果のいずれかの正確な奥行き値だけ計算し、前後関係が判断できるかどうかを試みる、請求項１に記載の描画装置。
【請求項５】
あいまいＺ値の範囲が重なった場合、正確な奥行き値を計算する前の段階として、書き込もうとしている画素や今までの書き込み結果のあいまいＺ値の範囲を狭めるように範囲の推定を細かくし、前後関係が判断できるかどうかを試みる、請求項１に記載の描画装置。
【請求項６】
請求項１に記載の描画装置を備えた集積回路。
【請求項７】
請求項２に記載の描画装置を備えた集積回路。
【請求項８】
請求項３に記載の描画装置を備えた集積回路。
【請求項９】
請求項４に記載の描画装置を備えた集積回路。
【請求項１０】
請求項５に記載の描画装置を備えた集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューターグラフィクスの描画処理を行なうブロック描画装置に関するものである。
【０００２】
専用の半導体集積回路（ＬＳＩ）または本装置をその一部として取り込んだシステムＬＳＩに組み込む形で実装される場合がほとんどであるが、トランジスタやリレー素子など別の手段であいまいＺを用いた描画装置を構成することも可能である。
【背景技術】
【０００３】
従来のコンピューターグラフィクスの描画処理を行なう描画装置は、カラーバッファに加えてＺバッファと呼ばれる視点からの奥行き値を記録しておくバッファを用いて、後から描画しようとした描画オブジェクト（点、線、ポリゴン、曲面など）の各画素が今まで描画した内容の手前にあって見えるのか、それとも奥に有って見えないのかを判断し、見える場合のみカラーバッファやＺバッファを更新することによって陰面処理を行っている。
【０００４】
これを高速化するためにさまざまな工夫がなされている。たとえば、何画素かをまとめたグループを導入し、そのグループ内のＺ値の最大値と最小値を記録しておく。画素毎のＺ値の比較を行う前にこの情報を調べれば、その画素がグループ内のいかなる画素よりも遠くに有る場合は本当のＺバッファを参照しなくても済む場合が有る。グループのサイズを適当に選べばこの情報は小さく出来るため、Ｚバッファ全体を高速アクセス可能なＬＳＩ内部に持つことが出来ない場合でも、この情報だけをＬＳＩ内部に持ち、高速にアクセスすることによってシステムの処理速度を向上可能である。
【０００５】
また、画素毎のＺ値の最大値と最小値を使用する手法も以下の特許文献１に示されている。ただしこの特許文献１では記録するのは各画素内のＺ値の最大値と最小値を正確に計算した結果で、あいまいなＺ値を使って計算量を削減しているのではない。正確に計算した画素内のＺ値の範囲の情報を、ポリゴンとポリゴンの境界線上で、Ｚの範囲が連続するかどうかでアンチエリアス処理が必要かどうかを判断するのに使用している。
【特許文献１】特開平９−３２６０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
三次元グラフィックス処理において、表現力を向上するために従来の単純なポリゴンによる表現に加えて、曲面データやサブディビジョンを伴ったポリゴンを利用することが増えてきている。これらは画面上で滑らかに見えるように、必要な量のポリゴンに分割して描画されることが多い。
【０００７】
このアルゴリズムは比較的簡単であるし、元データのデータ量も少なくて済むため非常に有効な手法である。しかし、分割数を多くすればするほど膨大な計算量が必要となり、現状の描画用ＬＳＩなどでは充分な性能が見込めない場合も多い。
【０００８】
ポリゴンへの分割数を多くすればするほど形状は滑らかになり、光源計算も多数の頂点位置で行われるため照度の変化も緻密に反映できる。しかし計算量が膨大になるため、何らかの軽減措置をとらないと計算時間が幾ら有っても足りなくなる。
【０００９】
表示しようとしている形状データ（１個以上の描画オブジェクトが集まったもの）のアウトラインに当たる部分が荒い折れ線であるのか、滑らかな曲線であるのかは見た目に大きく影響する。また、形状データと形状データが交わる場合、その交線が荒い折れ線であるのか、滑らかな曲線であるのかも見た目に大きく影響する。しかし、それ以外の部分ではそれほど細かくポリゴン分割する必要は無く、大雑把な分割にして計算量を削減すべきである。
【００１０】
大雑把な分割しかしなければ、きちんと光源計算を行った頂点の量が減るため、照度計算の精度が少し悪くなる。しかし、人間の目はこの違いに比較的鈍感なので、問題は起こらない場合が多い。
【００１１】
本発明は形状データと形状データが交わる場合にだけ細かくポリゴンを分割するなどして正確な視点からの距離を計算するが、そうでない場合には荒っぽい分割で済ませ、計算量を大幅に削減することを目的としている。
【００１２】
なお、アウトライン部分を細かく分割する方法は本発明では触れていないので別途工夫する必要がある。
【課題を解決するための手段】
【００１３】
前記従来の課題を解決するために、本発明のあいまいＺを用いた描画装置は、各画素毎にあいまいＺ値（奥行き値の取りうる範囲）を保存することができるバッファを持つ。あいまいＺ値の実装方法としては最大値と最小値のペアで実装しても、最小値と範囲の幅のペアで実装しても、さらに異なる方法で実装しても構わない。以下では最大値と最小値のペアで実装したものとして説明する。
【００１４】
また、ＩＤも画素毎に記録しておく。このＩＤとは、必要に応じて奥行き値の範囲を正確にするための情報へのインデックスである。具体的には、描画オブジェクトの番号を使っても良いし、奥行き値を正確に計算するための情報だけを別途管理して、それを示す番号を使用しても良い。以下の説明でいずれの方法で実装しているかは本質ではないので、特に明記していない。
【００１５】
曲面パッチやサブディビジョンを伴うポリゴンの場合、細かく分割しなければ大幅に計算量を削減できる。また、大まかなＺ値の範囲はバウンディングボックス等で比較的簡単に計算できる。
【００１６】
そこで最初に絵を描く場合はそれほど細かく分轄せず、あいまいＺ値を記録するに留めておく。
【００１７】
この構成で描画を行った場合、既に書き込まれている内容のあいまいＺ値の範囲と、これから書き込もうとしている内容のあいまいＺ値の範囲が重ならなかった場合は、それだけで前後関係が判断できる。ただし、範囲が重なってしまった場合はＺ値を確定して前後関係を判定する必要が有る。
【００１８】
今から描き込もうとしているオブジェクトに関しては情報を残しておけば画素毎に正確な奥行き値を計算することが可能である。既に書き込まれている内容に関してはＩＤが記録されているので、その情報から既に書き込まれている内容の正確なＺ値を再計算する。言うまでもなく正確なＺ値を計算することができるため、前後関係を判断することが可能である。
【発明の効果】
【００１９】
本発明のあいまいＺを用いた描画装置によれば、あいまいＺの範囲が重ならなかった場合は、あいまいな値を計算しているだけであり、計算量が大幅に少ない。そのため比較的少ないハードウェア資源の描画ＬＳＩでも描画処理を高速化することができる。
【発明を実施するための最良の形態】
【００２０】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００２１】
（実施の形態１）
図２は従来のＺバッファ法を用いた描画装置のアルゴリズムを示す概念図である。スクリーン２０１に描画オブジェクト２０２を描画する様子を示している。以下では説明上描画オブジェクト２０２をベジェ曲面パッチとするが、その他の形式の曲面データや、サブディビジョン処理で必要なだけ細分化できるポリゴンデータ、もしくはＬＯＤ形式の形状データなど、必要に応じて細かく分轄して高品質にできる形式なら本質的に同じである。
【００２２】
従来のＺバッファ法では描画オブジェクト２０２を必要なだけ細分化し、ポリゴンに分轄するなどして描画していた。分轄のための計算に加え、分轄によって発生した多くのポリゴン毎の描画処理を行う必要が有るため、計算量は膨大であった。各画素毎の情報２０３として、カラー値と奥行き情報を記録し、必要に応じて参照する必要が有った。
【００２３】
図１は、本発明の実施の形態１におけるあいまいＺを用いた描画装置のアルゴリズムを示す概念図である。スクリーン１０１に描画オブジェクト１０２を描画する様子を示している。従来のＺバッファ法と違い、分轄などは行わず、描画オブジェクト１０２が取りうるＺ値の範囲を計算し、それを各画素毎の情報１０３として、カラー値とあいまいＺ値、ＩＤを記録し、必要に応じて参照する。描画オブジェクト１０２を細分化しているわけではないので、計算量などはかなり少なく出来る。
【００２４】
なお、この説明では描画オブジェクト１０２が取りうるＺ値の範囲を正確に計算するように書いたが、これは多少多めになっても差し支えない。計算などを正確にせず、概算で済ますこともできる。また、各画素毎の情報１０３に記録するあいまいＺ値は全部同じでも構わないし、もう少し精度を良くしたければ画素毎にもう少し絞り込んで記録しても良い。あいまいＺ値の範囲が狭ければ狭いほど前後判定をあいまいＺ値だけで済ませることができる可能性が高くなるが、範囲を狭くするには追加で計算が必要になるため、適当にバランスを取る必要が有る。
【００２５】
さらに、あいまいＺ値の範囲が無くなり、単一の値しか取らなくなった場合は従来のＺバッファ法と同じになる。この場合はそれ以上正確に奥行き値（Ｚ値）を計算する必要が無いので、ＩＤは参照されない。単純なポリゴンのようなオブジェクトの場合は正確にＺ値を計算してもハードウェアの負担にならない場合も有る。そのような場合は正確に計算し、範囲の無い状態で運用すれば良い。
【００２６】
図３は本発明の実施の形態１における１画素毎の情報を図示したものである。カラー値３０１、あいまいＺ値３０２、ＩＤ３０５から構成され、この例ではあいまいＺ値３０２を奥行き範囲の最大値３０３と奥行き範囲の最小値３０４から構成している。Ｚ値が正確に計算されている場合は奥行き範囲の最大値３０３と奥行き範囲の最小値３０４が全く同じ値となる。
【００２７】
図４に本発明の実施の形態１の、画素毎の前後判定処理アルゴリズムをフローチャートで示している。ここではＺ値が小さければ視点からの距離が短い（手前に有る）ものとして説明している。
【００２８】
なお、図４のフローチャートでは示さなかったが、実際問題として、特定の画素の奥行き値だけ正確に計算するのは難しく、オブジェクト全体か、その一部分の奥行き値全部を計算しなければならないことが多い。このような場合、計算した正確なＺ値は該当する画素全てに対して更新しておくべきである。
【００２９】
（実施の形態２）
実施の形態１ではあいまいＺ値どうしでの比較で前後判定が出来なかった場合、書き込もうとしているオブジェクトと、既に書き込まれている画素の両方で正確なＺ値を計算して比較していたが、本実施の形態２では、あいまいＺ値どうしでの比較で前後判定が出来なかった場合、まず書き込もうとしているオブジェクトのＺ値だけを正確に計算し、既に書き込まれている画素のあいまいＺ値と比較して前後判定する点が異なるだけである。
【００３０】
図５に画素毎の前後判定処理アルゴリズムをフローチャートで示している。
【００３１】
（実施の形態３）
実施の形態２と異なり、あいまいＺ値どうしでの比較で前後判定が出来なかった場合、既に書き込まれている画素のあいまいＺだけをまず正確に計算して前後判定を試みる。
【００３２】
（実施の形態４）
実施の形態２や実施の形態３と異なり、あいまいＺ値どうしでの比較で前後判定が出来なかった場合、何らかの方法で書き込もうとしているオブジェクトと、既に書き込まれている画素のいずれかを選んで正確なＺ値を計算し、前後判定を試みる。
【００３３】
いずれを選ぶかは乱数、あいまいＺ値の範囲が大きいほうを選ぶなどが考えられる。
【００３４】
（実施の形態５）
実施の形態１や実施の形態２では必要に応じてあいまいＺ値を正確なＺ値に変換して前後判定をしているが、正確な値を算出するところまで行かなくても、あいまいＺ値の範囲を縮小することができたら、前後判定ができる場合がある。その場合、正確な値を計算するより計算量を削減できる可能性が高い。
【産業上の利用可能性】
【００３５】
本発明にかかるブロック描画装置は、３次元コンピューターグラフィクスの処理として有効なだけではなく、２次元の処理方法としても有用である。したがってこれらの機能を含む家電機器、ゲーム機、パソコンなどの分野で利用される可能性が有る。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態１におけるあいまいＺを用いた描画装置のアルゴリズムを示す概念図
【図２】従来技術のＺバッファ法の概念説明図
【図３】本発明の実施の形態１におけるあいまいＺを用いた描画装置の１画素あたり情報の説明図
【図４】本発明の実施の形態１におけるあいまいＺを用いた描画装置の画素毎の前後判定アルゴリズムの説明図
【図５】本発明の実施の形態２におけるあいまいＺを用いた描画装置の画素毎の前後判定アルゴリズムの説明図
【符号の説明】
【００３７】
１０１    スクリーン
１０２    描画オブジェクト
１０３    スクリーンの１画素単位の情報
２０１    スクリーン
２０２    描画オブジェクト
２０３    スクリーンの１画素単位の情報
３０１    カラー値
３０２    あいまいＺ値
３０３    奥行き範囲の最大値
３０４    奥行き範囲の最小値
３０５    ＩＤ
【図１】
2006127369.tif 000003
【図２】
2006127369.tif 000004
【図３】
2006127369.tif 000005
【図４】
2006127369.tif 000006
【図５】
2006127369.tif 000007