(57)【要約】【課題】３次元モデルデータのクリッピング処理において、高速で、且つ低コストなクリッピング処理が可能となるクリッピング処理装置、グラフィックスシステム、クリッピング処理方法及びグラフィックス方法を提供する。【解決手段】同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換装置１１と、頂点情報を記憶する頂点バッファ部１４、クリップ面において頂点情報を基にクリップテストを行うクリップテスト処理部１５、クリップテストにて分割が必要と判断されたプリミティブを分割処理行う分割部６１、頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成する除算部１８を有するクリップテスト処理装置１２と、スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置１３とを備えるクリッピング処理装置１００を用い、新しいプリミティブを再構成する際の各クリップ平面に対する分割処理を、新しいプリミティブの形状及び分割処理の目的に応じて適するように行う。【選択図】　　　図１
2004102841.tif 000002
【特許請求の範囲】
【請求項１】
同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換装置と、
前記頂点情報を記憶する頂点バッファ部、クリップ面において前記頂点情報を基にクリップテストを行うクリップテスト処理部、前記クリップテストにて分割が必要と判断されたプリミティブを分割処理行う分割部、前記頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成する除算部を有するクリップテスト処理装置と、
前記スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置
とを備えることを特徴とするクリッピング処理装置。
【請求項２】
前記頂点情報が、頂点及び頂点座標、前記分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数及びテクスチャ座標の少なくとも１つを含む情報であることを特徴とする請求項１に記載のクリッピング処理装置。
【請求項３】
前記分割部が、
頂点情報を用いて線分比を生成する線分比生成部と、
前記線分比を用いてクリップ面における頂点座標を生成する分割頂点座標生成部
とを備えることを特徴とする請求項１又は２に記載のクリッピング処理装置。
【請求項４】
前記分割部が、
前記クリップ面とプリミティブを構成する線分との交点に対する分割係数を算出する分割係数算出部と、
前記分割係数を基に頂点座標を算出し、前記頂点座標毎に対応する前記頂点情報を基に線形補間処理を行う線形補間部
とを備えることを特徴とする請求項１乃至３のいずれか１項に記載のクリッッピング処理装置。
【請求項５】
頂点の整列、線分を構成する頂点の選択及び頂点の入出力を含む命令を前記頂点バッファ部に対して行うインデックス部を更に備え、
前記クリップテスト処理部が、線分単位でクリップ面に対するクリップテストを行うことを特徴とする請求項１乃至４のいずれか１項に記載のクリッピング処理装置。
【請求項６】
同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換光源計算部、Ｚ面に対してクリップテストを行うＺ面クリップテスト部、前記クリップテストにより分割処理が必要と判断されたＺクリップ面の補間係数を算出するＺクリップ面補間係数算出部、前記クリップテストにより分割処理が不要と判断されたＺ面に対し透視変換係数を算出する透視変換係数算出部を有する座標変換光源計算装置と、
前記頂点情報を記憶する頂点バッファ部、Ｚ面以外のクリップ面において前記頂点情報を基にクリップテストを行うクリップテスト処理部、前記クリップテストにて分割が必要と判断されたプリミティブに分割処理行う分割部、前記頂点情報に対し透視変換処理を行いスクリーン座標系頂点情報を作成する除算部を有するクリップテスト処理装置と、
前記スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置
とを備えることを特徴とするグラフィックスシステム。
【請求項７】
前記頂点情報が、頂点及び頂点座標、前記分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数及びテクスチャ座標の少なくとも１つを含む情報であることを特徴とする請求項６に記載のグラフィックスシステム。
【請求項８】
前記分割部が、
前記クリップ面とプリミティブを構成する線分との交点に対する補間係数を算出する補間係数算出部と、
前記補間係数を基に頂点座標を算出し、前記頂点座標毎に対応する前記頂点情報を基に線形の補間処理を行う線形補間部
とを備えることを特徴とする請求項６又は７に記載のグラフィックスシステム。
【請求項９】
前記補間係数算出部の補間係数を算出する処理と、前記線形補間部の線形補間処理が並列的且つ同一サイクルにて動作することを特徴とする請求項６乃至８のいずれか１項に記載のグラフィックスシステム。
【請求項１０】
同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換装置と、
クリップ面と前記頂点情報との比較及び前記クリップ面とガードバンド領域との比較を行い、その結果に応じて判定ビットを出力する比較部、予め設定されたビットマスク情報を保持するレジスタ部、前記判定ビット及び前記ビットマスク情報よりマスクの論理和を算出し、描画対象、非描画対象及び分割対象のいずれか１つの判定を行う論理和算出部を有する比較装置と、
前記頂点情報を記憶する頂点バッファ部と、
前記頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成する除算部と、
前記スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置
とを備えることを特徴とするグラフィックスシステム。
【請求項１１】
前記頂点情報が、頂点及び頂点座標、前記分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数、テクスチャ座標及び前記判定ビットの少なくとも１つを含む情報であることを特徴とする請求項１０に記載のグラフィックスシステム。
【請求項１２】
３次元コンピュータグラフィックスの頂点分割処理を伴う画像処理方法において、
同次座標で表されるオブジェクト情報を、視点座標系での頂点情報に変換するステップと、
前記頂点情報を記憶するステップと、
クリップ面において前記頂点情報を基にクリップテストを行うステップと、
前記クリップテストにて分割が必要と判断されたプリミティブに対し、分割処理を行うステップと、
前記頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成するステップ
とを備えることを特徴とするコンピュータによる画像のクリッピング処理方法。
【請求項１３】
前記頂点情報が、頂点及び頂点座標、前記分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数及びテクスチャ座標の少なくとも１つを含む情報であることを特徴とする請求項１２に記載のコンピュータによる画像のクリッピング処理方法。
【請求項１４】
前記分割処理を行うステップが、
頂点情報を用いて線分比を生成するステップと、
前記線分比を用いて、クリップ面における頂点座標を生成するステップ
とを備えることを特徴とする請求項１２又は１３に記載のコンピュータによる画像のクリッピング処理方法。
【請求項１５】
前記分割処理を行うステップが、
前記クリップ面とビューポート線分との交点に対する分割係数を算出するステップと、
前記分割係数を基に線形補間部頂点座標を算出し、更に前記頂点座標毎に対応する前記頂点情報を基に線形補間処理を行うステップ
とを備えることを特徴とする請求項１２乃至１４のいずれか１項に記載のコンピュータによる画像のクリッピング処理方法。
【請求項１６】
頂点の整列、線分を構成する頂点の選択及び頂点の入出力に対して命令するステップを有し、
前記クリップテストを行うステップが、前記命令するステップを用い、線分単位でクリップ面に対するクリップテストを行うことを特徴とする請求項１２乃至１５のいずれか１項に記載のコンピュータによる画像のクリッピング処理方法。
【請求項１７】
３次元コンピュータグラフィックスの頂点分割処理を伴う画像処理方法において、
同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換するステップと、
Ｚ面に対してクリップテストを行うステップと、
前記クリップテストにより分割処理が必要と判断されたＺクリップ面の補間係数を算出するステップと、
前記クリップテストにより分割処理が不要と判断されたＺ面に対し透視変換係数を算出するステップと、
前記頂点情報を記憶するステップと、
Ｚ面以外のクリップ面において前記頂点情報を基にクリップテストを行うステップと、
前記クリップテストにて分割が必要と判断されたプリミティブに分割処理を行うステップと、
前記頂点情報に対し透視変換処理を行いスクリーン座標系頂点情報を作成するステップ
とを備えることを特徴とするコンピュータによる画像のグラフィックス方法。
【請求項１８】
前記頂点情報が、頂点及び頂点座標、前記分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数、テクスチャ座標及び透視変換係数の少なくとも１つを含む情報であることを特徴とする請求項１７に記載のグラフィックス方法。
【請求項１９】
前記分割処理を行うステップが、
前記クリップ面とビューポート線分との交点に対する補間係数を算出するステップと、
前記補間係数を基に頂点座標を算出し、前記頂点座標毎に対応する前記頂点情報を基に線形の補間処理を行うステップ
とを備えることを特徴とする請求項１７又は１８に記載のグラフィックス方法。
【請求項２０】
前記補間係数を算出するステップと、前記線形の補間処理を行うステップが並列的且つ同一サイクルにて行われることを特徴とする請求項１７乃至１９のいずれか１項に記載のグラフィックス方法。
【請求項２１】
３次元コンピュータグラフィックスの頂点分割処理を伴う画像処理方法において、
同次座標系で表されるオブジェクト情報を視点座標系での頂点情報に変換するステップと、
クリップ面と前記頂点情報との比較及び前記クリップ面とガードバンド領域との比較を行い、その結果に応じて判定ビットを出力するステップと、
予めレジスタ部に設定されたビットマスク情報及び前記判定ビットより、マスクの論理和を算出し、描画対象、非描画対象及び分割対象のいずれか１つであるとの判定を行うステップと、
前記論理和を含む頂点情報を記憶するステップと、
前記頂点情報に対し透視変換処理を行いスクリーン座標系頂点情報を作成するステップ
とを備えることを特徴とするコンピュータによる画像のグラフィックス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックスに係り、特に３次元空間でスクリーンに表示したい範囲以外の部分をクリッピング処理するクリッピング処理装置、グラフィックスシステム、コンピュータによる画像のクリッピング処理方法及びグラフィックス方法に関するものである。
【０００２】
【従来の技術】
３次元コンピュータグラフィックスにおけるクリッピング処理は、図２に示すように視点１を基準とした四角錘台の空間にて行われ、これをビューボリューム３と呼ぶ。ビューボリューム３は視点１から見てＺ手前面２ａ、Ｚ奥面２ｂ、Ｙ上面６、Ｙ下面７、Ｘ右面５、Ｘ左面４の６面によって定義され、物体の基本構成要素を定義するプリミティブの内、ビューボリューム３内に存在するもののみが実際にスクリーン上に描画される。尚、視点１からＺ手前面２ａ迄の距離をニアｄｎｅａｒと呼び、Ｚ手前面２ａは視点１よりｄｎｅａｒ離れた位置に存在する、Ｚ軸に垂直な面である。視点１からＺ奥面２ｂ迄の距離をファーｄｆａｒと呼び、Ｚ奥面２ｂはＺ手前面２ａは視点１よりｄｆａｒ離れた位置に存在する、Ｚ軸に垂直な面である。クリッピング処理とは一般的に以下の手順で行われる。先ず、各プリミティブに対するビューボリュームの関係をビューボリューム３内、ビーボリューム３外及びビューボリューム３内外の領域をまたぐ領域の３つに分類するクリップテストを行う。次に、ビューボリューム３内に存在する必要なプリミティブを拾い、ビューボリューム外に存在する不要なプリミティブを捨て、ビューボリューム３内とビューボリューム３外の領域をまたぐ領域に存在するプリミティブにおいては分割処理を行う。こうして全てのプリミティブをビューボリューム３内に適切に存在させるようにする。この際、分割処理が必要と判定されたプリミティブに対しては、クリップ面との交点を求めプリミティブを再構築する必要がある。各クリップ平面に対する分割処理は、プリミティブを構成する頂点間の線分と各クリップ面との交点（以下、「分割点」と記載）における線分と分割点の距離の比率を正規化したもの（以下、「補間係数」と記載）を求め、この補間係数を元に両端の頂点情報から分割点の座標値、法線値、色、α値、フォグ係数及びテクスチャ座標等の頂点に付随する各パラメータ値について求めていく。
【０００３】
従来の分割点の算出によるクリッピング手法について図３を用いて説明する。頂点ＡＢＣから成る三角形のプリミティブが、あるクリップ面をまたいでいる場合には、まず線分ＡＢとクリップ面との交点Ｄを求め、分割された線分ＡＤと線分ＤＢの比をｔ：１−ｔと表す。ここで求めた線分の比である補間係数を基に、線分ＡＤと線分ＤＢの頂点Ａ、Ｄ及びＢの座標値を求める。図４に示すように、分割が必要と判定された頂点ＡをＰ０、頂点ＤをＰＣ、頂点ＢをＰ１とする。各頂点はＸ軸、Ｙ軸及びＺ軸に加え、３次元空間内の単一の原点に対する相対的な頂点を表し、この空間内での頂点のひねり、回転等の動きを表現するワールド座標（Ｗ軸）を加えた４座標で表現される。このとき、Ｐ０（ｘ０，ｙ０，ｚ０，ｗ０）、Ｐ１（ｘ１，ｙ１，ｚ１，ｗ１）で構成される線分に対する、クリップ面との分割点ＰＣ（ｘｃ，ｙｃ，ｚｃ，ｗｃ）を求めるのに、線分Ｐ０ＰＣと線分ＰＣＰ１の距離の比率を正規化したもの、すなわち線分比ｔ：１−ｔの、クリップ面に対する補間係数（ｔ０、ｔ１）は、一般的には以下の式で求めることができる。
【０００４】
【数１】
2004102841.tif 000003
次に、式（１）、（２）より求められた分割係数を用いて、クリップ面との交点における座標値を求める。
【０００５】
【数２】
2004102841.tif 000004
上記の式（３）、（４）、（５）及び（６）により、頂点Ａ、Ｄ及びＢの頂点座標値を求めると、次に、各頂点に付随する法線値（Ｎｘ、Ｎｙ、Ｎｚ）、色（Ｒ、Ｇ、Ｂ）、α値（Ａ）、フォグ係数（Ｆ）及びテクスチャ座標（Ｓ、Ｔ、Ｑ）などの頂点に付随する各パラメータ値を算出する。
【０００６】
この後、頂点Ａ、Ｄ及びＢの頂点座標値の、透視変換処理を行う。
【０００７】
【数３】
2004102841.tif 000005
上記の式（７）、（８）及び（９）により得られた座標値（ｘ、ｙ、ｚ）に対して、ビューポート変換処理を行い、スクリーン座標における頂点情報が求められる。
【０００８】
上記のように、線分ＡＣにおいても、まず線分ＡＣとクリップ面との交点Ｄを求め、分割された線分ＡＤと線分ＤＢの比をｓ：１−ｓと表す。ここで式１で求めた補間係数を基に、線分ＡＤと線分ＤＢの頂点Ａ、Ｄ及びＢの座標値を求め、各頂点に付随するパラメータ値を求めて行く。又、頂点Ａ、Ｄ及びＢの座標値に対し、透視変換処理、ビューポート変換処理を行い、スクリーン座標における、新しいプリミティブＡＤＥの頂点情報が求められる。
【０００９】
【発明が解決しようとする課題】
しかしながら、分割処理での補間係数の算出には大きな計算コストがかかり、また頂点に付随する各パラメータの算出に関しては、複数のテクスチャ座標、複数の色を持つ場合もあり数多くの処理が必要となる。さらにこの処理を（Ｘ、Ｙ、Ｚ）の各クリップ平面に対して行っていくため、クリッピング処理は複雑で非常に多くの計算コストが発生する。このように分割処理は、３次元グラフィックス処理において処理速度を低下させるボトルネックとなり、またハードウェア化した際にパイプライン処理を止める要因ともなっている。また、この結果、ボトルネックの処理の為、多くの余分なコストがかかっているのが現状である。
【００１０】
本発明は上記の問題点に鑑みて為されたもので、３次元モデルデータのクリッピング処理において、高速で、且つ低コストなクリッピング処理が可能となるクリッピング処理装置、グラフィックスシステム、クリッピング処理方法及びグラフィックス方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の第１の特徴は、（イ）同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換装置と、（ロ）頂点情報を記憶する頂点バッファ部、クリップ面において頂点情報を基にクリップテストを行うクリップテスト処理部、クリップテストにて分割が必要と判断されたプリミティブを分割処理行う分割部、頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成する除算部を有するクリップテスト処理装置と、（ハ）スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置とを備えるクリッピング処理装置であることを要旨とする。
【００１２】
本発明の第２の特徴は、（イ）同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換光源計算部、Ｚ面に対してクリップテストを行うＺ面クリップテスト部、クリップテストにより分割処理が必要と判断されたＺクリップ面の補間係数を算出するＺクリップ面補間係数算出部、クリップテストにより分割処理が不要と判断されたＺ面に対し透視変換係数を算出する透視変換係数算出部を有する座標変換光源計算装置と、（ロ）頂点情報を記憶する頂点バッファ部、Ｚ面以外のクリップ面において頂点情報を基にクリップテストを行うクリップテスト処理部、クリップテストにて分割が必要と判断されたプリミティブに分割処理行う分割部、頂点情報に対し透視変換処理を行いスクリーン座標系頂点情報を作成する除算部を有するクリップテスト処理装置と、（ハ）スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置とを備えるグラフィックスシステムであることを要旨とする。
【００１３】
本発明の第３の特徴は、（イ）同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換する座標変換装置と、（ロ）クリップ面と頂点情報との比較及びクリップ面とガードバンド領域との比較を行い、その結果に応じて判定ビットを出力する比較部、予め設定されたビットマスク情報を保持するレジスタ部、判定ビット及びビットマスク情報よりマスクの論理和を算出し、描画対象、非描画対象及び分割対象のいずれか１つの判定を行う論理和算出部を有する比較装置と、（ハ）頂点情報を記憶する頂点バッファ部と、（ニ）頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成する除算部と、（ホ）スクリーン座標系頂点情報を基に新しくプリミティブを組み上げるラスタライザ装置とを備えることを要旨とする。
【００１４】
本発明の第４の特徴は、（イ）同次座標で表されるオブジェクト情報を、視点座標系での頂点情報に変換するステップと、（ロ）頂点情報を記憶するステップと、（ハ）クリップ面において頂点情報を基にクリップテストを行うステップと、（ニ）クリップテストにて分割が必要と判断されたプリミティブに対し、分割処理を行うステップと、（ホ）頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成するステップとを備えるコンピュータによる画像のクリッピング処理方法であることを要旨とする。
【００１５】
本発明の第５の特徴は、（イ）同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換するステップと、（ロ）Ｚ面に対してクリップテストを行うステップと、（ハ）クリップテストにより分割処理が必要と判断されたＺクリップ面の補間係数を算出するステップと、（ニ）クリップテストにより分割処理が不要と判断されたＺ面に対し透視変換係数を算出するステップと、（ホ）頂点情報を記憶するステップと、（ヘ）Ｚ面以外のクリップ面において頂点情報を基にクリップテストを行うステップと、（ト）クリップテストにて分割が必要と判断されたプリミティブに分割処理行うステップと、（チ）頂点情報に対し透視変換処理を行いスクリーン座標系頂点情報を作成するステップとを備えるグラフィックス方法であることを要旨とする。
【００１６】
本発明の第６の特徴は、（イ）同次座標で表されるオブジェクト情報を視点座標系での頂点情報に変換するステップと、（ロ）クリップ面と頂点情報との比較及びクリップ面とガードバンド領域との比較を行い、その結果に応じて判定ビットを出力するステップと、（ハ）予めレジスタ部に設定されたビットマスク情報及び判定ビットより、論理和算出部マスクの論理和を算出し、描画対象、非描画対象及び分割対象のいずれか１つであるとの判定を行うステップと、（ニ）論理和を含む頂点情報を記憶するステップと、（ホ）頂点情報に対し透視変換処理を行い、スクリーン座標系頂点情報を作成するステップとを備えるグラフィックス方法であることを要旨とする。
【００１７】
【発明の実施の形態】
３次元コンピュータグラフィックスによる３次元画像を２次元平面形状のビューポート内に表現するにはクリッピング処理が必要となるが、その際にプリミティブの分割処理において最も複雑な処理が必要となることは周知の事実である。分割処理が必要と判定されたプリミティブに対しては、クリップ面との分割点を求めプリミティブを再構築するが、この際、ビューポート内のプリミティブには種々の形態がある。例えば図３に示すように、クリップ面に対しプリミティブの２辺がまたいでおり、且つビューポート内に新しいプリミティブの１頂点を含んでいる三角形状の新しいプリミティブや、図７に示すようにクリップ面に対しプリミティブの２辺がまたいでおり、且つビューポート内に新しいプリミティブの２頂点を含んでいる四角形状の新しいプリミティブ、又、図１４に示すようなクリップ面に対しプリミティブの４辺がまたいでおり、且つビューポート内に新しいプリミティブの７頂点を含んでいる七角形状の新しいプリミティブ等が考えられる。
【００１８】
発明者らは、このような種々の新しいプリミティブを再構成する際の分割処理において、新しいプリミティブの形状及び分割処理の目的に応じて適した処理を行うよう鑑みた。
【００１９】
クリッピング処理において、新しいプリミティブの形状及び分割処理の目的に応じて適する分割処理を行う為の装置及び方法の実施の形態について、図面に基づいて以下に説明する。第１の実施の形態では各クリップ面に対する分割係数を省く為の装置及び方法について、第２の実施の形態ではプリミティブのパラメータ算出処理の回数を最小限に抑える為の装置及び方法について、第３の実施の形態ではプリミティブの補間係数算出処理と、複数の座標が与えられたとき、その座標間を接続する分割点を求める線形補間処理を並列的に行い各処理速度の高速化を図る為の装置及び方法について、第４の実施の形態では分割処理の際に使用する頂点バッファ数を削減する為の装置及び方法について、第５の実施の形態ではガードバンドを使用するクリップ判定処理の高速化を図るための装置及び方法について説明する。尚、本発明は以下の実施の形態にとらわれず、その趣旨を脱しない範囲で種々変更して実施できることは勿論である。
【００２０】
（第１の実施の形態）
（クリッピング処理装置）
本発明の第１の実施の形態に係るクリッピング処理装置１００は、各クリップ面に対する分割係数を省くことを目的とした装置であり、図１に示すように座標変換処理装置１１と、クリップテスト処理装置１２と、ラスタライザ装置１３とを備えている。座標変換処理装置１１はオブジェクト情報入力装置３０より、同次座標系プリミティブのオブジェクト情報を取得し、このオブジェクト情報に対し、モデルビュー変換、プロジェクション変換等の座標変換処理を行う。オブジェクト情報入力装置３０は、ジオメトリ演算を行うＣＰＵ若しくは外部メモリ等より構成される。
【００２１】
クリップテスト処理装置１２は、頂点バッファ部１４、クリップテスト処理部１５、分割部６１及び除算部１８とを備えている。頂点バッファ部１４は、座標変換処理装置１１が生成した頂点及び頂点座標、分割処理後の分割頂点及び頂点座標、各頂点に付随する法線、色、α値、フォグ係数及びテクスチャ座標等の頂点情報を記憶する記憶装置である。クリップテスト処理部１５は、各クリップ面においてプリミティブの分割処理が必要か否かのクリップテストを行う。分割部６１は、線分比生成部１６及び分割頂点座標生成部１７から成る。線分比生成部１６は、オブジェクト情報を座標変換した結果生成される頂点情報を用いて線分比を生成する。分割頂点座標生成部１７は、線分比生成部１６が生成した線分比を用いてクリップ面における頂点座標を生成する。除算部１８は、クリップテスト処理部１５より渡された頂点座標に対して透視変換処理を行う。
【００２２】
ラスタライザ装置１３は、スクリーン座標として与えられた頂点情報を基にプリミティブを組み上げ、ピクセル等を各パラメータ値に応じて色付けする処理を行いピクセル情報を作成し、このピクセル情報を描画装置３９に渡す。描画装置３９は、ピクセル情報を基に、ビデオメモリへ描画を行う。
【００２３】
（クリッピング処理方法）
次に、クリッピング処理装置１００を用いたクリッピング処理方法において、３次元コンピュータグラフィックスにおける３次元空間でのオブジェクト情報をスクリーンに描画するまでの処理の手順を、図５を用いて説明する。
【００２４】
（ａ）先ず、ステップＳ１０１として、座標変換処理装置１１が、オブジェクト情報入力装置３０より、同次座標で表される３次元空間の頂点座標（ｘｍ，ｙｍ，ｚｍ，ｗｍ）をオブジェクト情報として取得する。
【００２５】
（ｂ）次に、座標変換処理装置１１は、行列変換処理を行う。ステップＳ１０２として、モデルビュー変換、ステップＳ１０３としてプロジェクション変換を、式（１０）のような４×４の行列式を用いて行う。この行列変換処理により、視点座標系に変換されたオブジェクト情報は、頂点情報として、頂点バッファ部１４に送信され、一時記憶される。
【００２６】
【数４】
2004102841.tif 000006
（ｃ）ステップＳ１０４では、クリップテスト処理部１５が、頂点情報を頂点バッファ部１４より取得し、ビューボリュームを構成するＺ手前面２ａ、Ｚ奥面２ｂ、Ｙ上面６、Ｙ下面７、Ｘ右面５、Ｘ左面４の全６面に対して、プリミティブが領域内に存在するかどうかの判定を行う。
【００２７】
（ｄ）ステップＳ１０５では、クリップテスト処理部１５が、プリミティブが領域内に存在した場合、そのプリミティブを構成する線分毎に分割処理が必要かどうかの判定を行う。分割が必要と判定された頂点情報は、線分比生成部１６に送信される。
【００２８】
（ｅ）ステップＳ１０６では、線分比生成部１６が、分割が必要と判定された２頂点Ｐ０（ｘ０，ｙ０，ｚ０，ｗ０）、Ｐ１（ｘ１，ｙ１，ｚ１，ｗ１）で構成される線分に対して、クリップ面との分割交点Ｐｃ（ｘｃ，ｙｃ，ｚｃ，ｗｃ）を求める。この際、従来のように式（１）、（２）を用いて線分Ｐ０ＰＣと線分ＰＣＰ１の距離の比率を正規化した分割係数を用いるのではなく、分子の項のみを用いた以下の式により線分比を用いる。
【００２９】
【数５】
2004102841.tif 000007
（ｆ）次に、ステップＳ１０７にて、分割頂点座標生成部１７が、式（１１）、（１２）より求められた分割係数を用いて、Ｘ−Ｗクリップ面との交点における座標値を求める。
【００３０】
【数６】
2004102841.tif 000008
上記の式（１３）、（１４）、（１５）及び（１６）を用いて、ビューボリュームを構成するＺ手前面２ａ、Ｚ奥面２ｂ、Ｙ上面６、Ｙ下面７、Ｘ右面５、Ｘ左面４の全６面に対してに対して座標値を順次求めて行き、全てのクリップ面に対するビューボリューム内の交点座標を算出する。
【００３１】
（Ｇ）全ての交点座標が算出されたら、ステップＳ１０８にて、除算部１８が透視変換処理を行う。具体的には、以下の式を用いて、Ｗ座標値による割り算を行う。
【００３２】
【数７】
2004102841.tif 000009
（Ｈ）ステップＳ１０９では、除算部１８が、上記式（１７）、（１８）及び（１９）により得られた座標値（ｘ、ｙ、ｚ）に対して、ビューポート変換処理を行い、スクリーン座標系でのモデルデータを算出する。次に、ステップＳ１１０にて、このモデルデータより、スクリーン座標における頂点情報を算出する。この後、ラスタライザ装置１３が、スクリーン座標における頂点情報を基に、分割処理後の新しいプリミティブをドット、ピクセル等のカラムに分割し、そのカラムにテクスチャを張り込み、画像描画を完成させる。
【００３３】
以下、式（１）、（２）と式（１１）、（１２）の計算結果の一致を証明する。まず従来の手法で使用される式（７）を展開する。Ｘ座標に対する式（７）は、式（３）より、以下のように展開される。
【００３４】
【数８】
2004102841.tif 000010
次に、本発明の第１の実施の形態に係るクリッピング処理方法の透視変換処理にて用いられる式（１７）について展開すると以下のようになる。
【００３５】
【数９】
2004102841.tif 000011
以上により、式（２２）と式（２４）が等しいことより、式（７）と式（１７）は等価であり、従来の手法と本発明の第１の実施の形態に係るクリッピング方法による計算結果の一致が証明された。
【００３６】
従来の手法だと、分割係数を求める際に、割算が全６面のクリップ面に対して合計１２回必要であるのに対し、本発明のクリッピング方法の様に、線分比を用いて演算することによりこの割算が不要となる。この結果、クリッピング処理速度を向上させることが可能となり、ひいては計算コストを下げることが可能となる。
【００３７】
（第２の実施の形態）
（クリッピング処理装置）
本発明の第２の実施の形態に係るクリッピング処理装置２００は、プリミティブのパラメータ算出処理の回数を最小限に抑えることを目的とした装置であり、図６に示すように座標変換処理装置２１と、クリップテスト処理装置２２と、ラスタライザ装置２３とを備えている。クリップテスト処理装置２２は、頂点バッファ部２４、クリップテスト処理部２５、分割部６２及び除算部２８とを備えている。分割部６２は分割係数算出部２６及び線形補間部２７から構成される。分割係数算出部２６は、各クリップ面とビューポート線分との交点に対し、後述する式に従って、分割係数を算出する。線形補間部２７は、分割係数を基に頂点座標を算出し、この頂点座標毎に対応する頂点情報を基に線形補間処理を行う。その他の装置については、第１の実施の形態のクリッピング処理装置１００と同様のものを使用する為、説明を省略する。
【００３８】
（クリッピング処理方法）
次に、クリッピング処理装置２００を用いたクリッピング処理方法について、図８のフロー図を用いて説明する。３次元コンピュータグラフィックスのクリッピング処理において、パラメータ算出処理の回数を最小限に抑えることを可能とする処理は以下の手順で行われる。
【００３９】
（ａ）先ず、ステップＳ２０１として、座標変換処理装置２１が、オブジェクト情報入力装置３０より、オブジェクト情報としてプリミティブ２０ａの３次元空間における同次座標系での頂点座標（ｘｍ，ｙｍ，ｚｍ，ｗｍ）を取得する。
【００４０】
（ｂ）次に、座標変換処理装置２１は、行列変換処理を行う。ステップＳ２０２として、モデルビュー変換、ステップＳ２０３としてプロジェクション変換を、式１のような４×４の行列式を用いて行う。この行列変換処理により、視点座標系に変換されたオブジェクト情報は、頂点情報として、頂点バッファ部２４に送信され、一時記憶される。
【００４１】
（ｃ）ステップＳ２０４では、クリップテスト処理部２５が、頂点情報を頂点バッファ部２４より取得し、ビューボリュームを構成するＺ手前面２ａ、Ｚ奥面２ｂ、Ｙ上面６、Ｙ下面７、Ｘ右面５、Ｘ左面４の全６面に対して、プリミティブが領域内に存在するかどうかの判定を行う。
【００４２】
（ｄ）ステップＳ２０５では、クリップテスト処理部２５が、プリミティブが領域内に存在した場合、そのプリミティブを構成する分割係数毎に分割処理が必要かどうかの判定を行う。必要と判定された場合、分割処理は以下のように行われる。
【００４３】
（ｅ）ステップＳ２０６では、分割係数算出部２６が、分割係数による頂点分割を行う。例として図７に示すような、頂点Ａ、Ｂ、Ｃの３頂点から構成されるプリミティブ２０ａとクリップ平面の分割処理について説明する。この場合、Ｙ＝Ｗのクリップ平面、Ｘ＝Ｗのクリップ平面及びビューボリュームの領域内である、太字で囲まれたビューポート領域２０ｃ周辺においてプリミティブを構成する頂点の分割処理が行われる。
【００４４】
まずＹ＝Ｗ平面との分割交点を求め、線分ＡＢとＹ−Ｗクリップ面との交点Ｄに対する分割係数ｔ０と交点Ｄの座標値を求める。
【００４５】
【数１０】
2004102841.tif 000012
線分ＢＣとＹ−Ｗクリップ面との交点Ｅに対する分割係数ｔ１と交点Ｅの座標値を求める。
【００４６】
【数１１】
2004102841.tif 000013
次にＸ＝Ｗ平面との分割交点を求める。又、線分ＤＢとＸ＝Ｗクリップ平面との交点Ｆに対する分割係数ｔ２と座標値を求める。
【００４７】
【数１２】
2004102841.tif 000014
ここで交点Ｄは、線分ＡＢの分割点となっているので
【数１３】
2004102841.tif 000015
となる。整理すると以下のように、頂点Ａと頂点Ｂとそれぞれの分割係数で表される。
【００４８】
【数１４】
2004102841.tif 000016
線分ＤＥとＸ＝Ｗクリップ平面との交点Ｇに対する分割係数ｔ３と座標値を求める。
【００４９】
【数１５】
2004102841.tif 000017
ここで交点ＤはＡＢの分割点、交点ＥはＢＣの分割点となっているので、
【数１６】
2004102841.tif 000018
整理すると、以下のように頂点Ａ、頂点Ｂ、頂点Ｃとそれぞれの分割係数によって表される。
【００５０】
【数１７】
2004102841.tif 000019
以上のようにして、最終的に描画対象となるビューボリューム内の新しいプリミティブ２０ｂの頂点Ｂ、Ｅ、Ｇ、Ｆの座標値が求められる。
【００５１】
（ｆ）次にステップＳ２０７において、線形補間部２７が、新しいプリミティブ２０ｂの頂点Ｂ、Ｅ、Ｇ、Ｆの座標値より、パラメータ値の算出を行う。ここでパラメータ値とは、各頂点に付随する情報を表し、法線情報（Ｎｘ、Ｎｙ、Ｎｚ）、色情報（Ｒ、Ｇ、Ｂ）、透明度（Ａ）、テクスチャ座標（Ｓ、Ｔ、Ｑ）、フォグ値（Ｆ）等がある。またパラメータ値には、複数の色情報、複数のテクスチャ座標を持つ場合もあり、全てのパラメータ値の計算量は多くなる。例えば、頂点に付随するパラメータとして、色（Ｒ、Ｇ、Ｂ）、透明度（Ａ）、テクスチャ座標（Ｓ、Ｔ、Ｑ）の７つのパラメータが存在する場合には、図７の例において従来手法だと３５回のパラメータ演算が発生するのに対し、本発明の第２の実施の形態による方法では、頂点Ａ、Ｂ、Ｃからの分割係数をそれぞれ保持しておいて、最終的にクリップ領域内に存在する頂点に対してのみパラメータ値の算出を行うことにより、２１回のパラメータ演算で済むこととなる。この結果、分割処理に係る時間を短縮することができ、ひいては計算コストを低減することができる。
【００５２】
（第３の実施の形態）
（グラフィックスシステム）
本発明の第３の実施の形態に係るグラフィックスシステム３００は、プリミティブの補間係数算出処理と線形補間処理を並列的に行うことを目的とした装置であり、図９に示すようにオブジェクト情報入力装置３０と、座標変換光源計算装置３１と、クリップテスト処理装置３２と、ラスタライザ装置３３と、描画装置３９とを備えている。
【００５３】
オブジェクト情報入力装置３０は、ＣＰＵ若しくは外部メモリより構成され、光学的読取手段やオブジェクトの図形データ等より３次元のオブジェクト情報を取り込む。
【００５４】
座標変換光源計算装置３１は、座標変換光源計算部３１ａ、Ｚ面クリップテスト部３１ｂ、透視変換係数算出部３１ｄ及びＺクリップ面補間係数算出部３１ｃとを備えている。座標変換光源計算部３１ａは、入力されたオブジェクト情報に対し座標変換処理を行い、頂点情報を作成する。又、プリミティブに光源が当たっているとみなし、日向及び日陰部分の光源計算を行う。Ｚ面クリップテスト部３１ｂは、Ｚ軸に垂直であるＺ手前面２ａ、Ｚ奥面２ｂに対するクリップテストを行う。Ｚクリップ面補間係数算出部３１ｃは、Ｚ軸に垂直であるＺ手前面２ａ、Ｚ奥面２ｂに対する補間係数の算出を行う。透視変換係数算出部３１ｄは、Ｚクリップ面に対する１／ｄｎｅａｒ、若しくは１／ｄｆａｒの透視除算係数を算出し、これを基に透視変換処理を行う。ここで、透視変換係数とは、遠くの対象物が近くの対象物より小さく見えるよう画像を調整する際に使用する係数のことである。
【００５５】
クリップテスト処理装置３２は、頂点バッファ部３４、クリップテスト処理部３５、分割部６３及び除算部３８を備えている。分割部６３は、線形補間部３６と補間係数算出部３７から構成される。補間係数算出部３７は、Ｘ軸及びＹ軸に垂直であるＺ手前面２ａ、Ｚ奥面２ｂに対する補間係数の算出を行う。クリップテスト処理装置３２中の他の装置については第１の実施の形態及び第２の実施の形態と同様のものを使用する為、説明を省略する。
【００５６】
ラスタライザ装置３３は、頂点情報を、各パラメータ値等を含むピクセル情報へと変換する。描画装置３９は、ピクセル情報を基に、ビデオメモリへ描画を行う。尚、座標変換光源計算装置３１、クリップテスト処理装置３２及びラスタライザ装置３３をグラフィックエンジンとして、一つの装置として存在させることも可能である。
【００５７】
（グラフィックス方法）
以下、グラフィックスシステム３００を用いたグラフィック方法について図１０のデータフローグラフを用いて説明する。このグラフィック方法は、プリミティブの補間係数算出処理と線形補間処理を並列的に行うことを目的とする。データフローグラフの（１）及び（２）のステージは、座標変換光源計算装置３１においての処理を指し、（３）、（４）及び（５）のステージはクリップテスト処理装置３２においての処理を指す。また、前処理としてＺ軸に垂直なクリップ面に対する１／ｄｎｅａｒ及び１／ｄｆａｒの透視除算係数をあらかじめ計算しておく。
【００５８】
（ａ）先ず、ステップＳ３０１において、オブジェクト情報入力装置３０よりオブジェクトを取得し、座標変換光源計算部３１ａにて、視点座標系でのオブジェクト情報のデータを算出する。
【００５９】
（ｂ）ステップＳ３０２では、Ｚクリップ面でのクリップテスト及びＺ面に対する補間係数の算出を行う。詳細を図１１のフロー図を用いて説明する。先ず、ステップＳ３０２ａでは、視点座標系でのオブジェクト情報のデータ生成後、Ｚ面クリップテスト部３１ｂは、このデータを用いて、Ｚクリップ面に対するクリップテストを行う。ステップＳ３０２ｂでは、プリミティブの分割処理が必要か否かを判断する。分割処理が必要な場合、Ｓ３０２ｃにおいて、Ｚクリップ面補間係数算出部３１ｃが、Ｚクリップ面に対する補間係数を算出する。この補間係数は頂点バッファ部３４に一時記憶される。分割処理が不要な場合は、ステップＳ３０２ｄにおいて、透視変換係数算出部３１ｄが、透視変換係数を算出する。この透視変換係数は、ラスタライザ装置３３に送られる。このようにステップＳ３０２では、Ｚクリップ面に対するテストの結果によって算出するステップが変化する。これは後述するステップＳ３０４のＹクリップ面及びステップＳ３０６のＸクリップ面についても同じことが言える。
【００６０】
（ｃ）ステップＳ３０３では、線形補間部３６が、頂点バッファ部３４よりＺクリップ面に対する補間係数を取り出し、線形補間処理を行う。この線形補間処理より、プリミティブの分割点の座標値、パラメータ値が算出され、ステップＳ３０４に渡され、先頭の頂点情報が、ステップＳ３０５に渡される。さらに前計算しておいたＺ軸に垂直なクリップ面に対する１／ｄｎｅａｒ及び１／ｄｆａｒの透視除算係数を用いて、除算部３８が透視変換処理を行う。
【００６１】
ステップＳ３０４では、頂点の座標値とパラメータ値より、Ｙクリップ面に対するクリップテストが行われる。クリップテストの結果、分割処理が必要と判断された場合、Ｙクリップ面に対する補間係数を算出する。この補間係数はステップＳ３０５に渡される。
【００６２】
このとき、ステップＳ３０３の線形補間処理と、ステップＳ３０４の補間係数の算出処理は、同じ（３）ステージで、並列的に処理され、且つ、各処理の動作にかかる時間もほぼ同じである。
【００６３】
（ｄ）ステップＳ３０５においては、線形補間部３６が、頂点バッファ部３４よりＹクリップ面に対する補間係数を取り出し、線形補間処理を行う。この線形補間処理より、プリミティブの分割点の座標値、パラメータ値が算出され、ステップＳ３０６に渡され、先頭の頂点情報が、ステップＳ３０７に渡される。さらに前計算しておいたＺ軸に垂直なクリップ面に対する１／ｄｎｅａｒ及び１／ｄｆａｒの透視除算係数を用いて、除算部３８が透視変換処理を行う。
【００６４】
ステップＳ３０６では、頂点の座標値とパラメータ値より、Ｘクリップ面に対するクリップテストが行われる。クリップテストの結果、分割処理が必要と判断された場合、Ｘクリップ面に対する補間係数を算出する。この補間係数はステップＳ３０７に渡される。
【００６５】
このとき、ステップＳ３０５の線形補間処理と、ステップＳ３０６の補間係数の算出処理は、同じ（４）ステージで、並列的に処理され、且つ、各処理の動作にかかる時間もほぼ同じである。
【００６６】
（ｅ）ステップＳ３０７では、線形補間部３６が、頂点バッファ部３４よりＸクリップ面に対する補間係数を取り出し、線形補間処理を行う。この線形補間処理より、プリミティブの分割点の座標値、パラメータ値が算出される。さらに前計算しておいたＸ軸に垂直なクリップ面に対する１／ｄｎｅａｒ及び１／ｄｆａｒの透視除算係数を用いて、除算部３８が透視変換処理を行う。
【００６７】
（ｆ）最後にステップＳ３０８では、ラスタライザ装置３３が、透視変換処理された頂点情報を、各パラメータ値等を含むピクセル情報へと変換する。描画装置３９は、このピクセル情報を基に、ビデオメモリへ描画を行う。
【００６８】
図１０の（３）及び（４）のステージで示されるように、Ｚクリップ面に対しては、補間係数を予め計算しておくこと。また線形補間と次のクリップ面に対する補間係数算出を同じステージで並列処理することにより計算効率をあげ、従来の手法に比べ１ステージ分（約１５サイクル）クリップ処理を高速に行うことが可能となる。
【００６９】
（第４の実施の形態）
（クリッピング処理装置）
本発明の第４の実施の形態に係るクリッピング処理装置４００は、分割処理の際に使用する頂点バッファ数を削減することを目的とした装置であり、図１２に示すように座標変換処理装置４１と、クリップテスト処理装置４２と、ラスタライザ装置４３とを備えている。
【００７０】
クリップテスト処理装置４２は、頂点バッファ部４４、インデックス部４５、クリップテスト処理部４６、分割部４７及び除算部４８とを備えている。クリップテスト処理部４６は、線分単位で各クリップ面に対するクリップテストを行う。頂点バッファ部４４は、座標変換処理装置４１より入力された頂点と、分割部４７によって分割処理された分割頂点、その他のパラメータ値等の頂点情報を記憶する。インデックス部４５は、頂点バッファ部４４内で、頂点の整列、線分を構成する頂点の選択及び頂点の入出力の操作を行う。分割部４７は、クリップ面を線分単位で分割する為の装置である。具体的には第１の実施の形態の線分比生成より分割頂点座標を生成する装置であったり、第２の実施の形態の分割係数より線形補間処理を行う装置であったりする。その他の装置については、第１の実施の形態、第２の実施の形態及び第３の実施の形態のクリッピング処理装置と同様のものを使用する為、説明を省略する。
【００７１】
（クリッピング処理方法）
次に、クリッピング処理装置４００を用いたクリッピング処理方法について説明する。この方法では、クリップ面に対する分割処理の際に発生する頂点バッファの数を節約することを目的とする。
【００７２】
クリッピング分割処理で発生する頂点の例を図１３に示す。図は簡略化するためにＸ軸及びＺ軸の２次元で示している。プリミティブ４９ａがｖ０、ｖ１、ｖ２の３頂点で構成されており、破線で描かれている線がクリップ面４９ｂ、実線で囲まれた部分がビューポート４９ｃの空間である。最終的に必要となる頂点は実線で囲まれたビューポート４９の枠上の７つの頂点である。
【００７３】
通常の手法において、図１３の例に対しクリッピング処理を行う場合、以下のような処理を行う。
【００７４】
（ａ）Ｚクリップ面での分割処理として、先ず、線分ｖ０、ｖ１に対して分割部４７が分割処理を行い、頂点ｖ３、ｖ４を生成する。次に、線分ｖ１、ｖ２に対して分割部４７が分割処理を行い、頂点ｖ５を生成する。最後に、線分ｖ２、ｖ０に対して分割部４７が分割処理を行い、頂点ｖ２、ｖ６を生成する。この結果、頂点ｖ３、ｖ４、ｖ５、ｖ２、ｖ６が形成される。
【００７５】
（ｂ）Ｘクリップ面での分割処理として、先ず、線分ｖ３、ｖ４に対して分割部４７が分割処理を行い、頂点ｖ１０、ｖ４を生成する。先ず、線分ｖ４、ｖ５に対して分割部４７が分割処理を行い、頂点ｖ５を生成する。次に、線分ｖ５、ｖ２に対して分割部４７が分割処理を行い、頂点ｖ７を生成する。更に、線分ｖ２、ｖ６に対して分割部４７が分割処理を行い、頂点ｖ８、ｖ６を生成する。最後に、線分ｖ６、ｖ３に対して分割部４７が分割処理を行い、頂点ｖ９を生成する。この結果、頂点ｖ１０、ｖ４、ｖ５、ｖ７、ｖ８、ｖ６、ｖ９が形成される。以上の例より、この場合は１０頂点分の頂点バッファ部が４４つ必要となる。
【００７６】
次に、第４の実施の形態にかかるクリッピング処理方法について、図１４の頂点バッファ部４４の状態遷移図を参照して説明する。このクリッピング処理方法では、線分毎にクリップテスト処理部４６によるクリップテストと分割部４７による分割処理を繰り返し行うことにより、頂点バッファ部を図１４に示すように６つに減少することが出来る。
【００７７】
（０）の状態では、頂点バッファ部４４の初期状態を示す。上から３つ目までをＺ面バッファ、下から３つ目までをＸ面バッファとする。このとき、先ず、インデックス部４５は、頂点バッファ部４４に、プリミティブ４９ａの頂点ｖ０、ｖ１、ｖ２を記憶させる。
【００７８】
（１）の状態では、クリップテスト処理部４６が、線分ｖ０、ｖ１に対してＺクリップ面に対するクリップテストを行う。次に、線分ｖ０、ｖ１に対して、分割部４７がＺクリップ面の分割処理を行い、ｖ３、ｖ４を生成する。
【００７９】
（２）の状態では、線分ｖ３、ｖ４に対して、クリップテスト処理部４６が、Ｘクリップ面に対するクリップテストを行う。次に、線分ｖ３、ｖ４に対して、分割部４７がＸクリップ面による分割処理を行い、インデックス部４５はｖ４、ｖ１０を出力する。
【００８０】
（３）の状態では、線分ｖ１、ｖ２に対して、クリップテスト処理部４６が、Ｚクリップ面に対するクリップテストを行う。次に、線分ｖ１、ｖ２に対して、分割部４７がＺクリップ面による分割処理を行い、ｖ５を生成する。
【００８１】
（４）の状態では、線分ｖ５、ｖ２に対して、クリップテスト処理部４６が、Ｘクリップ面に対するクリップテストを行う。
【００８２】
（５）の状態では、クリップテスト処理部４６が、ｖ５を出力する。次に、線分ｖ５、ｖ２に対して分割部４７がＸクリップ面による分割処理を行い、インデックス部４５はｖ７を出力する。
【００８３】
（６）の状態では、線分ｖ２、ｖ０に対して、クリップテスト処理部４６が、Ｚクリップ面に対するクリップテストを行う。次に、線分ｖ２、ｖ０に対して、分割部４７がＺクリップ面による分割処理を行い、ｖ６を生成する。
【００８４】
（７）の状態では、線分ｖ２、ｖ０に対して、クリップテスト処理部４６が、Ｘクリップ面に対するクリップテストを行い、ｖ６を出力する。又、線分ｖ２、ｖ６に対してＸクリップ面の分割処理を行い、インデックス部４５はｖ８を出力する。
【００８５】
（８）の状態では、線分ｖ６、ｖ３に対して、クリップテスト処理部４６が、Ｘクリップ面の分割処理を行い、インデックス部４５はｖ９を出力する。
【００８６】
上記のように、線分毎の処理において、出力とソーティングを繰り返すことにより従来よりバッファの少ない頂点バッファ部４４でクリッピング分割処理を行うことが可能である。
【００８７】
（第５の実施の形態）
（グラフィックスシステム）
本発明の第５の実施の形態に係るグラフィックスシステム５００は、ガードバンドを使用するクリップ判定処理の高速化を図ることを目的とした装置であり、図１５に示すように、ジオメトリエンジン５０とラスタライザ装置６０とを備えている。ジオメトリエンジン５０は、オブジェクトの座標をスクリーン座標に変換する装置であり、座標変換処理装置５１、比較装置６４及び頂点バッファ部５５を備えている。比較装置６４は、比較部５２、レジスタ部５３及び論理和算出部５４から構成される。
【００８８】
座標変換処理装置５１は、オブジェクト情報入力装置３０より取得した、同次座標系でのプリミティブのオブジェクト情報を視点座標系での頂点情報に変換する。比較部５２は、クリップ面と頂点情報との比較及びクリップ面とガードバンド領域との比較を行い、その結果に応じて判定ビットを出力する。レジスタ部５３は、プログラマ等が予め設定したビットマスク情報を記憶する。論理和算出部５４は、判定ビット及びビットマスク情報よりマスクの論理和を算出し、描画対象、非描画対象及び分割対象のいずれか１つの判定を行う。頂点バッファ部５５は、頂点情報と各クリップ面に対する判定ビットを記憶する。頂点バッファ部５５が記憶する頂点情報は固定小数点、もしくは整数型でラスタライザ装置６０に渡される。オブジェクト情報入力装置３０は、ＧＰＵ（グラフィックスプロセッシングユニット）、ＣＰＵ及び外部メモリ等より構成される。
【００８９】
ラスタライザ装置６０は、頂点情報を、各パラメータ値等を含むピクセル情報へと変換し、このピクセル情報を描画装置３９に渡す。又、２次元のスクリーン空間でのシザリング機能と呼ばれるクリッピング機能を有する。尚、ラスタライザ装置６０が受け取ることができる固定ビット長の最大値をガードバンドと呼ぶ。
【００９０】
（グラフィックス処理方法）
次に、ガードバンドを使用するグラフィックスシステム５００を用いたクリッピング処理方法について図１７のフローチャートを用いて説明する。この方法では、３次元コンピュータグラフィックスにおけるクリッピング処理にて、ラスタライザ装置６０のシザリング機能を用いて分割処理を低減し、クリップ判定処理を高速に行うことを目的とする。
【００９１】
（ａ）先ず、ステップＳ５０１において、座標変換処理装置５１は、オブジェクト情報入力装置３０より、オブジェクトの情報を取り込む。
【００９２】
（ｂ）次に、座標変換処理装置５１は、行列変換処理を行う。ステップＳ５０２として、モデルビュー変換、ステップＳ５０３としてプロジェクション変換を、式１のような４×４の行列式を用いて行う。この行列変換処理により、視点座標系に変換されたオブジェクト情報は、頂点情報として、比較部５２に渡される。
【００９３】
（ｃ）ステップＳ５０４では、比較部５２において、頂点情報を基にした、空間領域における判定ビットの比較を、レジスタ部５３が保持するプログラマ等が予め設定したビットマスク情報と比較することにより行う。ガードバンドを使用するグラフィックスシステム５００における空間領域の分類例を図１６に示す。この空間領域は、簡易的にＸ軸Ｙ軸から成る二次元空間で示してある。色付きで塗りつぶしてある内側の矩形領域はビューポート領域５９を示す。斜線で囲まれた領域はガードバンド領域５７、５７ａ、５７ｂ、５７ｃ、５７ｄである。このうち５７ａはＹ下面、５７ｂはＹ上面、５７ｃはＸ左面及び５７ｄはＸ右面のクリップ面である。ビューポートの各面に対する判定は、ジェイムスＤ，Ｆ、アンドリＶ，Ｄ、スティーブンＫ，Ｆ及びジョンＦ，Ｈ著作の「コンピュータグラフィックス理論と実践」によると、コーエンシュザーランド（Ｃｏｈｅｎ−Ｓｕｔｈｅｒｌａｎｄ）アルゴリズムによる領域分類コードを使用すると、６ビットの情報により６つの領域に対し分類することが可能であると定義されている。第５の実施の形態に係るガードバンドグラフィック方法では、さらにガードバンドの領域を判定するために１ビットの情報を付加することにより計７ビットの情報によりの空間の領域分類を行う。（表１）に３次元空間での領域分類例を示す。
【００９４】
【表１】
2004102841.tif 000020
（表１）の３次元空間の場合と異なり、図１６の場合の２次元空間における領域分類は５ビットのコードで示される。ビューポート５６内の領域は、コード０００００で表される。Ｙ下面５７ａの領域は、ビューポートの底側面よりもＹ座標が小さい領域であり、コード００１００で表される。Ｙ上面５７ｂの領域は、ビューポートの上側面よりもＹ座標が大きい領域であり、コード０１０００で表される。Ｘ左面５７ｃの領域は、ビューポートの左側面よりもＸ座標が小さい場合であり、コード００００１で表される。Ｘ右面５７ｄの領域は、ビューポートの右側面よりもＸ座標が大きい場合であり、コード０００１０で表される。ガードバンド外領域５８の領域は、座標がガードバンドを超えた場合であり、コード１００００で表される。
【００９５】
ここで、上記ガードバンド外領域５８の領域判定は、Ｘ座標とＹ座標の絶対値を取り、そのどちらか大きい方とガードバンドが有するビット長の最大値とを比較する。この比較結果が、ガードバンドの領域を越えたと判断された場合に判定ビットを立てる。これは以下のプログラムによって実行される。
【００９６】
判定ビット＝（　ｍａｘ（｜Ｘ座標｜、｜Ｙ座標｜）　＞　Ｇｕａｒｄ　Ｂａｎｄ　）？　１　：　０；　（３３）
以上の領域判定を各頂点に対して行い、領域判定ビットとして頂点ごとに頂点バッファ部５５に保持しておく。
【００９７】
（ｄ）ステップＳ５０５では、論理和算出部５４が、プリミティブに対する描画対象、非描画対象、分割対象の判定を、論理和を用いて行う。非描画対象は、領域判定ビットの論理積が成立することによって判定する。描画対象は、領域判定ビットの論理積が非成立で、且つ、領域判定ビットの論理和が非成立であることによって判定する。分割対象は、領域判定ビットの論理積が非成立で、且つ、領域判定ビットの論理和が成立することによって判定する。
【００９８】
（ｅ）ステップＳ５０６では、描画対象、非描画対象、分割対象の判定が終了すると、除算部５６が、式４のＷ座標値による割り算により透視変換処理を行う。又、ステップＳ５０７にて、除算部５６は、式４により得られた座標値（ｘ、ｙ、ｚ）に対して、ビューポート変換処理を行い、スクリーン座標系でのモデルデータを算出する。次に、ステップＳ５０８にて、このモデルデータより、スクリーン座標における頂点情報を算出する。この後、ラスタライザ装置６０が、シザリング機能により、２次元空間のスクリーン座標における頂点情報を基に、分割処理後の新しいプリミティブをドット、ピクセル等のカラムに分割し、そのカラムにテクスチャを張り込み、画像描画を完成させる。
【００９９】
ガードバンドを有するシステムの場合、以上のようにガードバンド領域の分類を行うことにより、高速で且つ低コストなクリッピング処理が可能となる。又、アプリケーションの種類によっては、Ｚ手前面２ａ、Ｚ奥面２ｂにおいてはクリッップ分割しなくて良い場合や、オブジェクトのバウンディングボックスやバウンディングスフェア等の情報によりオブジェクトの位置が予め判断できる場合がある。この場合、どのクリップ面に対するクリップ分割処理が必要かどうかの情報を受け取り、上記判定ビットをマスクすることにより、不要なクリップ面に対する処理をスキップすることが可能となる。又、ラスタライザ装置６０にて、２次元空間でのシザリング機能を使用することにより、ジオメトリエンジン５０での３次元空間におけるクリッピング分割処理を低減することが可能である。
【０１００】
【発明の効果】
本発明によれば、３次元モデルデータのクリッピング処理において、高速で、且つ低コストなクリッピング処理が可能なクリッピング処理装置、グラフィックスシステム、クリッピング処理方法及びグラフィックス方法を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るクリッピング処理装置の構造を示す構造図である。
【図２】オブジェクト空間とスクリーン空間を示す概略図である。
【図３】クリップ面におけるプリミティブ分割の例を示す図である。
【図４】クリップ面に対する頂点分割の例を示す図である。
【図５】本発明の第１の実施の形態に係るクリッピング処理装置の動作を示すフローチャートである。
【図６】本発明の第２の実施の形態に係るクリッピング処理装置の構造を示す構造図である。
【図７】本発明の第２の実施の形態に係る分割処理の対象となるプリミティブとクリップ面の例を示す図である。
【図８】本発明の第２の実施の形態に係るクリッピング処理装置の動作を示すフローチャートである。
【図９】本発明の第３の実施の形態に係るグラフィックスシステムの構造を示す構造図である。
【図１０】本発明の第３の実施の形態に係るグラフィックスシステムの動作を示すフローチャートである。
【図１１】本発明の第３の実施の形態に係るグラフィックスシステムの動作を示すフローチャートである。
【図１２】本発明の第４の実施の形態に係るクリッピング処理装置の構造を示す構造図である。
【図１３】本発明の第４の実施の形態に係るクリッピング処理装置のクリッピング処理にて発生する頂点の例を示す図である。
【図１４】本発明の第４の実施の形態に係るクリッピング処理装置の頂点バッファ部の状態を示す状態遷移図である。
【図１５】本発明の第５の実施の形態に係るグラフィックスシステムの構造を示す構造図である。
【図１６】本発明の第５の実施の形態に係るグラフィックスシステムのガードバンド領域及びビューポート領域を示す領域図である。
【図１７】本発明の第５の実施の形態に係るグラフィックスシステムの動作を示すフローチャートである。
【符号の説明】
１…視点
２ａ…Ｚ手前面
２ｂ…Ｚ奥面
３…ビューボリューム
４…Ｘ左面
５…Ｘ右面
６…Ｙ上面
７…Ｙ下面
ｄｎｅａｒ…ｎｅａｒ距離
ｄｆａｒ…ｆａｒ距離
１００…クリッピング処理装置
１１…座標変換処理装置
１２…クリップテスト処理装置
１３…ラスタライザ装置
１４…頂点バッファ部
１５…クリップテスト処理部
１６…線分比生成部
１７…分割頂点座標生成部
１８…除算部
２００…クリッピング処理装置
２０ａ…プリミティブ
２０ｂ…新しいプリミティブ
２０ｃ…ビューポート領域
２１…座標変換処理装置
２２…クリップテスト処理装置
２３…ラスタライザ装置
２４…頂点バッファ部
２５…クリップテスト処理部
２６…分割係数算出部
２７…線形補間部
２８…除算部
３００…グラフィックスシステム
３０…オブジェクト情報入力装置
３１…座標変換光源計算装置
３１ａ…座標変換光源計算部
３１ｂ…Ｚ面クリップテスト部
３１ｃ…Ｚクリップ面補間係数算出部
３１ｄ…透視変換係数算出部
３２…クリップテスト処理装置
３３…ラスタライザ装置
３４…頂点バッファ部
３５…クリップテスト処理部
３６…線形補間部
３７…補間係数算出部
３８…除算部
３９…描画装置
４００…クリッピング処理装置
４１…座標変換処理装置
４２…クリップテスト処理装置
４３…ラスタライザ装置
４４…頂点バッファ部
４５…インデックス部
４６…クリップテスト処理部
４７…分割部
４８…除算部
４９…ビューポート
４９ａ…プリミティブ
４９ｂ…クリップ面
４９ｃ…ビューポート
５００…グラフィックスシステム
５０…ジオメトリエンジン
５１…座標変換処理装置
５２…比較部
５３…レジスタ部
５４…論理和算出部
５５…頂点バッファ部
５６…除算部
５７…ガードバンド領域
５７ａ…Ｙ下面
５７ｂ…Ｙ上面
５７ｃ…Ｘ左面
５７ｄ…Ｘ右面
５８…ガードバンド外領域
５９…ビューポート領域
６０…ラスタライザ装置
６１、６２、６３…分割部
【図１】
2004102841.tif 000021
【図２】
2004102841.tif 000022
【図３】
2004102841.tif 000023
【図４】
2004102841.tif 000024
【図５】
2004102841.tif 000025
【図６】
2004102841.tif 000026
【図７】
2004102841.tif 000027
【図８】
2004102841.tif 000028
【図９】
2004102841.tif 000029
【図１０】
2004102841.tif 000030
【図１１】
2004102841.tif 000031
【図１２】
2004102841.tif 000032
【図１３】
2004102841.tif 000033
【図１４】
2004102841.tif 000034
【図１５】
2004102841.tif 000035
【図１６】
2004102841.tif 000036
【図１７】
2004102841.tif 000037