JP4300001B2 - クリッピング装置 - Google Patents
クリッピング装置 Download PDFInfo
- Publication number
- JP4300001B2 JP4300001B2 JP2002223377A JP2002223377A JP4300001B2 JP 4300001 B2 JP4300001 B2 JP 4300001B2 JP 2002223377 A JP2002223377 A JP 2002223377A JP 2002223377 A JP2002223377 A JP 2002223377A JP 4300001 B2 JP4300001 B2 JP 4300001B2
- Authority
- JP
- Japan
- Prior art keywords
- clip
- register
- primitive
- code
- vertex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000006243 chemical reaction Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 22
- 238000000034 method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 101100439975 Arabidopsis thaliana CLPF gene Proteins 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- XOOUIPVCVHRTMJ-UHFFFAOYSA-L zinc stearate Chemical compound [Zn+2].CCCCCCCCCCCCCCCCCC([O-])=O.CCCCCCCCCCCCCCCCCC([O-])=O XOOUIPVCVHRTMJ-UHFFFAOYSA-L 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータグラフィックスの描画処理において、所定の座標系で表現されるある頂点および連続する多面体が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するためのクリッピング装置に関するものである。
【0002】
【従来の技術】
3次元コンピュータグラフィックスの処理においては、3次元ワールド座標系を想定し、そこに存在するオブジェクトに対してモデリング変換や視界変換等の処理を行った後、それを2次元デバイスに表示するためにビューポート変換処理を行う。
【0003】
この際、2次元に投影されるオブジェクトが投影面内に存在するかしないかの判定を行うクリッピング判定処理が必要がある。
より具体的には、オブジェクトはポリゴンとして多角形の集まりによって表現される。このため、この多角形の各頂点座標について、所定の領域において内外判定を行う必要がある。
【0004】
この領域内外判定は、座標が同次座標として表現されている場合、ある立方体内に存在するかどうかは以下の式を満たすかどうかにより判別できる。
つまり、点P(x,y,z)について、たとえば図1に示すような立方体の中に存在するかどうかを判断する。点Pが領域内に存在する条件は下記のとおりである。
【0005】
【数1】
−W ≦ x ≦ W
−W ≦ y ≦ W
−W ≦ z ≦ W
【0006】
この条件下において領域外の判定を行うには、各X,Y,Z軸に対して1頂点につき下記の計6回の比較作業を行う必要がある。
【0007】
【数2】
X > W
X <−W
Y > W
Y <−W
Z > W
Z <−W
【0008】
座標Xが判定基準値Wより大きいか、座標Xが−Wより小さいか、座標YがWより大きいか、座標Yが−Wより小さいか、座標ZがWより大きいか、座標Zが−Wより小さいかの比較処理を行う。そして比較結果が比較条件を満たしている場合に1、満たしていない場合には0とする。
すなわち、クリッピング装置においては、たとえば座標Xおよび判定基準値Wを入力すると、座標Xが判定基準値Wより大きいか、座標Xが−Wより小さいかの判定を行い、真であれば1、偽であれば0とする。
これにより、クリッピング装置は、1であった場合は領域外という判定が可能である。
【0009】
【発明が解決しようとする課題】
ところが、上述したクリッピング装置においては、領域外の判定を行うには、各X,Y,Z軸に対して1頂点につき計6回の比較作業を行う必要があることから、処理サイクル数が増大する。
その結果、従来のクリッピング装置では、さらなる処理の高速化が困難で、また、このクリッピング操作専用回路が複雑化するという不利益がある。
【0010】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れるクリッピング装置を提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点は、多面体が複数の頂点を含むプリミティブ単位で描画され、所定の座標系で表現されるプリミティブの各頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、上記プリミティブの頂点座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路と、上記クリップコード生成回路で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタと、上記カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じて保持データを前段のレジスタが保持するクリップコードで置換可能な、少なくとも上記プリミティブの頂点数より一つ少ない数のクリップレジスタと、クリップコード生成命令を受けると、上記コントロール信号をカレントクリップレジスタに出力して、上記クリップコード生成回路で生成されたクリップコードをシフトインさせ、置換命令を受けると、上記カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるように上記コントロール信号を対応するクリップレジスタに出力するコントロール回路と、上記カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路と、を有し、上記プリミティブが三角形に関するプリミティブの場合、2回目の置換命令まではプリミティブの種類によらずに頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力し、3回目以降の置換命令ではプリミティブの種類に応じて頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力する。
【0012】
本発明では、上記頂点の座標は所定の座標系の複数座標軸に対応した値を含み、上記クリップコード生成回路は、各座標軸に対応した複数のクリップコードを生成し、上記クリップレジスタは、少なくとも上記複数のクリップコードを保持する容量を有する。
【0013】
本発明では、上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する。
【0014】
好適には、上記カレントクリップレジスタの出力に対して2つのクリップレジスタが縦続接続され、上記コントロール回路は、上記プリミティブがトライアングルファンの場合、3回目以降の置換命令では後段の上記クリップレジスタの内容が当該後段のクリップレジスタにシフトインされ、上記カレントクリップレジスタの内容が前段の上記クリップレジスタにシフトインされ、上記カレントクリップレジスタはリセットされるように、上記コントロール信号を対応するクリップレジスタに出力する。
また、好適には、上記コントロール回路は、上記プリミティブがトライアングルストリップの場合、3回目以降の置換命令では前段の上記クリップレジスタの内容が当該後段のクリップレジスタにシフトインされ、上記カレントクリップレジスタの内容が前段の上記クリップレジスタにシフトインされ、上記カレントクリップレジスタはリセットされるように、上記コントロール信号を対応するクリップレジスタに出力する。
また、好適には、上記コントロール回路は、上記プリミティブがトライアングルの場合、置換3回目毎に、上記カレントクリックレジスタおよび上記2つのクリップレジスタがリセットされ、初期状態に戻るように、上記コントロール信号を対応するクリップレジスタに出力する。
【0015】
また、本発明は、多面体が複数の頂点を含むプリミティブ単位で描画され、所定の座標系で表現されるプリミティブの各頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、上記プリミティブの頂点座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路と、上記クリップコード生成回路で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタと、上記カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じて保持データを前段のレジスタが保持するクリップコードで置換可能な、少なくとも上記プリミティブの頂点数より一つ少ない数のクリップレジスタと、クリップコード生成命令を受けると、上記コントロール信号をカレントクリップレジスタに出力して、上記クリップコード生成回路で生成されたクリップコードをシフトインさせ、置換命令を受けると、上記カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるように上記コントロール信号を対応するクリップレジスタに出力するコントロール回路と、上記カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路と、を有し、上記コントロール回路は、上記プリミティブがラインストリップまたはラインに関数するプリミティブの場合、1回目の置換命令ではプリミティブの種類によらずに頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力し、2回目以降の置換命令ではプリミティブの種類に応じて頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力する。
好適には、上記コントロール回路は、上記プリミティブがラインストリップの場合、2回目以降の置換命令では上記カレントクリップレジスタの内容が次段のクリップレジスタにシフトインされ、上記カレントクリップレジスタはリセットされるように、上記コントロール信号を対応するクリップレジスタに出力する。
【0016】
また、上記コントロール回路は、置換命令の実行時には、上記プリミティブの頂点分のクリップコードが揃ったことを示す頂点レディフラグを生成する。
【0017】
また、上記コントロール回路は、所定の条件で上記カレントクリップレジスタを含む複数のクリップレジスタのうちの所望のレジスタを選択的に初期化する。
【0018】
本発明によれば、クリップコード生成回路において、頂点の座標と多次元領域の判定基準値および頂点の座標と当該判定基準値の負の値とが比較結果される。クリップコード生成回路では、比較結果に応じたデータがそれぞれビットデータとしてセットしたクリップコードが生成される。
そして、クリップコード生成回路で生成されたクリップコードがクリップレジスタにシフトインされる。
クリップレジスタにセットされた全ビットデータに対して論理回路において論理演算が行われる。その結果、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグが設定される。
【0019】
本発明によれば、コントロール回路がクリップコード生成命令を受けると、コントロール信号がカレントクリップレジスタに出力されて、クリップコード生成回路で生成されたクリップコードがシフトインされる。
次に、コントロール回路が置換命令を受けると、カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるようにコントロール信号が対応するクリップレジスタに出力される。
この際、プリミティブの種類に応じて新しい頂点処理に伴うクリップコードの置換処理が行われる。
そして、プリミティブの頂点分のクリップコードが揃うと、揃ったことを示す頂点レディフラグが生成される。
【0020】
【発明の実施の形態】
図2は、本発明に係る3次元コンピュータグラフィックスにおける頂点座標変換システムの基本構成を示すブロック図である。
【0021】
この頂点座標変換システム1は、図1に示すように、オブジェクト座標部(OC:Object Coordinate )2、視点座標部(EC:Eye Coordinate)3、クリップ座標部(CC:Clip Coordinate )4、およびウィンドウ座標部(WC:Window Coordinate )5を有している。
【0022】
オブジェクト座標部2は、全てのプリミティブが定義される4次元(x,y,z,w)の座標系を生成する。オブジェクト座標部2は、全てのプリミティブの頂点座標および法線を、たとえばIEEE単精度浮動小数点または16ビット符号付固定小数点で指定する。
そして、オブジェクト座標部2は、3次元ワールド座標系に存在するオブジェクトに対してモデルビュー変換処理を行い、プリミティブがライティングされる4次元座標を生成して視線座標部3に出力する。
オブジェクト座標部2は、4×4のモデルビューマトリクス(M)を使用して、以下のモデルビュー変換を行う。ここでは、オブジェクト座標部2における頂点座標を(xo ,yo ,zo ,wo )、視点座標部3における頂点座標を(xe,ye ,ze ,we )とする。
【0023】
【数3】
【0024】
また、オブジェクト座標部2は、視点座標部3においてライティングを行うことから、オブジェクト座標から視点座標への法線の変換を行う。
ここで、オブジェクト座標部2における法線を(Nxo,Nyo,NXo)、視点座標部3における法線を(Nxe,Nye,NXe)、モデルビューマトリクス(4×4)をM、Mの左上の3×3のサブマトリクスをMu とすると、オブジェクト座標から視点座標への法線の変換は次のようになる。
【0025】
【数4】
【0026】
視点座標部3は、オブジェクト座標部2に定義されたプリミティブの頂点座標および法線が本視点座標系に変換、配置されたライティングおよびフォギング処理を施す。視点は本視点座標系の原点、視線方向はZ軸方向になる。視点座標部3は、全てのプリミティブの頂点座標および法線を、たとえばIEEE単精度浮動小数点または16ビット符号付固定小数点で指定する。
視点座標部3は、4×4のプロジェクション(Projection)マトリクス(P)を使用して投影変換を以下のように行い、その結果をクリップ座標部4に出力する。ここでは、クリップ座標部4における頂点座標を(xc ,yc ,zc ,wc)とする。
【0027】
【数5】
【0028】
クリップ座標部4は、投影変換された3次元座標系において、2次元デバイスに表示するためにビューポート変換処理を行い、変換結果をウィンドウ座標部5に出力する。
クリップ座標部4は、ビューポート変換の際、2次元に投影されるオブジェクトが投影面内に存在するかしないかの判定処理、すなわちクリッピング処理を行う。このクリッピング処理については後で詳述する。
クリッピング処理においては、以下の条件が満たされない領域は描画されない。ここで、Wは図1に示す判定基準値である。
【0029】
【数6】
−W ≦ x ≦ W
−W ≦ y ≦ W
−W ≦ z ≦ W
【0030】
クリップ座標部4は、ビューポート変換においては、クリッピング処理後、以下のように(xc ,yc ,zc )をwc で除算した後、スケーリングとトランスレーションを実行する。ここでは、ウィンドウ座標部5における頂点座標を(xw ,yw ,zw )とする。
【0031】
【数7】
【0032】
ウィンドウ座標部5におけるウィンドウ座標は、実際の描画が行われる座標系で、たとえば左上端点が原点で、右に向かってXが正、下に向かってYが正、手前に向かってZの正の3次元座標系である。
【0033】
以下に、クリップ座標部4におけるクリッピング装置について、図面に関連付けてさらに詳細に説明する。
【0034】
図3は、本発明に係るクリッピング装置の一実施形態を示す回路図である。
【0035】
クリッピング装置400は、図3に示すように、プリミティブレジスタ(PROM)401、入力レジスタ402〜404、クリップコード生成回路(CLIPGEN)405、マルチプレクサ(MUX)406〜410、各々の6ビットのクリップレジスタ411(A,B,C),412,413、コントローラ(CTL)414、論理回路(CLP)415、および出力レジスタ416を有している。
【0036】
プリミティブレジスタ401は、プリミティブの種類に関する情報、具体的には、トライアングルストリップ(TRAIANGLE STRIP) 、トライアングル(TRAIANGLE) 、トライアングルファン(TRAIANGLE FAN) 、ラインストリップ(LINE STRIP)、ライン(LINE)、またはポイント(POINT)のいずれであるかを示す情報がセットされる。
プリミティブレジスタ401は、セットされた情報をコントローラ413および図示しない変換行列の要素などのデータを格納するためのパラメータファイルに供給する。
【0037】
入力レジスタ402は、いわゆるジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要な(|A|−|B|の符号)SGN−|A−B|がセットされる。
入力レジスタ402は、セットされたデータ(|A|−|B|の符号)SGN−|A−B|をクリップコード生成回路405に供給する。
【0038】
ここで、Aは座標値であり、本実施形態ではX,Y,Zの座標x,y,zとして与えられる。また、Bは判定基準値であり、図1のWに相当する。以下、同様である。
【0039】
入力レジスタ403は、ジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要な(Aの符号)SGN−Aがセットされる。
入力レジスタ403は、セットされたデータ(Aの符号)SGN−Aをクリップコード生成回路405に供給する。
【0040】
入力レジスタ404は、ジオメトリ演算器において求められた演算結果のうち、クリッピング処理における内外判定に必要なBの符号SGN−Bがセットされる。
入力レジスタ404は、セットされたデータ(Bの符号)SGN−Bをクリップコード生成回路405に供給する。
【0041】
ここで、入力レジスタ402〜404にセットされるデータについてさらに説明する。
【0042】
上述したワールド座標系におけるオブジェクトのモデリング変換や視界変換および投影変換には、ジオメトリ演算器と呼ばれる一種の浮動小数点積和演算器が必要とされる。たとえば、物体の移動、回転、拡大などの変換には4×4要素の行列演算が必要であり、この処理を行う役割を担っている。
演算器には加算器も備わっており減算も可能である。加算並びに減算はまず符号を使わずに(つまり絶対値)で|A|+|B|もしくは|A|−|B|の演算を行い、その後AおよびBの符号から最終的な計算結果を導くようになっている。具体的には、符号ビットを無視して指数を合わせて減算し、その結果、正であれば1、負であれば0となる。
そして、クリッピング処理における所定の領域に対する内外判定は、演算器の機能の一部である減算|A|−|B|の結果およびAとBの符号から判断が可能である。
【0043】
図4は、浮動小数点積和演算器の構成例を示す回路図である。
【0044】
この演算器500は、図4に示すように、レジスタ501〜517、ブロックバッファ518,519、加算器520〜524、部分積生成器(PPG:Partial Product Generator )525、キャリセイブアダー(CSA:Carry Save Adder )526〜529、反転回路530,531、シフタ532、リミッタ533、クランプ回路534、およびマルチプレクサ535〜545を有している。
この演算器500において、PPG525は、部分積を生成する。この部分積をワラス等で知られるツリー状に構成したCSA526で加算していくことで、一方の出力にキャリが出力され、他方の出力にサムが出力される。
さらにCSA529で演算を行い、キャリおよびサム出力が加算器520に供給される。そして、加算器520において|A|−|B|が生成される。上述したように、符号ビットを無視して指数を合わせて減算し、その結果、正であれば1、負であれば0となる。
【0045】
クリップコード判定回路405は、入力レジスタ402〜404にセットされたデータ(|A|−|B|の符号)SGN−|A−B|、データ(Aの符号)SGN−A、およびデータ(Bの符号)SGN−Bに基づいて、A>Bの判定およびA<−Bの判定を行い、両者の判定結果を論理1または0で示す2ビットのクリップコードCLPCを生成し、マルチプレクサ406に出力する。
クリップコード判定回路405は、2ビットのクリップコードCLPCのうち、下位の0ビットにA>Bの判定結果をセットし、上位の1ビットにA<−Bの判定結果をセットする。
クリップコード生成回路405は、(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bを正の時0、負の時1とすると入力の8通りに対して、A>B判定およびA<−B判定は、図5に示すようになる。
【0046】
具体的には、(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(0,0,0)のときクリップコードCLPCは(0,1)となる。
以下、(0,0,1)のときクリップコードCLPCは(0,1)、(0,1,0)のときクリップコードCLPCは(1,0)、(0,1,1)のときクリップコードCLPCは(1,0)、(1,0,0)のときクリップコードCLPCは(0,0)、(1,0,1)のときクリップコードCLPCは(1,1)、(1,1,0)のときクリップコードCLPCは(0,0)、(1,1,1)のときクリップコードCLPCは(1,1)となる。
【0047】
図6は、本実施形態に係るクリップコード生成回路405の具体的な構成例を示す回路図である。
【0048】
クリップコード生成回路405は、図6に示すように、インバータ4001〜4003、3入力ANDゲート4004〜4011、および4入力ORゲート4012,4013を有している。
【0049】
インバータ4001の入力はデータ(|A|−|B|の符号)SGN−|A−B|の入力ラインに接続され、インバータ4002の入力はデータ(Aの符号)SGN−Aの入力ラインに接続され、インバータ4003の入力はデータ(Bの符号)SGN−Bの入力ラインに接続されている。
ANDゲート4004の第1入力はインバータ4001の出力に接続され、第2入力はデータ(Aの符号)SGN−Aの入力ラインに接続され、第3入力はインバータ4003の出力に接続され、出力がORゲート4012の第1入力に接続されている。
ANDゲート4005の第1入力はインバータ4001の出力に接続され、第2入力はデータ(Aの符号)SGN−Aの入力ラインに接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4012の第2入力に接続されている。
ANDゲート4006の第1入力はデータ(|A|−|B|の符号)SGN−|A−B|の入力ラインに接続され、第2入力はインバータ4002の出力に接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4012の第3入力に接続されている。
ANDゲート4007の第1入力はデータ(|A|−|B|の符号)SGN−|A−B|の入力ラインに接続され、第2入力はデータ(Aの符号)SGN−Aの入力ラインに接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4012の第4入力に接続されている。
ANDゲート4008の第1入力はインバータ4001の出力に接続され、第2入力はインバータ4002の出力に接続され、第3入力はインバータ4003の出力に接続され、出力がORゲート4013の第1入力に接続されている。
ANDゲート4009の第1入力はインバータ4001の出力に接続され、第2入力はインバータ4002の出力に接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4013の第2入力に接続されている。
ANDゲート4010の第1入力はデータ(|A|−|B|の符号)SGN−|A−B|の入力ラインに接続され、第2入力はインバータ4002の出力に接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4013の第3入力に接続されている。
ANDゲート4011の第1入力はデータ(|A|−|B|の符号)SGN−|A−B|の入力ラインに接続され、第2入力はデータ(Aの符号)SGN−Aの入力ラインに接続され、第3入力はデータ(Bの符号)SGN−Bの入力ラインに接続され、出力がORゲート4013の第4入力に接続されている。
そして、ORゲート4012からA<−Bの判定結果1または0が出力され、ORゲート4013からA>Bの判定結果1または0が出力される。
【0050】
図6の回路は、図5のいわゆる真理値表を実現したものである。
すなわち、(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(0,0,0)のとき、ANDゲート4008の出力のみ1となり、他のANDゲート4004〜4007、4009〜4011の出力は0となる。その結果、ORゲート4012の出力が0、ORゲート4013の出力が1となり、クリップコードCLPCは(0,1)となる。
【0051】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(0,0,1)のとき、ANDゲート4009の出力のみ1となり、他のANDゲート4004〜4008、4010〜4011の出力は0となる。その結果、ORゲート4012の出力が0、ORゲート4013の出力が1となり、クリップコードCLPCは(0,1)となる。
【0052】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(0,1,0)のとき、ANDゲート4004の出力のみ1となり、他のANDゲート4005〜4011の出力は0となる。その結果、ORゲート4012の出力が1、ORゲート4013の出力が0となり、クリップコードCLPCは(1,0)となる。
【0053】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(1,0,0)のとき、全てのANDゲート4004〜4011の出力は0となる。その結果、ORゲート4012の出力が0、ORゲート4013の出力が0となり、クリップコードCLPCは(0,0)となる。
【0054】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(1,0,1)のとき、ANDゲート4006,4010の出力が1、他のANDゲート4004,4005,4007〜4009、4011の出力は0となる。その結果、ORゲート4012の出力が1、ORゲート4013の出力が1となり、クリップコードCLPCは(1,1)となる。
【0055】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(1,1,0)のとき、全てのANDゲート4004〜4011の出力は0となる。その結果、ORゲート4012の出力が0、ORゲート4013の出力が0となり、クリップコードCLPCは(0,0)となる。
【0056】
(|A|−|B|の符号)SGN−|A−B|、(Aの符号)SGN−A、(Bの符号)SGN−Bが(1,1,1)のとき、ANDゲート4007,4011の出力が1、他のANDゲート4004〜4006,4008〜4010の出力は0となる。その結果、ORゲート4012の出力が1、ORゲート4013の出力が1となり、クリップコードCLPCは(1,1)となる。
【0057】
マルチプレクサ406は、コントローラ414のコントロール信号S414に応じてクリップコード生成回路405によりクリップコードCLPCまたは0(初期化のためのパラメータ)のいずれかを選択してクリップレジスタ411の下位2ビット分のレジスタ411Aに出力する。
【0058】
マルチプレクサ407は、コントローラ414のコントロール信号S414に応じてクリップレジスタ411Aの出力または0のいずれかを選択してクリップレジスタ411の中位2ビット分のレジスタ411Bに出力する。
【0059】
マルチプレクサ408は、コントローラ414のコントロール信号S414に応じてクリップレジスタ411Bの出力または0のいずれかを選択してクリップレジスタ411の上位2ビット分のレジスタ411Cに出力する。
【0060】
マルチプレクサ409は、コントローラ414のコントロール信号S414に応じてクリップレジスタ411(411A〜411C)の出力または0のいずれかを選択してクリップレジスタ412に出力する。
【0061】
マルチプレクサ410は、コントローラ414のコントロール信号S414に応じてクリップレジスタ412の出力または0のいずれかを選択してクリップレジスタ413に出力する。
【0062】
クリップレジスタ411は、X軸、Y軸、Z軸の各1軸当たり2ビットの情報であるクリップコードCLPCまたは初期化のためのパラメータ0がセットされる。
クリップレジスタ411は、コントローラ414の制御信号S414に応じて、図7に示すように2ビットずつシフトして、図8に示すように、3軸分についてもレジスタに順次送り込むことにより6ビットの情報として記憶する。
クリップレジスタ411は、カレントクリップレジスタ(C−CLIP)として機能し、CLIPGEN A,B命令が実行される際に、A<−B、A>Bの判定結果である2ビットのクリップコードCLPCをシフトインする。
CLIPGEN命令を3回、具体的には、Aが3軸のX,Y,Zの座標であり、Bが判定基準値Wとして、CLIPGEN X,W、CLIPGEN Y,W、CLIPGEN Z,Wを連続して実行すると、クリップレジスタ411の6ビットの各値は、図8および下記の通りになる。
【0063】
【数8】
bit5:(X<−W)?1:0
bit4:(X>W)?1:0
bit3:(Y<−W)?1:0
bit2:(Y>W)?1:0
bit1:(Z<−W)?1:0
bit0:(Z>W)?1:0
【0064】
すなわち、ビット5にX<−Wの判定結果1または0、ビット4にX>Wの判定結果1または0、ビット3にY<−Wの判定結果1または0、ビット2にY>Wの判定結果1または0、ビット1にZ<−Wの判定結果1または0、ビット0にZ>Wの判定結果1または0がシフトインされる。
【0065】
そして、カレントクリップレジスタ411Aの出力がマルチプレクサ407に供給され、カレントクリップレジスタ411Bの出力がマルチプレクサ408に供給される。カレントクリップレジスタ411A〜411C、すなわちカレントクリップレジスタ411は、6ビット出力をマルチプレクサ409、論理回路415および後段の処理回路に出力する。
【0066】
そして、3次元コンピュータグラフィックスにおいては、オブジェクトは多角形、具体的には3角形の集合による多面体としで表面が描画される。この3角形を基本とする描画単位がプリミティブと呼ばれ、プリミティブは3次元コンピュータグラフィックス処理での基本となっている。
そこで、本実施形態においては、クリップレジスタの容量を1つの3角形分として、3頂点分の容量を確保するために、クリップレジスタ411に加えて6ビットのクリップレジスタ(CLIP1)412と6ビットのクリップレジスタ(CLIP2)413を設け、3頂点分の容量を18ビットとしている。
【0067】
クリップレジスタ(CLIP1)412は、コントローラ414のコントロール信号S414に応じて、マルチプレクサ409を介してクリップレジスタ411の6ビットの内容をシフトインし、シフトインした内容を論理回路415および後段の処理回路に出力する。
【0068】
クリップレジスタ(CLIP2)413は、コントローラ414のコントロール信号S414に応じて、マルチプレクサ410を介してクリップレジスタ412の6ビットの内容をシフトインし、シフトインした内容を論理回路415および後段の処理回路に出力する。
【0069】
論理回路415は、クリップレジスタ411,412,413の18ビット出力の論理和をとり、1ビットのクリップフラグCLPFを生成する。
論理回路415は、クリップレジスタ411,412,413の18ビット出力のうち、いずれかのビットが1であればそれを示すクリップフラグCLPFを生成する。
すなわち、クリッピング装置400においては、基本プリミティブである3角形の処理を連続して行った後にクリップフラグCLPFを参照し3頂点が投影立方体の領域内であるかどうかの判定が可能となる。
本実施形態においては、クリッピング装置400は、クリップフラグCLPFに1が設定されている場合には、領域外であるとして判定し、0が設定されている場合には、領域内であると判定する。
【0070】
コントローラ414は、クリップクリア命令CLPCLRを受けると、マルチプレクサ406〜410が初期化パラメータ0を選択し、図9に示すように、各クリップレジスタ411,412,413の全ビットに0がセットされるとようにコントロール信号S414をクリップレジスタ411〜413に出力する。
【0071】
コントローラ414は、クリップコード生成命令CLIPGENを受けると、マルチプレクサ406〜410がクリップコード生成回路405によるクリップコードCLPC、および前段のクリップレジスタ411A,411B,411C、411、および412の出力内容を選択し、前段のレジスタの内容がシフトインされるようにコントロール信号S414をクリップレジスタ411〜413に出力する。
【0072】
コントローラ414は、置換命令REPLACEを受けると、プリミティブレジスタ401にセットされたプリミティブの種類に応じて新しい頂点処理に伴うクリップコードの置換を行うように、コントロール信号S414をマルチプレクサ406〜410およびクリップレジスタ411〜413に出力する。
コントローラ414は、置換命令REPLACEの実行時には、3頂点分のクリップコードが揃ったことを示す(準備が完了したことを示す)頂点レディフラグVRDYを生成し、出力レジスタ416にセットする。
【0073】
以下に、置換処理が必要である理由について説明する。
【0074】
多面体の描画は、たとえば図10に示すようにトライアングルストリップと呼ばれる連続三角形のプリミティブで行うことができる。図中の番号は頂点の処理順序である。
頂点ごとに領域内外判定を行うには、▲1▼から▲3▼までは、すべての点を判定する必要があり、その後は直前の3座標の判定を行う必要がある。
たとえば頂点▲6▼において判定対象となるのは▲4▼、▲5▼、▲6▼である。
また、図11に示すように、トライアングルファンという連続三角形のプリミティブも存在する。
同様の場合、▲3▼までは、すべての点を判定する必要があり、その後は開始点および直前の2座標の判定を行う必要がある。たとえば頂点▲6▼において判定対象となるのは▲1▼、▲5▼、▲6▼である。
【0075】
本実施形態に係るコントローラ414は、上記3頂点分の結果を保存するクリップレジスタ411〜413に、これらプリミティブごとに、判定に適切な3頂点を保存するにように、マルチプレクサ406〜410およびクリップレジスタ411〜413を制御する。
コントローラ414の制御の下、処理対象のプリミティブをクリップレジスタ411〜413に記憶し、頂点を処理する毎に、1頂点分の判定結果を保存する時に常に必要な3頂点分の判定結果を保存する。
【0076】
このように、置換命令REPLACEが発行されると、プリミティブレジスタ401にセットされたプリミティブの種類に応じて各入れ替え動作が行われる。以下、各プリミティブ毎のクリップレジスタの内容の入れ替え動作について説明する。
【0077】
プリミティブがトライアングルストリップ(TRAIANGLE STRIP) 、トライアングル(TRAIANGLE) 、トライアングルファン(TRAIANGLE FAN) の場合、図12(A)〜(G)に示すように、最初の2回目までは、各クリップレジスタを6ビットずつシフトして代入する。
置換1回目は、図12(B)、(C)に示すように、クリップレジスタ411の内容Aがクリップレジスタ412にシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
次に、図12(D)に示すように、クリップレジスタ411に内容Bがセットされる。
そして、置換2回目は、図12(E)、(F)に示すように、クリップレジスタ412の内容Aがクリップレジスタ413にシフトインされ、クリップレジスタ411の内容Bがクリップレジスタ412にシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
次に、図12(G)に示すように、クリップレジスタ411に内容Cがセットされる。
【0078】
3回目以降の置換命令ではプリミティブの種類により動作が異なる。
【0079】
プリミティブがトライアングルストリップ(TRAIANGLE STRIP) の場合、置換3回目以降は、図13(A),(B)に示すように、クリップレジスタ412の内容Bがクリップレジスタ413にシフトインされ、クリップレジスタ411の内容Cがクリップレジスタ412にシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
プリミティブがトライアングルファン(TRAIANGLE FAN) の場合、置換3回目以降は、図13(C),(D)に示すように、クリップレジスタ413の内容Aがクリップレジスタ413にシフトインされ、クリップレジスタ411の内容Cがクリップレジスタ412にシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
プリミティブがトライアングル(TRAIANGLE) の場合、図13(E)に示すように、置換3回目毎に、クリップレジスタ411〜413は全ビット0にリセットされ、初期化状態に戻る。
【0080】
プリミティブがラインストリップ(LINE STRIP)、ライン(LINE)の場合、図14(A)〜(D)に示すように、置換1回目では、カレントクリップレジスタ411の内容Aをクリップレジスタ412の6ビットシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
【0081】
プリミティブがラインストリップ(LINE STRIP)、ライン(LINE)の場合、2回目以降の置換命令ではプリミティブの種類により動作が異なる。
【0082】
プリミティブがラインストリップ(LINE STRIP)の場合、置換2回目以上、図15(A),(B)に示すように、カレントクリップレジスタ411の内容Bがクリップレジスタ412にシフトインされ、クリップレジスタ411は全ビット0にリセットされる。
プリミティブがライン(LINE)の場合、図15(C)に示すように、置換2回目毎に、クリップレジスタ411〜413は全ビット0にリセットされ、初期化状態に戻る。
【0083】
プリミティブがポイント(POINT) の場合、図16(A),(B)に示すように、カレントクリップレジスタ411は、置換毎に全ビット0にリセットされる。
【0084】
このように構成することにより、クリッピング装置400は、頂点が領域外に出たときに、三角形のどの点が出ているかにより処理を適切に行うことが可能である。
つまり、図17に示す例の場合、頂点▲4▼および▲5▼にて領域外の場合は領域内の部分については描画を行えるようにする処理を、▲6▼においては、▲4▼▲5▼▲6▼とも領域外であるのでまったく描画を行わないといった判断が行うことが可能である。
【0085】
さらに、本実施形態に係るコントローラ414は、上述したように、プリミティブの種類によりプリミティブ要素が揃っているかどうかを示す(頂点準備が完了したことを示す)1ビットの頂点レディフラグVRDYを生成する。
この頂点レディフラグVRDYの生成動作は、置換REPLACE機能と同期しており、同時に判断が可能である。これにより、さらに効率的に処理が可能となる。
【0086】
図18は、本実施形態に係る頂点レディフラグVRDYの設定例を示す図である。
図18の例は、プリミティブレジスタ401にプリミティブ情報がセットされた後、置換命令を8回試行した場合である。
図18中、PSはプリミティブレジスタ401にプリミティブ情報がセットされた後の頂点レディフラグVRDYの内容を示し、Pは置換後の頂点レディフラグVRDYの内容を示している。
【0087】
PSはプリミティブレジスタ401にプリミティブ情報がセットされた後の頂点レディフラグVRDYは、トライアングルストリップ(TRAIANGLE STRIP) 、トライアングル(TRAIANGLE) 、トライアングルファン(TRAIANGLE FAN) 、ラインストリップ(LINE STRIP)、およびライン(LINE)の場合0にリセットされ、ポイント(POINT) の場合のみ1にセットされる。
【0088】
また、たとえばプリミティブがトライアングルストリップ(TRAIANGLE STRIP)の場合、プリミティブレジスタ401へのプリミティブ情報のセットで頂点レディフラグVRDYはリセットされる。そして、置換命令を2回行うと3頂点データが揃うので、この時点で頂点レディフラグVRDYには1がセットされる。
【0089】
また、本実施形態に係るジオメトリ演算器はマイクロコードベースで実現されている。一般にクリッピング判定および処理は、図2に関連付けて説明したように、ワールド座標系でのオブジェクトの移動を含む配置後から、投影処理の間に行われる。
このため、本実施形態に係るクリッピング装置400は、クリップ判定の機能をコードとしてその間に扱うことが可能である。これらの機能はインストラクションセットに用意してあり、上述したようにクリップコードの生成を「CLIPGEN」、新しい頂点処理に伴うクリップコードの置換およびVRDYフラグの更新を「REPLACE」という命令として用いている。
また、本実施形態に係るクリッピング装置400は、上記の命令により、変化するフラグとして、3頂点分のクリップコードCLPCの論理和を表すCLIPフラグCLPFおよび3頂点分のクリップコードが揃ったことを示す頂点レディフラグVRDYを生成する。
これはマイクロプログラム上で分岐命令の判断基準となる。すなわち、マイクロコードベースで行われる一連の処理において、クリッピング装置400で生成されるCLIPフラグCLPFおよび頂点レディフラグVRDYは分岐命令の参照用として使用可能である。
このフラグおよび分岐命令により、頂点数のカウントとプリミティブ別に頂点が揃ったかどうかの判断や、クリップコードを保存するコードや、比較判定して分岐するためのサイクルが節約可能である。
【0090】
下記の数9に、本実施形態に係るクリッピング装置400を駆動するマイクロプログラムを示す。
【0091】
【数9】
【0092】
このマイクロプログラムの概要は、X,Y,Z座標をレジスタr0,r1,r2にセットし、クリップコード生成回路405において、X,Y,Z座標に関する2ビットずつのクリップコードCLPCを生成する。
クリップコード生成命令CLIPGENを受けてコントローラ414のコントロール信号S414に基づいて生成されたクリップコードがクリップレジスタ411にシフトインされる。
クリップレジスタ411の内容は、論理回路413に供給され、1ビットでも1がセットされていた場合、領域外の処理に移行する。一方、1がセットされていない場合には、領域内にあるものとして、所定の描画処理を行う。
コントローラ414に置換命令REPLACEが入力されると、プリミティブレジスタ401にセットされたプリミティブの種類に応じて、クリップレジスタ411〜413の内容の置換処理、すなわちクリップコード置換が行われ、これと並行して頂点レディフラグVRDYが生成される。そして、頂点準備完了で他の処理へ移行する。
【0093】
数9の処理においては、クリップに関連するステップ数は、10である。
【0094】
下記の数10に一般的なクリッピング処理に関するマイクロプログラムを示す。
【0095】
【数10】
【0096】
この結果は、クリップに関するステップ数は、28となる。
【0097】
この結果によると、本実施形態によれば、従来の装置に比べて18サイクルの高速化が可能となる。1プリミティブ当りの処理は100サイクル程度であることから、約20%の高速化に相当する。
【0098】
以上説明したように、本実施形態によれば、三角形プリミティブの頂点座標と多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路405と、クリップコード生成回路405で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタ411と、カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じてクリップコードを置換可能なクリップレジスタ412,413と、クリップコード生成命令を受けると、コントロール信号S414をカレントクリップレジスタに出力してクリップコードをシフトインさせ、置換命令を受けると、カレントクリップレジスタを含む隣接のクリップレジスタ間でプリミティブの種類に応じてクリップコードを置換させるようにコントロール信号S414を対応するクリップレジスタに出力するコントロール回路414と、カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路415とを設けたので、以下の効果を得ることができる。
本実施形態によれば、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れる利点がある。
【0099】
より具体的には、1サイクルにて1軸分のクリッピング判定を行うことができる。
また、クリッピング判定はワールド座標変換からビューポート変換の間に必要なジオメトリ演算器内の1機能として実現でき、元々座標変換に必要であるハードウエアの資源を活用することが可能である。
また、3サイクルにてXYZの3次元分の結果を同一個所にまとめることができ、XYZいずれかが領外域にあった時にフラグとして参照可能である。
また、ポリゴンを構成する三角形プリミティブの3頂点分の結果も同一個所にまとめることができ、3頂点のいずれかが領域外にあった時にフラグとして参照可能である。
さらに、トライアングルメッシュなどのプリミティブの連続描画において、次の頂点処理になった時に常に現在対象となる頂点群の判定を行うことが可能である。
【0100】
【発明の効果】
以上説明したように、本発明によれば、処理サイクル数を削減でき、回路の簡単化を図れ、かつ処理の高速化を図れる利点がある。
【図面の簡単な説明】
【図1】クリッピング処理における領域内外判定を説明するための図である。
【図2】本発明に係る3次元コンピュータグラフィックスにおける頂点座標変換システムの基本構成を示すブロック図である。
【図3】本実施形態に係るクリッピング装置の一実施形態を示す回路図である。
【図4】浮動小数点積和演算器の構成例を示す回路図である。
【図5】本実施形態に係るクリップコード生成回路の判定処理を説明するための図である。
【図6】本実施形態に係るクリップコード生成回路の具体的な構成例を示す回路図である。
【図7】カレントクリップレジスタにクリップコードがシフトインされることを示す図である。
【図8】CLIPGEN X,W、CLIPGEN Y,W、CLIPGEN Z,Wを連続して実行したときのカレントクリップレジスタの6ビットの各値を示す図である。
【図9】クリップクリア命令CLPCLRを実行したときのクリップレジスタの初期化状態を示す図である。
【図10】多面体の描画をトライアングルストリップと呼ばれる連続三角形のプリミティブで行う場合の処理を説明するための図である。
【図11】多面体の描画をトライアングルファンという連続三角形のプリミティブで行う場合の処理を説明するための図である。
【図12】プリミティブがトライアングルストリップ(TRAIANGLE STRIP) 、トライアングル(TRAIANGLE) 、トライアングルファン(TRAIANGLE FAN) の場合の、最初の2回目までの置換処理について説明するための図である。
【図13】プリミティブがトライアングルストリップ(TRAIANGLE STRIP) 、トライアングル(TRAIANGLE) 、トライアングルファン(TRAIANGLE FAN) の場合の、3回目移行の置換処理について説明するための図である。
【図14】プリミティブがラインストリップ(LINE STRIP)、ライン(LINE)の場合の1回目の置換処理を説明するための図である。
【図15】プリミティブがラインストリップ(LINE STRIP)、ライン(LINE)の場合の2回目以降の置換処理を説明するための図である。
【図16】プリミティブがポイント(POINT) の場合の置換処理を説明するための図である。
【図17】頂点が領域外に出たときに、三角形のどの点が出ているかにより処理を適切に行うことが可能であるかを説明するための図である。
【図18】本実施形態に係る頂点レディフラグVRDYの設定例を示す図である。
【符号の説明】
1…頂点座標変換システム、2…オブジェクト座標部(OC)、3…視点座標部(EC)、4…クリップ座標部(CC)、5…ウィンドウ座標部(WC)、400…クリッピング装置、401…プリミティブレジスタ(PROM)、402〜404…入力レジスタ、405…クリップコード生成回路(CLIPGEN)、406〜410…マルチプレクサ(MUX)、411〜413…クリップレジスタ、414…コントローラ(CTL)、415…論理回路(CLP)、416…出力レジスタ、4001〜4003…インバータ、4004〜4011…3入力ANDゲート、4012,4013…4入力ORゲート。
Claims (7)
- 多面体が複数の頂点を含むプリミティブ単位で描画され、所定の座標系で表現されるプリミティブの各頂点が、描画対象の多次元領域内もしくは領域外にあるか否かを判定するクリッピング装置であって、
上記プリミティブの頂点座標と上記多次元領域の判定基準値および当該判定基準値の負の値との比較結果に応じたデータをそれぞれビットデータとしてセットしたクリップコードをプリミティブの頂点分生成するクリップコード生成回路と、
上記クリップコード生成回路で生成されたクリップコードをコントロール信号に応じてシフトインするカレントクリップレジスタと、
上記カレントクリップレジスタの出力に対して縦続接続され、コントロール信号に応じて保持データを前段のレジスタが保持するクリップコードで置換可能な、少なくとも上記プリミティブの頂点数より一つ少ない数のクリップレジスタと、
クリップコード生成命令を受けると、上記コントロール信号をカレントクリップレジスタに出力して、上記クリップコード生成回路で生成されたクリップコードをシフトインさせ、置換命令を受けると、上記カレントクリップレジスタを含む隣接のクリップレジスタ間でクリップコードを置換させるように上記コントロール信号を対応するクリップレジスタに出力するコントロール回路と、
上記カレントクリップレジスタを含むクリップレジスタにセットされた全ビットデータに対して論理演算を行い、判定対象の頂点が描画対象の多次元領域内もしくは領域外にあるか否かを示すクリップフラグを設定する論理回路と、を有し、
上記カレントクリップレジスタの出力に対して2つのクリップレジスタが縦続接続され、
上記コントロール回路は、
上記プリミティブが三角形に関するプリミティブの場合、
2回目の置換命令まではプリミティブの種類によらずに頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力し、3回目以降の置換命令ではプリミティブの種類に応じて頂点処理に伴うクリップコードの置換を行うように上記コントロール信号を対応するクリップレジスタに出力する機能を有し、
上記プリミティブがトライアングルファンの場合、
3回目以降の置換命令では後段の上記クリップレジスタの内容が当該後段のクリップレジスタにシフトインされ、上記カレントクリップレジスタの内容が前段の上記クリップレジスタにシフトインされ、上記カレントクリップレジスタはリセットされるように、上記コントロール信号を対応するクリップレジスタに出力する
クリッピング装置。 - 上記コントロール回路は、
上記プリミティブがトライアングルストリップの場合、
3回目以降の置換命令では前段の上記クリップレジスタの内容が後段のクリップレジスタにシフトインされ、上記カレントクリップレジスタの内容が前段の上記クリップレジスタにシフトインされ、上記カレントクリップレジスタはリセットされるように、上記コントロール信号を対応するクリップレジスタに出力する
請求項1記載のクリッピング装置。 - 上記コントロール回路は、
上記プリミティブがトライアングルの場合、
置換3回目毎に、上記カレントクリックレジスタおよび上記2つのクリップレジスタがリセットされ、初期状態に戻るように、上記コントロール信号を対応するクリップレジスタに出力する
請求項1または2記載のクリッピング装置。 - 上記コントロール回路は、置換命令の実行時には、上記プリミティブの頂点分のクリップコードが揃ったことを示す頂点レディフラグを生成する
請求項1から3のいずれか一に記載のクリッピング装置。 - 上記コントロール回路は、所定の条件で上記カレントクリップレジスタを含む複数のクリップレジスタのうちの所望のレジスタを選択的に初期化する
請求項1記載のクリッピング装置。 - 上記頂点の座標は所定の座標系の複数座標軸に対応した値を含み、
上記クリップコード生成回路は、各座標軸に対応した複数のクリップコードを生成し、
上記クリップレジスタは、少なくとも上記複数のクリップコードを保持する容量を有する
請求項1から5のいずれか一に記載のクリッピング装置。 - 上記クリップコード生成回路には、上記頂点座標の絶対値から上記判定基準値の絶対値を減算した結果の符号データ、上記頂点座標の符号データ、および上記判定基準値の符号データに基づいて上記クリップコードを生成する
請求項1から6のいずれか一に記載のクリッピング装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223377A JP4300001B2 (ja) | 2002-07-31 | 2002-07-31 | クリッピング装置 |
US10/629,112 US7315310B2 (en) | 2002-07-31 | 2003-07-29 | Clipping device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223377A JP4300001B2 (ja) | 2002-07-31 | 2002-07-31 | クリッピング装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004062765A JP2004062765A (ja) | 2004-02-26 |
JP4300001B2 true JP4300001B2 (ja) | 2009-07-22 |
Family
ID=31943141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002223377A Expired - Fee Related JP4300001B2 (ja) | 2002-07-31 | 2002-07-31 | クリッピング装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7315310B2 (ja) |
JP (1) | JP4300001B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3823191B2 (ja) * | 2003-07-31 | 2006-09-20 | 松下電器産業株式会社 | データ出力制御装置 |
US7616218B1 (en) * | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
US7420572B1 (en) | 2005-12-19 | 2008-09-02 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives with accelerated context switching |
US7714877B1 (en) | 2005-12-19 | 2010-05-11 | Nvidia Corporation | Apparatus, system, and method for determining clipping distances |
TWI319166B (en) * | 2006-03-06 | 2010-01-01 | Via Tech Inc | Method and related apparatus for graphic processing |
US7589746B2 (en) * | 2006-03-23 | 2009-09-15 | Intel Corporation | Optimized frustum clipping via cached clip vertices |
US8068120B2 (en) * | 2008-03-07 | 2011-11-29 | Via Technologies, Inc. | Guard band clipping systems and methods |
US8542247B1 (en) | 2009-07-17 | 2013-09-24 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US8564616B1 (en) | 2009-07-17 | 2013-10-22 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US8976195B1 (en) | 2009-10-14 | 2015-03-10 | Nvidia Corporation | Generating clip state for a batch of vertices |
US8384736B1 (en) * | 2009-10-14 | 2013-02-26 | Nvidia Corporation | Generating clip state for a batch of vertices |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5995669A (ja) * | 1982-11-25 | 1984-06-01 | Toshiba Corp | 図形処理装置 |
US5157764A (en) * | 1989-01-13 | 1992-10-20 | Sun Microsystems, Inc. | Apparatus and method for using a test window in a graphics subsystem which incorporates hardware to perform clipping of images |
US5313610A (en) * | 1991-07-03 | 1994-05-17 | Picker International, Inc. | Direct memory access control device for use with a single n-bit bus with MOF the n-bits reserved for control signals and (n-m) bits reserved for data addresses |
US5414524A (en) * | 1992-01-14 | 1995-05-09 | Digital Equipment Corporation | Image rendering clip registers |
US5720019A (en) * | 1995-06-08 | 1998-02-17 | Hewlett-Packard Company | Computer graphics system having high performance primitive clipping preprocessing |
JP3655723B2 (ja) | 1996-02-02 | 2005-06-02 | 株式会社東芝 | 座標変換及びクリッピング判定を行う座標変換処理回路 |
JP3203180B2 (ja) * | 1996-03-27 | 2001-08-27 | 三菱電機株式会社 | 幾何学演算装置 |
JPH09330419A (ja) | 1996-06-07 | 1997-12-22 | Nippon Steel Corp | 図形領域判別装置 |
JPH10293853A (ja) * | 1997-04-21 | 1998-11-04 | Mitsubishi Electric Corp | クリップ処理装置 |
US5877773A (en) * | 1997-05-30 | 1999-03-02 | Hewlett-Packard Company | Multi-pass clipping in a geometry accelerator |
JP3983394B2 (ja) * | 1998-11-09 | 2007-09-26 | 株式会社ルネサステクノロジ | 幾何学処理プロセッサ |
JP3526019B2 (ja) * | 1999-11-30 | 2004-05-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 画像表示システム、画像表示装置、および画像表示方法 |
-
2002
- 2002-07-31 JP JP2002223377A patent/JP4300001B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-29 US US10/629,112 patent/US7315310B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7315310B2 (en) | 2008-01-01 |
JP2004062765A (ja) | 2004-02-26 |
US20040111452A1 (en) | 2004-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8615542B2 (en) | Multi-function floating point arithmetic pipeline | |
US10884734B2 (en) | Generalized acceleration of matrix multiply accumulate operations | |
US5862066A (en) | Methods and apparatus for fast check of floating point zero or negative zero | |
US5973705A (en) | Geometry pipeline implemented on a SIMD machine | |
TWI402766B (zh) | 繪圖處理器 | |
US6115047A (en) | Method and apparatus for implementing efficient floating point Z-buffering | |
US6417858B1 (en) | Processor for geometry transformations and lighting calculations | |
US20220405098A1 (en) | Generalized acceleration of matrix multiply accumulate operations | |
US6377265B1 (en) | Digital differential analyzer | |
JP4300001B2 (ja) | クリッピング装置 | |
GB2187615A (en) | Geometry processor for graphics display system | |
JPH0935075A (ja) | 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム | |
US7143126B2 (en) | Method and apparatus for implementing power of two floating point estimation | |
CN116700663B (zh) | 一种浮点数处理方法及装置 | |
US10282169B2 (en) | Floating-point multiply-add with down-conversion | |
US6778188B2 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
US5892516A (en) | Perspective texture mapping circuit having pixel color interpolation mode and method thereof | |
JP3384470B2 (ja) | 数値変換装置および方法、並びに座標値整数化装置および方法 | |
JPH10293853A (ja) | クリップ処理装置 | |
US20080055307A1 (en) | Graphics rendering pipeline | |
JPH11185052A (ja) | 3次元コンピュータグラフィックスのテクスチャマッピング座標計算装置および方法 | |
US9292285B2 (en) | Interpolation implementation | |
EP0485833A2 (en) | A method for executing graphics color saturating arithmetic instructions in a data processor | |
JPH11328438A (ja) | 高効率浮動小数点zバッファリングの方法および装置 | |
CN118823278A (zh) | 剪裁单元、方法、图形处理器、设备、介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070112 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070419 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070515 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090205 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090420 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |