JP3347323B2 - グラフィックスシステムにおけるグラフィックセグメント編成 - Google Patents

グラフィックスシステムにおけるグラフィックセグメント編成

Info

Publication number
JP3347323B2
JP3347323B2 JP51646991A JP51646991A JP3347323B2 JP 3347323 B2 JP3347323 B2 JP 3347323B2 JP 51646991 A JP51646991 A JP 51646991A JP 51646991 A JP51646991 A JP 51646991A JP 3347323 B2 JP3347323 B2 JP 3347323B2
Authority
JP
Japan
Prior art keywords
segment
parent
segments
child
image
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
Application number
JP51646991A
Other languages
English (en)
Other versions
JPH06511575A (ja
Inventor
ヘミングウェイ,ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH06511575A publication Critical patent/JPH06511575A/ja
Application granted granted Critical
Publication of JP3347323B2 publication Critical patent/JP3347323B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は、使用に際して、2次元イメージとして提示
された場合にはオーバラップする可能性のあるグラフィ
ックセグメントの階層編成を用いるグラフィックスシス
テムに関する。
背景技術 表示しようとする2次元イメージの内部表現を、その
イメージ内でオーバラップする可能性のある個別のグラ
フィックセグメントにより構築することは周知である。
これらのグラフィックセグメントをソリッド体として表
示する場合には、2つのセグメントの間にオーバラップ
がある場合に何れのセグメントが優先するかを判定する
必要がある。この深度優先順位の問題は一般に、種々の
セグメントに対して異なる優先順位を割り当て、次いで
関連するセグメントに割り当てられた優先順位に従っ
て、オーバラップによる衝突を解決することによって処
理される。実際の解決処理は、色々な方法で行うことが
できるが、最も広く知られている方法では、いわゆる
「ペインターアルゴリズム」が何らかの形で実施されて
いる。このアルゴリズムでは、イメージ(或いは、連続
したイメージラインのそれぞれである場合が多い)は、
その構成要素セグメントから優先順位と逆の順番で構築
され、かくして優先順位の高いセグメントが優先順位の
低いセグメントを上書きするようにされる。この手法
は、特にディスプレイフレームバッファを使用している
場合に非常に適しているが、後に上書きされる区域を書
き込む点で、労力のかなりの重複を必要とする。
多数のセグメントからのイメージ構築と優先順位解決
の問題とについての全般的な議論は、“Principles of
Interactive Computer Graphics"William M.Newman and
Robert F.Sproull,second edition,McGraw−Hillなど
の、グラフィックスシステムに関する標準的な殆どの解
説書に記載されている。
各セグメントを分離して扱うのではなしに、グラフィ
ックセグメントの間にある程度の関連付けを設けること
も既知である。詳しく言えば、1つのセグメント(親セ
グメント)が1以上の別のセグメント(子セグメント)
を含み、後者は親セグメントの境界にクリッピングされ
ているが、オーバラップする場合には後者が上書きされ
るという、ウィンドイング関係又は包含関係でセグメン
トを関連付けることが既知である。かくして親セグメン
トはウィンドウとして動作し、それを通じてその子セグ
メントを見ることができる。すべての場合ではないが一
般に、包含関係は、親に適用される空間変換(即ち平行
移動、回転及びスケーリング)が、それに含まれるすべ
ての子にも適用される形で実施される。
グラフィックセグメントが包含関係によって相互に関
連付けられるグラフィックスシステムの1例が、本発明
者の博士論文(Doctoral Thesis,“Computer Display A
rchitecture",Peter Hemingway,Cambridge University
Library,England,class mark PHD 150 76)に記載のシ
ステムである。このシステムでは、すべてのグラフィッ
クセグメントはツリー構造に編成され、親−子の関係が
包含関係になっている。この親−子の包含関係によっ
て、セグメントの相対優先順位が部分的に定義される
が、この定義は完全ではない。というのは、兄弟(同一
の親の子)の相対優先順位も定義する必要があり、これ
は通常はツリーを生成させるアプリケーションによって
行われるからである。このシステムでは包含関係は、親
が受ける空間変換を子も受け、さらに子の各々が、その
親に対する相対的な空間変形を受けるという形で実行さ
れる。その結果、最終イメージに現れる各セグメント
(又はセグメント部分)の位置、向き及びサイズは、そ
のセグメントからその先祖を通じてセグメントツリーの
ルートまで延びる一連の空間変換を縦続したものにな
る。
前述の論文に記載のグラフィックスシステムは、かな
りの柔軟性を提供するが、このシステムでは簡単には表
現できないある種の自然の関係が存在する。したがっ
て、本発明の目的は、セグメント間の関連付けの柔軟性
を向上できるグラフィックスシステム、具体的にはグラ
フィックセグメントの編成を提供することである。
発明の概要 本発明の1態様によれば、グラフィックスシステムに
おいて、2次元イメージとして提示された場合にはオー
バラップする可能性のあるグラフィックセグメントの階
層編成であって、その階層編成内の各子セグメントがそ
の親が受けるイメージ関連の空間変換を継承するものに
おいて、前記イメージ内の親の境界の外側では子が親に
よって制約されないことを決定する、子セグメントと親
セグメントとの間の接続関係を含むことを特徴とする、
前記グラフィックセグメントの編成が提供される。
2種類の接続関係が可能である。しかして、「上側」
タイプの接続関係の場合だと、子はその親より高い深度
優先順位を有し、子と親がオーバラップする場合には前
記イメージ内で子が親の上側に表示される結果となる。
対照的に、「下側」タイプの接続関係の場合だと、子は
その親より低い深度優先順位を有し、子と親がオーバラ
ップする場合には前記イメージ内で親が上側に表示され
る結果となる。
接続関係を用いることによって、例えば「紙クリッ
プ」を使用して「レポート用紙」に「メモ」が留めら
れ、メモと紙クリップの両方がレポート用紙を越えて延
びてこれに上書きされており、また紙クリップがメモを
越えて延びてこれに上書きされていて、レポート用紙が
移動、回転又はスケーリングを受ける時にこれら3つの
要素のすべてが一体となって移動、回転又はスケーリン
グされるといったイメージを構築することが可能にな
る。この例では、メモはレポート用紙の子であり、「上
側」接続関係によってレポート用紙に関連付けられてい
る。同様の関係が、メモと紙クリップの間にも存在す
る。
別の態様では、本発明は、潜在的なオーバラップ関係
でもって、表示を目的とするグラフィックセグメントを
2次元出力イメージへと階層編成に編成するための編成
手段と、セグメント間のオーバラップ衝突のすべてが解
決された状態で前記2次元イメージを表す出力信号を前
記グラフィックセグメントの編成から導出するためのコ
ンバータ手段であって、親が受けるイメージ関連の空間
変換に応じて前記イメージ内の各々の子セグメントの位
置を決定するよう動作するコンバータ手段とを含み、前
記編成手段が2つのセグメントを接続関係によって親子
として関連付けるよう適宜動作することと、コンバータ
手段が前記出力信号を導出する際に、親の境界の外側で
は親によって制限されないものとして関連する子セグメ
ントをレンダリングすることにより前記接続関係に応答
することとを特徴とする、グラフィックス出力システム
を意図したものである。
既に述べたように、接続関係は「上側」タイプ又は
「下側」タイプであり、コンバータ手段は、子セグメン
トと親セグメントがオーバラップする場合にはこれらを
適切にレンダリングするよう動作する。グラフィック要
素の編成には、適当な場合には包含親−子関係を含める
こともできる(ただし、このような関係を設けること
は、本発明にとって本質的ではない)。
同一の親セグメントが、同一タイプの関係によって複
数の子と関連付けられている場合、編成手段は、現在の
情況(表示の経過記録を含む)に応じて前記子の相対的
深度優先順位をセットするよう動作することが好まし
い。
コンバータ手段は、各々の親とその子について、下記
の順で前記グラフィックスセグメントを処理するよう動
作することが有利である。
−前記親と上側接続関係で関連付けられた子、 −親自体 −前記親と包含関係で関連付けられた子、及び −前記親と下側接続関係で関連付けられた子である。
同一の親と同一の関係を有する複数の子は、それらの相
対深度優先順位の順で処理されるが、コンバータ手段は
その処理を、処理中のセグメントからセグメントの階層
編成を遡っていく時に、前記接続関係によって最初に到
達する先祖が前に処理されたセグメントである場合に限
って、処理中のセグメントが前に処理されたセグメント
より前記イメージ内で優先されるようにして行う。この
処理順序は、いわゆるペインターアルゴリズムで使用さ
れる順序とはほぼ逆であるが、これによって親に含まれ
る子のクリッピングが簡単になる。
有利には、コンバータ手段は、グラフィックス出力装
置(視覚表示装置やプリンタなど)によってイメージを
形成するのに使用される複数のラインのそれぞれについ
て1組のスパンを生成するよう動作し、グラフィックス
出力システムは、指定された長さのスパンを出力装置に
描かせる単一のプリミティブによって出力装置を制御
し、このプリミティブは、各イメージラインを順次構築
するのに必要な回数だけ発生される。
図面の簡単な説明 以下では非限定的な実施例によって、添付図面を参照
しつつ本発明を具体化したグラフィックス出力システム
を説明する。図面において、 図1は、2次元イメージとして提示されるグラフィッ
クセグメントの編成と、グラフィックス出力装置への出
力のためスパンテーブルに保持される一連のスパンへの
これらのセグメントの変換の両方の働きをするレンダラ
を示す、グラフィックス出力システムの機能ブロック図
である。
図2は、グラフィックセグメントに関連するデータフ
ィールドと、そのセグメントと他のセグメントとの可能
な相互関係を示す図である。
図3は、関係するセグメントから形成された、結果的
に得られる2次元イメージにより、図2に示されたさま
ざまなセグメント間関係の性質を示す図である。
図4は、図1のレンダラによって形成されるセグメン
トツリーの1例を示す図である。
図5は、図4の例示的なセグメントツリーに対応する
2次元イメージを示す図である。
図6は、セグメントツリーからスキャンテーブルを形
成する際に図1のレンダラによって行われる変換処理の
全般的な進行を示すフローチャートである。
図7は、図6の変換処理のうち、グラフィックセグメ
ントのすべてに関するエッジレコードを含むエッジテー
ブルを形成するステップを示す図である。
図8は、図6の変換処理の過程の間に形成されるアク
ティブエッジリストの性質を示す図である。
図9は、図6の変換処理によって作られるスパンテー
ブルの性質を示す図である。
図10は、3つの相互にリンクされたスパンデータ構造
を示す図である。
図11は、図4の例示的セグメントツリー及び図5の例
示的イメージに関するスパンテーブルのスパンリストの
1つの作成過程を示す図である。
発明を実施するための最適モード 図1に機能ブロック図の形式で示されたグラフィック
ス出力システムには、基本的に、グラフィカルアプリケ
ーション10をビデオ表示装置又はプリンタなどのグラフ
ィックス出力装置12にインタフェースするよう動作する
レンダラ11が含まれる。
グラフィカルアプリケーション10は、レンダラ11に出
力イメージを構築するよう命令するが、この命令は、グ
ラフィックセグメント21を作成、修正又は削除するコマ
ンドの形態である。これらのグラフィックスセグメント
は、出力イメージの構築に使用される唯一のグラフィッ
ク要素であり、レンダラ11のセグメントオーガナイザ13
内で作成され、記憶される。オーガナイザ13は、セグメ
ント21をセグメントツリー20に編成し、このセグメント
ツリー20は後で詳細に説明するように、最終イメージ内
でのセグメントの相互関係を決定する。グラフィックセ
グメント21は、最終イメージ内で互いにオーバラップす
る可能性があり、従って深度の優先順位を解決すること
が必要になる。
各々のグラフィックセグメント21は、その境界、フィ
ル(充填)及び変換によって定義される。これらのパラ
メータについては以下で詳細に説明するが、今のところ
は、境界、フィル及び変換のパラメータが一般に、必要
に応じてセグメント21によって参照されるそれぞれのデ
ータ構造22、23及び24内に、オーガナイザ13によって記
憶されることに留意すれば十分である。
グラフィカルアプリケーション10が、セグメントツリ
ー20によって所望の出力イメージを構築するようレンダ
ラ11に命令し終えたならば、このセグメントツリーはレ
ンダラ11のコンバータ14によって、グラフィックス出力
装置12への出力に適した形式に変換される。具体的に言
うと、このセグメントツリーはスパンテーブル60へと変
換され、そこにおいてイメージは1以上のスパンから構
成されるラインの連続として表される。後で説明するよ
うに、スパンテーブル60を構成するに際してコンバータ
14は、まずエッジテーブルデータ構造61を形成し、次い
でアクティブエッジリストデータ構造62を使用して出力
イメージの各ラインを構築する。この変換処理では、セ
グメントの相互関係と深度優先順位によって、セグメン
ト間のオーバラップ衝突はすべて解決される。
スパンテーブル60に含まれるイメージ情報は次いで、
スパン出力処理15によってグラフィックス出力装置12に
出力される。この処理では、各ラインが完了するごとに
1ラインずつスパン情報を出力するか、スパンテーブル
が完了するまで待ってから装置12にスパン情報を渡すか
の、何れを行うこともできる。スパン情報の実際の受け
渡しは、単に特定の長さのスパンを描くよう出力装置12
に命令する単一のプリミティブ“Drawspan"によって行
われる。
グラフィックス出力装置12は一般に、最終出力イメー
ジを表示又は印刷する前に、レンダラ11から受け取った
情報をバッファ17内に緩衝記憶する。多くの場合、バッ
ファ17は、完全なイメージ表現を保持するフレームバッ
ファである。
レンダラ11の全体的な動作は制御ユニット16によって
制御されるが、制御ユニット16の主要機能は、種々の要
素の動作をシーケンス化することである。具体的に言う
と、制御ユニット16は、グラフィカルアプリケーション
10がセグメントツリー20の構成に関してセグメントオー
ガナイザ13への命令を完了するまで、コンバータ14がそ
の変換処理を開始しないことを保証する。さらに制御ユ
ニット16は、スパン出力処理15がスパンテーブル60の構
築と調整されることを保証する。制御ユニット16は独立
した機能的実存として図示されているが、実際にはその
機能を他の機能要素内に埋め込んでよいことが了解され
よう。従って例えば、セグメントオーガナイザ13がイン
タロック構成を具現化して、グラフィカルアプリケーシ
ョン10とコンバータ14がセグメントツリー20に同時にア
クセスできないことを保証することができる。
上述したレンダラ11の概観から、これがグラフィカル
アプリケーション10とグラフィックス出力装置12の間
に、概念的に単純なインタフェースを提供することがわ
かる。なぜなら一方では、レンダラ11のグラフィカルア
プリケーション10とのインタフェースは単一のグラフィ
ックス要素(即ちグラフィックスセグメント21)によっ
て定義され、また他方では、グラフィックス出力装置12
とのインタフェースは単一の演算プリミティブ(Drawsp
an)によって定義されているからである。この後者の特
徴によって、レンダラ11を異なる出力装置の間で簡単に
移植できるようになっている。
セグメントとセグメントオーガナイザ グラフィックセグメント21の属性と可能な相互関係
を、図2のセグメント21Aを参照して説明する(本明細
書では、「グラフィックセグメント」という用語がセグ
メントの表現すべてに適用されることに注意しなければ
ならない。図2の場合、セグメント21Aは、そのセグメ
ントのパラメータ又は属性を定義するフィールド28ない
し38を含むデータ構造によって表現されている)。
セグメント21Aに関連する第1のフィールドは、その
セグメントを一意に識別するセグメント識別フィールド
28である。残りの定義フィールドは2つのグループ、即
ちそのセグメントが最終イメージ中でどのように現れる
のかに直接関係するフィールド29ないし31からなる第1
のグループと、セグメントツリー20におけるセグメント
21Aと他のセグメントとの相互関係を定義するフィール
ド34ないし38からなる第2のグループ(これらの相互関
係は勿論、そのセグメントが最終イメージ中でどのよう
に表示されるかにも影響するが、この影響はフィールド
29ないし31ほど個別的ではない)に分割される。
フィールド29は、定義点(即ち頂点)によって特定さ
れる1以上の輪郭によってセグメントの境界を定義する
が、ここで点とはXY座標空間内におけるX−Y座標対で
あり、そこにおいて各々の座標方向における距離の基本
単位は「点単位」(これは、グラフィカルアプリケーシ
ョン10とレンダラ11の間で使用され、以下に説明する方
法で現実のイメージ次元に変換される概念上の単位であ
る)である。実際には、セグメントデータ構造には一般
に境界の完全な仕様は含まれず、単にフィールド29にお
いて定義点の1以上の組を含む境界データ構造22を指す
ポインタが保持されるに過ぎない。この配置構成を用い
ると、複数のセグメントが共通の境界定義を共有できる
ようになる。セグメント境界は、幅が0であるとみなさ
れる。
セグメントは境界内において、3つの形式、即ちソリ
ッドカラー、ハーフトーン、又はビットマップの何れか
である「フィル」を含む。ソリッドカラーフィルの場
合、関連する色仕様は、フィルフィールド30に直接に保
持される。他のタイプのフィルの場合には、フィールド
30は、所望とするフィルの性質を指定するフィルデータ
構造23を指すポインタを保持する。
境界フィールド29とフィルフィールド30は、セグメン
ト21Aの基本的な形状と内容を定義する。次いで親セグ
メントに対する相対位置が、フィールド31で指定される
相対変換行列(RTM)によって定義される。この場合に
も、この指定は通常、フィールド31に保持され変換デー
タ構造24を指すポインタによる。
相対変換行列(RTM)は、下記形式の3×3行列であ
る。
Sx Ry 0 Rx Sy 0 Tx Ty 1 RTMは、1つの座標空間内の点(及び境界−なぜなら境
界は点だけから構成される)を、行列によって定義され
る対応の点に変換するのに使用される。SxとSyは、X成
分とY成分に対するスケーリングを行う。TxとTyは、あ
る点のX成分とY成分に対する平行移動をもたらす。Rx
とRyは、X成分とY成分のせん断値であり、Sx及びSyと
組み合わせて回転をもたらすのに使用される。この行列
の最後の列は、単純な行列積によって、複数の3×3行
列を単一の行列へと連結することができるようにするた
めに設けられている。
セグメント21Aのフィールド34ないし38からなる第2
のグループでは、セグメント21Aと他のセグメントとの
関係が、これらの他のセグメントを指すポインタによっ
て定義される。しかしてフィールド34には、セグメント
21Aの親セグメントを構成するセグメント21Pを指すポイ
ンタが含まれる。フィールド35には、セグメント21Aの
兄弟セグメント21S(1)(即ち、セグメント21Aと同一
の親21Pを有するセグメント)を指すポインタが含まれ
る。セグメント21Aと21S(1)の兄弟関係は、図2では
矢印39によって示されている。兄弟セグメント21S
(1)にも同様に、別の兄弟21S(2)を指す兄弟ポイ
ンタが含まれてよい。同様に、セグメント21A自体が、
別の兄弟(図示せず)から指されている場合もある。こ
のようにして、同一の親セグメント21Pを有する兄弟に
関して、兄弟連鎖が確立される。実際には以下で明らか
になるように、同一の親を有してはいるが、その親との
関係が異なる兄弟については、別々の兄弟連鎖が存在す
る。兄弟連鎖内での兄弟の順序が、兄弟の相対的な深度
の優先順位を決定することになる。
セグメント21Aはまたフィールド36、37及び38内に、
子セグメント21Cを指す3つのポインタを含み、各々の
ポインタは異なるタイプの子セグメントを指す。しかし
てフィールド36は、セグメント21Aと「上側接続」関係
にある子セグメント21Cを指し、この関係は図2では矢
印40によって示されている。実際には、フィールド36に
含まれるポインタは、上側接続関係によってセグメント
21Aと関連するすべてのセグメント21Cの兄弟連鎖25内の
最初の子を指している。同様に、フィールド37に保持さ
れるポインタは、「包含」関係41によってセグメント21
Aと関連するすべての子セグメントを含む兄弟連鎖26内
の最初の子セグメント21Cを指す。さらに、フィールド3
8に保持されるポインタは、「下側接続」関係42によっ
てセグメント21Aと関連する子セグメントの下側兄弟連
鎖27の最初の子セグメント21Cを指す。上側接続関係、
包含関係及び下側接続関係の性質については後述する。
上述したところから、セグメント21Aが、1つの親セグ
メントと、0以上の兄弟セグメントと、連鎖25、26及び
27に配置される0以上の子セグメントを有することが看
取されよう。
図2では、セグメント21Aだけが以上に記載した外見
上の関係の完全なセットを有し、図2に示された他のセ
グメントについては、それらの相互関係の一部だけしか
示されていないことが理解されよう。
フィールド34ないし38に保持される親ポインタ、兄弟
ポインタ及び子ポインタを適切に設定することによっ
て、セグメントのグループを非循環ツリー編成で相互に
関連させて、セグメントツリー20を構成することができ
る。このツリーのセグメント間の関係は、さまざまなセ
グメントが最終イメージ中で互いにどのように影響する
かを完全に指定する働きをする。
「兄弟」、「包含」、「上側接続」及び「下側接続」
の関係の性質を、図3を参照して以下に説明する。この
図では、6角形のセグメント43と3角形のセグメント44
が、前述の関係のそれぞれによって相互に関連してい
る。具体的に言うと、兄弟関係39がライン(i)に示さ
れ、上側接続関係40がライン(ii)に、包含関係41がラ
イン(iii)に、下側接続関係42がライン(iv)に示さ
れている。各ラインの左端には、その関係のセグメント
ツリー表現が示されている。各ラインの中央には、出力
イメージ中でのセグメントの外見が示されている(セグ
メント43に対するセグメント44の所与の変換に関し
て)。各ラインの右端には、6角形のセグメント43が反
時計まわりに90゜の回転を受けた後の、最終イメージ中
のセグメントの外見が示されている。
ライン(i)から、セグメント44が別のセグメント43
に対して兄弟関係を有する場合には、兄弟連鎖で下位に
あるセグメントはより低位の深度優先順位を有し、従っ
て兄弟連鎖で上位にある兄弟の後ろ側に表示される(言
い換えると、3角形のセグメント44は6角形のセグメン
ト43とオーバラップする時に後ろ側に表示される)こと
がわかる。ライン(i)にはまた、セグメント43がセグ
メント44に影響せずに空間変換を受けることができる
(図3には示されていないが、その逆も成り立つ)とい
う点で、セグメント43とセグメント44が相対的に独立で
あることも示されている。
ライン(ii)には、3角形のセグメント44が上側接続
関係によって親セグメントと関係する場合には、セグメ
ント44がセグメント43よりも高い深度優先順位を有し、
従ってこれら2つのセグメントがオーバラップする場合
にセグメント43の上側に表示されることが示されてい
る。さらに、セグメント44はその親セグメント43の境界
に制限されていない。しかしながら、セグメント44は、
親43が経験する空間変換を受けるという点で、親43の真
の子セグメントである。従って6角形のセグメントが90
゜回転される時には、子セグメント44も同様に回転さ
れ、親セグメント43に対する相対的な位置が維持され
る。
ライン(iii)に示された包含関係は、2つのセグメ
ントがオーバラップする場合には子セグメント44がその
親43を上書きするという点で、上側接続関係に類似して
いる。しかしながらこの場合には、子セグメント44は、
その親43の境界にクリッピングされる(即ち、その親の
境界を越えては延びない)。どの子についても同様であ
るが、包含される子セグメント44は、その親43が受ける
空間変換を受け、従って親が90゜回転するとセグメント
44も回転して、親セグメント43に対する相対的な位置が
維持される。
ライン(iv)には、子セグメント44がその親43に対し
て下側接続関係である場合に、これら2つのセグメント
がオーバラップする場合には親がより高い深度優先順位
を有し、従って最終出力イメージでは子セグメントの上
側に表示されることが示されている。上側接続関係の場
合と同様に、下側接続関係についても、子セグメント44
は親43の境界によって制限されておらず、親の境界を越
えて延びることができる。これは、子が親の境界でクリ
ッピングされる包含関係とは異なる。下側接続関係で
は、他の親子関係と同様に、子セグメント44がその親の
受ける空間変換を受ける結果となり、従って例えば親セ
グメント43が90゜回転すると子セグメントも同様に回転
し、親に対する相対的な位置関係が維持される。
子セグメントは、親に対して上述の直接的な関係を有
すると同時に、その親から下記のものを継承する。
(a)親がその親から継承した空間変換。これにより、
あるセグメントの最終イメージ中での位置、向き及びサ
イズは、そのセグメントの親に対する相対的な空間変換
と、その先祖のすべての空間変換との組み合わせによっ
て決定される(セグメントのRTMに関して、あるセグメ
ントの全体的な変換は、その先祖のすべての相対変換行
列とそれ自体のRTMとを連結して累積変換行列にしたも
のであり、本明細書ではこれを連結変換行列又はCTMと
称する)。
(b)親が受けたクリッピング制限と深度優先順位。こ
れは、親の境界を越えての子のクリッピングと上書きを
決定するので、上側接続関係又は下側接続関係によって
親と関係する子に特に関連がある。
後者の継承は、各々の子セグメントが、その子が上書
きすることはできるが、しかしその境界内に収まるよう
にクリッピングされる「背景」セグメントを有する、と
いう概念を生ずる。子セグメントが包含関係によって親
と関連する場合には、親はその子の背景セグメントをも
構成する。しかしながら、子が上側接続関係又は下側接
続関係によってその親と関連する場合には、その子の背
景セグメントはその親ではなく、問題とする子セグメン
トからセグメントツリーを遡る時に包含関係を通じて最
初に到達される先祖セグメントである。実際、子の背景
セグメントについての後者による識別は、一般的に成り
立つ。というのも、子が包含関係によって親と関係する
場合には、包含関係を通じてその子から最初に到達する
先祖セグメントは、もちろんその子の親になるからであ
る。
図4と図5に、セグメントツリーの例とそれに対応す
る出力イメージを示す。図4のセグメントツリーでは、
セグメントは輪郭によって表されており、セグメント境
界内で下線付きで示されている識別文字「a」ないし
「m」で符号付けされている。また各セグメント境界内
には、(数字、文字)対が括弧内で示されている。この
対の中の文字は、対象とするセグメントの背景セグメン
トを識別し、これに対して(数字、文字)対の中の数字
は、以下でその目的を説明する処理順序番号である。
図4のセグメントツリーのセグメント「a」は、この
ツリーのルートセグメントであり、従って特に重要であ
る。ルートセグメントの相対変換行列に含まれるスケー
リング係数は実際上、レンダラ11によって使用される内
部点単位次元と、グラフィックス出力装置12によって表
示される出力イメージの次元(多くの場合、画素によっ
て表現される)との間のスケーリングを定義する。さら
に、境界によって定義されるルートセグメントのサイズ
は一般に、出力装置12によって使用できるようにされる
潜在的な出力イメージ領域を(ルートのRTMで定義され
る適当なスケーリングの後に)完全に占めるようにセッ
トされる。一般に、セグメントツリーの他のすべてのセ
グメントは、包含関係41を通じてルートセグメントと直
接的又は間接的に関連しており、従ってそれらは、ルー
トセグメントの境界内に収まるようにクリッピングされ
る。上側接続関係によってルートセグメントに接続され
るセグメントは通常、出力イメージを横切って高速に移
動するセグメント(例えば対話式アプリケーションのカ
ーソル)だけである。ルートセグメントは、通常は出力
イメージを完全に占めるので、ルートセグメントから下
側接続関係が直接に使用されることはない。
図5は、出力イメージの限界を定める長方形としてル
ートセグメント「a」を示し、他のすべてのセグメント
はルートセグメント内に含まれる。
セグメント「c」は、実際上ルートセグメントと直接
の包含関係にある唯一のセグメントである。図からわか
るように、セグメント「c」は、3グループの子、即ち
セグメント「c」の上側に現れることのできる上側グル
ープ(セグメントb、e、f及びj)、セグメント
「c」の境界でクリッピングされるがセグメント「c」
を上書きすることのできる包含グループのセグメント
(セグメントg、h、l、m及びk)、及びセグメント
「c」の下側に現れる下側セグメントのグループ(セグ
メントd及びi)を有する。ルートセグメント「a」内
でセグメント「c」を移動又は回転(セグメント「c」
のRTMの修正によって)させると、その子セグメントの
すべてが同様に動かされる結果となる。
図4のセグメントツリーからの図5の出力イメージの
構成は、セグメント間の可能な関係の性質に関する前述
の説明を考慮すれば明白になるはずである。従って、図
4と図5の詳細な説明はここでは行わない。しかしなが
ら、いくつかの重要な特徴を下に述べる。
兄弟の相対深度優先順位は、図4及び図5ではセグメ
ント「e」及び「f」によって示されている。図からわ
かるように、セグメント「f」はセグメント「e」の兄
弟であるが、親セグメント「b」に包含される子セグメ
ントの兄弟連鎖中で下位に現れることから、より低い優
先順位を有する。従って、セグメント「e」及び「f」
がオーバラップする場合は、セグメント「e」が出力イ
メージに表示される。セグメント「e」はまた、セグメ
ント「f」に包含される子であるセグメント「j」にも
オーバラップする(セグメント「e」は、セグメント
「f」の上側又は下側のすべての子ともオーバラップす
る)。
セグメント「l」は、上側接続関係によって親と関係
するセグメントを示し、そのようなセグメントは親とオ
ーバラップする場合には親より高い優先順位を有する
が、実際に親とオーバラップする必要がないことを示す
ものである。オーバラップが発生するか否かは、子セグ
メント「l」の相対変換行列に依存している。
セグメント「m」は、セグメント「l」に対して上側
接続関係にあるセグメントであり、このセグメント
「l」は既に述べたように、セグメント「h」に対して
上側接続関係にある。これらのセグメントは両方とも、
セグメント「l」及び「m」の背景セグメントとなるセ
グメント「c」上に書き込まれる。セグメント「m」に
関して図からわかるように、あるセグメントは、背景セ
グメントと直接の包含関係にない時であっても、背景セ
グメントによってクリッピングされる。
ここで図1の検討に戻ると、セグメントオーガナイザ
13は一般に、汎用プロセッサ上で実行される適当なプロ
グラムコードの形態をとり、そのコードはグラフィカル
アプリケーションからの生成コマンド、修正コマンド及
び削除コマンドに応答して、セグメントツリー20を構成
する。具体的に言うと、セグメントオーガナイザ13は、
必要に応じてセグメント、境界、フィル及び変換インス
タンスオブジェクトを作成するためのクラスオブジェク
トが設けられた、オブジェクト指向の語法で実施でき
る。この場合、例えばグラフィカルアプリケーション10
が、新セグメントを生成して既存のツリー構造へと追加
することを望む場合には、適当な変換、フィル及び境界
のインスタンスを作成するために(適当なインスタンス
がまだ存在しないと仮定する)、まず変換、フィル及び
境界についてのクラスオブジェクトにメッセージを送
る。適当な変換、フィル及び境界インスタンスを作成す
るためにクラスオブジェクトにメッセージを送るに際し
て、アプリケーション10は必要なデータを供給する。次
に、アプリケーション10はセグメントクラスオブジェク
トにメッセージを送り、新たに作成された境界、フィル
及び変換インスタンスを使用して、アプリケーション10
によって指定された他のセグメントとの関連を有する新
たなセグメントインスタンスを作成することを要求す
る。新たなセグメントを作成する際には、例えば、既存
の兄弟よりも高い兄弟優先順位を有するものとしてセグ
メントを指定することが必要になる場合もある。このこ
とはもちろん、既存の親セグメントや兄弟セグメントに
含まれるポインタの調節を必要とする。このような調節
は、セグメントインスタンスオブジェクト自体によっ
て、オブジェクト間での適当なメッセージ送受によって
処理される。このようなオブジェクト指向版のセグメン
トオーガナイザ13の実施詳細は、当業者には明らかであ
り、従ってここではこれ以上説明しない。
グラフィカルアプリケーション10のコマンドに応答し
てオーガナイザ13がセグメントツリー20を構築している
時点で、コンバータ14の後続動作を容易にするためにい
くつかのデータ項目を計算できることが着目されよう。
具体的に言うと、コンバータ14による使用のために、各
セグメントの連結変換行列と背景セグメントを決定し、
キャッシュ記憶できる。しかしながらこの実施例では、
これらの項目はコンバータ14自体によって決定される。
スパンテーブルへの変換 コンバータ14は、セグメントツリー20のセグメントを
イメージラインの組に変換する変換処理を実行する。こ
のイメージラインの組のそれぞれは、1以上のスパンを
含むスパンリストによって表され、スパンリストはスパ
ンテーブル60に記憶されている。この変換処理では、セ
グメントは最終イメージ内の正しい位置に置かれ、オー
バラップ衝突はすべて解決され、セグメントは内部の点
単位座標から装置の座標へとスケーリングされる。装置
座標は一般に、基準のXY座標フレーム内の画素によって
指定される。スパンリストによって表現されたイメージ
ラインは、基準の装置フレームのY座標方向に延びる
(これはバッファ17が一般に、アクセス効率向上のため
同一イメージライン内の画素がバッファ内で隣接するよ
うに編成されるからである)。適当な情況の下では、X
座標方向に延びるようにスパンリストを配置構成できる
ことが理解されよう。
この変換処理の全体的な進行を図6に示す。この変換
処理の第1ステップは、処理される順番でもってセグメ
ントに番号を付けることである(ステップ50)。その
後、CTMと背景セグメントが決定される(実際には、こ
の決定は好適にはセグメント番号付けに際して行うこと
ができるものであり、従ってステップ50の一部として図
示されている)。次に、エッジテーブルが形成され、す
べてのセグメントを規定するエッジのすべてに関するエ
ッジレコードが格納される(ステップ51及び52)。最後
に、対象とする現在のイメージラインと交わるエッジの
エッジレコードを検査することによって、一時に1ライ
ンずつスパンテーブルが構築される(ステップ53ないし
55)。
まずセグメント処理順序番号(ステップ50)を検討す
ると、ここでの全般的な目的は、セグメントが深度優先
順位の順に処理されることを保証し、それにより後から
処理されるセグメントが前に処理されたセグメントを上
書きしないようにすることによって、オーバラップ衝突
が簡単に解決されるようにすることである。しかしなが
ら、包含される子とその子孫は、それらを包含する先祖
の境界でクリッピングされるので、包含される子(とそ
の子孫)が背景セグメントを上書きする場合であって
も、前者を処理する前に背景セグメントを処理すること
が必要である。なぜならそうでなければ、包含される子
を処理する時に、クリッピング境界がイメージ座標に関
して既知でなくなるからである。この要件から、後から
処理されるセグメントが前に処理されたセグメントを上
書きすることができないという基本的な書込規則に対し
て、セグメントが背景セグメントを上書きしてもよいと
いう但し書きが追加されることになる。
セグメントに番号を付ける際には、ツリーはルートセ
グメントから横断される。この場合にセグメントごと
に、関連セグメントの番号付けの優先順位に関して、下
記の規則が適用される。
−検討中のセグメントの上側の子(とその子孫のすべ
て)にまず番号を付ける。
−その後、検討中のセグメントに番号を付ける。
−次に、検討中のセグメントに包含されるセグメント
(とその子孫)に番号を付ける。
−最後に、検討中のセグメントの下側のセグメント(と
その子孫)に番号を付ける。
兄弟に関してはリストの先頭から処理され、その結果リ
ストの先頭の兄弟セグメントとその子孫のすべてが最初
に番号付けされ、その後に第2の兄弟(とその子孫のす
べて)が番号付けされ、そして同一の兄弟リスト内の他
の兄弟についても同様に処理される。この横断番号付け
アルゴリズムは、より形式的には下記の擬似コードによ
って表現できる。
1.SをThis_Segの最初の上側の子にセットして、This_Se
gの上側の子がなくなるまで下記を繰り返す。ただし、
Sは各繰返しの前に次の上側の子にセットする。
−セグメントSを現在の親セグメントとして、ルーチン
PROCNUMを実行。
2.Numberをインクリメントする。
3.This_Segの処理順序番号としてNumberを割り当てる。
4.SをThis_Segの最初の包含される子にセットして、Thi
s_Segに包含される子がなくなるまで下記を繰り返す。
ただし、Sは各繰返しの前に次の包含される子にセット
する。
−セグメントSを現在の親セグメントとして、ルーチン
PROCNUMを実行。
5.SをThis_Segの最初の下側の子にセットして、This_Se
gの下側の子がなくなるまで下記を繰り返す。ただし、
Sは各繰返しの前に次の下側の子にセットする。
−セグメントSを現在の親セグメントとして、ルーチン
PROCNUMを実行。
この割り当てられた処理順序番号を使用することによ
って、前に処理されたセグメントが後で処理されるセグ
メントの背景セグメントである場合を除き後で処理され
るセグメントは前に処理されたセグメントを上書きでき
ないという上述の書込み規則に従って、セグメントツリ
ーから出力イメージを描き上げることができる。
セグメントツリーをイメージに変換するための上述の
書込み規則は、この変換に関与する処理の詳細とは無関
係に適用される。言い換えると、この規則は、コンバー
タ14によって実行される処理だけではなく、セグメント
ツリーから手によって物理的にイメージを描き上げる場
合にも適用される。読者が図4のセグメントツリーか
ら、既にセグメントに関して注釈ずみの処理順序番号付
け(この番号付けが上記の番号付けアルゴリズムに従っ
て決定される)を使用して図5を再現してみれば、これ
を簡単に理解できるであろう。
セグメントが番号付けされた後(又は既に述べたよう
に、この番号付けと同時に)、各セグメントのCTMと背
景が決定される。決定のそれぞれは、スタック(後入れ
先出し即ちLIFOデータ構造)を使用して簡単に達成でき
る。
しかしてCTM決定に関しては、ルートセグメントのRTM
(そのCTMでもある)が最初にCTMスタックに入れられ、
次いでセグメントツリーが横断される。親子関係を下る
か兄弟関係を横切ることによってあるセグメントに始め
て出会うごとに、そのRTMをCTMスタックの先頭にあるCT
Mと組み合わせることによって、そのCTMが決定される。
新たに決定されたCTMは、次いでセグメントデータと共
にキャッシュ記憶され、さらに、スタックの先頭に置か
れる。親子関係を遡るか兄弟関係を横切ることによって
あるセグメントを出る時には、そのCTMはCTMスタックの
先頭から除去される。
背景セグメントの決定も同様の仕方で行われ、背景ス
タックはセグメントツリーの横断を開始する前に、空に
初期設定される。親子包含関係を下るたびに、親の識別
子が背景スタックに入れられ、これに対して包含関係を
遡るたびに、スタック先頭の入力項目が除去される。背
景スタックの先頭入力項目によって、ツリーの横断に際
して到達した現在のセグメントの背景セグメントが識別
される。あるセグメントの背景の識別子は、セグメント
データと共にキャッシュ記憶される。
セグメントに番号を付け、CTMと背景を決定した後
に、エッジテーブル61が作成され、データが書き込まれ
る(ステップ51及び52)。エッジテーブルは、出力イメ
ージのY座標ラインごとに1入力項目を含むデータ構造
である。ラインごとの入力項目は、装置(イメージ)座
標においてそのラインに開始Y座標を有する全てのセグ
メントエッジのリストであり、このリストはエッジレコ
ード63のリンクリストによって形成され、このリストの
最初のエッジレコードは、エッジテーブルデータ構造61
に保持されるポインタによって指されている。特定のY
座標ラインに対応する開始Y座標を有するエッジが存在
しない場合には、エッジテーブル内の対応する入力項目
には、空白がセットされる。
各エッジレコード63には、対応するセグメントエッジ
を装置座標によって記述するデータが、そのエッジが由
来するセグメントの識別子と、好ましくはそのセグメン
トの処理順序番号及び背景と共に含まれる(ただし最後
の2つの項目は、セグメント自体を参照することによっ
て必要な時にいつでも取得できる)。
処理順序番号に従って各セグメントを順に処理するこ
とによって、エッジテーブルが入力される。実際、出力
イメージ全体がレンダリングされる場合には、エッジテ
ーブルを形成するためにセグメントが処理される順序は
問題ではない。あるセグメントを処理するためには、セ
グメント境界のエッジのそれぞれ又はセグメント境界を
作り上げている輪郭のそれぞれが、そのセグメントのCT
Mを適用することによって出力イメージ形式に変換さ
れ、その結果としてのエッジの特徴を表すデータは、対
応するエッジレコード63に記憶される。このレコードは
次いで、適宜エッジテーブル61に挿入される。
図7は、セグメントのエッジをエッジテーブル61に入
力するための、1つのセグメントの処理を示す図であ
る。図からわかるように、このセグメントの境界70は、
6つのエッジ71ないし76からなる。エッジ71及び72は同
一の開始Y座標を有し、従ってエッジテーブル61の同一
のエッジリストにエッジレコード63として入力される。
同様に、エッジ73及び74も同一の開始Y座標を有し、そ
れらのエッジレコードは同一のエッジリストに入力され
る。また、エッジ75及び76もまた同一の開始Y座標を有
するので、それらのエッジレコード63もエッジテーブル
61の同一のエッジリストに入力される。
すべてのエッジがエッジテーブル61に入力された後
に、変換処理は次の段階に移り、そこにおいては走査ラ
イン(出力イメージのY座標ライン)ごとにアクティブ
エッジリスト62が形成されてその走査ラインを妨げるエ
ッジのすべてがリストされる(ステップ53)。その後こ
のアクティブエッジリストは、スパンテーブル60内に対
応するスパンリストを形成するのに使用される(ステッ
プ54)。アクティブエッジリスト62は最初の走査ライン
に関して、その最初の走査ラインから始まる全てのエッ
ジレコード63をアクティブエッジリストに入力すること
によって形成される。後続の走査ラインに関しては、ア
クティブエッジリスト62は、前の走査ラインのアクティ
ブエッジリストを更新することによって形成される。こ
の更新処理は、現在の走査ラインから始まるエッジのエ
ッジレコードを追加することと、アクティブエッジリス
トに既に含まれているエッジレコードを更新することの
両者を伴う。この更新は、エッジの傾きに従ってX座標
を変更しY値をインクリメントすることによって、その
エッジについての現在のX及びY座標値を更新すること
を包含する。この更新によって、そのエッジがもはや走
査ラインを妨げないことが示される場合には、そのエッ
ジレコード63はアクティブエッジリスト62から除去され
る。
図8は、図7に破線で示された走査ライン69に関して
アクティブエッジリスト62を構成するエッジレコード63
を示す図である。このエッジレコードによって表される
エッジによる現在の走査ラインの遮断を、図8に示す。
ある走査ラインについてアクティブエッジリストが形
成された後に、それを構成するエッジレコードは、それ
に関連するセグメント処理順序番号に応じて、走査ライ
ンとエッジとの現在のX遮断点でソートされる。
ソート済みのアクティブエッジリスト62を使用して、
現在の走査ラインに対応するスパンテーブル入力項目が
作成される。このスパンテーブル入力項目には、1以上
のスパン65をリンクリストとして保持するスパンリスト
が含まれる。1つのスパンは、特定のセグメントに関連
する、出力イメージ走査ラインの中断されていない部分
を定義する。図10は、スパンN、スパン(N+1)及び
スパン(N+2)として識別される3つのスパン65を含
む、走査リストの一部を示す図である。各スパンは4つ
のフィールドを有し、そのうちの1つは関連するセグメ
ントを識別し、2つは右と左のX座標(それぞれXLとX
R)によってスパンの位置を指定する。Y座標フィール
ドは必須ではないが、これはこのスパンテーブルデータ
構造では、スパンテーブル内でのスパンリストの位置に
よって、各構成スパンリストのスパンについてのY座標
が暗黙のうちに示されるからである。スパンデータ構造
の残りのフィールドはポインタ、即ち現在のスパンリス
ト内の次のスパン(存在するならば)を指すポインタ66
(P−NEXT SPAN)である。
スパンリストを形成するためには、アクティブエッジ
リストが処理されるが、これはリスト内のエッジレコー
ドの連続する対を取り、各対を使用して対応するスパン
を形成し、その2つの区切りのX座標値を対象としてい
るエッジレコードの現在のX値にセットし、Y座標値を
現在の走査ラインのY座標値にセットし、そのセグメン
ト識別子を関与している2つのエッジレコードの識別子
にセットすることによって行われる(アクティブエッジ
リストが処理順序番号によってソートされており、ある
Y座標値を検討する時には必ず1セグメントに対して偶
数のエッジが存在するので、これらのレコードは同一の
セグメント識別子を有する)。
スパンが形成されたならば、次いで現在の走査ライン
に関するスパンリストにそのスパンを挿入する試みが行
われる。しかしながらこの挿入は、処理順序番号に従っ
てセグメントを処理する場合に最終イメージ中にセグメ
ントを書き込むについての上述の規則、即ちあるセグメ
ント(又は、この場合にはセグメントのスパン)を書き
込めるのは、上書きされるセグメントが現在のセグメン
トの背景セグメントである場合を除き、それが別のセグ
メント(又はセグメントスパン)を上書きしない場合だ
けである、という規則に縛られる。現在のスパンによっ
て上書きできる背景を構成するセグメントの識別子は、
そのスパンを区切るエッジレコードからか、或いはその
スパンが導出されたセグメントを参照することによって
取得できる。
この挿入処理には、併合されるスパンを区切るX座標
値、及び部分的に上書きされるすべてのスパンを区切る
X座標値を適宜調節すること(必要な場合には影響を受
けるスパンを2以上のスパンに分割することを含む)
と、影響されるスパンのP−NEXT SPANポインタをそれ
に応じてセットすることが含まれる。
図11は、図5の線80−80に沿って取った走査ラインに
関するスパンリスト81の構成を10段階で示す例である。
図11に示されたステージ(i)ないし(x)のそれぞれ
について、スパンリスト81の現在の内容と、このスパン
リストに併合されるスパンリスト82の両方が示されてお
り、スパン82は既存のスパンリスト81の下側に示されて
いる。
スパンリストに併合される各スパン82内には、対応す
るセグメントの識別子だけでなく、(処理番号、背景セ
グメント)対も示されているが、これはセグメントスパ
ンが処理される順序と、既存のスパンリストへのスパン
の上書きが成功するか否かの両方を理解しやすくするた
めである。
ステージ(i)では、スパンリストは既に、ルートセ
グメント「a」に対応するスパンを保持するものとして
示されている。併合しようとするスパン82はセグメント
「b」からのスパンであり、これは走査ライン80−80と
交わるセグメントのうちで、セグメントの処理順序番号
に従って次に処理されるセグメントである。セグメント
「b」の背景セグメントは、ルートセグメント「a」で
あり、その結果セグメント「b」のスパン82は、このス
パンリストに完全に併合することができる。結果のスパ
ンリスト81は図10のステージ(ii)に示されているが、
図からわかるようにこのスパンリストには今度は、3つ
のスパンが互いにリンクされて含まれている。なぜなら
元々ルートセグメント「a」に対応していたスパンは、
セグメント「b」のスパンによって2つのスパンに分割
されているからである。
ステージ(ii)では、セグメント「e」に対応するス
パン82が、スパンリスト81に併合される。セグメント
「e」の背景はセグメント「b」であり、スパン82はス
パンリスト81内でセグメント「e」の境界内に完全に含
まれるので、セグメント「e」のスパン82の全体がこの
スパンリストに成功裡に併合されて、ステージ(iii)
に示される新たなスパンリスト81が作られる。
ステージ(iii)では、セグメント「f」からのスパ
ン82がスパンリスト81に併合されるが、セグメント
「f」の背景セグメントはセグメント「b」である。セ
グメント「f」のスパン82は、スパンリスト81内でセグ
メント「e」及び「b」に対応するスパンとオーバラッ
プするので、スパン82の一部だけがスパンリスト82に併
合されることになるが、この一部とは、セグメント
「f」のうち背景セグメント「b」とオーバラップする
部分である。結果としてのセグメント「f」スパン82の
スパンリストへの部分的な併合が、ステージ(iv)の新
たなスパンリスト81に示されている。
ステージ(iv)ないし(x)で行われるスパンリスト
81へのスパン82の併合は、ステージ(i)ないし(ii
i)と実質的に同じ仕方で進行するため、詳細に説明す
ることはしない。
変換処理の終了に際しては、セグメントツリー20はイ
メージのスパンテーブル表示に変換されており、そこに
おいてはすべてのセグメントが正しい位置、向き及びサ
イズで最終イメージへとマッピングされており、すべて
のオーバラップ衝突が解決されている。このスパンテー
ブル60は、装置座標における、最終的な出力イメージの
圧縮表現を提供している。
セグメントオーガナイザ13と同様に、コンバータ15も
汎用プロセッサ上で実行されるコードにより実施される
ことが好ましく、この実施形態は例えば、エッジテーブ
ル、エッジリスト、エッジレコード、アクティブエッジ
リスト、スパンテーブル、スパンリスト及びスパンに対
応するオブジェクトを用いるオブジェクト指向の語法で
行われる。
出力処理 既に述べたように、図1のスパン出力機能15は、出力
装置12に所与のY座標位置で2つのX座標位置の間に所
与の色の線を描くよう命令する、単一の演算プリミティ
ブDrawspanを有する。この出力処理には、最終的なスパ
ンテーブル60に含まれるスパンごとにDrawspanを呼び出
すことが含まれる。スパンテーブルのスパンは互いにオ
ーバラップせず、各々がそれ自体で完全に定義されてい
るので、Drawspanを使用してスパンが装置12に出力され
る順序は重要ではない。転送効率を最大にするため、同
一色のスパンを一緒に出力し、それによって色が変更さ
れる場合以外は色を指定する必要をなくすこともできる
(勿論この方法は、イメージのランダム書込みが可能な
特定のタイプの出力装置12でのみ行いうるものであるこ
とは理解されよう)。
スパンテーブル内の各スパンに関連する色は、対応す
るセグメントのフィルを参照することによって得られ
る。このフィルが多色ビットマップの場合には、そのス
パンを構成する単色の部分スパンごとにDrawspanを呼び
出さなければならない。
このシステムの初期設定に際しては、出力処理によ
り、出力装置に合わせて色ルックアップテーブルを初期
設定することができる。これと同時に、イメージ範囲外
の背景色や、イメージサイズなどのパラメータを指定す
ることもできる。既に示したように、イメージサイズ
は、ルートセグメントのサイズに反映され、またルート
セグメントのRTMのスケーリング係数に反映される。
出力装置12は一般に、視覚表示装置上の表示又はハー
ドコピープリントアウトの何れかの形態で現実に走査ラ
インが出力される前に、バッファ17内に1以上の走査ラ
インを構成する。バッファ17が完全なイメージビットマ
ップを保持しない場合には、Drawspanを使用してスパン
が出力される順序が重要になる。なぜなら出力装置は、
特定の走査ラインが他の走査ラインよりも前に出力され
ることを必要とするからである。
更新とユーザ入力 以上においては図1の実施例を、アプリケーション10
によって構成され、次いでレンダラ11によって出力装置
12に出力される完全なセグメントツリーによって説明し
てきた。セグメントツリーは、表現すべきイメージ内に
変化があるたびに再成しなければならないものではな
く、アプリケーション10から作成、修正及び削除コマン
ドを使用することによって、必要に応じて修正できるこ
とが理解されよう。セグメントツリーの修正が完了した
ならば、次いでこれを新たな出力イメージに変換するこ
とができる。この変換は、新たなイメージが生成される
たびに最初から繰り返してもよいが、代替的に当技術分
野で既知の制限付き変換処理を行うこともでき、その場
合には例えば、再変換はイメージの更新領域を区切る長
方形の境界ボックスに限定される。
セグメントツリーの一部更新と、出力イメージの一部
の再変換は、出力装置がハードコピー装置ではなく視覚
表示装置である場合に特に重要である。
表示イメージがユーザ入力に応答して変更される対話
式コンピュータグラフィックスアプリケーションにおい
て必要とされる如きユーザ入力に関しては、アプリケー
ション10にユーザ入力をフィードバックするための何ら
かの適当な手段と共に上述のグラフィックス出力システ
ムを使用することができ、その場合には、どのようなイ
メージ変更が必要かを判定するのはアプリケーション10
のジョブである。
変形 以上に説明した本発明の実施例は、請求の範囲に記載
される本発明の概念から逸脱することなしに、多くの変
形を受けることができることが理解されよう。しかして
コンバータ14は、さまざまな方法で実施でき、また例え
ば対応するスパンリストの完了後に各走査ラインを直ち
に出力することができるため、完全なスパンテーブルを
構成することは必須ではない(勿論この場合には、個別
にバッファリングされるのでない限り、同一色のすべて
のスパンを一緒に出力することはできない)。
セグメントオーガナイザとセグメントツリー20に関し
ては、セグメント21を上述した非循環ツリー以外の階層
構造に編成し、なおかつ上側接続関係と下側接続関係を
提供することができる。さらにまた、これらの接続関係
のうちの何れか1つを、他方の接続関係なしに、包含関
係と無関係に実施することができる(ただし、これは好
ましくない)。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−59815(JP,A) 特表 平3−504174(JP,A)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】2次元出力イメージにおいてオーバラップ
    関係になる可能性を有し、表示を目的とするグラフィッ
    クセグメントを階層編成に編成するための編成手段と、
    及び セグメント間のオーバラップ関係の全てを考慮に入れた
    状態で前記2次元イメージを表す出力信号を前記グラフ
    ィックセグメントの編成から導出し、親が受けるイメー
    ジ関連の空間変換に応じて前記イメージ内に各々の子セ
    グメントを位置決めするよう動作するコンバータ手段と
    を含むグラフィックス出力システムであって、 前記編成手段が、「上側」タイプ又は「下側」タイプの
    接続関係によって2つのセグメントを親と子として関連
    付けるよう適宜動作し、前記コンバータ手段は、前記出
    力信号を導出するに際し、親と子がオーバラップする場
    合、「上側」タイプの接続関係の時には、その親より高
    い深度優先順位を有する関連の子セグメントを位置決め
    することにより前記イメージ内でその親の上側に子を表
    示させるように動作し、「下側」タイプの接続関係の時
    には、その親より低い深度優先順位を有する関連の子セ
    グメントを位置決めすることにより前記イメージ内でそ
    の親を上側に表示するように動作し、前記親との「上
    側」タイプの接続関係または「下側」タイプの接続関係
    にある前記子セグメントに対して、その親の境界で前記
    子セグメントをクリッピングすることなしにその親が受
    ける前記空間変換を適用し、かくして前記イメージ内で
    子セグメントがその親の境界を越えて存在することがで
    きることを特徴とする、グラフィックス出力システム。
  2. 【請求項2】前記編成手段がさらに、包含関係によって
    2つのセグメントを親と子として関連付けるよう動作
    し、前記コンバータ手段が、包含関係に応答して、対応
    する親セグメントの境界でクリッピングされるが、より
    高い深度優先順位を有するものとして関連の子セグメン
    トを位置決めするよう動作する、請求項1のグラフィッ
    クス出力システム。
  3. 【請求項3】前記編成手段が、同一の親セグメントが同
    一タイプの関係によって複数の子と関連付けられている
    場合に、前記子の相対深度優先順位をセットするよう動
    作する、請求項2のグラフィックス出力システム。
  4. 【請求項4】前記コンバータ手段が、親とその子の各々
    について、 −前記親と上側接続関係によって関連付けられた子 −親自体 −前記親と包含関係によって関連付けられた子、及び −前記親と下側接続関係によって関連付けられた子 の順序で前記グラフィックスセグメントを処理するよう
    動作し、 同一の親と同一の関係を有する複数の子がそれらの相対
    深度優先順位の順で処理され、その処理において、前記
    コンバータ手段は、前に処理されたセグメントが、処理
    中のセグメントからセグメントの階層編成を遡る場合に
    前記包含関係にあるセグメントの最初の親である場合に
    限り、処理中のセグメントが前に処理されたセグメント
    上に前記イメージ内で上書きされるように処理を行う、
    請求項1から3の何れか1のグラフィックス出力システ
    ム。
  5. 【請求項5】前記コンバータ手段が、グラフィックス出
    力装置によってイメージの形成に使用される複数のライ
    ンの各々について1組のスパンを生成するよう動作し、
    グラフィックス出力システムが指定された長さのスパン
    を装置に描かせる単一のプリミティブによって出力装置
    を制御し、このプリミティブがイメージラインのそれぞ
    れを順次構築するのに必要な回数だけ発生される、請求
    項1から4の何れか1のグラフィックス出力システム。
JP51646991A 1991-10-10 1991-10-10 グラフィックスシステムにおけるグラフィックセグメント編成 Expired - Lifetime JP3347323B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1991/001765 WO1993007582A1 (en) 1991-10-10 1991-10-10 Graphic segment organisation in a graphics system

Publications (2)

Publication Number Publication Date
JPH06511575A JPH06511575A (ja) 1994-12-22
JP3347323B2 true JP3347323B2 (ja) 2002-11-20

Family

ID=10689095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51646991A Expired - Lifetime JP3347323B2 (ja) 1991-10-10 1991-10-10 グラフィックスシステムにおけるグラフィックセグメント編成

Country Status (5)

Country Link
US (1) US6166741A (ja)
EP (1) EP0607131B1 (ja)
JP (1) JP3347323B2 (ja)
DE (1) DE69130958T2 (ja)
WO (1) WO1993007582A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3759356B2 (ja) * 1999-11-26 2006-03-22 富士通株式会社 3次元モデル管理装置
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
US9530230B2 (en) * 2008-12-18 2016-12-27 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9659392B2 (en) * 2008-12-18 2017-05-23 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9508168B2 (en) * 2008-12-18 2016-11-29 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9619738B2 (en) * 2008-12-18 2017-04-11 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9626602B2 (en) * 2008-12-18 2017-04-18 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9679403B2 (en) * 2008-12-18 2017-06-13 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9626603B2 (en) * 2008-12-18 2017-04-18 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9495780B2 (en) * 2008-12-18 2016-11-15 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US9652820B2 (en) * 2008-12-18 2017-05-16 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data
US8754909B2 (en) * 2008-12-19 2014-06-17 Xerox Corporation Method and system for utilizing transformation matrices to process rasterized image data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
US4862392A (en) * 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US4967375A (en) * 1986-03-17 1990-10-30 Star Technologies, Inc. Fast architecture for graphics processor
US4928250A (en) * 1986-07-02 1990-05-22 Hewlett-Packard Company System for deriving radiation images
US5185599A (en) * 1987-10-26 1993-02-09 Tektronix, Inc. Local display bus architecture and communications method for Raster display
JP2690110B2 (ja) * 1988-08-15 1997-12-10 沖電気工業株式会社 走査変換方法
FR2639449A1 (fr) * 1988-11-22 1990-05-25 Gen Electric Cgr Procede de projection et de representation d'un objet octree
US5058042A (en) * 1989-04-03 1991-10-15 Hewlett-Packard Company Method for employing a hierarchical display list in global rendering
US5528744A (en) * 1991-04-02 1996-06-18 International Business Machines Corporation Data processing system
JP3359634B2 (ja) * 1991-10-10 2002-12-24 ヒューレット・パッカード・カンパニー 境界内更新を備えたグラフィックス出力システム

Also Published As

Publication number Publication date
US6166741A (en) 2000-12-26
JPH06511575A (ja) 1994-12-22
EP0607131B1 (en) 1999-03-03
EP0607131A1 (en) 1994-07-27
WO1993007582A1 (en) 1993-04-15
DE69130958D1 (de) 1999-04-08
DE69130958T2 (de) 1999-07-01

Similar Documents

Publication Publication Date Title
JP3170279B2 (ja) グラフィックスシステムにおけるイメージ位置の解釈
JP3618838B2 (ja) 画像出力方法
JP4796499B2 (ja) 映像およびシーングラフインターフェイス
JP3347323B2 (ja) グラフィックスシステムにおけるグラフィックセグメント編成
JP3618839B2 (ja) 画像出力方法
JP3359634B2 (ja) 境界内更新を備えたグラフィックス出力システム
JPH0740307B2 (ja) イメ−ジのウインド−イング方法
JPH0251786A (ja) 走査変換方法
US5546524A (en) Method and apparatus for interlocking graphical objects
JP2707175B2 (ja) 図形処理システム
US5182797A (en) Multi-processor graphics display system for displaying hierarchical data structures
JPS6339947B2 (ja)
JP2554631B2 (ja) オブジエクト選択方式
JP3129717B2 (ja) 画像処理装置および画像処理方法
JPH087783B2 (ja) マルチプロセッサ・グラフィック・システム
JPH0620021A (ja) 図形処理方法および装置
Mena-Quintero et al. The {GNOME} Canvas: A Generic Engine for Structured Graphics
JPH0350686A (ja) 図形処理方式
JPH02143325A (ja) ウィンドウ表示方式
Gaman et al. Drawing with PHIGS
JPH03189877A (ja) ビットマップ管理方式
JPH01200489A (ja) 三次元図形の処理装置
JPH03233683A (ja) 図形処理システムにおけるセグメント登録・管理方式
JPH11296662A (ja) 図形割付装置
JPH02244285A (ja) レンダリング処理のスキツプ処理方法及び表示処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080906

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090906

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100906

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110906

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110906

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10