JP4107517B2 - Xyマップメモリを用いた部分的ポリゴン描画方法 - Google Patents
Xyマップメモリを用いた部分的ポリゴン描画方法 Download PDFInfo
- Publication number
- JP4107517B2 JP4107517B2 JP16010597A JP16010597A JP4107517B2 JP 4107517 B2 JP4107517 B2 JP 4107517B2 JP 16010597 A JP16010597 A JP 16010597A JP 16010597 A JP16010597 A JP 16010597A JP 4107517 B2 JP4107517 B2 JP 4107517B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- pixel
- memory segment
- color data
- requested
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Memory System (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、広義には、コンピュータグラフィックスに関し、より具体的には、グラフィックオブジェクトのメモリマッピングが最適化された、多次元グラフィックスシステムのための信号処理方法に関する。
【0002】
【従来の技術】
ますます高速の情報処理および読み出し装置が利用可能になるにつれ、コンピュータグラフィックスの利用および適用は、あらゆる種類のシステム環境に対してどんどん増加している。これらの装置の動作速度は、いまなお高優先の設計課題である。このことは、グラフィックスシステム(なかでも3Dグラフィックスシステム)において特に当てはまる。このようなグラフィックスシステムは、膨大な量のデータのための多大な処理を必要とし、新製品や新規システムの開発、あるいは新用途に用いられるグラフィックスシステムの設計において、データフロースピードが決定的に重要となる。
【0003】
コンピュータグラフィックスの分野において、ポリゴンをピクセルグリッド上に描く方法は、数多く存在する。GUI(Graphical User Interfaces)、CAD(Computer Aided Design)、および3Dコンピュータアニメーション等の多くの用途において、描画プリミティブとしてポリゴンが用いられている。ほとんどのポリゴン描画技術においては、ポリゴンを、ポリゴンの稜線(edges)とピクセルグリッドとに位置合わせする一連の走査ラインに分解する。これらの方法をハードウェアで実現する場合、ピクセルグリッドは一般にシーケンシャルにアクセスされる。つまり、XYピクセルにアクセスする度に、そのXYアドレスに基づいてピクセルグリッドが更新される。1回のピクセル更新を行うためのセットアップ時間が長いピクセルグリッドの場合、この方法は、システム全体の時間的なボトルネックになり得る。
【0004】
あらゆるデータおよび情報処理システム(特に、コンピュータグラフィックスシステム)において多くの時間が費やされるのは、メモリ上のある位置(格納位置)のデータブロックにアクセスしてその情報を処理し、処理した情報を、その後、アクセス、処理および/または表示するために別の格納位置に送信する作業である。新しいプロセッサの速度が高まり続けるにつれ、メモリ内のデータにアクセスしてメモリからデータを取出すのにかかるアクセス時間が、システム速度の観点からますます重大なボトルネックになってきている。
【0005】
近年のソフトウェアアプリケーションに要求される多量のグラフィックデータを処理するためには、グラフィックスシステムは、より洗練された機能をより短い時間内で行えなければならない。フルカラー、シェーディング、テクスチャマッピング、および透過ブレンド(transparency blending) を用いて3次元オブジェクトを描くソフトウェアの方法およびハードウェアの実現については、いまなお改善の必要性がある。ラスタディスプレイシステムの開発によって、グラフィックシステムの総コストは劇的に低減され、その性能も劇的に向上した。ラスタディスプレイシステムにおいては、それぞれピクセル列からなる水平および垂直走査ラインの組が、ピクセルアレイ(ピクセルグリッド)を形成してスクリーン領域全体を表す。スクリーンは、比較的高速にピクセルグリッド全体を走査してフリッカを可能な限り減少させることができる陰極線管(CRT)あるいは液晶ディスプレイ(LCD)等であることが好ましい。
【0006】
ピクセルデータは、好ましくは、ダイナミックランダムアクセスメモリ(DRAM)を含むフレームバッファに格納される。各ピクセルは、所望の解像度、色、明るさ、および他の変数によって異なる1ビット以上のビットによって表される。典型的なディスプレイシステムの場合、使用されるソフトウェアドライバおよびハードウェアに応じて、複数の色を用いて、(これらに限定されるものではないが)640×480、800×600、1024×768、1280×1024、あるいは他の組み合わせ等の様々なスクリーン解像度で、スクリーンへの描画を行うことができる。ビデオコントローラは、フレームバッファ内のピクセルデータを走査して、これを、スクリーンシステムがスクリーン上に情報を表示するために必要な制御信号へと変換する。ビデオコントローラは、各ピクセルを、上から下、左から右にシーケンシャルに走査し、ピクセルデータをスクリーン上の対応ピクセルの強度を表す値に変換する。CRTを用いたカラーグラフィックスシステムの場合、3本の別々のビーム(即ち、各原色毎に1本)が制御される。各色に対応するピクセル値によって、各ビームの強度が決まる。LCD装置にも、これと同様のシステムが用いられる。各ピクセル値は、例えば、24ビット(即ち、赤、緑および青の各原色毎に1バイト(8ビット))で構成され得る。このバイト値によって、各表示色の強度が決まる。
【0007】
メモリ内のピクセルグリッドは、線形アクセスメモリ内の2次元空間を表す。線形アクセスメモリは、各メモリ位置(即ち、1次元空間)毎に、増加するアドレスを有する。「Y」パラメータにピッチ値を設けることによって(即ち、「Y」の1増分に対して複数のピクセルグリッド位置が「X」に存在する)、1次元アドレッシングで2次元空間を表すことが可能になる。これにより、2次元的なXYピクセルグリッドへのアクセスから、線形アドレスを算出できる。ピクセルグリッドに描画を行うほとんど全ての方法においては、上記の方法を用いてピクセルグリッドへのアクセスが行われる。メモリ内の最新の2次元ピクセルグリッドに基づいてポリゴンが描かれている時に、XYマッピングが固定される。この時点以降は、そうでないことが示されない限り、ピクセルグリッドは、線形アクセスメモリ内のピクセルグリッドの固定2次元表記であると仮定される。
【0008】
ポリゴンは、描かれるポリゴンの交差部分に対応する、ピクセルグリッド上の点の組として表現される。ほとんどのラインまたはポリゴンは、最終的にピクセルグリッドによって近似可能な連続関数で定義される。コンピュータグラフィックスにおけるポリゴンは、一般に、ポリゴンの定義を頂点という境界条件に分解することによって描画される。頂点は、ポリゴンの端点(end points)をピクセルグリッドへと近似したものである。これらの頂点は、つぎに、X方向への各Y走査の組へと分解される。各Y走査は、ポリゴン内に含まれるX方向上の各ピクセルに対してなされる。
【0009】
コンピュータグラフィックスアプリケーションに限って言えば、画像を表すデータは、ピクセル式(pixel-oriented)フレームバッファに格納される。ビデオバッファの基準フレームは、ピクセル値と、表示画像を規定するピクセル特性に関する情報とを格納する、格納位置マトリクスに対するゼロ点(zero point)である。このゼロ点格納位置は、格納されたピクセルを含む画像を表示するディスプレイスクリーン上のゼロ点ピクセル位置に対応する。バッファ内のデータストリングあるいはデータ列は、ディスプレイスクリーン上のピクセル列に対応する。ディスプレイスクリーン上で画像がリフレッシュされる際、ビデオメモリに格納されたデータラインをそれぞれメモリからシーケンシャルに読出し、これをディスプレイ装置に転送して、対応するピクセルのシーケンシャルなラインをディスプレイ上に埋めていく。このようなアクセスおよび転送の度に、これに付随して遅延時間が生じる。この遅延時間は、これまで比較的調節が困難であった。なぜなら、格納プロセスが走査プロセスに対して固有の依存性を有する(即ち、走査ライン内の画像定義データ第1ビットの格納位置に関わらず、各ラインは、各ディスプレイ走査ライン内の最も左側のピクセルから格納されていく)からである。この関係のために、1回のスクリーン表示に必要な固定回数のスクリーン走査は、必然的に、それに相当する固定回数のアクセスおよびそれに付随する遅延を伴っていた。
【0010】
現在用いられている方法によれば、各走査ラインのピクセルグリッド上への描画は、ピクセルグリッドへの一連のXYアクセスとして行われる。ピクセルが1つ形成される度に、そのピクセルは、シーケンシャルにピクセルグリッドに書き出される。ポリゴンをピクセルグリッドに描画する上記方法を用いれば、ピクセルグリッドへのアクセス回数は、ピクセルグリッド上へのポリゴンの表示図形に含まれるピクセル数と同じである。ピクセルグリッドへのシーケンシャルアクセスを行うためのアクセス時間が比較的長いメモリサブシステムの場合、ピクセルあたりのアクセス時間によって、ある時間間隔内に描画されるポリゴンの数が制約され得る。多くのメモリサブシステムにおいては、アクセス時間は長いが、最初のアクセスが行われた後にバースト的に後続アクセスを行えることによってこれを補償している。
【0011】
【発明が解決しようとする課題】
従って、一回のアクセスで描画されるピクセル数を増やすことによって、必要なアクセス動作の総数およびその所要時間を低減してシステムを高速化する、新しい方法が必要とされている。また、処理データ数および情報転送効率を最大化できる(すなわち、1回の走査でアクセスされる有用なデータの割合を最大化できる)改良された方法および装置が必要とされている。
【0012】
本発明の目的は、メモリへのアクセス動作の総数およびその所要時間を低減してシステムを高速化し、また、処理データ数および情報転送効率を最大化する、新しい方法および装置を提供することである。
【0013】
【課題を解決するための手段】
本発明の方法は、ディスプレイ装置上に表示可能なオブジェクトを表す情報を処理する方法であって、オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定するステップであって、第1のメモリセグメント構成はオブジェクトの形状特性に依存する、ステップと、第1のメモリセグメント構成を、対応するメモリに書き込むステップと、対応するメモリの該第1のメモリセグメントに情報を格納するステップと、を包含する方法であり、そのことにより上記目的が達成される。
【0014】
ある実施形態では、第1のメモリセグメントにオブジェクトがまだ完全には格納されていない場合に、上記決定するステップに戻るステップを上記格納するステップの後にさらに包含し、さらに、オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を決定し、オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に継続される。
【0015】
ある実施形態では、オブジェクトが全て格納された後、格納するべきオブジェクトが2つ以上あるかどうかを判定するステップと、格納するべきオブジェクトが2つ以上ある場合には上記決定するステップに戻るステップと、をさらに行うことが可能である。
【0016】
ある実施形態では、上記書き込むステップは、Zフェッチが要求されているかどうかを判定するステップと、Zフェッチが要求されている場合に、対応するZ値をメモリからフェッチするステップと、Z値情報を含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0017】
ある実施形態では、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをメモリからフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0018】
ある実施形態では、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0019】
本発明による記憶媒体は、機械可読符号を有する記憶媒体であって、記憶媒体は読取り装置に選択的に接続され、読取り装置は処理回路部に接続され、読取り装置は、機械可読符号を読取って符号を表すプログラム信号を選択的に提供することができ、プログラム信号は、オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定するステップであって、第1のメモリセグメント構成はオブジェクトの形状特性に依存する、ステップと、第1のメモリセグメント構成を、対応するメモリに書き込むステップと、対応するメモリの第1のメモリセグメントに情報を格納するステップと、を包含する処理方法を実行することによって、処理回路部が、ディスプレイ装置上に描画可能なオブジェクトを表す情報を格納することを可能にし、そのことにより上記目的が達成される。
【0020】
ある実施形態では、上記処理方法は、第1のメモリセグメントにオブジェクトがまだ完全には格納されていない場合に上記決定するステップに戻るステップを、上記格納するステップの後にさらに包含し、さらに、オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を決定し、オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に継続される。
【0021】
ある実施形態では、上記処理方法は、オブジェクトが全て格納された後、格納するべきオブジェクトが2つ以上あるかどうかを判定するステップと、格納するべきオブジェクトが2つ以上ある場合には上記決定ステップに戻るステップと、をさらに行うことが可能である。
【0022】
ある実施形態では、上記書き込むステップは、Zフェッチが要求されているかどうかを判定するステップと、Zフェッチが要求されている場合に、対応するZ値をメモリからフェッチするステップと、Z値情報を含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0023】
ある実施形態では、上記処理方法は、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをメモリからフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0024】
ある実施形態では、上記処理方法は、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0025】
本発明によるグラフィックスステーションは、メインバスと、ディスプレイ装置と、グラフィックスサブシステムとを備えたコンピュータシステムを含む、コンピュータを利用したグラフィックスステーションであって、グラフィックスサブシステムは、メインバスとディスプレイ装置とに接続されるグラフィックス処理装置を備え、グラフィックスサブシステムは、グラフィックス処理装置に接続されるグラフィックスメモリをさらに含み、グラフィックスサブシステムは、オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定するステップであって、第1のメモリセグメント構成はオブジェクトの形状特性に依存する、ステップと、第1のメモリセグメント構成を、対応するメモリに書き込むステップと、対応するメモリの第1のメモリセグメントに情報を格納するステップと、を包含する処理方法を実行することによって、ディスプレイ装置上に描画するべきオブジェクトを表す情報を格納および処理することが選択的に可能である、グラフィックスステーションであり、そのことにより上記目的が達成される。
【0026】
ある実施形態では、上記処理方法は、第1のメモリセグメントにオブジェクトがまだ完全には格納されていない場合に上記決定するステップに戻るステップを、上記格納するステップの後にさらに包含し、さらに、オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を決定し、オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に継続される。
【0027】
ある実施形態では、上記処理方法は、オブジェクトが全て格納された後、格納するべきオブジェクトが2つ以上あるかどうかを判定するステップと、格納するべきオブジェクトが2つ以上ある場合には上記決定ステップに戻るステップと、をさらに行うことが可能である。
【0028】
ある実施形態では、上記書き込むステップは、Zフェッチが要求されているかどうかを判定するステップと、Zフェッチが要求されている場合に、対応するZ値をメモリからフェッチするステップと、Z値情報を含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0029】
ある実施形態では、上記処理方法は、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをメモリからフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0030】
ある実施形態では、上記処理方法は、色データフェッチが要求されているかどうかを判定するステップと、色データフェッチが要求されている場合に、対応する色データをフェッチするステップと、色データを含むオブジェクトをメモリに書き込むステップと、をさらに包含する。
【0031】
以下に作用を説明する。高速メモリを複数のメモリセグメントに最適に分割する方法およびシステムが提供される。各セグメントは、ディスプレイ装置上に描画可能なグラフィックスオブジェクトの形状に関連付けられる。この方法は反復的に行われ、さらなる処理のためにオブジェクト全体がセグメント化されるまで、オブジェクト参照最小メモリセグメントの決定を継続的に行う。その後、複数のオブジェクトが存在する場合、フレーム内の全てのオブジェクトに対して処理が継続される。処理が反復される度に、セグメント化オブジェクトに応じた奥行きデータ(depth data)および色データのメモリへの書き込みおよび格納が行われる。
【0032】
【発明の実施の形態】
添付の図面を参照しながら、好適な実施形態についての以下の詳細な説明を考慮することにより、本発明がより良く理解される。
【0033】
本願に開示される実施形態によれば、高速シーケンシャルアクセスのメモリを用いて、ポリゴンのある部分が描画される。どのピクセルを高速シーケンシャルアクセスメモリからピクセルグリッドに書き込むかを決定するために、ピクセル書き込みマスクを用いる。これにより、ピクセルグリッドメモリを2次元的にバースト的にアクセスすることが可能になる。開示される方法を用いて、処理中のポリゴンのどの部分を高速シーケンシャルアクセスメモリ(またはスクラッチパッドメモリ)に書き込んで適合させるべきかを決定する。そうして、スクラッチパッドメモリは、書き込むべきピクセルで満たされる。ポリゴンの描画中、スクラッチパッドメモリは、ピクセルグリッドのように固定的なXYマッピングを有さず、描画するべきポリゴンの部分的なブロックに基づいて変化する。これにより、そのポリゴンについて、幅および高さが異なるブロックを書き込むことが可能になる。このポリゴン描画方法は走査ライン法であるが、スクラッチパッドメモリに適合可能なブロックサイズに応じてY方向寸法が1つ以上の増分に分割される。各ピクセルはピクセルグリッドに書き込まれるかのようにスクラッチパッドメモリに書き込まれ、スクラッチパッドに書き込まれるピクセルを、ピクセル書き込みマスクを用いて記録する。あるブロックがY方向について埋め尽くされる(即ち、限界に達する)と、そのブロックはピクセルグリッドに転送される。ピクセル書き込みマスクを用いて、どのピクセルを書き込むかを決定する。これにより、そのピクセルグリッドを有するメモリサブシステムはバーストモードに維持され、メモリバンド幅が最適化される。
【0034】
本願で開示される実施例の場合、スクラッチパッドメモリとして、128バイトのSRAMがチップ上に設けられ得る。ピクセルグリッドはXYマップであり、フレームバッファ内に配置され得る。スクラッチパッドメモリには、4つの「2」のべき乗のピッチ、すなわち、X×Y=「1×128」、「2×64」、「4×32」および「8×16」がある。ピクセルグリッドマッピングは、メモリ制御装置のメモリマッピングモードに依存する。1ビットのピクセル書き込みマスクを用いて、書き込むべきピクセルを決定する。スクラッチパッドメモリは、ピクセルフォーマット毎のバイト数に基づいて再構成することができる。
【0035】
図1を参照して説明する。典型的なコンピュータシステムあるいはワークステーション101において、上記の様々な方法を用いることができる。本発明に使用可能なワークステーションの典型的なハードウェア構成は、図に示すような、従来型マイクロプロセッサ等の中央処理装置(CPU)103、および、システムバス105を介して相互接続される多くのその他の装置を含む。バス105は、他のワークステーションあるいはネットワーク等にさらに接続する拡張部分121を含み得る。図1に示すワークステーションは、システムランダムアクセスメモリ(RAM)109およびシステムリードオンリーメモリ(ROM)107を含む。システムバス105は、典型的には、ユーザインターフェースアダプタ115を介してキーボード装置111およびマウス(あるいは他のポインティングデバイス)113にも接続される。ユーザインターフェースアダプタ115を介して、タッチスクリーン装置(図示せず)等の他のユーザインターフェース装置もシステムバス105に接続され得る。また、図示されるように、グラフィックス装置117は、システムバス105と、モニタすなわちディスプレイ装置119との間に接続される。本発明が実施されるワークステーションあるいはコンピュータシステム101は、その多くの部分が当該分野において公知であり、これを構成する電子部品および回路もまた、当業者には公知である。したがって、本発明に通底する概念の理解および正確な把握のため、あるいは、本発明の教示内容のあいまいな理解および逸脱を防ぐために、図1に示さない回路の詳細について、上述のような、必要と思われる範囲以上に説明をつけることはしない。
【0036】
図2において、システムバス105は、グラフィックス装置あるいはサブシステム117に接続されている。グラフィックス装置117は、例えば、グラフィックスプロセッサ201を含み得る。グラフィックスプロセッサ201は、ローカルフレームバッファ装置203からの情報あるいはデータの処理、送信および受信を行うように構成されている。フレームバッファ装置203はフレーム表示情報を有する。このフレーム表示情報は、ディスプレイ装置119に接続されるグラフィックスプロセッサ201によってアクセスされる。ディスプレイ装置119は、フレームバッファ203に格納された情報をグラフィックスプロセッサ201によって処理したグラフィックス表示を提供し得る。本実施例で示されるグラフィックスプロセッサ201はシステムCPU 103とは別に設けられている。しかし、本発明は、グラフィックスプロセッサを別途設ける場合に限定されるものではなく、本明細書中に教示される方法を、単一システムCPUあるいは他のより大きなシステムチップ(集積回路)において、またはその一部として実施するシステムをも含むものである。
【0037】
図3に示されるように、本願に開示される方法は、ステップ301のポリゴン描画コマンドによって開始される。ポリゴン描画コマンドは、描画するポリゴンのさまざまなスロープや頂点や点などの、描画するポリゴンに関するある特定の情報を参照する。次に、プロセスはステップ303に進み、XY高速メモリセグメントサイズが決定される。このプロセスについては、後に、図4〜図8を参照しながらより詳細に説明する。ここでは、以下のようにだけ触れておく。セグメントサイズを決定するステップによって高速メモリの利用効率が最適化され、これにより、高速シーケンシャルアクセスを用いてポリゴンのある部分を描画し、ピクセル書き込みマスクを用いてどのピクセルを高速シーケンシャルアクセスメモリからピクセルグリッドあるいはフレームバッファに書き込んで、ディスプレイ装置のスクリーン上に表示するかを決定する。
【0038】
ステップ303のセグメントサイズの決定に引き続いて、ステップ305において、たとえばSRAM等の高速シーケンシャルメモリにセグメントを書き込む。本実施例においては、SRAMは、グラフィックスチップ内に組み込まれているが、システムあるいは他のチップ外のSRAMを用いてもよいことが理解される。本願の開示において、用語「SRAM」、「高速メモリ」および「高速シーケンシャルアクセスメモリ」は、いずれも、本実施例のグラフィックスサブシステムプロセッサ201に含まれる、いわゆる「スクラッチパッドメモリ」の意味で用いられており、これらは置き換えても同意である。ステップ305においてセグメントをスクラッチパッドメモリに書き込んだ後、ステップ307において、図10を参照して以下に詳述するようにセグメントを格納する。セグメント格納ステップ307に続き、ステップ309において、ポリゴン描画コマンドに対するポリゴンの描画が完了したかどうかを判定する。最後のセグメントを格納した後、セグメント化されていない部分がポリゴンにまだ残っている場合、プロセスは、セグメント化サイズ決定ステップの先頭303に戻り、次に描くポリゴンのセグメント片を決定する。この反復的なプロセスは、描画するべきポリゴン全体がセグメント化されて、ステップ309においてポリゴン完了判定が真の結果を返すまで継続される。この時、ディスプレイ装置119上に表示される特定の画像フレームに描画するべきポリゴンがもう他にないかどうかの判定が行われる。描画するべきポリゴンがまだ他にも存在する場合、プロセスは初めのステップに戻り、ポリゴン描画ステップ301において、次のポリゴンの描画を行う。特定のフレーム画像の全てのポリゴンがステップ305において描画され、また、ステップ307において格納され、かつ、ステップ311において、もうそれ以上描画するべきポリゴンがないと判定された場合、ステップ313において、部分的オブジェクトメモリマッピングプロセスは終了する。
【0039】
図4に、セグメントサイズ決定(あるいは、オブジェクトセグメント化)ステップ303をより詳細に示す。図4のセグメント化プロセスをより完全に理解するために、図5〜図8も参照しながら説明を行う。図5は、スクリーン走査プロセスを示す。本実施例の場合、スクリーン走査プロセスにおいて、1本あるいは複数の電子ビームを用いて、CRTスクリーン503の一端501から他端502に向かって、走査ライン504に沿って走査を行う。図5には、表示中のポリゴン500(本実施例では、三角形)が示されている。便宜上、交点ピクセル507および509は、ラスタ走査ストローク505とポリゴンあるいは三角形500との交点として、拡大して図示されている。三角形500は、メイン基点(main base point)516、「最高(top)」点514および頂点512を有する。三角形500の「第1の対向スロープ」すなわち辺508上にある点507と、三角形500の「メインスロープ」510上にある点509とにおいて、ラスタ走査505が三角形500と交差している。三角形500の他方のスロープを「第2の対向スロープ」511と呼ぶ。一般にグラフィックスの用語では、例えば三角形のプリミティブエレメントを参照する場合、「メインスロープ」は、オブジェクト(例えば、三角形500)の垂直寸法全体にわたって延び、最長の垂直成分を有する辺として定義される。メインスロープの底(bottom)あるいは基部にある点516は、「基点(base point)」と呼ばれる。「対向」スロープは、「メインスロープ」に対向する辺であり、本明細書中では、ディスプレイの上から下に向かって、順に、「第1の対向スロープ」508および「第2の対向スロープ」511と呼ぶ。一般に、フレームバッファメモリは、任意の瞬間に表示されている各画像フレームのピクセル情報を全て含んでいる。この情報は、例えば、書き込まれた(filled-in)あるいはソリッドなドットピクセルの全て、および、ブランクピクセル(blank pixel)の全てを含んでいる。フレーム表示情報を処理する場合、特に、そのような処理が多いグラフィックスシステムにおいては、図5に示されるフレーム情報格納方法は、処理を行うには非効率かつかさ高くなると考えられる。本明細書中に記載されるセグメント化プロセスは、オブジェクト情報格納プロセスを有効に高効率化し、このような情報のアクセスおよび処理を大幅に高速化するものと考えられる。
【0040】
図6に、128ビットSRAMのための数個の異なるレイアウトあるいは参照オリエンテーション(reference orientation)を示す。以下の記載において、ピクセル被覆パターンは、メモリ位置および対応メモリ構成に相当する様々な形状に構成される。また、説明の便宜上、最小メモリ単位の意味で用語「ビット」を、および、最小画素単位の意味で用語「ピクセル」を用いる。第1のオリエンテーション601において、メモリは、高さ1ビット(すなわちメモリ単位)×長さ128ビットで構成されており、高さ1ピクセル×長さ128ピクセルのピクセル領域に相当する。別のオリエンテーション603は、高さ2ビット×長さ64ビットで構成されている。その他のオリエンテーション605、607および609は、それぞれ、高さ4ビット×長さ32ビット、高さ32ビット×長さ4ビット、高さ128ビット×長さ1ビットの構成を示す。128ビットメモリのレイアウトあるいはオリエンテーションに応じて、表示されるオブジェクトの様々な領域を「被覆」できることが理解される。図7に示されるように、ポリゴン701が表示スクリーン703上にある。表示スクリーン703は、スクリーン上のピクセルを構成する情報ビットを有する。通常、ディスプレイシステムのフレームバッファは、上記のように、表示スクリーン上の相対ピクセル位置と、対応するピクセルの内容または実体を含む(あるいは構成する)ビットのメモリ内の位置とが対応するように構成される。図7に示されるように、ポリゴン701に関する情報を有するメモリセグメントは、ポリゴン自体の様々な点を基準となし得、これにより、関連するポリゴンの情報は、よりコンパクトなメモリ領域(あるいはメモリサイズ)内に格納され、より効率的な情報格納システムを提供することができる。第1のメモリセグメント705の構成における長さを、その高さと同程度にすることも可能である。なぜなら、この位置では、ポリゴンはそれ程高くないからである。第1のメモリセグメント705として示された構成を有するメモリセグメントが、格納されたポリゴン情報ビットで埋め尽くされると、判定が行われて、そのポリゴンについての情報がまだ全ては格納されておらず、それ以外のビットを格納するために別のメモリセグメントを構成する必要があると判定される。ポリゴン701の次のセグメントは、第1のセグメントよりも高さが高いので、このポリゴンの全情報を可能な限りコンパクトなスペースに最適に格納するために、第2のメモリセグメント707は、高さ寸法をより長く、長さ寸法をより短くして構成される。その次のメモリセグメント709も同様に、ディスプレイ703上に描画されるポリゴンのデータ格納効率が最大になるように最適に構成される。この技術により、ポリゴンの描画を、高速アクセスSRAMメモリ等から、最小限のアクセス回数で行うことが可能になる。
【0041】
オブジェクト参照格納方法を用いてフレームバッファ内の情報がよりコンパクトに格納され得る、再構成あるいはSRAM「整形」プロセスを、図8により詳細に示す。図8において、縦座標「Y」は、図示されるように下方向に向かって増加する。図示されているポリゴンの形状は三角形であり、三角形の頂点にあるTOP点801と、メインスロープ802の下端にあるBOTTOM点803と、第1および第2の対向スロープ806および808を連結するMID点(あるいは頂点)805とを有する。
【0042】
図4および図8をさらに詳細に参照する。ポリゴン描画コマンド301が出されて高速メモリあるいはSRAMのセグメントサイズ決定方法303が開始されると、ステップ401において、描画するべきポリゴンの初めの「1」ビットが検索される。図8を参照して、本実施例における初めの「1」ビットは、ポリゴン800のTOP点801である。ポリゴン描画コマンドは、描画するべきオブジェクトあるいはポリゴンのスロープおよび頂点(あるいは点)に関する情報を含んでいることに留意されたい。従って、TOP点801の位置は、ポリゴン描画コマンド生成時の処理によって分かる。次に、ステップ403において、初めの「1」ビットの位置を、後から参照できるように、セグメント始点としてマークあるいは格納しておく。この点は、高速SRAMメモリユニットの、オブジェクトに基づく構成における開始点に相当する。この基準点を用いて、ポリゴンの次のセグメントを最も効率的に格納し得るSRAM構成を決定する。次に、例えば、本実施例において128ビットメモリユニットをベースとして用いる場合、図8に示されるように、開始点801からの相対的な移動によって、このプロセス内で128ビットを使いきるまで、ポリゴン800上に点を描く。「Y」方向の1増分移動は、1「カウント」と呼ばれ、ある水平ラインから次の水平ラインへの移動には所定数のビットが必要であることに留意されたい。垂直方向の移動に加えて、第1の垂線の足807からメインスロープ802の点809までの移動および第1の垂線の足807から第1の対向スロープ806の点811までの移動に必要な数のビットが加わる。より具体的には、「次の“1”ビット(即ち、ポリゴン800内の書き込まれたピクセル)までポリゴンを移動する」ステップ405が開始される。本実施例の場合、1カウントずつの増分で「Y」方向を「調べ」て、左右それぞれの方向の次の「1」ビットを探す。各「1」ビットが位置決めされる度に、直前のセグメントの「開始」点801に対する基準点としてそのビットをマークする。
【0043】
次に、ステップ407において、開始「1」ビット801から新たに位置決めされた次の「1」ビット点への移動量に相当するデータサイズが、セグメントサイズ(本実施例の場合、128ビット)よりも大きいかどうかを判定する。上記のデータサイズが128ビットより大きい場合、セグメントサイズを、開始「1」ビットからの128ビットと決め、その後、ステップ411において、セグメント形状を決める。ステップ407において開始ビットからの移動量(traversal)に相当するデータサイズがセグメントサイズ以下であると判定され、且つ、ステップ409において、新たに位置決めされた点がポリゴンの底であると判定された場合も同様に、ステップ411において、セグメントの形状を決定する。「セグメントサイズ」判定407および「底」判定409がいずれも偽の結果を返した場合、プロセスは「次の“1”ビットまでポリゴンを移動」するステップ405に戻り、描画するべきポリゴンの次の「1」ビットを検索する。その「1」ビット点がそのポリゴンのBOTTOM点である場合、プロセスはセグメント形状決定ステップ411に進んだ後、図3を参照しながら先に説明したセグメント書き込みステップ305に戻る。
【0044】
「ポリゴンの次の“1”ビットまで移動」するステップ405においては、ある交差「1」ビット点811あるいは809から次の「1」ビット点819あるいは815まで、それぞれシーケンシャルな検索パターンでポリゴン800の次の「1」ビットを検索する。この時、ステップ407において、最後の開始点からの累積ビット数が128ビットのSRAMセグメントサイズ未満であるかどうかの確認が各点毎に行われる。その時点でのメモリセグメントサイズが、128ビットのベースセグメントサイズを上回る各点において、セグメント構成の形状が決定され得る。セグメントの幅は、カウント数(即ち、開始点から、128ビットのSRAMメモリユニット(またはベース容量)の合計を越えた点までの間に引かれた垂線の数)によって決まる。この期間における累積水平増分移動量を加算すれば、構成の長さを決定することも可能である。このようにして、ポリゴンは、そのポリゴンの初めの「1」ビットに依存しかつこれを参照するパターンに格納され、SRAMセグメントサイズは、最大ポリゴン「被覆」あるいはビット格納効率によって変わる様々な形状あるいは比率に整形され、構成される。この反復的なSRAM構成プロセスは、ポリゴン800のBOTTOM点803に到達するまで続けられ、BOTTOM点803に到達すると、方法は、図3に示されるセグメント書き込みステップ305に戻る。その後、図3に示される方法によって、描画するべき全てのポリゴンが、高速アクセススクラッチパッドSRAM内に、新たに決定されたコンパクトな形態で完全に格納され、且つ、本発明の方法によってポリゴンオブジェクト自身を参照するまで、SRAM整形プロセスが継続される。
【0045】
図9を参照しながら、図3のセグメント書き込みステップ305をさらに詳細に説明する。ステップ303におけるメモリセグメント形状の決定に引き続いて、ステップ901において、Zフェッチが要求されているかどうかの判定を行う。ステップ901において、Zフェッチが要求されている場合、グラフィックスコントローラのZバッファからZ値をフェッチして、そのZ値を、処理中の特定の「1」ビット点に「貼り付ける」(あるいは、その点を基準にする)。同様に、ステップ903において、色フェッチ(あるいはCフェッチ)が要求されている場合(即ち、処理中の点に何らかの色が関連付けられる場合)、ステップ907において色をフェッチし、その後、組み立てられたファイルをSRAMあるいはスクラッチパッドメモリ内に書き込む(即ち、方法はSRAMへの書き込みステップ911に進む)。
【0046】
図11を参照しながら、SRAMへの書き込みステップ911をさらに詳細に説明する。ZフェッチおよびCフェッチ(ステップ901および903)の後、ステップ1101において、色ソースが必要であるかどうかの判定を行う。色ソースが(例えば、透過効果(transparency effects)あるいは色ソース比較機能のために)必要である場合、ステップ1105において、カラーSRAM内にブロックをフェッチする。次に、ステップ1103において、Z奥行きソースが必要であるかどうかの判定を行う。Z奥行きソースが必要である場合、ステップ1107において、ZバッファSRAM内にブロックをフェッチする。その後、プロセスは、色をZバッファに書き込んで比較するステップ1109へと継続する。図12に、色をZバッファに書き込んで比較するステップ1109をより詳細に示す。
【0047】
図12において、初めに、ステップ1201において、Z比較が必要であるかどうかの判定を行う。Z比較が要求されている場合、ステップ1203において、分析中の点に対するZSRAM位置を読み出して比較を行う。この比較結果が真であった場合、ステップ1205において、新たな値をSRAMに書き込む。比較結果が偽であった場合、前のZ値を書き込む。その後、ステップ1207において、そのブロックについての処理が完了したかどうかを判定する。そのブロックについての処理が完了していなかった場合、プロセスはステップ1201に戻る。そのブロックについての処理が完了していた場合、プロセスは、セグメント格納ステップ307へと続行する。
【0048】
図10に示されるように、セグメント格納機能307では、処理中の「1」ビット点の色の格納(色格納ステップ1001)、およびZ値あるいは奥行き値の格納(Z格納ステップ1003)が行われる。その後、プロセスは、図3のポリゴン完了ステップ309に進み、描画を行っている特定のポリゴンについての処理が完了したかどうかを判定する。例えば、もし仮に、直前に分析あるいは処理を行った「1」ビット点が図8における点815であるとすると、描画を行っているポリゴン800は完全にはセグメント化されていない(即ち、処理が完了していない)ので、ポリゴン完了判定309が返す判定結果は偽となり、プロセスは図4のセグメント開始「1」ビット検索ステップ401に戻って、次の「1」ビットを検索する。描画を行っている特定のポリゴンの処理が、ポリゴンのBOTTOM点まで完了している場合には、ステップ311において、処理中の特定のフレームについて、まだ他にも描画するべきポリゴンがあるかどうかの判定を行う。描画するべきポリゴンがそれ以上ないと判定された場合、終了ステップ313でプロセスが終了する。まだ他にも描画するべきポリゴンがある場合(即ち、まだ他にもポリゴン描画コマンドがある場合)、プロセスはポリゴン描画ステップ301に戻り、次のポリゴンに対して上記同様のプロセスを行う。上記処理は、特定のフレームの全ポリゴンが開示される方法に従ってSRAMに再描画されるまで反復的に行われる。開示された方法を用いれば、フレームポリゴンデータの再構成(あるいは再組立)および格納がコンパクト且つ効率的に行われるため、グラフィックスおよび三次元アプリケーションに特に適した、大幅に高速化された処理が可能になる。
【0049】
本発明の方法および装置を、本明細書中に開示した好適な実施形態に関連して説明した。本明細書中には、本発明の1つの実施形態を詳細に記載および説明したが、当業者であれば、上記実施形態の特定の変形例、および、本発明の教示内容を利用した他の変形実施形態を容易に構築できる。従って、本発明が、本明細書中に示された特別な形態に限定されるのではなく、逆に、本発明が、その概念および範囲に妥当に含まれる代替例、改変例および等価物を網羅することが意図されている。
【0050】
【発明の効果】
本発明によれば、メモリへのアクセス動作の総数およびその所要時間を低減してシステムを高速化し、また、処理データ数および情報転送効率を最大化する、新しい方法および装置を提供することができる。
【図面の簡単な説明】
【図1】グラフィックスシステムを有するコンピュータシステムのブロック図である。
【図2】図1に示されるグラフィックス装置のブロック図である。
【図3】グラフィックス表示データを処理する方法の全体を示すフローチャートである。
【図4】最適メモリセグメント化データ格納方法における動作の流れを示すフローチャートである。
【図5】表示スクリーン上のオブジェクトの走査を示す図である。
【図6】数種の可能な、オブジェクトに基づく部分的ピクセル領域被覆パターンを示す図である。
【図7】表示オブジェクトの一例に対するピクセル被覆パターンの適用例を示す図である。
【図8】点参照オブジェクト走査方法を示す図である。
【図9】図3に示される動作の1つを示す詳細フローチャートである。
【図10】図3に示される別の動作を示す詳細フローチャートである。
【図11】図9に示される「SRAM書き込み」ステップを示す詳細フローチャートである。
【図12】図11に示されるフローチャートの1ステップの詳細を示す図である。
【符号の説明】
103 CPU
107 システムROM
109 システムRAM
115 ユーザインターフェースアダプタ
117 グラフィックス装置
119 ディスプレイ装置
201 グラフィックスプロセッサ
203 フレームバッファ
601、603、605、607、609 参照オリエンテーション
701、800 ポリゴン
Claims (18)
- ディスプレイ装置に表示可能なオブジェクトを表す情報を処理する方法であって、
該方法は、
処理装置が、該オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定するステップであって、該第1のメモリセグメント構成は、該オブジェクトの形状特性に依存する、ステップと、
該処理装置が、該第1のメモリセグメント構成を、対応するメモリに書き込むステップと、
該処理装置が、該対応するメモリの第1のメモリセグメントに該情報を格納するステップとを包含し、
該決定するステップは、
(a)該形状特性を利用して、該オブジェクトの第1の充填ピクセルを識別するステップと、
(b)該第1の充填ピクセルの位置を格納するステップと、
(c)該オブジェクトを該第1の充填ピクセルの位置から所定の方向に走査して該オブジェクトの第2の充填ピクセルを識別するステップと、
(d)該走査における該第1の充填ピクセルから該第2の充填ピクセルへの移動量に相当するデータサイズを求めるステップと、
(e)該移動量に相当するデータサイズが、所定のセグメントサイズより大きいか否かを決定するステップと、
(f)該移動量に相当するデータサイズが該所定のセグメントサイズより大きい場合、該メモリセグメント構成を定義するステップと、
(g)該移動量に相当するデータサイズが該所定のセグメントサイズより大きくない場合、該第2の充填ピクセルの位置が、該オブジェクトのベースに関連付けられているか否かを決定するステップと、
(h)該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられている場合、該メモリセグメント構成を定義するステップと、
(i)該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられていない場合、該オブジェクトの次の充填ピクセルを識別するステップと、
(j)該(i)ステップが実行されたときに、該識別された次の充填ピクセルを該第2の充填ピクセルとして該(d)及び(e)ステップを実行し、該(e)ステップの比較の結果に応じて該(f)又は(g)ステップを実行し、該(g)ステップが実行されたときに、該(h)又は(i)ステップを実行する、ステップと、
を包含し、
該第1の充填ピクセルの位置と、該所定のセグメントサイズより大きいデータサイズに相当する移動量を有する該ピクセルの位置または該オブジェクトのベースに関連付けられた位置を有する該ピクセルの位置との間で決定された幅値と長さ値とを利用して、該メモリセグメント構成は定義される、方法。 - 前記対応するメモリの第1のメモリセグメントに前記情報を格納するステップの後、前記方法は、
該第1のメモリセグメントに前記オブジェクトが完全には格納されていない場合、前記処理装置が、前記第1のメモリセグメント構成を決定するステップに戻るステップをさらに包含し、
該方法は、該オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を更に決定し、
該方法は、該オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に継続される、請求項1に記載の方法。 - 前記オブジェクトが全て格納された後、
前記処理装置が、1つより多くの格納されるべきオブジェクトがあるか否かを決定するステップと、
より多くの格納されるべきオブジェクトがある場合、該処理装置が、前記第1のメモリセグメント構成を決定するステップに戻るステップと
をさらに包含する、請求項2に記載の方法。 - 前記書き込むステップは、
前記処理装置が、Zフェッチが要求されているか否かを決定するステップと、
Zフェッチが要求されている場合、該処理装置が、対応するZ値をメモリからフェッチするステップと、
該処理装置が、Z値情報を含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項2に記載の方法。 - 前記方法は、
前記処理装置が、色データフェッチが要求されているか否かを決定するステップと、
色データフェッチが要求されている場合、該処理装置が、対応する色データをメモリからフェッチするステップと、
該処理装置が、該色データを含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項4に記載の方法。 - 前記方法は、
前記処理装置が、色データフェッチが要求されているか否かを決定するステップと、
色データフェッチが要求されている場合、該処理装置が、対応する色データをフェッチするステップと、
該処理装置が、該色データを含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項2に記載の方法。 - 機械可読符号(indicia)を有する記憶媒体であって、該記憶媒体は、読取り装置に結合されており、該読取り装置は、処理回路部に結合されており、該読取り装置は、該機械可読符号を読取って該機械可読符号を表すプログラム信号を生成するように動作可能であり、
該プログラム信号は、該処理回路部に、
該オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定するステップであって、該第1のメモリセグメント構成は、該オブジェクトの形状特性に依存する、ステップと、
該第1のメモリセグメント構成を、対応するメモリに書き込むステップと、
該対応するメモリの第1のメモリセグメントに該情報を格納するステップと
を包含する処理方法を実行させることによって、ディスプレイ装置上に描画可能なオブジェクトを表す情報を格納させることを可能にし、
該決定するステップは、
(a)該形状特性を利用して、該オブジェクトの第1の充填ピクセルを識別するステップと、
(b)該第1の充填ピクセルの位置を格納するステップと、
(c)該オブジェクトを該第1の充填ピクセルの位置から所定の方向に走査して該オブジェクトの第2の充填ピクセルを識別するステップと、
(d)該走査における該第1の充填ピクセルから該第2の充填ピクセルへの移動量に相当するデータサイズを求めるステップと、
(e)該移動量に相当するデータサイズが、所定のセグメントサイズより大きいか否かを決定するステップと、
(f)該移動量に相当するデータサイズが該所定のセグメントサイズより大きい場合、該メモリセグメント構成を定義するステップと、
(g)該移動量に相当するデータサイズが該所定のセグメントサイズより大きくない場合、該第2の充填ピクセルの位置が、該オブジェクトのベースに関連付けられているか否かを決定するステップと、
(h)該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられている場
合、該メモリセグメント構成を定義するステップと、
(i)該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられていない場合、該オブジェクトの次の充填ピクセルを識別するステップと、
(j)該(i)ステップが実行されたときに、該識別された次の充填ピクセルを該第2の充填ピクセルとして該(d)及び(e)ステップを実行し、該(e)ステップの比較の結果に応じて該(f)又は(g)ステップを実行し、該(g)ステップが実行されたときに、該(h)又は(i)ステップを実行する、ステップと、
を包含し、
該第1の充填ピクセルの位置と、該所定のセグメントサイズより大きいデータサイズに相当する移動量を有する該ピクセルの位置または該オブジェクトのベースに関連付けられた位置を有する該ピクセルの位置との間で決定された幅値と長さ値とを利用して、該メモリセグメント構成は定義される、記憶媒体。 - 前記対応するメモリの第1のメモリセグメントに前記情報を格納するステップの後、前記処理方法は、
該第1のメモリセグメントに前記オブジェクトが完全には格納されていない場合、前記第1のメモリセグメント構成を決定するステップに戻るステップをさらに包含し、
該方法は、該オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を更に決定し、
該方法は、該オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に継続される、請求項7に記載の記憶媒体。 - 前記処理方法は、
前記オブジェクトが全て格納された後、
1つより多くの格納されるべきオブジェクトがあるか否かを決定するステップと、
より多くの格納されるべきオブジェクトがある場合、前記第1のメモリセグメント構成を決定するステップに戻るステップと
をさらに包含する、請求項8に記載の記憶媒体。 - 前記書き込むステップは、
Zフェッチが要求されているか否かを決定するステップと、
Zフェッチが要求されている場合、対応するZ値をメモリからフェッチするステップと、
Z値情報を含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項7に記載の記憶媒体。 - 前記処理方法は、
色データフェッチが要求されているか否かを決定するステップと、
色データフェッチが要求されている場合、対応する色データをメモリからフェッチするステップと、
該色データを含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項10に記載の記憶媒体。 - 前記処理方法は、
色データフェッチが要求されているか否かを決定するステップと、
色データフェッチが要求されている場合、対応する色データをフェッチするステップと、
該色データを含む前記オブジェクトをメモリに書き込むステップと
をさらに包含する、請求項8に記載の記憶媒体。 - コンピュータを利用したグラフィックスステーションであって、
メインバスとディスプレイ装置とを含むコンピュータシステムと、
グラフィックスサブシステムと
を備え、
該グラフィックスサブシステムは、該メインバスと該ディスプレイ装置とに接続されているグラフィックス処理装置を含み、該グラフィックスサブシステムは、該グラフィックス処理装置に結合されているグラフィックスメモリをさらに含み、
該グラフィックスサブシステムは、
該オブジェクトの少なくとも一部分に関する情報を格納するための第1のメモリセグメント構成を決定し、該第1のメモリセグメント構成は、該オブジェクトの形状特性に依存し、
該第1のメモリセグメント構成を、対応するメモリに書き込み、
該対応するメモリの第1のメモリセグメントに該情報を格納し、
該決定することは、
(a) 該形状特性を利用して、該オブジェクトの第1の充填ピクセルを識別することと、
(b) 該第1の充填ピクセルの位置を格納することと、
(c) 該オブジェクトを該第1の充填ピクセルの位置から所定の方向に走査して該オブジェクトの第2の充填ピクセルを識別することと、
(d) 該走査における該第1の充填ピクセルから該第2の充填ピクセルへの移動量に相当するデータサイズを求めることと、
(e) 該移動量に相当するデータサイズが、所定のセグメントサイズより大きいか否かを決定することと、
(f) 該移動量に相当するデータサイズが該所定のセグメントサイズより大きい場合、該メモリセグメント構成を定義することと、
(g) 該移動量に相当するデータサイズが該所定のセグメントサイズより大きくない場合、該第2の充填ピクセルの位置が、該オブジェクトのベースに関連付けられているか否かを決定することと、
(h) 該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられている場合、該メモリセグメント構成を定義することと、
(i) 該第2の充填ピクセルの位置が該オブジェクトのベースに関連付けられていない場合、該オブジェクトの次の充填ピクセルを識別することと、
(j)該(i)が実行されたときに、該識別された次の充填ピクセルを該第2の充填ピ クセルとして該(d)及び(e)を実行し、該(e)の比較の結果に応じて該(f)又は(g)を実行し、該(g)が実行されたときに、該(h)又は(i)を実行することと、
を包含し、
該第1の充填ピクセルの位置と、該所定のセグメントサイズより大きいデータサイズに相当する移動量を有する該ピクセルの位置または該オブジェクトのベースに関連付けられた位置を有する該ピクセルの位置との間で決定された幅値と長さ値とを利用して、該メモリセグメント構成は定義される、グラフィックスステーション。 - 前記対応するメモリの第1のメモリセグメントに前記情報を格納した後、前記グラフィックスサブシステムは、さらに、
該第1のメモリセグメントに前記オブジェクトが完全には格納されていない場合、前記第1のメモリセグメント構成を決定することに戻り、
該オブジェクトの次の一部分に関する情報を格納するための第2のメモリセグメント構成を決定し、
該オブジェクトの全てが、対応するメモリセグメントに格納されるまで反復的に、第1のメモリセグメント構成を決定し、該第1のメモリセグメント構成を書き込み、該対応するメモリの第1のメモリセグメントに該情報を格納し、第2のメモリセグメント構成に戻り、該第2のメモリセグメント構成を決定する、請求項13に記載のグラフィックスステーション。 - 前記グラフィックスサブシステムは、さらに、
前記オブジェクトが全て格納された後、
1つより多くの格納されるべきオブジェクトがあるか否かを決定し、
より多くの格納されるべきオブジェクトがある場合、前記第1のメモリセグメント構成を決定することに戻る、請求項14に記載のグラフィックスステーション。 - 前記第1のメモリセグメント構成を対応するメモリに書き込むことは、
Zフェッチが要求されているか否かを決定することと、
Zフェッチが要求されている場合、対応するZ値をメモリからフェッチすることと、
Z値情報を含む前記オブジェクトをメモリに書き込むことと
を包含する、請求項13に記載のグラフィックスステーション。 - 前記グラフィックスサブシステムは、さらに、
色データフェッチが要求されているか否かを決定し、
色データフェッチが要求されている場合、対応する色データをメモリからフェッチし、
該色データを含む前記オブジェクトをメモリに書き込む、請求項16に記載のグラフィックスステーション。 - 前記グラフィックスサブシステムは、さらに、
色データフェッチが要求されているか否かを決定し、
色データフェッチが要求されている場合、対応する色データをフェッチし、
該色データを含む前記オブジェクトをメモリに書き込む、請求項14に記載のグラフィックスステーション。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/671,138 US5798763A (en) | 1996-06-27 | 1996-06-27 | Object referenced memory segmentation |
US08/671,138 | 1996-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1091802A JPH1091802A (ja) | 1998-04-10 |
JP4107517B2 true JP4107517B2 (ja) | 2008-06-25 |
Family
ID=24693276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16010597A Expired - Lifetime JP4107517B2 (ja) | 1996-06-27 | 1997-06-17 | Xyマップメモリを用いた部分的ポリゴン描画方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5798763A (ja) |
JP (1) | JP4107517B2 (ja) |
TW (1) | TW362199B (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940090A (en) * | 1997-05-07 | 1999-08-17 | Cirrus Logic, Inc. | Method and apparatus for internally caching the minimum and maximum XY pixel address values in a graphics subsystem |
US6141020A (en) * | 1997-11-12 | 2000-10-31 | S3 Incorporated | Opposing directional fill calculators in a graphics processor |
US7007024B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Hashing objects into multiple directories for better concurrency and manageability |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159201A (en) * | 1991-07-26 | 1992-10-27 | International Business Machines Corporation | Shape decompositon system and method |
US5644691A (en) * | 1994-10-14 | 1997-07-01 | Compaq Computer Corporation | Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition |
-
1996
- 1996-06-27 US US08/671,138 patent/US5798763A/en not_active Expired - Lifetime
-
1997
- 1997-06-11 TW TW086108058A patent/TW362199B/zh active
- 1997-06-17 JP JP16010597A patent/JP4107517B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH1091802A (ja) | 1998-04-10 |
US5798763A (en) | 1998-08-25 |
TW362199B (en) | 1999-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8659589B2 (en) | Leveraging graphics processors to optimize rendering 2-D objects | |
US5844576A (en) | Tiled linear host texture storage | |
CA1212185A (en) | Scrolling portion of large original memory held image in xy direction | |
US5307451A (en) | Method and apparatus for generating and manipulating graphical data for display on a computer output device | |
US6744442B1 (en) | Texture mapping system used for creating three-dimensional urban models | |
US5371514A (en) | Method and apparatus for determining the drawing primitives that are visible in a pick aperture of a graphics system | |
CN110544290A (zh) | 数据渲染方法及装置 | |
US4529978A (en) | Method and apparatus for generating graphic and textual images on a raster scan display | |
US6894695B2 (en) | Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware | |
JP3086189B2 (ja) | テクスチャーマップパッキング | |
JPS589451B2 (ja) | ラスタ型出力装置に対する座標デ−タ供給方法 | |
JP2882465B2 (ja) | 画像生成方法およびその装置 | |
JPH10320573A (ja) | 画像処理装置及び画像処理方法 | |
US6141020A (en) | Opposing directional fill calculators in a graphics processor | |
JP4107517B2 (ja) | Xyマップメモリを用いた部分的ポリゴン描画方法 | |
EP0817128A2 (en) | Method and apparatus for drawing polygons | |
JP3687945B2 (ja) | 画像処理装置およびその方法 | |
US5758128A (en) | Object referenced memory mapping | |
US6031550A (en) | Pixel data X striping in a graphics processor | |
US5444845A (en) | Raster graphics system having mask control logic | |
US5929869A (en) | Texture map storage with UV remapping | |
US20030231180A1 (en) | Image processing apparatus and method of same | |
US20010055015A1 (en) | Area and span based Z-buffer | |
JP2003132347A (ja) | 画像処理装置 | |
US5305431A (en) | Method and system for rendering polygons on a raster display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040528 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070823 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20071005 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071126 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071129 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071225 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080123 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080128 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080214 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080328 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110411 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130411 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130411 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140411 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |