(57)【要約】【課題】  本発明の課題は、ＤＤＡ処理を不要とする場合を判断し、ＤＤＡ処理を実行することなく陰面処理の結果を出力する描画装置を提供すことを目的とする。【解決手段】  本発明の課題は、ＺバッファからＺ値を読み出す毎にＺ値の最大値と最小値とを決定し格納する最大最小値格納手段と、描画するオブジェクトのＺ初期値を前記最大最小値格納手段に格納されているＺ値の最大値と最小値とで夫々比較する初期値比較手段と、前記初期値比較手段による比較結果と前記オブジェクトの傾きとに基づいて前記Ｚ初期値が位置する範囲と動き方向とを判断することによって、前記Ｚバッファから読み出された所定単位のＺ値全てに対してＺテスト結果を合格又は不合格のいずれか一方に設定するデコード手段とを有し、ディジタル微分解析処理を抑止して前記Ｚテスト結果に基づいて陰面処理を行うことにより達成される。【選択図】  図３
2006277665.tif 000002
【特許請求の範囲】
【請求項１】
ＺバッファからＺ値を読み出す毎にＺ値の最大値と最小値とを決定し格納する最大最小値格納手段と、
描画するオブジェクトのＺ初期値を前記最大最小値格納手段に格納されているＺ値の最大値と最小値とで夫々比較する初期値比較手段と、
前記初期値比較手段による比較結果と前記オブジェクトの傾きとに基づいて前記Ｚ初期値が位置する範囲と動き方向とを判断することによって、前記Ｚバッファから読み出された所定単位のＺ値全てに陰面処理の要否を設定するデコード手段とを有し、
ディジタル微分解析処理を抑止して前記陰面処理の要否に基づいて陰面処理を行うことを特徴とする描画装置。
【請求項２】
ディジタル微分解析処理に係る制御を行なう制御手段を有し、
前記デコード手段は、前記陰面処理の要否に基づき前記制御手段に対して前記ディジタル微分解析処理を所定単位のＺ値全てに対して省略するよう指示することを特徴とする請求項１記載の描画装置。
【請求項３】
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記所定単位のＺ値内の中間点のＺ値が位置する範囲と動き方向とを判断することによって、中間点前或いは中間点後のいずれかに対して前記陰面処理の要否を設定することを特徴とする請求項１又は２記載の描画装置。
【請求項４】
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記描画される画素が前記Ｚ値の最大値より大きいＺ値となった後のＺ値に対して前記陰面処理の要否を設定することを特徴とする請求項１又は２記載の描画装置。
【請求項５】
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記描画される画素が前記Ｚ値の最小値より小さいＺ値となった後のＺ値に対して前記陰面処理の要否を設定することを特徴とする請求項１又は２記載の描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトを表示する際に、奥行きに関する情報を格納しているＺバッファを用いて陰面処理を行う描画装置に関し、特に、ＤＤＡ処理を不要とする場合を判断し、ＤＤＡ処理を実行することなく陰面処理の結果を出力する描画装置に関する。
【背景技術】
【０００２】
３次元の画像を表現する３次元グラフィックス分野において、奥行きに関する情報を格納しているＺバッファを用いた陰面消去法が一般的な手段のひとつとなっている。画素ごとにＺ値（オブジェクトが存在する奥行きを示す値）を設け、この集合Z（ｘ、ｙ）をＺバッファと読んでいる。
【０００３】
典型的な処理として、先ず、Ｚバッファは最も遠い値に初期化され、その後、新しいオブジェクトを描く際に、その描くオブジェクトの持つＺ値とバッファのＺ値を比較し、より手前のオブジェクトは描画してＺバッファを更新する。この比較の結果、新たなオブジェクトがより奥側に位置すると判断された場合、描画は実行されず、予め描かれていた手前に存在するオブジェクトが残のこるように制御される。
【０００４】
このような処理により、手前のオブジェクトにより、奥に存在するオブジェクトを見えなくする方法がＺバッファによる陰面消去法であり、これがＺテストと呼ばれている。
【０００５】
過去に描かれたオブジェクトのＺ値で有意な値はすべてＺバッファに記録され、これらのＺ値は画素毎に任意の値を取る。例えば、Z（ｙ＝１００、ｘ）＝｛０、５、２、６、９、４、３２｝のような値で示される。
【０００６】
ここで、新たなオブジェクトを描く場合、そのＺ値は初期値、傾きという２つのパラメータと、開始位置のｘ座標、終了位置のｘ座標が与えられる。
【０００７】
初期値をＺｓとし、傾きをｄＺｄｘとすると、開始点からＺｓにｄＺｄｘを加算することによって次の画素のＺ値が求まり、更にｄＺｄｘを加算する事によりその次の画素のＺ値を取得する。この処理がＤＤＡ（Digital  Differential  Analyzer）処理である。
【０００８】
このような処理は、例えば、加算を繰り返し実行する、図１に示すような典型的な従来の回路構成により実現される。図１を参照しつつ、従来からのＺテストの結果を得るまでの手順を説明する。
（１）現状のＺ値をＺバッファから単位ラスタ分読み出して、Ｚ値レジスタ２１に格納する。
（２）Ｚレジスタ２３に設定されたＺｓ（Ｚ初期値）、ｄＺｄｘレジスタに設定されたｄＺｄｘ（Ｚの傾き）から描画すべきオブジェクトのＺ値を加算器２５によって加算し、その加算結果をＺレジスタ２３に設定することによって、単位クラスタ分の加算を繰り返してＤＤＡ処理を行う。
（３）一方、加算の度に次の画素のＺ値と比較器２６にて比較することによって前後関係を判断し、描画するべきか否かを決定する。
上記（１）から（３）の処理により、Ｚテストの結果が比較器２６よりＺテスト結果レジスタへ出力され、Ｚテストシーケンス制御部１０によって、描画する画素についてそのＺ値を更新しＺバッファに書き戻される。
【０００９】
図１に示すような従来の回路構成では、現状のラスタ単位のＺバッファから読み出したＺ値と、Ｚｓ（Ｚ初期値）と、ｄＺｄｘ（Ｚの傾き）と、Ｘ座標の初期値と、処理開始対象となる画素のＸ座標と、処理終了対象となる画素のＸ座標とが入力データであって、描画すべきか否かを示すＺテスト結果と、更新後のＺバッファに格納すべきＺ値とが出力データである。
【特許文献１】特開平１０−１３４２０４号公報
【特許文献２】特開２００１−８６５００号公報
【特許文献３】米国特許第６７３４８６１号明細書
【特許文献４】米国特許第５５０９１１０号明細書
【特許文献５】米国特許第６４９２９８７号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来の方法では、陰面処理を行う際、ラスタ方向に対して１画素ごとにＤＤＡ処理したＺ値とＺバッファのＺ値を逐一比較して描画オブジェクトの前後関係を判定していた。この為、陰面消去の処理に掛かる処理時間は、描画面積（描画画素数）に比例的に大きくならざるを得なかった。また、ＤＤＡ回路を稼動させないとテスト結果を得る事ができなかった。
【００１１】
よって、本発明の目的は、ＤＤＡ処理を不要とする場合を判断し、ＤＤＡ処理を実行することなく陰面処理の結果を出力することによって、ＤＤＡ処理による動作時間と動作電力を節約する描画装置を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明は、ＺバッファからＺ値を読み出す毎にＺ値の最大値と最小値とを決定し格納する最大最小値格納手段と、描画するオブジェクトのＺ初期値を前記最大最小値格納手段に格納されているＺ値の最大値と最小値とで夫々比較する初期値比較手段と、前記初期値比較手段による比較結果と前記オブジェクトの傾きとに基づいて前記Ｚ初期値が位置する範囲と動き方向とを判断することによって、前記Ｚバッファから読み出された所定単位のＺ値全てに対してＺテスト結果を合格又は不合格のいずれか一方に設定するデコード手段とを有し、ディジタル微分解析処理を抑止して前記Ｚテスト結果に基づいて陰面処理を行うように構成される。
【発明の効果】
【００１３】
本願発明は、ＤＤＡ処理（ディジタル微分解析処理）を不要とする場合を判断し、ＤＤＡ処理を実行することなく陰面処理の結果を出力することによって、ＤＤＡ処理による動作時間と動作電力を節約することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
図２は、本発明に係る陰面処理の概念説明するための図である。図２において、過去に描かれたオブジェクト１ａ及び１ｂと、Ｚ最大値２ａ及びＺ最小値２ｂとは、Ｚバッファに格納されているＺ値に基づいて、視点１からの奥行きで示されている。
【００１６】
オブジェクト１ａは、過去に描かれたオブジェクトのうち最も奥に位置するオブジェクトであって、そのオブジェクト１ａの最も奥側の位置をＺ最大値２ａとする。Ｚfarthestは、Ｚ最大値２ａに基づく境界を示す。
【００１７】
オブジェクト１ｂは、過去に描かれたオブジェクトのうち最も手前に位置するオブジェクトであって、そのオブジェクト１ｂの最も手前の位置をＺ最小値２ｂとする。Ｚnearestは、Ｚ最大値２ｂに基づく境界を示す。
【００１８】
Ｚfarthest及びＺnearestに基づく２つの境界線によって分けられる３つの領域Ａ、Ｂ及びＣにおいて、視点１に対して、領域ＡはＺ最大値１ａ（Ｚfarthest）より更に奥の領域を示し、領域ＢはＺ最大値１ａ（Ｚfarthest）より手前かつＺ最大値１ｂ（nearest）より奥の領域を示し、そして、領域ＣはＺ最大値１ｂ（nearest）より手前の領域を示す。
【００１９】
本発明に係る陰面処理では、描画の対象となる画素が領域Ａ、Ｂ及びＣのいずれに位置するかによって処理の方法が異なる。
【００２０】
描画対象となる画素が領域Ａにある場合、視点１に対して奥方向（上矢印方向）に傾きがある場合はＤＤＡ（Digital Differential
Analyzer：ディジタル微分解析）処理することなく描画対象となる画素全てについて試験結果を不合格とし、視点１に対して手前方向（下矢印方向）に傾きがある場合は描画対象となる画素毎にＤＤＡ処理をして試験結果を取得し、描画の始点となる画素と終点となる画素とも領域Ａにある場合（或いは、単に動きのない場合）は領域Ａで描画対象となる画素全てについて試験結果を不合格とする。
【００２１】
ここで、合格とは描画対象となる画素を表示することであって、不合格とは画素を表示しないことを意味する。
【００２２】
描画対象となる画素が領域Ｂにある場合、ＤＤＡ処理をして試験結果を取得する。
【００２３】
描画対象となる画素が領域Ｃにある場合、視点１に対して手前方向（下矢印方向）に傾きがある場合はＤＤＡ処理することなく描画対象となる画素全てについて試験結果を合格とし、視点１に対して奥方向（上矢印方向）に傾きがある場合は描画対象となる画素毎にＤＤＡ処理をして試験結果を取得し、描画の始点となる画素と終点となる画素とも領域Ａにある場合（或いは、単に動きのない場合）は領域Ｃで描画対象となる画素全てについて試験結果を合格とする。
【００２４】
次に、上述した陰面処理を実現する回路構成について説明する。図３は、本発明の一実施形態に係る描画装置の第一の回路構成を示す図である。
【００２５】
図３において、描画装置１０１は、Ｚテストする論理の全てのレジスタのライト信号及びセレクタの選択信号等の制御に必要なシーケンス信号を出力して全体を制御するＺテストシーケンス制御部１０と、Ｚバッファから単位ラスタ分のＺ値を読み出してＺ値レジスタ２１へ格納する読み込み装置２０と、単位ラスタ分のＺ値を格納するための複数のレジスタで構成されるＺ値レジスタ２１と、単位ラスタ分の画素毎のＺテストの結果を格納するための複数のレジスタで構成されるＺテスト結果レジスタ２２と、Ｚテストシーケンス制御部１０によって設定されるＺ初期値を格納するＺ初期値レジスタ２３と、Ｚテストシーケンス制御部１０によって設定されるＺの傾きを格納するｄＺｄｘレジスタ２４と、Ｚレジスタ３７のＺ値とｄＺｄｘレジスタ２４のＺの傾きとによって次の画素のＺ値（Ｚ予測値）を算出する加算器２５と、Ｚ初期値及びＺ予測値をＺバッファのＺ値と比較する比較器２６と、予測Ｚ値の位置とＺの傾きとに基づいてＤＤＡ処理の省略を判断するデコーダ３０と、Ｚ最大値２ａを格納するＺｍａｘレジスタ３１と、Ｚｍａｘレジスタ３１のＺ値とＺバッファから読み込んだＺ値とを比較して大きい方のＺ値をＺ最大値２ａとしてＺｍａｘレジスタ３１を更新する比較器３２と、Ｚ最小値２ｂを格納するＺｍｉｎレジスタ３３と、Ｚｍｉｎレジスタ３３のＺ値とＺバッファから読み込んだＺ値とを比較して小さい方のＺ値をＺ最小値２ｂとしてＺｍｉｎレジスタ３３を更新する比較器３４と、Ｚ最大値２ａとＺ予測値との大小を比較する比較器３５と、Ｚ最小値２ｂとＺ予測値との大小を比較する比較器３６と、Ｚ予測値を格納するＺレジスタ３７とを有する。
【００２６】
読み込み装置２０は、Ｚバッファから読み込んだ単位ラスタ分のＺ値を画素毎にＺ値レジスタ２１に順に格納する。Ｚ値レジスタ２１に格納されたＺ値は、Ｚテストシーケンス制御部１０によってＺ値レジスタ２１のセレクタが順次切り替えられ、画素毎のＺ値が比較器２６へ入力される。
【００２７】
一方、Ｚテストシーケンス制御部１０は、Ｚ初期値レジスタ２３にＺ初期値を設定し、また、そのＺ初期値におけるＺの傾きをｄＺｄｘレジスタ２４に設定する。
【００２８】
Ｚ初期値レジスタ２３に設定されたＺ初期値はＺレジスタ３７へ入力され、Ｚレジスタ３７によってそのＺ初期値は、ＺバッファのＺ値と比較するため比較器２６へ入力されると共に、Ｚ最大値２ａとＺ最小値２ｂと比較するため比較器３５及び比較器３６へと入力される。
【００２９】
また、Ｚ初期値はＺレジスタ３７から加算器２５へも入力される。加算器２５は、Ｚ初期値と、ｄＺｄｘレジスタ２４から入力されるＺの傾きとを用いて次の画素のＺ値を算出する。加算器２５は、算出結果をＺ予測値としてＺレジスタ３７を更新する。Ｚレジスタ３７は、上記Ｚ初期値同様に、更新されたＺ予測値を比較器２６、３５、及び３６へと入力する。
【００３０】
比較器２６は、Ｚ値レジスタ２１から入力されるＺ値と、Ｚレジスタ３７から入力されるＺ初期値又はＺ予測値（以下、総称してＺ予測値とする）との大小を比較して、Ｚ予測値がより大きい場合、つまりＺ予測値が更に奥に位置している場合、比較器２６は表示しないことを示す値（例えば、「０（ゼロ）」）を出力する。一方、Ｚ予測値が小さい場合、つまりＺ予測値が手前に位置している場合、比較器２６は表示することを示す値（例えば、「１」）を出力する。比較した一方のＺ値が大きいとは、更に奥に位置することを示し、小さいとは、更に手前に位置することを示す。
【００３１】
一方、読み込み装置２０は、Ｚバッファから読み込んだＺ値をＺ最大値２ａを決定するために比較器３２へ入力し、また、そのＺ値をＺ最小値２ｂを決定するために比較器３４へ入力する。ここで、比較器３２の判断結果によってＺ値がＺ最大値２ａより大であれば、Ｚｍａｘレジスタ３１はそのＺ値によって更新され、Ｚ予測値との比較を行うため更新されたＺ最大値２ａがＺｍａｘレジスタ３１から比較器３５へと入力される。同様に、比較器３４の判断結果によってＺ値がＺ最小値２ｂより小であれば、Ｚｍｉｎレジスタ３３はそのＺ値によって更新され、Ｚ予測値との比較を行うため更新されたＺ最小値２ｂがＺｍｉｎレジスタ３４から比較器３６へと入力される。
【００３２】
比較器３５は、Ｚｍａｘレジスタ３１から入力されたＺ最大値２ａと、Ｚレジスタ３７から入力されたＺ予測値とを比較して、その比較結果をデコーダ３０へ入力する。
【００３３】
比較器３６は、Ｚｍｉｎレジスタ３３から入力されたＺ最小値２ｂと、Ｚレジスタ３７から入力されたＺ予測値とを比較して、その比較結果をデコーダ３０へ入力する。
【００３４】
デコーダ３０は、比較器３５からの比較結果と比較器３６からの比較結果とによって、Ｚ予測値が図２に示す領域Ａ、Ｂ及びＣのどの領域に位置するかを判断し、また、ｄＺｄｘレジスタ２４から入力されるＺの傾きを示す傾き符号に基づいて、Ｚ予測値が奥へと遠ざかろうとしているのか、手前へと近づこうとしているのかを判断する。
【００３５】
これら判断結果に基づいて、デコーダ３０は、Ｚテスト結果レジスタ２２を全て不合格又は合格に設定して、同時に、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を示す信号を出力する。Ｚテスト結果レジスタ２２を全て不合格に設定する場合、デコーダ３０は、Ｚテスト結果レジスタ２２のレジスタ全てに定数「０」を書き込む。一方、Ｚテスト結果レジスタ２２を全て合格に設定する場合、デコーダ３０は、Ｚテスト結果レジスタ２２のレジスタ全てに定数「１」を書き込む。
【００３６】
Ｚテストシーケンス制御部１０は、デコーダ３０からＤＤＡ処理省略指示を受信すると、ＤＤＡ処理を行わず、次の単位ラスタ分の画素の処理を開始する。読み込み装置２０に次の単位ラスタ分の画素のＺ値をＺ値レジスタ２１に読み込ませる。
【００３７】
ＤＤＡ処理が行われない（省略される）と、比較器２６によるＺ値レジスタ２１に格納されたＺ値とＺ予測値との比較処理も行われない。
【００３８】
このような第一の回路構成において、デコーダ３０がＺ初期値の位置判断とＺの傾きによってＤＤＡ処理が省略可能と判断すると、Ｚ初期値の時点で、Ｚテスト結果レジスタ２２のレジスタ全てに定数「０」又は「１」が書き込まれるため、ＤＤＡ処理による処理時間及び動作電力を削減することができる。
【００３９】
図４は、デコーダによって行われるＤＤＡ省略処理の可否テーブルを示す図である。図４に示すＤＤＡ省略処理の可否テーブルにおいて、ＺｓはＺ予測値を示し、ＺｍｉｎはＺ最大値２ａを示し、ＺｍａｘはＺ最小値２ｂを示す。
【００４０】
図４において、デコーダ３０による処理は、大別して、Ｚ予測値の視覚的位置がFarthestより奥（領域Ａ）、中間（領域Ｂ）、そしてNearestより手前（領域Ｃ）とに分けられる。
【００４１】
視覚的位置がFarthestより奥（領域Ａ）の場合、つまり、デコーダ３０が比較器３５の比較結果と比較器３６の比較結果とから「Ｚｓ＞Ｚｍａｘ」であると判断した場合、ｄＺｄｘレジスタ２４からのＺの傾き符号が「ｄＺｄｘ＞０」（即ち、一番奥の領域の位置から遠ざかる方向）、「ｄＺｄｘ＝０」（即ち、一番奥の領域から動かない）、そして「ｄＺｄｘ＜０」（即ち、一番奥の領域の位置から近づく方向）のいずれを示すかを判断する。
【００４２】
その結果、「ｄＺｄｘ＞０」であると判断した場合、Ｚ値レジスタ２１の全画素を不合格とし、ＤＤＡ処理を省略する。つまり、デコーダ３０は、Ｚテスト結果レジスタ２２にオールゼロを設定し、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を送信する。
【００４３】
「ｄＺｄｘ＞０」であると判断した場合、同様に、Ｚ値レジスタ２１の全画素を不合格とし、ＤＤＡ処理を省略する。つまり、デコーダ３０は、Ｚテスト結果レジスタ２２にオールゼロを設定し、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を送信する。
【００４４】
「ｄＺｄｘ＜０」であると判断した場合、ＤＤＡ処理省略を不可とし、Ｚ値レジスタ２１の各画素に対してＤＤＡ処理を逐次行う。つまり、デコーダ３０は、Ｚテスト結果レジスタ２２の値を制御せず、また、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を行わない。
【００４５】
次に、視覚的位置が中間（領域Ｂ）の場合、つまり、デコーダ３０が比較器３５の比較結果と比較器３６の比較結果とから「Ｚｍｉｎ≦Ｚｓ≦Ｚｍａｘ」であると判断した場合、ｄＺｄｘレジスタ２４からのＺの傾き符号が「ｄＺｄｘ＞０」（即ち、中間領域の位置から遠ざかる方向）、「ｄＺｄｘ＝０」（即ち、中間領域から動かない）、そして「ｄＺｄｘ＜０」（即ち、中間領域の位置から近づく方向）のいずれを示す場合も、ＤＤＡ処理省略を不可とし、Ｚ値レジスタ２１の各画素に対してＤＤＡ処理を逐次行う。つまり、デコーダ３０は、Ｚテスト結果レジスタ２２の値を制御せず、また、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を行わない。
【００４６】
更に、視覚的位置がNearestより手前（領域Ｃ）の場合、つまり、デコーダ３０が比較器３５の比較結果と比較器３６の比較結果とから「Ｚｍｉｎ＞Ｚｓ」であると判断した場合、ｄＺｄｘレジスタ２４からのＺの傾き符号が「ｄＺｄｘ＞０」（即ち、一番手前の領域の位置から遠ざかる方向）、「ｄＺｄｘ＝０」（即ち、一番手前の領域から動かない）、そして「ｄＺｄｘ＜０」（即ち、一番手前の領域の位置から近づく方向）のいずれを示すかを判断する。
【００４７】
その結果、「ｄＺｄｘ＞０」であると判断した場合、ＤＤＡ処理省略を不可とし、Ｚ値レジスタ２１の各画素に対してＤＤＡ処理を逐次行う。つまり、デコーダ３０は、Ｚテスト結果レジスタ２２の値を制御せず、また、Ｚテストシーケンス制御部１０に対してＤＤＡ処理省略指示を行わない。
【００４８】
上記ＤＤＡ省略処理の可否テーブルに示されるような制御をデコーダ３０が回路構成で実現するための各状態を示すコードは、例えば、図５に示すようになる。また、デコーダ３０の回路構成は、例えば、図６に示すような構成となる。図５は、各状態を示すコードの例を示す図である。図６は、図５に示す状態に従ったデコーダの回路構成の例を示す図である。図５及び図６中のカッコ内数字は、同一の状態には同一のものを対応させてある。図６に示される回路構成は、デコーダ３０の一部分を示し、ＤＤＡ省略処理の可否テーブルに示されるような制御を行なうためのメインとなる部分である。
【００４９】
図５において「（１）Ｚｓ≦Ｚｍａｘ」の結果が真で「１」、そして偽で「０」が図６の「（１）Ｚｓ≦Ｚｍａｘ」の入力ビットに入力される。
【００５０】
図５において「（２）Ｚｍｉｎ≦Ｚｓ」の結果が真で「１」、そして偽で「０」が図６の「（２）Ｚｍｉｎ≦Ｚｓ」の入力ビットに入力される。
【００５１】
図５において「（３）ｄＺｄｘ＞０」の結果が真で「１」、そして偽で「０」が図６の「（３）ｄＺｄｘ＞０」の入力ビットに入力される。
【００５２】
図５において「（４）ｄＺｄｘ＝０」の結果が真で「１」、そして偽で「０」が図６の「（４）ｄＺｄｘ＝０」の入力ビットに入力される。
【００５３】
図５において「（５）ｄＺｄｘ＜０」の結果が真で「１」、そして偽で「０」が図６の「（５）ｄＺｄｘ＜０」の入力ビットに入力される。
【００５４】
図６の回路構成において、デコーダ３０は、ＥＸＯＲ回路３０ａと、ＡＮＤ回路３０ｂと、ＮＯＲ回路３０ｃと、ＥＸＮＯＲ回路３０ｄと、ＯＲ回路３０ｅと、ＭＵＸ回路３０ｆと、上述した（１）から（５）の５つの入力ビットと、結果を出力する２つの出力ビットとを有する。
【００５５】
「（１）Ｚｓ≦Ｚｍａｘ」の入力ビットには、比較器３５からの結果が入力される。「（２）Ｚｍｉｎ≦Ｚｓ」の入力ビットには、比較器３６からの結果が入力される。
【００５６】
「（３）ｄＺｄｘ＞０」の入力ビットには、ｄＺｄｘレジスタ２４からのＺの傾き符号が正の傾きか否かを示す結果が入力される。「（４）ｄＺｄｘ＝０」の入力ビットには、ｄＺｄｘレジスタ２４からのＺの傾き符号がゼロであるかを示す結果が入力される。「（５）ｄＺｄｘ＜０」の入力ビットには、ｄＺｄｘレジスタ２４からのＺの傾き符号が負の傾きか否かを示す結果が入力される。
【００５７】
ＥＸＯＲ回路３０ａは、「（３）ｄＺｄｘ＞０」の入力ビットと「（４）ｄＺｄｘ＝０」の入力ビットの入力値に対するＥＸＯＲ論理結果をＡＮＤ回路３０ｂへ出力する。
【００５８】
ＡＮＤ回路３０ｂは、「（５）ｄＺｄｘ＜０」の入力ビットと、ＥＸＯＲ回路３０ａによる論理結果と、「（２）Ｚｍｉｎ≦Ｚｓ」の入力ビットの入力値に対するＡＮＤ論理結果をＭＵＸ回路３０ｅへ出力する。
【００５９】
ＥＸＮＯＲ回路３０ｃは、「（５）ｄＺｄｘ＜０」の入力ビットと、「（４）ｄＺｄｘ＝０」の入力ビットの入力値に対するＥＸＮＯＲ論理結果をＯＲ回路３０ｄとＮＯＲ回路３０ｆとへ出力する。
【００６０】
ＮＯＲ回路３０ｆは、「（２）Ｚｍｉｎ≦Ｚｓ」の入力ビットと、ＥＸＮＯＲ回路３０ｃとからの入力に対するＮＯＲ論理結果を全画素に対する合否として「（６）結果ビット」の０ビットへ出力する。
【００６１】
ＭＵＸ回路３０ｅは、ＡＮＤ回路３０ｂによる論理結果と、ＯＲ回路３０ｄによる論理結果と、「（１）Ｚｓ≦Ｚｍａｘ」の入力ビットからの入力に対してＤＤＡ処理の可否を「（６）結果ビット」の１ビットへ出力する。
【００６２】
従って、図５に示す「（６）結果ビット」により、ＤＤＡ処理省略不可の場合には「００」が出力され、全画素不合格かつＤＤＡ処理省略可の場合には「１０」が出力され、そして全画素合格かつＤＤＡ処理省略可の場合「１１」が出力される。ＤＤＡ処理省略不可を示す「００」の場合、デコーダ３０は、Ｚテスト結果レジスタ２２を操作しないし、また、ＤＤＡ処理省略指示をＺテストシーケンス制御部１０に送信しない。
【００６３】
図６に示される回路構成では、図７に示すような５つの入力ビットと２つの出力ビットの値について３２通りの組み合わせが考えられるが、あり得る組み合わせはそのうちの９通りである。
【００６４】
「（１）Ｚｓ≦Ｚｍａｘ」が偽で「０」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が真で「１」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ａ（奥）に位置していてかつ近づいている場合、「（６）結果ビット」は「００」（ＤＤＡ処理省略不可）を示す。
【００６５】
「（１）Ｚｓ≦Ｚｍａｘ」が偽で「０」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が真で「１」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ａ（奥）に位置していてかつ動かない場合、「（６）結果ビット」は「１０」（全画素不合格であってかつＤＤＡ処理省略可）を示す。
【００６６】
「（１）Ｚｓ≦Ｚｍａｘ」が偽で「０」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が真で「１」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ａ（奥）に位置していてかつ遠ざかる場合、「（６）結果ビット」は「１０」（全画素不合格であってかつＤＤＡ処理省略可）を示す。
【００６７】
また、「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が偽で「０」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が真で「１」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｂ（手前）に位置していてかつ近づいている場合、「（６）結果ビット」は「１１」（ＤＤＡ処理省略可）を示す。
【００６８】
「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が偽で「０」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が真で「１」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｂ（手前）に位置していてかつ動かない場合、「（６）結果ビット」は「１１」（ＤＤＡ処理省略可）を示す。
【００６９】
「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が偽で「０」、「（３）ｄＺｄｘ＞０」が真で「１」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｂ（手前）に位置していてかつ遠ざかる場合、「（６）結果ビット」は「００」（ＤＤＡ処理省略不可）を示す。
【００７０】
更に、「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が真で「１」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｃ（中）に位置していてかつ近づいている場合、「（６）結果ビット」は「００」（ＤＤＡ処理省略不可）を示す。
【００７１】
「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が偽で「０」、「（４）ｄＺｄｘ＝０」が真で「１」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｃ（中）に位置していてかつ動かない場合、「（６）結果ビット」は「００」（ＤＤＡ処理省略不可）を示す。
【００７２】
「（１）Ｚｓ≦Ｚｍａｘ」が真で「１」、「（２）Ｚｍｉｎ≦Ｚｓ」が真で「１」、「（３）ｄＺｄｘ＞０」が真で「１」、「（４）ｄＺｄｘ＝０」が偽で「０」、そして「（５）ｄＺｄｘ＜０」が偽で「０」の場合、すなわち、Ｚ予測値（Ｚｓ）が領域Ｃ（中）に位置していてかつ遠ざかる場合、「（６）結果ビット」は「００」（ＤＤＡ処理省略不可）を示す。
【００７３】
上述したような第一の回路構成にてデコーダ３０がＤＤＡ処理省略不可と判断した場合においても、描画の始点となる画素と終点となる画素の中間点を求めて、その中間点のＺ値とＺ傾きとに基づいて、始点から中間点までのＤＤＡ処理を省略するように制御することが考えられる。以下に中間点を求めてＤＤＡ処理省略の可否を行う回路構成とその制御について図８及び図９で説明する。
【００７４】
図８は、本発明の一実施形態に係る描画装置の第二の回路構成を示す図である。図８中、図３と同一の回路には同一の符号を付し、その説明を省略する。図８に示す第二の回路構成において、描画装置１０２は、図３に示す第一の回路構成に加えて、乗算器３８がｄＺｄｘレジスタ２４と加算器２５との間に備えられ、また、ＤＤＡ処理を省略する画素数を示すスキップ画素数レジスタ３９が備えられる。スキップ画素数レジスタ３９に設定されている画素数が乗算器３８に入力される。
【００７５】
この第二の回路構成において、デコーダ３０がＺレジスタ３７から比較器２６へのＺ予測値の入力を制御する仕組みを備えることによって、例えば、デコーダ３０がスキップ画素数３９に描画されるオブジェクトの終点までの画素数を設定することによって、その終点でのＺ予測値を取得することができる。従って、デコーダ３０は、始点と終点の両方のＺ予測値が位置する領域を判断することが可能となる。
【００７６】
終点までの画素数として、例えば、Ｚバッファから読み込まれる単位ラスタ分に相当する画素数が設定されれば良い。
【００７７】
図９は、図８に示す第二の回路構成におけるデコーダによる制御を示す図である。図９において、「視覚的位置」、「ＺｓとＺｍｉｎ，Ｚｍａｘの関係」、「ｄＺｄｘの値」、「視覚的意味」、及び「１番目の処理方法」は、図４の記載と同様であるので、その説明を省略する。ここで「１番目の処理方法」は、図４の「処理方法」に相当する。
【００７８】
図８に示す第二の回路構成では、描画装置１０２のデコーダ３０は、１番目の処理において、ＤＤＡ処理を省略できなかった状態について更に中間点を求めて、その中間点のＺ値とＺの傾きに応じて処理を決定するため、図９には、更に、「２番目の処理方法」、「２番目の処理の結果」、「２番目の処理の結果に対する対処」が示されている。
【００７９】
図９にて、デコーダ３０によって更に処理される内容が斜線で塗りつぶされている部分である。「すでに修了」と示される部分は、既にＺテスト結果が出力されていることを示す。
【００８０】
以下に、更なる処理が成される部分（斜線で示される部分）について説明する。
【００８１】
視覚的位置がFarthestより奥（領域Ａ）の場合（Ｚｓ＞Ｚｍａｘ）であって、かつ「ｄＺｄｘ＜０」であると判断した場合、デコーダ３０は、単位ラスタ方向の始点と終点とから中間点を求めて、更に、その中間点もＺｓ＜Ｚｍａｘの領域にあるのか否かを判断する。
【００８２】
中間点もＺｓ＜Ｚｍａｘの領域にある場合、始点から中間点までの画素数分をスキップし、スキップした画像は全不合格とする。一方、中間点がＺｓ＜Ｚｍａｘの領域に位置しない場合、始点から中間点までの任意の地点でＺｓ＜Ｚｍａｘの領域に位置する点を探し、始点からその地点までの画素数分をスキップし、スキップした画像は全不合格となる。或いは、中間点がＺｓ＜Ｚｍａｘの領域に位置しない場合は常にＤＤＡ処理を行うようにしてもよい。
【００８３】
視覚的位置が中間（領域Ｂ）の場合（Ｚｍｉｎ≦Ｚｓ≦Ｚｍａｘ）であって、かつ「ｄＺｄｘ＞０」であると判断した場合、デコーダ３０は、ＤＤＡ処理をさせつつ、Ｚ予測値がＺｍａｘの値となると（Ｚｓ＝＝Ｚｍａｘ）、Ｚテストシーケンス制御部１０に対してＤＤＡ処理を中断させて、残りの画素を全て不合格とする。
【００８４】
一方、「ｄＺｄｘ＝０」であると判断した場合、デコーダ３０は、ＤＤＡ処理をさせる。
【００８５】
また一方、「ｄＺｄｘ＜０」であると判断した場合、デコーダ３０は、ＤＤＡ処理をさせつつ、Ｚ予測値がＺｍｉｎの値となると（Ｚｓ＝＝Ｚｍｉｎ）、Ｚテストシーケンス制御部１０に対してＤＤＡ処理を中断させて、残りの画素を全て合格とする。
【００８６】
視覚的位置がNearestより手前（領域Ｃ）の場合（Ｚｍｉｎ＞Ｚｓ）であって、かつ「ｄＺｄｘ＞０」であると判断した場合、デコーダ３０は、単位ラスタ方向の始点と終点とから中間点を求めて、更に、その中間点もＺｓ＜Ｚｍａｘの領域にあるのか否かを判断する。
【００８７】
中間点もＺｍｉｎ＞Ｚｓの領域にある場合、始点から中間点までの画素数分をスキップし、スキップした画像は全合格となる。一方、中間点がＺｍｉｎ＞Ｚｓの領域に位置しない場合、始点から中間点までの任意の地点でＺｍｉｎ＞Ｚｓの領域に位置する点を探し、始点からその地点までの画素数分をスキップし、スキップした画像は全合格となる。或いは、中間点がＺｍｉｎ＞Ｚｓの領域に位置しない場合は常にＤＤＡ処理を行うようにしてもよい。
【００８８】
図８に示す第二の回路構成の乗算器３８の代わりに、シフタを代用することが考えられる。
【００８９】
図１０は、本発明の一実施形態に係る描画装置の第三の回路構成を示す図である。図１０中、図３の第一の回路構成と同様の回路には同一符号を付し、その説明を省略する。図１０に示す第三の回路構成を有する描画装置１０３には、図８に示す第二の回路構成の乗算器３８の代用としてシフタ４８が備えられ、そして、スキップ画素数３９が２のべき乗に限定した値を示すスキップ画素数４９が備えられる。
【００９０】
この第三の回路構成では、スキップ画素数を２のべき乗に限定することによって、第二の回路構成より簡素化することができる。それ以外については、図９に示す処理が成されるため、その説明を省略する。
【００９１】
上記第二の回路構成及び第三の回路構成によって、任意の点（例えば、中間点）のＺ値を１サイクルで取得することができる。
【００９２】
上記第一、第二、及び第三の回路構成によって、デコーダ３０によって、ＤＤＡ処理を省略することが可能となる。
【００９３】
上述より、本発明によれば、ＤＤＡ処理を不要とする場合を判断し、ＤＤＡ処理を実行することなく陰面処理の結果を出力することによって、ＤＤＡ処理による動作時間と動作電力とを節約することができる。
【００９４】
上述において、１次関数で描画すべきＺ値が与えられた場合について説明したが、２次関数以上の場合であっても、Ｚ値の傾き（動く方向）が明らかであれば、本発明を適用することが可能である。
【００９５】
以上の説明に関し、更に以下の項を開示する。
（付記１）
ＺバッファからＺ値を読み出す毎にＺ値の最大値と最小値とを決定し格納する最大最小値格納手段と、
描画するオブジェクトのＺ初期値を前記最大最小値格納手段に格納されているＺ値の最大値と最小値とで夫々比較する初期値比較手段と、
前記初期値比較手段による比較結果と前記オブジェクトの傾きとに基づいて前記Ｚ初期値が位置する範囲と動き方向とを判断することによって、前記Ｚバッファから読み出された所定単位のＺ値全てに陰面処理の要否を設定するデコード手段とを有し、
ディジタル微分解析処理を抑止して前記陰面処理の要否に基づいて陰面処理を行うことを特徴とする描画装置。
（付記２）
ディジタル微分解析処理に係る制御を行なう制御手段を有し、
前記デコード手段は、前記陰面処理の要否に基づき前記制御手段に対して前記ディジタル微分解析処理を所定単位のＺ値全てに対して省略するよう指示することを特徴とする付記１記載の描画装置。
（付記３）
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記所定単位のＺ値内の中間点のＺ値が位置する範囲と動き方向とを判断することによって、中間点前或いは中間点後のいずれかに対して前記陰面処理の要否を設定することを特徴とする付記１又は２記載の描画装置。
（付記４）
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記描画される画素が前記Ｚ値の最大値より大きいＺ値となった後のＺ値に対して前記陰面処理の要否を設定することを特徴とする付記１又は２記載の描画装置。
（付記５）
前記デコード手段は、前記ディジタル微分解析処理の抑止を示す所定判断結果の場合、更に前記描画される画素が前記Ｚ値の最小値より小さいＺ値となった後のＺ値に対して前記陰面処理の要否を設定することを特徴とする付記１又は２記載の描画装置。
（付記６）
前記中間点までの画素数を格納する画素数格納手段と、
前記画素数と前記傾きとを乗算する乗算手段と、
前記乗算手段による算出結果と前記Ｚ初期値とを加算することによって、前記中間点のＺ値を算出する加算手段とを有することを特徴とする付記３乃至５記載の描画装置。
（付記７）
２のべき乗で示される前記中間点までの画素数を格納する画素数格納手段と、
前記画素数に応じて前記傾きの値をシフトするシフト手段と、
前記シフト手段によるシフト結果と前記Ｚ初期値とを加算することによって、前記中間点のＺ値を算出する加算手段とを有することを特徴とする付記３乃至５記載の描画装置。
（付記８）
前記所定単位のＺ値とは、単位ラスタ分のＺ値であることを特徴とする描画装置。
【００９６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００９７】
【図１】従来の回路構成を示す図である。
【図２】本発明に係る陰面処理の概念説明するための図である。
【図３】本発明の一実施形態に係る描画装置の第一の回路構成を示す図である。
【図４】デコーダによって行われるＤＤＡ省略処理の可否テーブルを示す図である。
【図５】各状態を示すコードの例を示す図である。
【図６】図５に示す状態に従ったデコーダの回路構成の例を示す図である。
【図７】入力ビットと出力ビットの値の組み合わせを示す図である。
【図８】本発明の一実施形態に係る描画装置の第二の回路構成を示す図である。
【図９】図８に示す第二の回路構成におけるデコーダによる制御を示す図である。
【図１０】本発明の一実施形態に係る描画装置の第三の回路構成を示す図である。
【符号の説明】
【００９８】
１０          Ｚテストシーケンス制御部
２０          読み込み装置
２１          Ｚ値レジスタ
２２          Ｚテスト結果レジスタ
２３          Ｚ初期値レジスタ
２４          ｄＺｄｘ（Ｚの傾き）レジスタ
２５          加算器
２６          比較器
３０          デコーダ
３０ａ        ＥＸＯＲ回路
３０ｂ        ＡＮＤ回路
３０ｃ        ＥＸＮＯＲ回路
３０ｄ        ＯＲ回路
３０ｅ        ＭＵＸ回路
３０ｆ        ＮＯＲ回路
３１          Ｚｍａｘレジスタ
３２          比較器
３３          Ｚｍｉｎレジスタ
３４          比較器
３５          比較器
３６          比較器
３７          Ｚレジスタ
３８          乗算器
３９          スキップ画素数
４８          シフタ
４９          スキップ画素数
【図１】
2006277665.tif 000003
【図２】
2006277665.tif 000004
【図３】
2006277665.tif 000005
【図４】
2006277665.tif 000006
【図５】
2006277665.tif 000007
【図６】
2006277665.tif 000008
【図７】
2006277665.tif 000009
【図８】
2006277665.tif 000010
【図９】
2006277665.tif 000011
【図１０】
2006277665.tif 000012