(57)【要約】【課題】処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れるクリッピング装置を提供する。【解決手段】プリミティブの頂点座標と多次元領域の判定基準値および判定基準値の負の値との比較結果に応じたクリップコードをプリミティブの頂点分生成するクリップコード生成回路４０５と、クリップコードをシフトインするカレントクリップレジスタ４１１と、コントロール信号に応じてクリップコードを置換可能なクリップレジスタ４１２，４１３と、置換命令を受けると、クリップレジスタ間でクリップコードを置換させるようにコントロール信号Ｓ４１４を出力するコントロール回路４１４と、リップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路４１５とを設ける。【選択図】　　　図３
2004062765.tif 000002
【特許請求の範囲】
【請求項１】
所定の座標系で表現される頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、
上記頂点の座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードを生成するクリップコード生成回路と、
上記クリップコード生成回路で生成されたクリップコードをシフトインするクリップレジスタと、
上記クリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路と
を有するクリッピング装置。
【請求項２】
上記頂点の座標は所定の座標系の複数座標軸に対応した値を含み、
上記クリップコード生成回路は、各座標軸に対応した複数のクリップコードを生成し、
上記クリップレジスタは、少なくとも上記複数のクリップコードを保持する容量を有する
請求項１記載のクリッピング装置。
【請求項３】
上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する
請求項１記載のクリッピング装置。
【請求項４】
上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する
請求項２記載のクリッピング装置。
【請求項５】
多面体が複数の頂点を含むプリミティブ単位で描画され、所定の座標系で表現されるプリミティブの各頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、
上記プリミティブの頂点座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路と、
上記クリップコード生成回路で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタと、
上記カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じて保持データを前段のレジスタが保持するクリップコードで置換可能な、少なくとも上記プリミティブの頂点数より一つ少ない数のクリップレジスタと、
クリップコード生成命令を受けると、上記コントロール信号をカレントクリップレジスタに出力して、上記クリップコード生成回路で生成されたクリップコードをシフトインさせ、置換命令を受けると、上記カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるように上記コントロール信号を対応するクリップレジスタに出力するコントロール回路と、
上記カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路と
を有するクリッピング装置。
【請求項６】
上記コントロール回路は、プリミティブの種類に応じて頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力する
請求項５記載のクリッピング装置。
【請求項７】
上記コントロール回路は、置換命令の実行時には、上記プリミティブの頂点分のクリップコードが揃ったことを示す頂点レディフラグを生成する
請求項５記載のクリッピング装置。
【請求項８】
上記コントロール回路は、置換命令の実行時には、上記プリミティブの頂点分のクリップコードが揃ったことを示す頂点レディフラグを生成する
請求項６記載のクリッピング装置。
【請求項９】
上記コントロール回路は、所定の条件で上記カレントクリップレジスタを含む複数のクリップレジスタのうちの所望のレジスタを選択的に初期化する
請求項５記載のクリッピング装置。
【請求項１０】
上記コントロール回路は、所定の条件で上記カレントクリップレジスタを含む複数のクリップレジスタのうちの所望のレジスタを選択的に初期化する
請求項６記載のクリッピング装置。
【請求項１１】
上記頂点の座標は所定の座標系の複数座標軸に対応した値を含み、
上記クリップコード生成回路は、各座標軸に対応した複数のクリップコードを生成し、
上記クリップレジスタは、少なくとも上記複数のクリップコードを保持する容量を有する
請求項５記載のクリッピング装置。
【請求項１２】
上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する
請求項５記載のクリッピング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータグラフィックスの描画処理において、所定の座標系で表現されるある頂点および連続する多面体が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するためのクリッピング装置に関するものである。
【０００２】
【従来の技術】
３次元コンピュータグラフィックスの処理においては、３次元ワールド座標系を想定し、そこに存在するオブジェクトに対してモデリング変換や視界変換等の処理を行った後、それを２次元デバイスに表示するためにビューポート変換処理を行う。
【０００３】
この際、２次元に投影されるオブジェクトが投影面内に存在するかしないかの判定を行うクリッピング判定処理が必要がある。
より具体的には、オブジェクトはポリゴンとして多角形の集まりによって表現される。このため、この多角形の各頂点座標について、所定の領域において内外判定を行う必要がある。
【０００４】
この領域内外判定は、座標が同次座標として表現されている場合、ある立方体内に存在するかどうかは以下の式を満たすかどうかにより判別できる。
つまり、点Ｐ（ｘ，ｙ，ｚ）について、たとえば図１に示すような立方体の中に存在するかどうかを判断する。点Ｐが領域内に存在する条件は下記のとおりである。
【０００５】
【数１】
−Ｗ　≦　ｘ　≦　Ｗ
−Ｗ　≦　ｙ　≦　Ｗ
−Ｗ　≦　ｚ　≦　Ｗ
【０００６】
この条件下において領域外の判定を行うには、各Ｘ，Ｙ，Ｚ軸に対して１頂点につき下記の計６回の比較作業を行う必要がある。
【０００７】
【数２】
Ｘ　＞　Ｗ
Ｘ　＜−Ｗ
Ｙ　＞　Ｗ
Ｙ　＜−Ｗ
Ｚ　＞　Ｗ
Ｚ　＜−Ｗ
【０００８】
座標Ｘが判定基準値Ｗより大きいか、座標Ｘが−Ｗより小さいか、座標ＹがＷより大きいか、座標Ｙが−Ｗより小さいか、座標ＺがＷより大きいか、座標Ｚが−Ｗより小さいかの比較処理を行う。そして比較結果が比較条件を満たしている場合に１、満たしていない場合には０とする。
すなわち、クリッピング装置においては、たとえば座標Ｘおよび判定基準値Ｗを入力すると、座標Ｘが判定基準値Ｗより大きいか、座標Ｘが−Ｗより小さいかの判定を行い、真であれば１、偽であれば０とする。
これにより、クリッピング装置は、１であった場合は領域外という判定が可能である。
【０００９】
【発明が解決しようとする課題】
ところが、上述したクリッピング装置においては、領域外の判定を行うには、各Ｘ，Ｙ，Ｚ軸に対して１頂点につき計６回の比較作業を行う必要があることから、処理サイクル数が増大する。
その結果、従来のクリッピング装置では、さらなる処理の高速化が困難で、また、このクリッピング操作専用回路が複雑化するという不利益がある。
【００１０】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れるクリッピング装置を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点は、所定の座標系で表現される頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、上記頂点の座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードを生成するクリップコード生成回路と、上記クリップコード生成回路で生成されたクリップコードをシフトインするクリップレジスタと、上記クリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路とを有する。
【００１２】
本発明では、上記頂点の座標は所定の座標系の複数座標軸に対応した値を含み、上記クリップコード生成回路は、各座標軸に対応した複数のクリップコードを生成し、上記クリップレジスタは、少なくとも上記複数のクリップコードを保持する容量を有する。
【００１３】
本発明では、上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する。
【００１４】
本発明の第２の観点は、多面体が複数の頂点を含むプリミティブ単位で描画され、所定の座標系で表現されるプリミティブの各頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、上記プリミティブの頂点座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路と、上記クリップコード生成回路で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタと、上記カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じて保持データを前段のレジスタが保持するクリップコードで置換可能な、少なくとも上記プリミティブの頂点数より一つ少ない数のクリップレジスタと、クリップコード生成命令を受けると、上記コントロール信号をカレントクリップレジスタに出力して、上記クリップコード生成回路で生成されたクリップコードをシフトインさせ、置換命令を受けると、上記カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるように上記コントロール信号を対応するクリップレジスタに出力するコントロール回路と、上記カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路とを有する。
【００１５】
好適には、上記コントロール回路は、プリミティブの種類に応じて頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力する。
【００１６】
また、上記コントロール回路は、置換命令の実行時には、上記プリミティブの頂点分のクリップコードが揃ったことを示す頂点レディフラグを生成する。
【００１７】
また、上記コントロール回路は、所定の条件で上記カレントクリップレジスタを含む複数のクリップレジスタのうちの所望のレジスタを選択的に初期化する。
【００１８】
本発明によれば、クリップコード生成回路において、頂点の座標と多次元領域の判定基準値および頂点の座標と当該判定基準値の負の値とが比較結果される。クリップコード生成回路では、比較結果に応じたデータがそれぞれビットデータとしてセットしたクリップコードが生成される。
そして、クリップコード生成回路で生成されたクリップコードがクリップレジスタにシフトインされる。
クリップレジスタにセットされた全ビットデータに対して論理回路において論理演算が行われる。その結果、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグが設定される。
【００１９】
本発明によれば、コントロール回路がクリップコード生成命令を受けると、コントロール信号がカレントクリップレジスタに出力されて、クリップコード生成回路で生成されたクリップコードがシフトインされる。
次に、コントロール回路が置換命令を受けると、カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるようにコントロール信号を対応するクリップレジスタに出力される。
この際、プリミティブの種類に応じて新しい頂点処理に伴うクリップコードの置換処理が行われる。
そして、プリミティブの頂点分のクリップコードが揃うと、揃ったことを示す頂点レディフラグが生成される。
【００２０】
【発明の実施の形態】
図２は、本発明に係る３次元コンピュータグラフィックスにおける頂点座標変換システムの基本構成を示すブロック図である。
【００２１】
この頂点座標変換システム１は、図１に示すように、オブジェクト座標部（ＯＣ：Ｏｂｊｅｃｔ　Ｃｏｏｒｄｉｎａｔｅ　）２、視点座標部（ＥＣ：Ｅｙｅ　Ｃｏｏｒｄｉｎａｔｅ）３、クリップ座標部（ＣＣ：Ｃｌｉｐ　Ｃｏｏｒｄｉｎａｔｅ　）４、およびウィンドウ座標部（ＷＣ：Ｗｉｎｄｏｗ　Ｃｏｏｒｄｉｎａｔｅ　）５を有している。
【００２２】
オブジェクト座標部２は、全てのプリミティブが定義される４次元（ｘ，ｙ，ｚ，ｗ）の座標系を生成する。オブジェクト座標部２は、全てのプリミティブの頂点座標および法線を、たとえばＩＥＥＥ単精度浮動小数点または１６ビット符号付固定小数点で指定する。
そして、オブジェクト座標部２は、３次元ワールド座標系に存在するオブジェクトに対してモデルビュー変換処理を行い、プリミティブがライティングされる４次元座標を生成して視線座標部３に出力する。
オブジェクト座標部２は、４×４のモデルビューマトリクス（Ｍ）を使用して、以下のモデルビュー変換を行う。ここでは、オブジェクト座標部２における頂点座標を（ｘｏ　，ｙｏ　，ｚｏ　，ｗｏ　）、視点座標部３における頂点座標を（ｘｅ，ｙｅ　，ｚｅ　，ｗｅ　）とする。
【００２３】
【数３】
2004062765.tif 000003
【００２４】
また、オブジェクト座標部２は、視点座標部３においてライティングを行うことから、オブジェクト座標から視点座標への法線の変換を行う。
ここで、オブジェクト座標部２における法線を（Ｎｘｏ，Ｎｙｏ，ＮＸｏ）、視点座標部３における法線を（Ｎｘｅ，Ｎｙｅ，ＮＸｅ）、モデルビューマトリクス（４×４）をＭ、Ｍの左上の３×３のサブマトリクスをＭｕ　とすると、オブジェクト座標から視点座標への法線の変換は次のようになる。
【００２５】
【数４】
2004062765.tif 000004
【００２６】
視点座標部３は、オブジェクト座標部２に定義されたプリミティブの頂点座標および法線が本視点座標系に変換、配置されたライティングおよびフォギング処理を施す。視点は本視点座標系の原点、視線方向はＺ軸方向になる。視点座標部３は、全てのプリミティブの頂点座標および法線を、たとえばＩＥＥＥ単精度浮動小数点または１６ビット符号付固定小数点で指定する。
視点座標部３は、４×４のプロジェクション（Ｐｒｏｊｅｃｔｉｏｎ）マトリクス（Ｐ）をを使用して投影変換を以下のように行い、その結果をクリップ座標部４に出力する。ここでは、クリップ座標部４における頂点座標を（ｘｃ　，ｙｃ　，ｚｃ　，ｗｃ）とする。
【００２７】
【数５】
2004062765.tif 000005
【００２８】
クリップ座標部４は、投影変換された３次元座標系において、２次元デバイスに表示するためにビューポート変換処理を行い、変換結果をウィンドウ座標部５に出力する。
クリップ座標部４は、ビューポート変換の際、２次元に投影されるオブジェクトが投影面内に存在するかしないかの判定処理、すなわちクリッピング処理を行う。このクリッピング処理については後で詳述する。
クリッピング処理においては、以下の条件が満たされない領域は描画されない。ここで、Ｗは図１に示す判定基準値である。
【００２９】
【数６】
−Ｗ　≦　ｘ　≦　Ｗ
−Ｗ　≦　ｙ　≦　Ｗ
−Ｗ　≦　ｚ　≦　Ｗ
【００３０】
クリップ座標部４は、ビューポート変換においては、クリッピング処理後、以下のように（ｘｃ　，ｙｃ　，ｚｃ　）をｗｃ　で除算した後、スケーリングとトランスレーションを実行する。ここでは、ウィンドウ座標部５における頂点座標を（ｘｗ　，ｙｗ　，ｚｗ　）とする。
【００３１】
【数７】
2004062765.tif 000006
【００３２】
ウィンドウ座標部５におけるウィンドウ座標は、実際の描画が行われる座標系で、たとえば左上端点が原点で、右に向かってＸが正、下に向かってＹが正、手前に向かってＺの正の３次元座標系である。
【００３３】
以下に、クリップ座標部４におけるクリッピング装置について、図面に関連付けてさらに詳細に説明する。
【００３４】
図３は、本発明に係るクリッピング装置の一実施形態を示す回路図である。
【００３５】
クリッピング装置４００は、図３に示すように、プリミティブレジスタ（ＰＲＯＭ）４０１、入力レジスタ４０２〜４０４、クリップコード生成回路（ＣＬＩＰＧＥＮ）４０５、マルチプレクサ（ＭＵＸ）４０６〜４１０、各々の６ビットのクリップレジスタ４１１（Ａ，Ｂ，Ｃ），４１２，４１３、コントローラ（ＣＴＬ）４１４、論理回路（ＣＬＰ）４１５、および出力レジスタ４１６を有している。
【００３６】
プリミティブレジスタ４０１は、プリミティブの種類に関する情報、具体的には、トライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　、トライアングル（ＴＲＡＩＡＮＧＬＥ）　、トライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　、ラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、ライン（ＬＩＮＥ）、またはポイント（ＰＯＩＮＴ）　にいずれであるかを示す情報がセットされる。
プリミティブレジスタ４０１は、セットされた情報をコントローラ４１３および図示しない変換行列の要素などのデータを格納するためのパラメータファイルに供給する。
【００３７】
入力レジスタ４０２は、いわゆるジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要な（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜がセットされる。
入力レジスタ４０２は、セットされたデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜をクリップコード生成回路４０５に供給する。
【００３８】
ここで、Ａは座標値であり、本実施形態ではＸ，Ｙ，Ｚの座標ｘ，ｙ，ｚとして与えられる。また、Ｂは判定基準値であり、図１のＷに相当する。以下、同様である。
【００３９】
入力レジスタ４０３は、ジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要な（Ａの符号）ＳＧＮ−Ａがセットされる。
入力レジスタ４０３は、セットされたデータ（Ａの符号）ＳＧＮ−Ａをクリップコード生成回路４０５に供給する。
【００４０】
入力レジスタ４０４は、ジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要なＢの符号ＳＧＮ−Ｂがセットされる。
入力レジスタ４０４は、セットされたデータ（Ｂの符号）ＳＧＮ−Ｂをクリップコード生成回路４０５に供給する。
【００４１】
ここで、入力レジスタ４０２〜４０４にセットされるデータについてさらに説明する。
【００４２】
上述したワールド座標系におけるオブジェクトのモデリング変換や視界変換および投影変換には、ジオメトリ演算器と呼ばれる一種の浮動小数点積和演算器が必要とされる。たとえば、物体の移動、回転、拡大などの変換には４×４要素の行列演算が必要であり、この処理を行う役割を担っている。
演算器には加算器も備わっており減算も可能である。加算並びに減算はまず符号を使わずに（つまり絶対値）で｜Ａ｜＋｜Ｂ｜もしくは｜Ａ｜−｜Ｂ｜の演算を行い、その後ＡおよびＢの符号から最終的な計算結果を導くようになっている。具体的には、符号ビットを無視して指数を合わせて減算し、その結果、正であれば１、負であれば０となる。
そして、クリッピング処理における所定の領域に対する内外判定は、演算器の機能の一部である減算｜Ａ｜−｜Ｂ｜の結果およびＡとＢの符号から判断が可能である。
【００４３】
図４は、浮動小数点積和演算器の構成例を示す回路図である。
【００４４】
この演算器５００は、図４に示すように、レジスタ５０１〜５１７、ブロックバッファ５１８，５１９、加算器５２０〜５２４、部分積生成器（ＰＰＧ：Ｐａｒｔｉａｌ　Ｐｒｏｄｕｃｔ　Ｇｅｎｅｒａｔｏｒ　）５２５、キャリセイブアダー（ＣＳＡ：Ｃａｒｒｙ　Ｓａｖｅ　Ａｄｅｒ　）５２６〜５２９、反転回路５３０，５３１、シフタ５３２、リミッタ５３３、クランプ回路５３４、およびマルチプレクサ５３５〜５４５を有している。この演算器５００において、ＰＰＧ５２５は、部分積を生成する。この部分積をワラス等で知られるツリー状に構成したＣＳＡ５２６で加算していくことで、一方の出力にキャリが出力され、他方の出力にサムが出力される。
さらにＣＳＡ５２９で演算を行い、キャリおよびサム出力が加算器５２０に供給される。そして、加算器５２０において｜Ａ｜−｜Ｂ｜が生成される。上述したように、符号ビットを無視して指数を合わせて減算し、その結果、正であれば１、負であれば０となる。
【００４５】
クリップコード判定回路４０５は、入力レジスタ４０２〜４０４にセットされたデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、データ（Ａの符号）ＳＧＮ−Ａ、およびデータ（Ｂの符号）ＳＧＮ−Ｂに基づいて、Ａ＞Ｂの判定およびＡ＜−Ｂの判定を行い、両者の判定結果を論理１または０で示す２ビットのクリップコードＣＬＰＣを生成し、マルチプレクサ４０５に出力する。
クリップコード判定回路４０５は、２ビットのクリップコードＣＬＰＣのうち、下位の０ビットにＡ＞Ｂの判定結果をセットし、上位の１ビットにＡ＜−Ｂの判定結果をセットする。
クリップコード生成回路４０５は、（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂを正の時０、負の時１とすると入力の８通りに対して、Ａ＞Ｂ判定およびＡ＜−Ｂ判定は、図５に示すようになる。
【００４６】
具体的には、（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（０，０，０）のときクリップコードＣＬＰＣは（０，１）となる。
以下、（０，０，１）のときクリップコードＣＬＰＣは（０，１）、（０，１，０）のときクリップコードＣＬＰＣは（１，０）、（０，１，１）のときクリップコードＣＬＰＣは（１，０）、（１，０，０）のときクリップコードＣＬＰＣは（０，０）、（１，０，１）のときクリップコードＣＬＰＣは（１，１）、（１，１，０）のときクリップコードＣＬＰＣは（０，０）、（１，１，１）のときクリップコードＣＬＰＣは（１，１）となる。
【００４７】
図６は、本実施形態に係るクリップコード生成回路４０５の具体的な構成例を示す回路図である。
【００４８】
クリップコード生成回路４０５は、図６に示すように、インバータ４００１〜４００３、３入力ＡＮＤゲート４００４〜４０１１、および４入力ＯＲゲート４０１２，４０１３を有している。
【００４９】
インバータ４００１の入力はデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜の入力ラインに接続され、インバータ４００２の入力はデータ（Ａの符号）ＳＧＮ−Ａの入力ラインに接続され、インバータ４００３の入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続されている。
ＡＮＤゲート４００４の第１入力はインバータ４００１の出力に接続され、第２入力はデータ（Ａの符号）ＳＧＮ−Ａの入力ラインに接続され、第３入力はインバータ４００３の出力に接続され、出力がＯＲゲート４０１２の第１入力に接続されている。
ＡＮＤゲート４００５の第１入力はインバータ４００１の出力に接続され、第２入力はデータ（Ａの符号）ＳＧＮ−Ａの入力ラインに接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１２の第２入力に接続されている。
ＡＮＤゲート４００６の第１入力はデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜の入力ラインに接続され、第２入力はインバータ４００２の出力に接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１２の第３入力に接続されている。
ＡＮＤゲート４００７の第１入力はデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜の入力ラインに接続され、第２入力はデータ（Ａの符号）ＳＧＮ−Ａの入力ラインに接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１２の第４入力に接続されている。
ＡＮＤゲート４００８の第１入力はインバータ４００１の出力に接続され、第２入力はインバータ４００２の出力に接続され、第３入力はインバータ４００３の出力に接続され、出力がＯＲゲート４０１３の第１入力に接続されている。
ＡＮＤゲート４００９の第１入力はインバータ４００１の出力に接続され、第２入力はインバータ４００２の出力に接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１３の第２入力に接続されている。
ＡＮＤゲート４０１０の第１入力はデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜の入力ラインに接続され、第２入力はインバータ４００２の出力に接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１３の第３入力に接続されている。
ＡＮＤゲート４０１１の第１入力はデータ（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜の入力ラインに接続され、第２入力はデータ（Ａの符号）ＳＧＮ−Ａの入力ラインに接続され、第３入力はデータ（Ｂの符号）ＳＧＮ−Ｂの入力ラインに接続され、出力がＯＲゲート４０１３の第４入力に接続されている。
そして、ＯＲゲート４０１２からＡ＜−Ｂの判定結果１または０が出力され、ＯＲゲート４０１３からＡ＞Ｂの判定結果１または０が出力される。
【００５０】
図６の回路は、図５のいわゆる真理値表を実現したものである。
すなわち、（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（０，０，０）のとき、ＡＮＤゲート４００８の出力のみ１となり、他のＡＮＤゲート４００４〜４００７、４００９〜４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が０、ＯＲゲート４０１３の出力が１となり、クリップコードＣＬＰＣは（０，１）となる。
【００５１】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（０，０，１）のとき、ＡＮＤゲート４００９の出力のみ１となり、他のＡＮＤゲート４００４〜４００８、４０１０〜４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が０、ＯＲゲート４０１３の出力が１となり、クリップコードＣＬＰＣは（０，１）となる。
【００５２】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（０，１，０）のとき、ＡＮＤゲート４００４の出力のみ１となり、他のＡＮＤゲート４００５〜４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が１、ＯＲゲート４０１３の出力が０となり、クリップコードＣＬＰＣは（１，０）となる。
【００５３】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（１，０，０）のとき、全てのＡＮＤゲート４００４〜４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が０、ＯＲゲート４０１３の出力が０となり、クリップコードＣＬＰＣは（０，０）となる。
【００５４】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（１，０，１）のとき、ＡＮＤゲート４００６，４０１０の出力が１、他のＡＮＤゲート４００４，４００５，４００７〜４００９、４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が１、ＯＲゲート４０１３の出力が１となり、クリップコードＣＬＰＣは（１，１）となる。
【００５５】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（１，１，０）のとき、全てのＡＮＤゲート４００４〜４０１１の出力は０となる。その結果、ＯＲゲート４０１２の出力が０、ＯＲゲート４０１３の出力が０となり、クリップコードＣＬＰＣは（０，０）となる。
【００５６】
（｜Ａ｜−｜Ｂ｜の符号）ＳＧＮ−｜Ａ−Ｂ｜、（Ａの符号）ＳＧＮ−Ａ、（Ｂの符号）ＳＧＮ−Ｂが（１，１，１）のとき、ＡＮＤゲート４００７，４０１１の出力が１、他のＡＮＤゲート４００４〜４００６，４００８〜４０１０の出力は０となる。その結果、ＯＲゲート４０１２の出力が１、ＯＲゲート４０１３の出力が１となり、クリップコードＣＬＰＣは（１，１）となる。
【００５７】
マルチプレクサ４０６は、コントローラ４１４のコントロール信号Ｓ４１４に応じてクリップコード生成回路４０５によりクリップコードＣＬＰＣまたは０（初期化のためのパラメータ）のいずれかを選択してクリップレジスタ４１１の下位２ビット分のレジスタ４１１Ａに出力する。
【００５８】
マルチプレクサ４０７は、コントローラ４１４のコントロール信号Ｓ４１４に応じてクリップレジスタ４１１Ａの出力または０のいずれかを選択してクリップレジスタ４１１の中位２ビット分のレジスタ４１１Ｂに出力する。
【００５９】
マルチプレクサ４０８は、コントローラ４１４のコントロール信号Ｓ４１４に応じてクリップレジスタ４１１Ｂの出力または０のいずれかを選択してクリップレジスタ４１１の上位２ビット分のレジスタ４１１Ｃに出力する。
【００６０】
マルチプレクサ４０９は、コントローラ４１４のコントロール信号Ｓ４１４に応じてクリップレジスタ４１１（４１１Ａ〜４１１Ｃ）の出力または０のいずれかを選択してクリップレジスタ４１２に出力する。
【００６１】
マルチプレクサ４１０は、コントローラ４１４のコントロール信号Ｓ４１４に応じてクリップレジスタ４１２の出力または０のいずれかを選択してクリップレジスタ４１３に出力する。
【００６２】
クリップレジスタ４１１は、Ｘ軸、Ｙ軸、Ｚ軸の各１軸当たり２ビットの情報であるクリップコードＣＬＰＣまたは初期化のためのパラメータ０がセットされる。
クリップレジスタ４１１は、コントローラ４１４の制御信号Ｓ４１４に応じて、図７に示すように２ビットずつシフトして、図８に示すように、３軸分についてもレジスタに順次送り込むことにより６ビットの情報として記憶する。
クリップレジスタ４１１は、カレントクリップレジスタ（Ｃ−ＣＬＩＰ）として機能し、ＣＬＩＰＧＥＮ　Ａ，Ｂ命令が実行される際に、Ａ＜−Ｂ、Ａ＞Ｂの判定結果である２ビットのクリップコードＣＬＰＣをシフトインする。
ＣＬＩＰＧＥＮ命令を３回、具体的には、Ａが３軸のＸ，Ｙ，Ｚの座標であり、Ｂが判定基準値Ｗとして、ＣＬＩＰＧＥＮ　Ｘ，Ｗ、ＣＬＩＰＧＥＮ　Ｙ，Ｗ、ＣＬＩＰＧＥＮ　Ｚ，Ｗを連続して実行すると、クリップレジスタ４１１の６ビットの各値は、図８および下記の通りになる。
【００６３】
【数８】
ｂｉｔ５：（Ｘ＜−Ｗ）？１：０
ｂｉｔ４：（Ｘ＞Ｗ）？１：０
ｂｉｔ３：（Ｙ＜−Ｗ）？１：０
ｂｉｔ２：（Ｙ＞Ｗ）？１：０
ｂｉｔ１：（Ｚ＜−Ｗ）？１：０
ｂｉｔ０：（Ｚ＞Ｗ）？１：０
【００６４】
すなわち、ビット５にＸ＜−Ｗの判定結果１または０、ビット４にＸ＞Ｗの判定結果１または０、ビット３にＹ＜−Ｗの判定結果１または０、ビット２にＹ＞Ｗの判定結果１または０、ビット１にＺ＜−Ｗの判定結果１または０、ビット０にＺ＞Ｗの判定結果１または０がシフトインされる。
【００６５】
そして、カレントクリップレジスタ４１１Ａの出力がマルチプレクサ４０７に供給され、カレントクリップレジスタ４１１Ｂの出力がマルチプレクサ４０８に供給される。カレントクリップレジスタ４１１Ａ〜４１１Ｃ、すなわちカレントクリップレジスタ４１１は、６ビット出力をマルチプレクサ４０９、論理回路４１５および後段の処理回路に出力する。
【００６６】
そして、３次元コンピュータグラフィックスにおいては、オブジェクトは多角形、具体的には３角形の集合による多面体としで表面が描画される。この３角形を基本とする描画単位がプリミティブと呼ばれ、プリミティブは３次元コンピュータグラフィックス処理での基本となっている。
そこで、本実施形態においては、クリップレジスタの容量を１つの３角形分として、３頂点分の容量を確保するために、クリップレジスタ４１１に加えて６ビットのクリップレジスタ（ＣＬＩＰ１）４１２と６ビットのクリップレジスタ（ＣＬＩＰ２）４１３を設け、３頂点分の容量を１８ビットとしている。
【００６７】
クリップレジスタ（ＣＬＩＰ１）４１２は、コントローラ４１４のコントロール信号Ｓ４１４に応じて、マルチプレクサ４０９を介してクリップレジスタ４１１の６ビットの内容をシフトインし、シフトインした内容を論理回路４１５および後段の処理回路に出力する。
【００６８】
クリップレジスタ（ＣＬＩＰ２）４１３は、コントローラ４１４のコントロール信号Ｓ４１４に応じて、マルチプレクサ４１０を介してクリップレジスタ４１２の６ビットの内容をシフトインし、シフトインした内容を論理回路４１５および後段の処理回路に出力する。
【００６９】
論理回路４１５は、クリップレジスタ４１１，４１２，４１３の１８ビット出力の論理和をとり、１ビットのクリップフラグＣＬＰＦを生成する。
論理回路４１５は、クリップレジスタ４１１，４１２，４１３の１８ビット出力の出力のうち、いずれかのビットが１であればそれぞれ示すクリップフラグＣＬＰＦを生成する。
すなわち、クリッピング装置４００においては、基本プリミティブである３角形の処理を連続して行った後にクリップフラグＣＬＰＦを参照し３頂点が投影立方体の領域内であるかどうかの判定が可能となる。
本実施形態においては、クリッピング装置４００は、クリップフラグＣＬＰＦに１が設定されている場合には、領域外であるとして判定し、０が設定されている場合には、領域内であると判定する。
【００７０】
コントローラ４１４は、クリップクリア命令ＣＬＰＣＬＲを受けると、コントロール信号Ｓ４１４をマルチプレクサ４０６〜４１０が初期化パラメータ０を選択し、図９に示すように、各クリップレジスタ４１１，４１２，４１３の全ビットに０がセットされるとようにコントロール信号Ｓ４１４をクリップレジスタ４１１〜４１３に出力する。
【００７１】
コントローラ４１４は、クリップコード生成命令ＣＬＩＰＧＥＮを受けると、コントロール信号Ｓ４１４をマルチプレクサ４０６〜４１０がクリップコード生成回路４０５によるクリップコードＣＬＰＣ、および前段のクリップレジスタ４１１Ａ，４１１Ｂ，４１１Ｃ、４１１、および４１２の出力内容を選択し、前段のレジスタの内容がシフトインされるようにコントロール信号Ｓ４１４をクリップレジスタ４１１〜４１３に出力する。
【００７２】
コントローラ４１４は、置換命令ＲＥＰＬＡＣＥを受けると、プリミティブレジスタ４０１にセットされたプリミティブの種類に応じて新しい頂点処理に伴うクリップコードの置換を行うように、コントロール信号Ｓ４１４をマルチプレクサ４０６〜４１０およびクリップレジスタ４１１〜４１３に出力する。
コントローラ４１４は、置換命令ＲＥＰＬＡＣＥの実行時には、３頂点分のクリップコードが揃ったことを示す（準備が完了したことを示す）頂点レディフラグＶＲＤＹを生成し、出力レジスタ４１６にセットする。
【００７３】
以下に、置換処理が必要である理由について説明する。
【００７４】
多面体の描画は、たとえば図１０に示すようにトライアングルストリップと呼ばれる連続三角形のプリミティブで行うことができる。図中の番号は頂点の処理順序である。
頂点ごとに領域内外判定を行うには、▲１▼から▲３▼までは、すべての点を判定する必要があり、その後は直前の３座標の判定を行う必要がある。
たとえば頂点▲６▼において判定対象となるのは▲４▼、▲５▼、▲６▼である。
また、図１１に示すように、トライアングルファンという連続三角形のプリミティブも存在する。
同様の場合、▲３▼までは、すべての点を判定する必要があり、その後は開始点および直前の２座標の判定を行う必要がある。たとえば頂点▲６▼において判定対象となるのは▲１▼、▲５▼、▲６▼である。
【００７５】
本実施形態に係るコントローラ４１４は、上記３頂点分の結果を保存するクリップレジスタ４１１〜４１３に、これらプリミティブごとに、判定に適切な３頂点を保存するにように、マルチプレクサ４０６〜４１０およびクリップレジスタ４１１〜４１３を制御する。
コントローラ４１４の制御の下、処理対象のプリミティブをクリップレジスタ４１１〜４１３に記憶し、頂点を処理する毎に、１頂点分の判定結果を保存する時に常に必要な３頂点分の判定結果を保存する。
【００７６】
このように、置換命令ＲＥＰＬＡＣＥが発行されると、プリミティブレジスタ４０１にセットされたプリミティブの種類に応じて各入れ替え動作が行われる。以下、各プリミティブ毎のクリップレジスタの内容の入れ替え動作について説明する。
【００７７】
プリミティブがトライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　、トライアングル（ＴＲＡＩＡＮＧＬＥ）　、トライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　の場合、図１２（Ａ）〜（Ｇ）に示すように、最初の２回目までは、各クリップレジスタを６ビットずつシフトして代入する。
置換１回目は、図１２（Ｂ）、（Ｃ）に示すように、クリップレジスタ４１１の内容Ａがクリップレジスタ４１２にシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
次に、図１２（Ｄ）に示すように、クリップレジスタ４１１に内容Ｂがセットされる。
そして、置換２回目は、図１２（Ｅ）、（Ｆ）に示すように、クリップレジスタ４１２の内容Ａがクリップレジスタ４１３にシフトインされ、クリップレジスタ４１１の内容Ｂがクリップレジスタ４１２にシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
次に、図１２（Ｇ）に示すように、クリップレジスタ４１１に内容Ｃがセットされる。
【００７８】
３回目以降の置換命令ではプリミティブの種類により動作が異なる。
【００７９】
プリミティブがトライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　の場合、置換３回目以降は、図１３（Ａ），（Ｂ）に示すように、クリップレジスタ４１２の内容Ｂがクリップレジスタ４１３にシフトインされ、クリップレジスタ４１１の内容Ｃがクリップレジスタ４１２にシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
プリミティブがトライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　の場合、置換３回目以降は、図１３（Ｃ），（Ｄ）に示すように、クリップレジスタ４１３の内容Ａがクリップレジスタ４１３にシフトインされ、クリップレジスタ４１１の内容Ｃがクリップレジスタ４１２にシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
プリミティブがトライアングル（ＴＲＡＩＡＮＧＬＥ）　の場合、図１３（Ｅ）に示すように、置換３回目毎に、クリップレジスタ４１１〜４１３は全ビット０にリセットされ、初期化状態に戻る。
【００８０】
プリミティブがラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、ライン（ＬＩＮＥ）の場合、図１４（Ａ）〜（Ｄ）に示すように、置換１回目では、カレントクリップレジスタ４１１の内容Ａをクリップレジスタ４１２の６ビットシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
【００８１】
プリミティブがラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、ライン（ＬＩＮＥ）の場合、２回目以降の置換命令ではプリミティブの種類により動作が異なる。
【００８２】
プリミティブがラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）の場合、置換２回目以上、図１５（Ａ），（Ｂ）に示すように、カレントクリップレジスタ４１１の内容Ｂがクリップレジスタ４１２にシフトインされ、クリップレジスタ４１１は全ビット０にリセットされる。
プリミティブがライン（ＬＩＮＥ）の場合、図１５（Ｃ）に示すように、置換２回目毎に、クリップレジスタ４１１〜４１３は全ビット０にリセットされ、初期化状態に戻る。
【００８３】
プリミティブがポイント（ＰＯＩＮＴ）　の場合、図１６（Ａ），（Ｂ）に示すように、カレントクリップレジスタ４１１は、置換毎に全ビット０にリセットされる。
【００８４】
このように構成することにより、クリッピング装置４００は、頂点が領域外に出たときに、三角形のどの点が出ているかにより処理を適切に行うことが可能である。
つまり、図１７に示す例の場合、頂点▲４▼および▲５▼にて領域外の場合は領域内の部分については描画を行えるようにする処理を、▲６▼においては、▲４▼▲５▼▲６▼とも領域外であるのでまったく描画を行わないといった判断が行うことが可能である。
【００８５】
さらに、本実施形態に係るコントローラ４１４は、上述したように、プリミティブの種類によりプリミティブ要素が揃っているかどうかを示す（頂点準備が完了したことを示す）１ビットの頂点レディフラグＶＲＤＹを生成する。
この頂点レディフラグＶＲＤＹの生成動作は、置換ＲＥＰＬＡＣＥ機能と同期しており、同時に判断が可能である。これにより、さらに効率的に処理が可能となる。
【００８６】
図１８は、本実施形態に係る頂点レディフラグＶＲＤＹの設定例を示す図である。
図１８の例は、プリミティブレジスタ４０１にプリミティブ情報がセットされた後、置換命令を８回試行した場合である。
図１８中、ＰＳはプリミティブレジスタ４０１にプリミティブ情報がセットされた後の頂点レディフラグＶＲＤＹの内容を示し、Ｐは置換後の頂点レディフラグＶＲＤＹの内容を示している。
【００８７】
ＰＳはプリミティブレジスタ４０１にプリミティブ情報がセットされた後の頂点レディフラグＶＲＤＹは、トライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　、トライアングル（ＴＲＡＩＡＮＧＬＥ）　、トライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　、ラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、およびライン（ＬＩＮＥ）の場合０にリセットされ、ポイント（ＰＯＩＮＴ）　の場合のみ１にセットされる。
【００８８】
また、たとえばプリミティブがトライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）の場合、プリミティブレジスタ４０１へのプリミティブ情報のセットで頂点レディフラグＶＲＤＹはリセットされる。そして、置換命令を２回行うと３頂点データが揃うので、この時点で頂点レディフラグＶＲＤＹには１がセットされる。
【００８９】
また、本実施形態に係るジオメトリ演算器はマイクロコードベースで実現されている。一般にクリッピング判定および処理は、図２に関連付けて説明したように、ワールド座標系でのオブジェクトの移動を含む配置後から、投影処理の間に行われる。
このため、本実施形態に係るクリッピング装置４００は、クリップ判定の機能をコードとしてその間に扱うことが可能である。これらの機能はインストラクションセットに用意してあり、上述したようにクリップコードの生成を「ＣＬＩＰＧＥＮ」、新しい頂点処理に伴うクリップコードの置換およびＶＲＤＹフラグの更新を「ＲＥＰＬＡＣＥ」という命令として用いている。
また、本実施形態に係るクリッピング装置４００は、上記の命令により、変化するフラグとして、３頂点分のクリップコードＣＬＰＣの論理和を表すＣＬＩＰフラグＣＬＰＦおよび３頂点分のクリップコードが揃ったことを示す頂点レディフラグＶＲＤＹを生成する。
これはマイクロプログラム上で分岐命令の判断基準となる。すなわち、マイクロコードベースで行われる一連の処理において、クリッピング装置４００で生成されるＣＬＩＰフラグＣＬＰＦおよび頂点レディフラグＶＲＤＹは分岐命令の参照用として使用可能である。
このフラグおよび分岐命令により、頂点数のカウントとプリミティブ別に頂点が揃ったかどうかの判断や、クリップコードを保存するコードや、比較判定して分岐するためのサイクルが節約可能である。
【００９０】
下記の数９に、本実施形態に係るクリッピング装置４００を駆動するマイクロプログラムを示す。
【００９１】
【数９】
2004062765.tif 000007
【００９２】
このマイクロプログラムの概要は、Ｘ，Ｙ，Ｚ座標をレジスタｒ０，ｒ１，ｒ２にセットし、クリップコード生成回路４０５において、Ｘ，Ｙ，Ｚ座標に関する２ビットずつのクリップコードＣＬＰＣを生成する。
クリップコード生成命令ＣＬＩＰＧＥＮを受けてコントローラ４１４のコントロール信号Ｓ４１４に基づいて生成されたクリップコードがクリップレジスタ４１１にシフトインされる。
クリップレジスタ４１１の内容は、論理回路４１３に供給され、１ビットでも１がセットされていた場合、領域外の処理に移行する。一方、１がセットされていない場合には、領域内にあるものとして、所定の描画処理を行う。
コントローラ４１４に置換命令ＲＥＰＬＡＣＥが入力されると、プリミティブレジスタ４０１にセットされたプリミティブの種類に応じて、クリップレジスタ４１１〜４１３の内容の置換処理、すなわちクリップコード置換が行われ、これと並行して頂点レディフラグＶＲＤＹが生成される。そして、頂点準備完了で他の処理へ移行する。
【００９３】
数９の処理においては、クリップに関連するステップ数は、１０である。
【００９４】
下記の数１０に一般的なクリッピング処理に関するマイクロプログラムを示す。
【００９５】
【数１０】
2004062765.tif 000008
2004062765.tif 000009
【００９６】
この結果は、クリップに関するステップ数は、２８となる。
【００９７】
この結果によると、本実施形態によれば、従来の装置に比べて１８サイクルの高速化が可能となる。１プリミティブ当りの処理は１００サイクル程度であることから、約２０％の高速化に相当する。
【００９８】
以上説明したように、本実施形態によれば、三角形プリミティブの頂点座標と多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路４０５と、クリップコード生成回路４０５で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタ４１１と、カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じてクリップコードを置換可能なクリップレジスタ４１２，４１３と、クリップコード生成命令を受けると、コントロール信号Ｓ４１４をカレントクリップレジスタに出力してクリップコードをシフトインさせ、置換命令を受けると、カレントクリップレジスタを含む隣接のクリップレジスタ間でプリミティブの種類に応じてクリップコードを置換させるようにコントロール信号Ｓ４１４を対応するクリップレジスタに出力するコントロール回路４１４と、カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路４１５とを設けたので、以下の効果を得ることができる。
本実施形態によれば、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れる利点がある。
【００９９】
より具体的には、１サイクルにて１軸分のクリッピング判定を行うことができる。
また、クリッピング判定はワールド座標変換からビューポート変換の間に必要なジオメトリ演算器内の１機能として実現でき、元々座標変換に必要であるハードウエアの資源を活用することが可能である。
また、３サイクルにてＸＹＺの３次元分の結果を同一個所にまとめることができ、ＸＹＺいずれかが領外域にあった時にフラグとして参照可能である。
また、ポリゴンを構成する三角形プリミティブの３頂点分の結果も同一個所にまとめることができ、３頂点のいずれかが領域外にあった時にフラグとして参照可能である。
さらに、トライアングルメッシュなどのプリミティブの連続描画において、次の頂点処理になった時に常に現在対象となる頂点群の判定を行うことが可能である。
【０１００】
【発明の効果】
以上説明したように、本発明によれば、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れる利点がある。
【図面の簡単な説明】
【図１】クリッピング処理における領域内外判定を説明するための図である。
【図２】本発明に係る３次元コンピュータグラフィックスにおける頂点座標変換システムの基本構成を示すブロック図である。
【図３】本実施形態に係るクリッピング装置の一実施形態を示す回路図である。
【図４】浮動小数点積和演算器の構成例を示す回路図である。
【図５】本実施形態に係るクリップコード生成回路の判定処理を説明するための図である。
【図６】本実施形態に係るクリップコード生成回路の具体的な構成例を示す回路図である。
【図７】カレントクリップレジスタにクリップコードがシフトインされることを示す図である。
【図８】ＣＬＩＰＧＥＮ　Ｘ，Ｗ、ＣＬＩＰＧＥＮ　Ｙ，Ｗ、ＣＬＩＰＧＥＮ　Ｚ，Ｗを連続して実行したときのカレントクリップレジスタの６ビットの各値を示す図である。
【図９】クリップクリア命令ＣＬＰＣＬＲを実行したときのクリップレジスタの初期化状態を示す図である。
【図１０】多面体の描画をトライアングルストリップと呼ばれる連続三角形のプリミティブで行う場合の処理を説明するための図である。
【図１１】多面体の描画をトライアングルファンという連続三角形のプリミティブで行う場合の処理を説明するための図である。
【図１２】プリミティブがトライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　、トライアングル（ＴＲＡＩＡＮＧＬＥ）　、トライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　の場合の、最初の２回目までの置換処理について説明するための図である。
【図１３】プリミティブがトライアングルストリップ（ＴＲＡＩＡＮＧＬＥ　ＳＴＲＩＰ）　、トライアングル（ＴＲＡＩＡＮＧＬＥ）　、トライアングルファン（ＴＲＡＩＡＮＧＬＥ　ＦＡＮ）　の場合の、３回目移行の置換処理について説明するための図である。
【図１４】プリミティブがラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、ライン（ＬＩＮＥ）の場合の１回目の置換処理を説明するための図である。
【図１５】プリミティブがラインストリップ（ＬＩＮＥ　ＳＴＲＩＰ）、ライン（ＬＩＮＥ）の場合の２回目以降の置換処理を説明するための図である。
【図１６】プリミティブがポイント（ＰＯＩＮＴ）　の場合の置換処理を説明するための図である。
【図１７】頂点が領域外に出たときに、三角形のどの点が出ているかにより処理を適切に行うことが可能であるかを説明するための図である。
【図１８】本実施形態に係る頂点レディフラグＶＲＤＹの設定例を示す図である。
【符号の説明】
１…頂点座標変換システム、２…オブジェクト座標部（ＯＣ）、３…視点座標部（ＥＣ）、４…クリップ座標部（ＣＣ）、５…ウィンドウ座標部（ＷＣ）、４００…クリッピング装置、４０１…プリミティブレジスタ（ＰＲＯＭ）、４０２〜４０４…入力レジスタ、４０５…クリップコード生成回路（ＣＬＩＰＧＥＮ）、４０６〜４１０…マルチプレクサ（ＭＵＸ）、４１１〜４１３…クリップレジスタ、４１４…コントローラ（ＣＴＬ）、４１５…論理回路（ＣＬＰ）、４１６…出力レジスタ、４００１〜４００３…インバータ、４００４〜４０１１…３入力ＡＮＤゲート、４０１２，４０１３…４入力ＯＲゲート。
【図１】
2004062765.tif 000010
【図２】
2004062765.tif 000011
【図３】
2004062765.tif 000012
【図４】
2004062765.tif 000013
【図５】
2004062765.tif 000014
【図６】
2004062765.tif 000015
【図７】
2004062765.tif 000016
【図８】
2004062765.tif 000017
【図９】
2004062765.tif 000018
【図１０】
2004062765.tif 000019
【図１１】
2004062765.tif 000020
【図１２】
2004062765.tif 000021
【図１３】
2004062765.tif 000022
【図１４】
2004062765.tif 000023
【図１５】
2004062765.tif 000024
【図１６】
2004062765.tif 000025
【図１７】
2004062765.tif 000026
【図１８】
2004062765.tif 000027