JPH06511576A - 境界内更新を備えたグラフィックス出力システム - Google Patents

境界内更新を備えたグラフィックス出力システム

Info

Publication number
JPH06511576A
JPH06511576A JP3516470A JP51647091A JPH06511576A JP H06511576 A JPH06511576 A JP H06511576A JP 3516470 A JP3516470 A JP 3516470A JP 51647091 A JP51647091 A JP 51647091A JP H06511576 A JPH06511576 A JP H06511576A
Authority
JP
Japan
Prior art keywords
segment
segments
image
output system
span
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.)
Granted
Application number
JP3516470A
Other languages
English (en)
Other versions
JP3359634B2 (ja
Inventor
ヘミングウェイ,ピーター
Original Assignee
ヒューレット・パッカード・カンパニー
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 ヒューレット・パッカード・カンパニー filed Critical ヒューレット・パッカード・カンパニー
Publication of JPH06511576A publication Critical patent/JPH06511576A/ja
Application granted granted Critical
Publication of JP3359634B2 publication Critical patent/JP3359634B2/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
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 境界内更新を備えたグラフィックス出カシステム良−酉−分−M 本発明は、出力イメージの境界内更新を実行することのできる、即ち更新を受け るイメージの領域を限定することのできるグラフィックス出力システムに関する 。
腎−泉一技一意 表示しようとする2次元イメージの内部表現を、そのイメージ内でオーバラップ する可能性のある個別のグラフィックセグメントにより構築することは周知であ る。これらのグラフィックセグメントをソリッド体として表示する場合には、2 つのセグメントの間にオーバラップがある場合に何れのセグメントが優先するか を判定する必要がある。この深度優先順位の問題は一般に、種々のセグメントに 対して異なる優先順位を割り当て(明示的に、或いはセグメントの階層編成を通 じて暗示的に)、次いで関連するセグメントに割り当てられた優先順位に従って 、オーバラップによる衝突を解決することによって処理される。実際の解決処理 は、グラフィ・ンクセグメントを出力イメージへと変換する全体的な処理の一部 として実行される。
多数のセグメントからのイメージ構築と優先順位解決の問題とについての全般的 な議論は、”Pr1nciples of Interactive Comp uterGraphics”William M、 Newman and R obert F、 5proull、 5econd edition、 Mc Graw−Billなどの、グラフィックスシステムに関する標準的な殆どの解 説書に記載されている。
出力イメージの更新が望まれる場合には、既存のグラフィックセグメントの集合 が、例えば1以上のセグメントの削除又は追加により、或いは1以上のセグメン トの定義パラメータの変更によって修正される。次いで改めて、修正されたセグ メントの集合に関して、セグメントを新たな出力イメージへと変換する処理を実 行することができる。
出力イメージの全てを再構成することは一般に、セグメント集合の修正によって イメージの小部分だけが影響を受ける場合、効率的ではない。そこで、イメージ 表現を記憶し、影響を受けるイメージ領域を包囲するのに十分な、その表現中の ある部分だけに限定して更新を行うことが知られている。1つの公知のシステム では、出力イメージは、更新領域を境界付ける矩形のタイルの配列へと概念的に 分割される。ベースとなっているセグメント集合が修正されたならば、イメージ 表現の更新は、その修正により影響を受ける更新領域の再変換に限定される。別 の公知のシステムでは、イメージ表現の更新は、影響を受けるイメージ領域を囲 む矩形の境界ボックスに限定される。かくしてこれらの従来の方法は双方とも、 更新領域を区切るために人為的な境界に依存している。
本発明の目的は、更新領域がより自然な仕方で境界付けられるグラフィックス出 力システムを提供することにある。
ロ の 本発明の1つの側面によれば、 一2次元出力イメージ内で潜在的にオーバラップする関係で表示することが意図 されるグラフィックセグメントの集合を記憶するセグメント記憶手段と、前記グ ラフィックセグメントが各セグメントの境界を決定する境界データと、出力イメ ージ中のセグメントの相対深度優先順位及び優先順位が低い上書き可能なセグメ ント(ここでは対象となるセグメントの「背景」セグメント)の境界に対する前 記各セグメントの全てのクリッピングを決定する相互関係データとを含むデータ によって特定されることと、−前記グラフィックセグメントの集合を修正する修 正手段と、−セグメント間の全ての相互作用を考慮に入れた状態で、記憶された グラフィックセグメントを前記2次元イメージを表すイメージ表現としてレンダ リングするコンバータ手段と、前記コンバータ手段が前記イメージ表現を記憶す るよう動作することと、前記コンバータ手段が前記グラフィックセグメントの集 合の修正に応じてその前記イメージ表現を、前記修正に関係する1以上のセグメ ントの境界により区切られた領域内で更新することからなる、グラフィックス出 力システムが提供される。
かくして更新領域は、グラフィックセグメントによって提供される自然な境界に よって区切られる。
前述したイメージ表現は、各々のイメージ画素をマツピングするフレームバッフ ァの形式をとることができる。しかしながらイメージ表現は、複数のイメージラ インの各々についてそのラインを作り上げる連続したスパンをリストしたスパン テーブルによって構成される、圧縮されたイメージ表現であることが好ましい。
1つの実施例では、コンバータ手段は新たなセグメントの追加による前記グラフ ィックセグメントの集合の修正に応じて、修正された集合から下記のセグメント 、即ち 一前記新たなセグメントよりも深度優先順位が高いセグメント、−前記新たなセ グメントの全ての背景セグメント、及び−前記新たなセグメント自体、 をレンダリングすることによりイメージ表現を更新するよう動作し、これらの新 たにレンダリングされたセグメントは、次いで前記イメージ表現へと、しかし前 記新たなセグメントの境界内においてのみ書き込まれる。
同様にして、コンバータ手段は、既存セグメントの削除による前記グラフィック セグメントの集合の修正に応じて、修正された集合から全てのセグメントをレン ダリングするが、それらを削除されたセグメントの境界内においてのみ前記イメ ージ表現中に書き込むことによって前記イメージ表現を更新するように構成する ことができる。
前記の双方の場合とも、コンバータ手段は有利な例では、先ず前記新たな/削除 されたセグメントに対応する前記イメージ表現の領域を全てのセグメントにより 上書きできるルート領域としてマークし、その後前記修正された集合からレンダ リングされたセグメントを、各々のセグメントが前記ルート領域又は優先順位が 下位のセグメントのみを上書きするようにして前記イメージ表現へと書き込むこ とによって、前記イメージ表現の上書きを新たな/削除されたセグメントの境界 内に限定する。
境界内更新を容易にするために、コンバータ手段は、現在のイメージの構成につ いての先行知識を利用することが好適である。この目的のため、コンバータ手段 は前記イメージ内で各位置に現れるセグメントを示す関連付はデータを保持する (例えば、イメージ表現がスパンテーブルである場合には、関連付はデータは関 連するセグメントの識別性を各スパンに付随させることによって得られる)。
このような関連付はデータが利用可能であれば、コンバータ手段は新たなセグメ ントの追加による前記グラフィックセグメントの集合の修正に応じて、前記関連 付はデータから、前記新たなセグメントがその背景セグメントとだけ相互作用す るか否かを判定することによって前記イメージ表現を更新するよう動作すること ができる。
相互作用する場合には、コンバータ手段は新たなセグメントをレンダリングする よう処理を進め、新たにレンダリングされたセグメントで既存のイメージ表現を 上書きする。新たなセグメントの相互作用がその背景セグメントとだけ行われる のではない場合には、コンバータ手段は、新たなセグメントをレンダリングし、 既存セグメントが新たなセグメントに対する背景セグメントであるか、或いは既 存のセグメントが前記新たなセグメントよりも低い深度優先順位を有すると共に 前記新たなセグメントと同じ背景セグメントを有するか又は前記同じ背景セグメ ントを有するセグメント上に直接的又は間接的に書き込まれる位置において、既 存のイメージ表現を新たにレンダリングされたセグメントで上書きすることによ って、イメージ表現を更新するよう構成することができる(セグメント間の相互 関係は前述した相互関係データを参照して確認できる)。
同様にして、関連付はデータを利用できる場合には、コンバータ手段は既存のデ ータの削除による前記グラフィックセグメントの集合の修正に応じて、削除され たセグメントが前記イメージ内でその背景セグメントとだけ相互作用するか否か を判定することによって、d″lI記イメージ表現を更新するよう動作すること ができ、相互作用する場合には前記背景データだけを再レンダリングし、前記関 連付はデータによれば削除されたセグメントが前記イメージ表現中で現れていた 位置において、既存のイメージ表現を前記新たにレンダリングされた背景セグメ ントで上書きする。好ましくは、前記の判定を容易にするために、各セグメント にはそれがその背景セグメントとだけ相互作用するか否かを示すフラグが立てら れ、セグメントフラグはコンバータ手段がイメージを更新する毎に、コンバータ 手段によって更新される。削除されたセグメントの相互作用がその背景とだけ行 われるのではない場合には、コンバータ手段は、背景セグメント及び前記削除さ れたデータよりも深度優先順位が低いセグメントを再レンダリングすることによ って、イメージ表現を更新するよう構成することができ、新たにレンダリングさ れるセグメントは、前記関連付はデータによれば、前記削除されたセグメントが 前記イメージ表現内で現れていた位置においてのみ、前記既存のイメージ表現内 に書き込まれる。
グラフィックス出力システムの別の実施例においては、コンバータ手段は、前記 イメージ内の各々の位置に現れる最上レベルのセグメントと、前記各々の位置に ついて前記最上レベルのセグメントの下側にある全ての次レベルのセグメントの 双方を示す、関連付はデータを保持するように動作する。この場合にコンバータ 手段は、既存のセグメントの削除による前記グラフィックセグメントの集合の修 正に応じて、前記イメージ表現内で前記削除されたセグメントが最上レベルのセ グメントとして出現する毎に、対応する次レベルのセグメントを前記最上レベル のセグメントへとアップグレードさせることにより、前記出現を置き換えるよう 動作する。
セグメントが従属するセグメント、即ち子セグメントと共に追加又は削除される 場合には、これら後者のセグメントは各々、新たに追加又は削除されたセグメン トとして別個に順次処理されることができる。しかしながら好ましくは、子セグ メントはその親セグメントと共に前記コンバータ手段によって処理され、その際 に更新境界は子を包囲するように拡張される。
前記セグメントの集合の修正が、前記イメージ中での他のセグメントの出現範囲 に影響を及ぼす仕方で既存のセグメントを修正することを含む場合には、この修 正は有利には、前記コンバータ手段により、前記既存のセグメントの修正されな い形態での削除として、及び修正後の形態において前記既存のセグメントに対応 する新たなセグメントの追加として扱われる。
K瓦曵血巣立栽贋 以下では非限定的な実施例によって、添付図面を参照しつつ本発明を具体化した グラフィックス出力システムを説明する。図面において、 図1は、2次元イメージとして提示されるグラフィックセグメントの編1戊と、 グラフィックス出力装置への出力のためスパンテーブルに保持される一連のスパ ンへのこれらのセグメントの変換の両方の働きをするレンダラを示す、グラフィ ックス出力システムの機能ブロック図である。
図2は、グラフィックセグメントに関連するデータフィールドと、そのセグメン トと他のセグメントとの可能な相互関係を示す図である。
図3は、関係するセグメントから形成された、結果的に得られる2次元イメージ により、図2に示されたさまざまなセグメント間関係の性質を示す図である。
図4は、図1のレンダラによって形成されるセグメントツリーの1例を示す図で ある。
図5は、図4の例示的なセグメントツリーに対応する2次元イメージを示す図で ある。
図6は、セグメントツリーからスキャンテーブルを形成する際に図1のレンダラ によって行われる変換処理の全般的な進行を示すフローチャートである。
図7は、図6の変換処理のうち、グラフィックセグメントのすべてに関するエツ ジレコードを含むエツジテーブルを形成するステップを示す図である。
図8は、図6の変換処理の過程の間に形成されるアクティブエツジリストの性質 を示す図である。
図9は、図6の変換処理によって作られるスパンテーブルの性質を示す図である 。
図1Oは、3つの相互にリンクされたスパンデータ構造を示す図である。
図11は、図4の例示的セグメントツリー及び図5の例示的イメージに関するス パンテーブルのスパンリストの1つの作成過程を示す図である。
図12は、図1のシステムにおいてイメージ更新の制御がどのように行われるか を示す図である。
図13は、図1のコンバータにより実行される境界内更新処理の一部のフローチ ャートである。
日 るための モード 図1に機能ブロック図の形式で示されたグラフィックス出力システムには、基本 的に、グラフィカルアプリケーションlOをビデオ表示装置又はプリンタなどの グラフィックス出力装置12にインタフェースするよう動作するレンダラ11が 含まれる。
グラフィカルアプリケーションlOは、レンダラ11に出力イメージを構築する よう命令するが、この命令は、グラフィックセグメント21を作成、修正又は削 除するコマンドの形態である。これらのグラフィックスセグメントは、出力イメ ージの構築に使用される唯一のグラフィック要素であり、レンダラ11のセグメ ントオーガナイザ13内で作成され、記憶される。オーガナイザ13は、セグメ ント21をセグメントツリー20に編成し、このセグメントツリー20は後で詳 細に説明するように、最終イメージ内でのセグメントの相互関係を決定する。グ ラフィックセグメント21は、最終イメージ内で互いにオーバラップする可能性 があり、従って深度の優先順位を解決することが必要になる。
各々のグラフィックセグメント21は、その境界、フィル(充填)及び変換によ って定義される。これらのパラメータについては以下で詳細に説明するが、今の ところは、境界、フィル及び変換のパラメータが一般に、必要に応じてセグメン ト21によって参照されるそれぞれのデータ構造22.23及び24内に、オー ガナイザ13によって記憶されることに留意すれば十分である。
グラフィカルアプリケーションlOが、セグメントツリー20によって所望の出 力イメージを構築するようレンダラ11に命令し終えたならば、このセグメント ツリーはレンダラ11のコンノく一夕14によって、グラフィックス出力装置1 2への出力に適した形式に変換される。具体的に言うと、このセグメントツリー はスパンテーブル60へと変換され、そこにおいてイメージは1以上のスパンか ら構成されるラインの連続として表される。後で説明するように、スノくンテー ブル60を構成するに際してコンバータ14は、まず工・ソジテーブルデータ構 造61を形成し、次いでアクティブエツジリストデータ構造62を使用して出力 イメージの各ラインを構築する。この変換処理では、セグメントの相互関係と深 度優先順位によって、セグメント間のオーバラップ衝突はすべて解決される。
スパンテーブル60に含まれるイメージ情報は次いで、スパン出力処理15によ ってグラフィックス出力装置12に出力される。この処理では、各ラインが完了 するごとに1ラインずつスパン情報を出力するか、スパンテーブルが完了するま で待ってから装置12にスノ々ン情報を渡すかの、何れを行うこともできる。ス パン情報の実際の受け渡しは、単に特定の長さのスパンを描(よう出力装置12 に命令する単一のプリミティブDrawspan”によって行われる。
グラフィックス出力装置12は一般に、最終出力イメージを表示又は印刷する前 に、レンダラ11から受け取った情報を)くソファ1フ内に緩衝記憶する。多く の場合、バッファ17は、完全なイメージ表現を保持するフレームバッファであ る。
レンダラ11の全体的な動作は制御ユニット16によって制御されるが、制御ユ ニット16の主要機能は、種々の要素の動作をシーケンス化することである。具 体的に言うと、制御ユニ・ノド16は、グラフィカルアプリケーション10がセ グメントツリー20の構成に関してセグメントオーガナイザ13への命令を完了 するまで、コンバータ14がその変換処理を開始しないことを保証する。さらに 制御ユニツトI6は、スパン出力処理15がスパンテーブル60の構築と調整さ れることを保証する。制御ユニット16は独立した機能的実存として図示されて いるが、実際にはその機能を他の機能要素内に埋め込んでよいことが了解されよ う。従って例えば、セグメントオーガナイザ13がインクロック構成を具現化し て、グラフィカルアプリケーション10とコンバータ14がセグメントツリー2 0に同時にアクセスできないことを保証することができる。
上述したレンダラ11の概観から、これがグラフィカルアプリケーション10と グラフィックス出力装置12の間に、概念的に単純なインタフェースを提供する ことがわかる。なぜなら一方では、レンダラ11のグラフィカルアプリケーショ ンIOとのインタフェースは単一のグラフィックス要素(即ちグラフィックスセ グメント21)によって定義され、また他方では、グラフィックス出力装置12 とのインタフェースは単一の演算プリミティブ(Drawspan)によって定 義されているからである。この後者の特徴によって、レンダラ11を異なる出力 装置の間で簡単に移植できるようになっている。
セグメントとセグメントオーガナイザ グラフィックセグメント21の属性と可能な相互関係を、図2のセグメント21 Aを参照して説明する(本明細書では、「グラフィ・ンクセグメント」という用 語がセグメントの表現すべてに適用されることに注意しなければならない。図2 の場合、セグメント21Aは、そのセグメントのパラメータ又は属性を定義する フィールド28なL)シ38を含むデータ構造によって表現されている)。
セグメント21Aに関連する第1のフィールドは、そのセグメントを一意に識別 するセグメント識別フィールド28である。残りの定義フィールドは2つのグル ープ、即ちそのセグメントが最終イメージ中でどのように現れるのかに直接関係 するフィールド2!l、 30.31゜33からなる第1のグループと、セグメ ントツリー20におけるセグメント21Aと他のセグメントとの相互関係を定義 するフィールド34ないし38からなる第2のグループ(これらの相互関係は勿 論、そのセグメントが最終イメージ中でどのように表示されるかにも影響するが 、この影響はフィールド29.30.31.33はど個別的ではない)に分割さ れる。
フィールド29は、定義点く即ち頂点)によって特定される1以上の輪郭によっ てセグメントの境界を定義するが、ここで点とはXY座標空間内におけるX−Y 座標対であり、そこにおいて各々の座標方向における距離の基本単位は「点単位 」 (これは、グラフィカルアプリケーション10とレンダラ11の間で使用さ れ、以下に説明する方法で現実のイメージ次元に変換される概念上の単位である )である。実際には、セグメントデータ構造には一般に境界の完全な仕様は含ま れず、単にフィールド29において定義点の1以上の組を含む境界データ構造2 2を指すポインタが保持されるに過ぎない。この配置構成を用いると、複数のセ グメンi−が共通の境界定義を共有できるようになる。セグメント境界は、幅が Oであるとみなされる。セグメントの境界は、規則的又は不規則的な如何なる形 状であることもできる。
セグメントは境界内において、3つの形式、即ちソリッドカラー、ハーフトーン 、又はビットマツプの何れかである「フィル」を含む。
ソリッドカラーフィルの場合、関連する色仕様は、フィルフィールド30に直接 に保持される。他のタイプのフィルの場合には、フィールド30は、所望とする フィルの性質を指定するフィルデータ構造23を指すポインタを保持する。
境界フィールド29とフィルフィールド30は、セグメント21Aの基本的な形 状と内容を定義する。次いで親セグメントに対する相対位置が、フィールド31 で指定される相対変換行列(RTM)によって定義される。この場合にも、この 指定は通常、フィールド31に保持さね変換データ構造24を指すポインタによ る。
相対変換行列(RTM)は、下記形式の3×3行列である。
RTMは、1つの座標空間内の点(及び境界−なぜなら境界は点だけから構成さ れる)を、行列によって定義される対応の点に変換するのに使用される。Sxと SYは、X成分とY成分に対するスケーリングを行う。TxとTyは、ある点の X成分とY成分に対する平行移動をもたらす。RxとRyは、X成分とY成分の せん断値であり、Sx及びsyと組み合わせて回転をもたらすのに使用される。
この行列の最後の列は、咀純な行列積によって、複数の3x3行列を単一の行列 へと連結することができるようにするために設けられている。
フィールド33は、現在のイメージ中に表示されないものとしてセグメントにフ ラグを立てるのに使用される可視性フィールドである。
この特徴は基本的には対話式アプリケーションについて使用するためのものであ り、そこにおいてセグメントはイメージ中において一時的に隠蔽されるだけであ り、迅速に回復することが必要とされうる。
セグメント21Δのフィールド34ないし38からなる第2のグループでは、セ グメント21Aと他のセグメントとの関係が、これらの他のセグメントを指すポ インタによって定義される。しかしてフィールド34には、セグメント21Aの 親セグメントを構成するセグメント21Pを指すポインタが含まれる。フィール ド35には、セグメント21Aの兄第セグメント21S(1)(即ち、セグメン ト21Aと同一の親21Pを有するセグメント)を指すポインタが含まれる。セ グメント21Aと213(1)の兄弟関係は、図2では矢印39によって示され ている。兄第セグメント21S(1)にも同様に、別の兄第21S(2)を指す 兄第ポインタが含まれてよい。同様に、セグメント21A自体が、別の兄第(図 示せず)から指されている場合もある。このようにして、同一の親セグメント2 1Pを有する兄第に関して、兄弟連鎖が確立される。実際には以下で明らかにな るように、同一の親を有してはいるが、その親との関係が異なる兄第については 、別々の兄弟連鎖が存在する。
兄弟連鎖内での兄第の順序が、兄第の相対的な深度の優先順位を決定することに なる。
セグメント21Aはまたフィールド36.37及び38内に、子セグメント21 Cを指す3つのポインタを含み、各々のポインタは異なるタイプの子セグメント を指す。しかしてフィールド36は、セグメント21Aと「上側接続」関係にあ る子セグメント21Cを指し、この関係は図2では矢印40によって示されてい る。実際には、フィールド36に含まれるポインタは、上側接続関係によってセ グメント21Aと関連するすべてのセグメント21Cの兄弟連鎖25内の最初の 子を指している。同様に、フィールド37に保持されるポインタは、「包含」関 係41によってセグメント21Aと関連するすべての子セグメントを含む兄弟連 鎖26内の最初の子セグメント21Cを指す。さらに、フィールド38に保持さ れるポインタは、「下側接続」関係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に対する相対的な位置が維持される。
ライン(1v)には、子セグメント44がその親43に対して下側接続関係であ る場合に、これら2つのセグメントがオーバラップする場合には親がより高い深 度優先順位を有し、従って最終出力イメージでは子セグメントの上側に表示され ることが示されている。上側接続関係の場合と同様に、下側接続関係についても 、子セグメント44は親43の境界によって制限されておらず、親の境界を越え て延びることができる。これは、子が親の境界でクリッピングされる包含関係と は異なる。下側接続関係では、他の親子関係と同様に、子セグメント44がその 親の受ける空間変換を受ける結果となり、従って例えば親セグメント43が90 °回転すると子セグメントも同様に回転し、親に対する相対的な位置関係が維持 される。
子セグメントは、親に対して上述の直接的な関係を有すると同時に、その親から 下記のものを継承する。
(a)親がその親から継承した空間変換。これにより、あるセグメントの最終イ メージ中での位置、向き及びサイズは、そのセグメントの親に対する相対的な空 間変換と、その先祖のすべての空間変換との組み合わせによって決定される(セ グメントのRTMに関して、あるセグメントの全体的な変換は、その先祖のすべ ての相対変換行列とそれ自体のRTMとを連結して累積変換行列にしたものであ り、本明細書ではこれを連結変換行列又はCTMと称する)。
境界を越えての子のクリッピングと上書きを決定するので、上側接続関係又は下 側接続関係によって親と関係する子に特に関連がある。
後者の継承は、各々の子セグメントが、その子が上書きすることはできるが、し かしその境界内に収まるようにクリッピングされる「背景」セグメントを有する 、という概念を生ずる。子セグメントが包含関係によって親と関連する場合には 、親はその子の背景セグメントをも構成する。しかしながら、子が上側接続関係 又は下側接続関係によってその親と関連する場合には、その子の背景セグメント はその親ではな(、問題とする子セグメントからセグメントツリーを遡る時に包 含関係を通じて最初に到達される先祖セグメントである。実際、子の背景セグメ ントについての後者による識別は、一般的に成り立つ。というのも、子が包含関 係によって親と関係する場合には、包含関係を通じてその子から最初に到達する 先祖セグメントは、もちろんその子の親になるからである。
図4と図5に、セグメントツリーの例とそれに対応する出力イメージを示す。図 4のセグメントツリーでは、セグメントは輪郭によって表されており、セグメン ト境界内で下線付きで示されている識別文字raJないしrmJで符号付けされ ている。また各セグメント境界内には、(数字、文字)対が括弧内で示されてい る。この対の中の文字は、対象とするセグメントの背景セグメントを識別し、こ れに対して(数字、文字)対の中の数字は、以下でその目的を説明する処理順序 番号である。
図4のセグメントフリーのセグメントraJは、このツリーのルートセグメント であり、従って特に重要である。ルートセグメントの相対変換行列に含まれるス ケーリング係数は実際上、レンダラ11によって使用される内部点単位次元と、 グラフィックス出力装置12によって表示される出力イメージの次元(多くの場 合、画素によって表現される)との間のスケーリングを定義する。さらに、境界 によって定義されるルー1−セグメントのサイズは一般に、出力装置12によっ て使用できるようにされる潜在的な出力イメージ領域を(ルートのRTMで定義 される適当なスケーリングの後に)完全に占めるようにセットされる。一般に、 セグメントフリーの他のすべてのセグメントは、包含関係41を通じてルートセ グメントと直接的又は間接的に関連しており、従ってそれらは、ルートセグメン トの境界内に収まるようにクリッピングされる。上側接続関係によってルートセ グメントに接続されるセグメントは通常、出力イメージを横切って高速に移動す るセグメント(例えば対話式アプリケーションのカーソル)だけである。ルート セグメントは、通常は出力イメージを完全に占めるので、ルートセグメントから 下側接続関係が直接に使用されることはない。
図5は、出力イメージの限界を定める長方形としてルートセグメントraJを示 し、他のすべてのセグメントはルートセグメント内に含まれる。
セグメントrcJは、実際上ルートセグメントと直接の包含関係にある唯一のセ グメントである。図かられかるように、セグメントrcJは、3グループの子、 即ちセグメントrcJの上側に現れることのできる上側グループ(セグメントb 、eSf及びJ)、セグメントrcJの境界でクリッピングされるがセグメント rcJを上書きすることのできる包含グループのセグメント(セグメントg1h 、1、m及びk)、及びセグメントrcJの下側に現れる下側セグメントのグル ープ(セグメントd及びi)を有する。ルートセグメントraJ内でセグメント rcJを移動(セグメントrcJのRTMの修正によって)させると、その子セ グメントのすべてが同様に動かされる結果となる。
図4のセグメントツリーからの図5の出力イメージの構成は、セグメント間の可 能な関係の性質に関する前述の説明を考慮すれば明白になるはずである。従って 、図4と図面の簡単な説明はここでは行わない。しかしなが呟いくつかの重要な 特徴を下に述べる。
兄第の相対深度優先順位は、図4及び図5ではセグメントreJ及び[ゴ」によ って示されている。図かられかるように、セグメント「f」はセグメントreJ の兄第であるが、親セグメントrbJに包含される子セグメントの兄弟連鎖中で 下位に現れることから、より低い優先順位を有する。従って、セグメントreJ 及びrfJがオーバラップする場合は、セグメントreJが出力イメージに表示 される。セグメン1〜「e」はまた、セグメント「f」に包含される子であるセ グメント「J」にもオーバラップする(セグメントreJは、セグメントrfJ の上側又は下側のすべての子ともオーバラップする)。
セグメントrlJは、−L側接続関係によって親と関係するセグメントを示し、 そのようなセグメントは親とオー71ランプする場合には親より高い優先順位を 有するが、実際に親とオーツくう・ノブする必要がないことを示すものである。
オーバラップが発生するか否かは、子セグメント「)」の相対変換行列に依存し ている。
セグメントrmJは、セグメント「1」に対して上側接続関係にあるセグメント であり、このセグメント「1」は既に述べたように、セグメントrhJに対して 1−側接続関係にある。これらのセグメントは両方とも、セグメント「1」及び rmJの背景セグメントとなるセグメントツリー上に;i)き込まれる。セグメ ントrmJに関して図かられかるように、あるセグメントは、背景セグメントと 直接の包含関係にない時であっても、背景セグメントによってクリッピングされ る。
ここで図1の検討に戻ると、セグメントオーガナイザ13は一般に、汎用プロセ ッサ上で実行される適当なプログラムコードの形態をとり、グラフィカルアプリ ケーションからの生成コマンド、修正コマンド及び削除コマンドに応答して、セ グメントツリー20を構成する。
具体的に言うと、セグメントオーガナイザ13は、必要に応じてセグメント、境 界、フィル及び変換インスタンスオブジェクトを作成するだめのクラスオブジェ クトが設けられた、オブジェクト指向の語法で実施できる。この場合、例えばグ ラフィカルアプリケーション10が、新セグメントを生成して既存のツリー構造 へと追加することを望む場合には、適当な変換、フィル及び境界のインスタンス を作成するために(適当なインスタンスがまだ存在しないと仮定する)、まず変 換、フィル及び境界についてのクラスオブジェクトにメツセージを送る。適当な 変換、フィル及び境界インスタンスを作成するためにクラスオブジェクトにメソ セージを送るに際して、アプリケーションIOは必要なデータを供給する。次に 、アプリケーションIOはセグメントクラスオブジェクトにメツセージを送り、 新たに作成された境界、フィル及び変換インスタンスを使用して、アプリケーシ ョン10によって指定された他のセグメントとの関連を有する新たなセグメント インスタンスを作成することを要求する。新たなセグメントを作成する際には、 例えば、既存の兄第よりも高い兄弟優先順位を有するものとしてセグメントを指 定することが必要になる場合もある。このことはもちろん、既存の親セグメント や兄第セグメントに含まれるポインタの調節を必要とする。このような調節は、 セグメントインスタンスオフ゛ジエクト自体によって、オフ゛ジエクト間での適 当なメソセージ送受によって処理される。このようなオブジェクト指向版のセグ メントオーガナイザ13の実施詳細は、当業者には明らかであり、従ってここで はこれ以上説明しない。
グラフィカルアプリケーションlOのコマンドに応答してオーガナイザ13がセ グメントツリー20を構築している時点で、コンバータ14の後続動作を容易に するためにい(つかのデータ項目を計算できることが着目されよう。具体的に言 うと、コンバータ14による使用のために、各セグメントの連結変換行列と背景 セグメントを決定し、キャッシュ記憶できる。しかしながらこの実施例では、こ れらの項目はコンバータ14自体によって決定される。
んぺz−L二久夾さ卑ヌ隻 コンバータ14は、セグメントツリー20のセグメントをイメージラインの組に 変換する変換処理を実行する。このイメージラインの組のそれぞれは、1以上の スパンを含むスパンリストによって表され、スパンリストはスパンテーブル60 に記憶されている。この変換処理では、セグメントは最終イメージ内の正しい位 置に置かれ、オーバラップ衝突はすべて解決され、セグメントは内部の点単位座 標から装置の座標へとスケーリングされる。装置座標は一般に、基準のXY座標 フレーム内の画素によって指定される。スパンリストによって表現されたイメー ジラインは、基準の装置フレームのY座標方向に延びる(これはバッファ17が 一般に、アクセス効率向上のため同一イメージライン内の画素がバッファ内で隣 接するように編成されるからである)。適当な情況の下では、X座標方向に延び るようにスパンリストを配置構成できることが理解されよう。
この変換処理の全体的な進行を図6に示す。この変換処理の第1ステツプは、処 理される順番でもってセグメントに番号を付けることである(ステップ50)。
その後、CTMと背景セグメントが決定される(実際には、この決定は好適には セグメント番号付けに際して行うことができるものであり、従ってステップ50 の一部として図示されている)。次に、エツジテーブルが形成され、すべてのセ グメントを規定するエツジのすべてに関するエツジレコードが格納される(ステ ップ51及び52)。最後に、対象とする現在のイメージラインと交わるエツジ のエツジレコードを検査することによって、一時に1ラインずつスパンテーブル が構築される(ステップ53ないし55)。
まずセグメント処理順序番号(ステップ50)を検討すると、ここでの全般的な 目的は、セグメントが深度優先順位の順に処理されることを保証し、それにより 後から処理されるセグメントが前に処理されたセグメントを上書きしないように することによって、オーバラップ衝突が簡単に解決されるようにすることである 。しかしながら、包含される子とその子孫は、それらを包含する先祖の境界でク リッピングされるので、包含される子(とその子孫)が背景セグメントを上書き する場合であっても、前者を処理する前に背景セグメントを処理することが必要 である。なぜならそうでなければ、包含される子を処理する時に、クリッピング 境界がイメージ座標に関して既知でな(なるからである。この要件から、後から 処理されるセグメントが前に処理されたセグメントを上書きすることができない という基本的な書込規則に対して、セグメントが背景セグメントを上書きしても よいという但し書きが追加されることになる。
セグメントに番号を付ける際には、ツリーはルートセグメントから横断される。
この場合にセグメントごとに、関連セグメントの番号付けの優先順位に関して、 下記の規則が適用される。
−検討中のセグメントの上側の子(とその子孫のすべて)にまず番号を付ける。
−その後、検討中のセグメントに番号を付ける。
−次に、検討中のセグメントに包含されるセグメント(とその子孫)に番号を付 ける。
一最後に、検討中のセグメントの下側のセグメント(とその子孫)に番号を付け る。
兄第に関してはリストの先頭から処理され、その結果リストの先頭の兄第セグメ ントとその子孫のすべてが最初に番号付けされ、その後に第2の兄第(とその子 孫のすべて)が番号付けされ、そして同一の兄第リスト内の他の兄第についても 同様に処理される。この横断番号性はアルゴリズムは、より形式的には下記の擬 似コードによって表現できる。
PROCNUM処理順序番号を割り当てるための再帰的ルーチン。
”TTh15−3e” = 現在の親セグメント − ローカル”S” −対象 とする子 −ローカル “Number” −処理順序番号 −グローバル1、SをTTh15−3eの 最初の上側の子にセットして、Th1s Segの上側の子がな(なるまで下記 を繰り返す。ただし、Sは各繰返しの前に次の上側の子にセットする。
−セグメントSを現在の親セグメントとして、ルーチンPROCNLIMを実行 。
2、Numberをインクリメントする。
3、 Thisjegの処理順序番号としてNumberを割り当てる。
4、SをThisjegの最初の包含される子にセットして、TTh15−5e に包含される子がな(なるまで下記を繰り返す。ただし、Sは各繰返しの前に次 の包含される子にセットする。
−セグメントSを現在の親セグメントとして、ルーチンPROCNUMを実行。
5、SをTTh15−3eの最初の下側の子にセットして、TTh15−3eの 下側の子がなくなるまで下記を繰り返す。ただし、Sは各繰返しの前に次の下側 の子にセットする。
一セグメントSを現在の親セグメントとして、ルーチンPROCNUMを実行。
この割り当てられた処理順序番号を使用することによって、前に処理されたセグ メントが後で処理されるセグメントの背景セグメントである場合を除き後で処理 されるセグメントは前に処理されたセグメントを上書きできないという上述の書 込み規則に従って、セグメントツリーから出力イメージを描き上げることができ る。
セグメントツリーをイメージに変換するための上述の書込み規則は、この変換に 関与する処理の詳細とは無関係に適用される。言い換えると、この規則は、コン バータ14によって実行される処理だけではな(、セグメントツリーから手によ って物理的にイメージを描き上げる場合にも適用される。読者が図4のセグメン トツリーから、既にセグメントに関して注釈ずみの処理順序番号付け(この番号 付けが上記の番号付はアルゴリズムに従って決定される)を使用して図5を再現 してみれば、これを簡単に理解できるであろう。
セグメントが番号付けされた後(又は既に述べたように、この番号付けと同時に )、各セグメントのCTMと背景が決定される。決定のそれぞれは、スタック( 後入れ先出し即ちLIFOデータ構造)を使用して簡単に達成できる。
しかしてCTM決定に関しては、ルートセグメントのRTM(そのCTMでもあ る)が最初に07Mスタックに入れられ、次いでセグメントツリーが横断される 。親子関係を下るか兄弟関係を横切ることによっであるセグメントに始めて出会 うごとに、そのRTMを07Mスタックの先頭にあるCTMと組み合わせること によって、そのCTMが決定される。新たに決定されたCTMは、次いでセグメ ントデータと共にキャッシュ記憶され、さらに、スタックの先頭に置かれる。親 子関係を遡るか兄弟関係を横切ることによっであるセグメントを出る時には、そ のCTMは07Mスタックの先頭から除去される。
背景セグメントの決定も同様の仕方で行われ、背景スタックはセグメントツリー の横断を開始する前に、空に初期設定される。親子包含関係を下るたびに、親の 識別子が背景スタックに入れられ、これに対して包含関係を遡るたびに、スタッ ク先頭の入力項目が除去される。背景スタックの先頭入力項目によって、ツリー の横断に際して到達した現在のセグメントの背景セグメントが識別される。ある セグメントの背景の識別子は、セグメントデータと共にキャッシュ記憶される。
セグメントに番号を付け、CTMと背景を決定した後に、エツジテーブル61が 作成され、データが書き込まれる(ステップ51及び52)。
エツジテーブルは、出力イメージのY座標ラインごとに1人力項目を含むデータ 構造である。ラインごとの入力項目は、装置座標においてそのラインに開始Y座 標を有する全てのセグメントエツジのリストであり、このリストはエツジレコー ド63のリンクリストによって形成され、このリストの最初のエツジレコードは 、エツジテーブルデータ構造61に保持されるポインタによって指されている。
特定のY座標ラインに対応する開始Y座標を有するエツジが存在しない場合には 、エツジテーブル内の対応する入力項目には、空白がセットされる。
各エツジレコード63には、対応するセグメントエツジを装置座標によって記述 するデータが、そのエツジが由来するセグメントの識別rと、好ましくはそのセ グメントの処理順序番号及び背景と共に含まれる(ただし最後の2つの項目は、 セグメント自体を参照することによって必要な時にい・つでも取得できる)。
処理順序番号に従って各セグメントを順に処理することによって、エツジテーブ ルが入力される。実際、出力イメージ全体がレンダリングされる場合には、エツ ジテーブルを形成するためにセグメントが処理される順序は問題ではない。ある セグメントを処理するためには、セグメント境界のエツジのそれぞれ又はセグメ ント境界を作り上げている輪郭のそれぞれが、そのセグメントのCTMを適用す ることによって出力イメージ形式に変換され、その結果としてのエツジの特徴を 表すデータは、対応するエツジレコード63に記憶される。このレコードは次い で、適宜エツジテーブル61に挿入される。
図7は、セグメントのエツジをエツジテーブル61に入力するための、1つのセ グメントの処理を示す図である。図かられかるように、このセグメントの境界7 0は、6つのエツジ71ないし76からなる。エツジ71及び72は同一の開始 Y座標を有し、従ってエツジテーブル61の同一のエツジリストにエツジレコー ド63として入力される。同様に、エツジ73及び74も同一の開始Y座標を有 し、それらのエツジレコードは同一のエツジリストに入力される。また、エツジ 75及び76もまた同一の開始Y座標を有するので、それらのエツジレコード6 3もエツジテーブル61の同一のエツジリストに入力される。
すべてのエツジがエツジテーブル61に入力された後に、変換処理は次の段階に 移り、そこにおいては走査ライン(出力イメージのY座標ライン)ごとにアクテ ィブエツジリスト62が形成されてその走査ラインを妨げるエツジのすべてがリ ストされる(ステップ53)。
その後このアクティブエツジリストは、スパンテーブル60内に対応するスパン リストを形成するのに使用される(ステップ54)。アクティブエツジリスト6 2は最初の走査ラインに関して、その最初の走査ラインから始まる全てのエツジ レコード63をアクティブエツジリストに入力することによって形成される。後 続の走査ラインに関しては、アクティブエツジリスト62は、前の走査ラインの アクティブエツジリストを更新することによって形成される。この更新処理は、 現在の走査ラインから始まるエツジのエツジレコードを追加することと、アクテ ィブエツジリストに既に含まれているエツジレコードを更新することの両者を伴 う。この更新は、エツジの傾きに従ってX座標を変更しY値をインクリメントす ることによって、そのエツジについての現在のX及びY座標値を更新することを 包含する。この更新によって、そのエツジがもはや走査ラインを妨げないことが 示される場合には、そのエツジレコード63はアクティブエツジリスト62から 除去される。
図8は、図7に破線で示された走査ライン69に関してアクティブエツジリスト 62を構成するエツジレコード63を示す図である。このエツジレコードによっ て表されるエツジによる現在の走査ラインの遮断を、図8に示す。
ある走査ラインについてアクティブエツジリストが形成された後に、それを構成 するエツジレコードは、それに関連するセグメント処理順序番号に応じて、走査 ラインとエツジとの現在のX遮断点でソートされる。
ソート済みのアクティブエツジリスト62を使用して、現在の走査ラインに対応 するスパンテーブル入力項目が作成される。このスパンテーブル入力項目には、 1以上のスパン65をリンクリストとして保持するスパンリストが含まれる。1 つのスパンは、特定のセグメントに関連する、出力イメージ走査ラインの中断さ れていない部分全定義する。図1Oは、スパンN、スパン(N+1)及びスパン (N+2)として識別される3つのスパン65を含む、走査リストの一部を示す 図である。各スパンは4つのフィールドを有し、そのうちの1つは関連するセグ メントを識別し、2つは右と左のX座標(それぞれXLとXR)によってスパン の位置を指定する。Y座標フィールドは必須ではないが、これはこのスパンテー ブルデータ構造では、スパンテーブル内でのスパンリストの位置によって、各構 成スパンリストのスパンについてのY座標が暗黙のうちに示されるからである。
スパンデータ構造の残りのフィールドはポインタ、即ち現在のスパンリスト内の 次のスパン(存在するならば)を指すポインタ66(P−NEXT 5PAN)  テある。
スパンリストを形成するためには、アクティブエツジリストが処理されるが、こ れはリスト内のエツジレコードの連続する対を取り、各対を使用して対応するス パンを形成し、その2つの区切りのX座標値を対象としているエツジレコードの 現在のX値にセ・ソトし、Y座標値を現在の走査ラインのY座標値にセ・ソトし 、そのセグメント識別子を関与している2つのエツジレコードの識別子にセット することによって行われる(アクティブエツジリストが処理順序番号によってソ ートされており、あるY座標値を検討する時には必ず1セグメントに対して偶数 のエツジが存在するので、これらのレコードは同一のセグメント識別子を有する )。
スパンが形成されたならば、次いで現在の走査ラインに関するスパンリストにそ のスパンを挿入する試みが行われる。しがしながらこの挿入は、処理順序番号に 従ってセグメントを処理する場合に最終イメージ中にセグメントを書き込むにつ いての上述の規則、即ちあるセグメント(又は、この場合にはセグメントのスパ ン)を書き込めるのは、上書きされるセグメントが現在のセグメントの背景セグ メントである場合を除き、それが別のセグメント(又はセグメントスパン)を上 書きしない場合だけである、という規則に縛られる。
現在のスパンによって上書きできる背景を構成するセグメントの識別子は、その スパンを区切るエツジレコードがらが、或いはそのスパンが導出されたセグメン トを参照することによって取得できる。
この挿入処理には、併合されるスパンを区切るX座標値、及び部分的に上書きさ れるすべてのスパンを区切るX座標値を適宜調節すること(必要な場合には影響 を受けるスパンを2以上のスパンに分割することを含む)と、影響されるスパン のP−NEXT 5PANポインタをそれに応じてセットすることが含まれる。
図11は、図5の線80−80に沿って取った走査ラインに関するスパンリスト 81の構成を10段階で示す例である。図11に示されたステージ(1)ないし くX)のそれぞれについて、スパンリスト81の現在の内容と、このスパンリス トに併合されるスパンリスト82の両方が示されており、スパン82は既存のス パンリスト81の下側に示されている。
スパンリストに91合される各スパン82内には、対応するセグメントの識別子 だけでなく、(処理番号、背景セグメント)対も示されているが、これはセグメ ントスパンが処理される順序と、既存のスパンリストへのスパンの−1−書きが 成功するか否かの両方を理解しやすくするためである。
ステージ(1)では、スパンリストは既(こ、ル−トセグメントraJに対応す るスパンを保持するものとして示されている。併合しようとするスパン82はセ グメントrbJからのスノ<ンであり、これは走査ライン80−80と交わるセ グメントのうちで、セグメントの処理順序番号に従って次に処理されるセグメン トである。セグメントrbJの背景セグメントは、ルートセグメントraJであ り、その結果セグメントrbJのスパン82は、このスパンリストに完全に併合 することができる。結果のスパンリスト81は図10のステージ(ii)lこ示 されているが、図かられかるようにこのスノくフリストには今度は、3つのスパ ンが互いにリンクされて含まれている。なぜなら元々ル−トセグメント「a」に 対応していたスパンは、セグメント「b」のスパンによって2つのスパンに分割 されているからである。
ステージ(ii)では、セグメント「e」に対応するスノくン82力(、スパン リスト81に併合される。セグメントreJの背景はセグメント「bjであり、 スパン82はスパンリスト81内でセグメント[ejの境界内に完全に含まれる ので、セグメントreJのスパン82の全体がこのスパンリストに成功裡に併合 されて、ステージ(i、 i i )に示される新たなスパンリスト81が作ら れる。
ステージ(iii)では、セグメントrfJからのスパン82がスノくフリスト 81に併合されるが、セグメントrfJの背景セグメントはセグメントrbJで ある。セグメントrfJのスパン82は、スパンリスト81内でセグメントre J及び「b」に対応するスパンとオーツ(ラップするので、スパン82の一部だ けがスパンリスト82に併合されることになるが、この一部とは、セグメントr fJのうち背景セグメントrbJとオーバラップする部分である。結果としての セグメントrfJスパン82のスパンリストへの部分的な併合が、ステージ(i V)の新たなスパンリスト81に示されている。
ステージ(1v)ないしくX)で行われるスパンリスト81へのスノ々ン82の 併合は、ステージ(])ないしく1ii)と実質的に同じ仕方で進行するため、 詳細に説明することはしない。
変換処理の終了に際しては、セグメントツリー20はイメージのスパンテーブル 表示に変換されており、そこにおいてはすべてのセグメントが正しい位置、向き 及びサイズで最終イメージへとマツピングされており、すべてのオーバラップ衝 突が解決されている。このスパンテーブル60は、装置座標における、最終的な 出力イメージの圧縮表現を提供している。
セグメントオーガナイザ13と同様に、コンバータ15も汎用プロセッサ上で実 行されるコードにより実施されることが好ましく、この実施形態は例えば、エツ ジテーブル、エツジリスト、エツジレコード、アクティブエツジリスト、スパン テーブル、スパンリスト及びスパンに対応するオブジェクトを用いるオブジェク ト指向の語法で行われる。
■h処1 既に述べたように、図1のスパン出力機能15は、出力装置12に所与のY座標 位置で2つのX座標位置の間に所与の色の線を描くよう命令する、単一の演算プ リミティブDravspanを有する。この出力処理には、最終的なスパンテー ブル60に含まれるスパンごとにDrawspanを呼び出すことが含まれる。
スパンテーブルのスパンは互いにオーバラップせず、各々がそれ自体で完全に定 義されているので、Drawspanを使用してスパンが装置12に出力される 順序は重要ではない。
転送効率を最大にするため、同一色のスパンを一緒に出力し、それによって色が 変更される場合以外は色を指定する必要をなくすこともできる(勿論この方法は 、イメージのランダム書込みが可能な特定のタイプの出力装置12でのみ行いう るちのであることは理解されよう)。
スパンテーブル内の各スパンに関連する色は、対応するセグメントのフィルを参 照することによって得られる。このフィルが多色ビットマツプの場合には、その スパンを構成する単色の部分スノくンごとにDrawspanを呼び出さなけれ ばならない。
このシステムの初期設定に際しては、出力処理により、出力装置に合わせて色ル ックアップテーブルを初期設定することができる。
これと同時に、イメージ範囲外の背景色や、イメージサイズなどのパラメータを 指定することもできる。既に示したように、イメージサイズは、ルートセグメン トのサイズに反映され、またルートセグメントのRTMのスケーリング係数に反 映される。
出力装置12は一般に、視覚表示装置上の表示又はハードコピープリントアウト の何れかの形態で現実に走査ラインが出力される前に、バッファ17内に1以上 の走査ラインを構成する。バッファ17が完全なイメージビットマツプを保持し ない場合には、Drawspanを使用してスパンが出力される順序が重要にな る。なぜなら出力装置は、特定の走査ラインが他の走査ラインよりも前に出力さ れることを必要とするからである。
生二丈入力 表示イメージがユーザ入力に応答して変更される対話式コンピュータグラフィッ クスアプリケーションにおいて必要とされる如きユーザ入力に関しては、アプリ ケーションlOにユーザ入力をフィードバックするための何らかの適当な手段と 共に上述のグラフィックス出力システムを使用することができ、その場合には、 どのようなイメージ変更が必要かを判定するのはアプリケーション10のジョブ である(これはセグメントフリーの変更を導き、イメージの変化を生ずる)。こ れに対する例外は、入力デバイスとしてマウスのようなポインティングデバイス が使用され、イメージカーソルを制御するよう動作する場合である。以下で詳述 するように、この場合には、ポインティングデバイスから受信された入力は、カ ーソルセグメントの動きを制御するため直接に使用され、この操作を行う義務を アプリケーションには課さない。
批万イj:□オ9叉噺 以上においては図1の実施例を、アプリケーション10によって構成されレンダ ラ11によって出力装置12へと出力される完全なセグメントツリーに関して説 明してきた。セグメントツリーは、表示されるイメージに変更がある毎に再作成 しなければならないのではな(、アプリケーション10による生成、修正及び削 除コマンドを用いて必要とされるに際して修正できることが理解されよう。セグ メントツリーの修正が完了したならば、それはレンダラ11によって新たなスパ ンテーブルへと、そしてひいては新たな出力イメージへと変換することができる 。
セグメントツリー20に対する変更を最小限にする観点から、各々のセグメント データ構造21は可視性フィールド33を含み、これは現在のイメージ内に表示 されないセグメントにフラグを立てるために用いられる。セグメントにそのよう にフラグが立てられたならば、そのセグメントが表示されないばかりでなく、そ の子孫も表示されない。これは変換処理のステップ50(図6参照)で実行され るセグメントの番号付けのプロセスを、可視性フラグがセットされた全てのセグ メントを無視し、何れかの兄弟セグメントに送るか、関連する親セグメントに戻 すように構成することによって達成される。可視性特徴の主な用途は、セグメン トがイメージ中で一時的にのみ隠蔽され迅速に回復される必要があるアプリケー ションにあり、このような回復は、可視性フラグをリセットすることを必要とす るだけである。
新たな又は修正されたセグメントツリーを出力イメージに変換する実際の処理は 、そのつど最初から実行することができる。しかしながら、セグメントツリーの 一部だけが変更された場合には、セグメントツリーの影響を受けた部分だけを再 変換するほうが一般により効率的である。部分的な更新を効率的に行うために多 くの手段を講することができ、各々の手段は特定の環境の組み合わせに適してい る。これらの手段は下記に関連している。
(a)−カーソル移動 (b)−セグメントに対するフィルのみの変更(C)−更新をセグメントとその 上側及び下側の子セグメントの輪郭に限定することによるセグメントの追加/削 除(d)−出力イメージ中で背景セグメントとだけ相互作用するセグメントに対 する変更(背景のみと相互作用するセグメント)上記の手段の各々を以下で個々 に説明し、その後これらの手段をどのようにして相互に一貫させることができる かを説明する。
(a)カーソル移動−既に前述したように、表示カーソル及びその他の迅速に移 動するスプライト(sprite) (ここでは「カーソル」の用語で総称する )は好都合には、セグメントツリー20のルートセグメントに対して上側接続関 係を有するセグメントの形式をとることができる。このようなカーソル(単数又 は複数)及び全ての子孫るサブツリーとは別個のサブツリーとして扱われる。カ ーソルサブツリー次いで別個に番号付けされ、コンバータ14によってレンダリ ングされて、主たる出力イメージスパンテーブル60に対して付加的な、別個の カーソルスパンテーブル60C(図1参照)を作成するようにされる。これら2 つのスパンテーブルは最終的には、スパン出力機能15によって、主イメージス パンテーブル60に対して優先性を有するカーソルスパンテーブル60Cと組み 合わされる。この構成は、カーソル(及びその子孫)が移動される毎に主スパン テーブルを再作成する必要がなく、単にカーソルの背景として動作するという利 点を有する。カーソルスパンはカーソル自体(全ての子孫セグメント変更に)の 境界に限定されているので、カーソルスパンテーブルの再作成は比較的簡単な事 項である。
RTMを修正することによってカーソルを移動させることは、何らかのアプリケ ーション処理決定の結果としてアプリケーションによって、或いはポインティン グデバイスを介してのユーザ入力に応じて行うことができる。しかしながら、ポ インティングデバイスを介してのユーザ入力に応するカーソル移動は、カーソル 操作の極めて一般的な形式であることから、このようなカーソル移動の効率を最 大化するために、特別な手段を講することが好ましい。これをより詳細にいえば 、カーソルスパンテーブルにはX及びYオフセットが関連付けられており、これ らはイメージ座標に関してX及びYオフセットを特定しており、これらのオフセ ットにより、カーソルスパンテーブルにおけるスパンは、主スパンテーブルとの 組み合わせに先立ち、スパン出力処理によってシフトされねばならない。この場 合には、ポインティングデバイスを介したユーザの入力に応じてカーソル位置を 更新することは比較的簡単な事項となるが、これは、その場合に必要となるのが 、デバイスによって指定される新たな絶対的なX及びYイメージ座標値を、前述 のX及びYオフセットとして記憶し使用することだけだからである。アプリケー ションにより行われるカーソル移動と、ポインティングデバイスから直接に行わ れるカーソル移動に矛盾がないようにするために、アプリケーションが実行を欲 する全てのカーソル移動について、カーソルスパン1−CTMにおけるTx及び Ty変換もまた、コンバータ14によってカーソルスパンテーブルについてのX 及びYオフセット値に変換され、カーソルスパンテーブルそれ自体においてカー ソルスパンを位置決めするのには用いられない。
ルートセグメントに関連した上側接続兄弟連鎖における兄弟として、幾つかのカ ーソルが同時に存在する場合には、各々のカーソルは(その子孫と共に)、それ 自体に関連したスパンテーブルを有する別個のサブツリーとして扱うことが可能 であり、この場合にスパン出力機能は、このようなスパンテーブルの各々を、優 先順に主スパンテーブル60と組み合わせるように動作することである。
(b)フィルのみのセグメント変更−アプリケーションがフィルのみを変更する ことでセグメント21を修正する場合には、スパンは変更されないままであるの で、スパンテーブルを再作成する必要は勿論ない。必要なことは、Dravsp anプリミティブを用いて、修正されたセグメントに関連するスパンを出力装置 12に再出力することだけである。この処理に際して前述したように、修正され たセグメントのフィルは出力処理によって適宜参照され、これに応じて修正され たセグメントの各スパンは新たなフィルと共に出力装置に送られる。
(c)セグメントの輪郭により境界付けられた更新−殆どの更新は、セグメント ツリー20に対するセグメント21の追加又は削除を伴う。
この点に関して、平行移動、回転又はリサイジングによるセグメントの空間変換 を、セグメントを修正されない形態で削除し、また古いセグメントの修正された 形態に対応してセグメントを追加することと見なすことができる。同様にして、 セグメントの境界形状の変更は、修正されないセグメントの削除及び新たな境界 形状に対応する新たなセグメントの追加と見ることができる。従って一般に、セ グメントツリー20の修正に続いてスパンテーブル60を再レンダリングすると いう問題は、セグメント21の削除と追加をどのように処理するかという問題に 分けることができる。
最初に、既存のイメージ構造の知識なしにどのようにして新たなセグメント21 をスパンテーブル60に追加するかを考察してみると、新たなセグメントが何ら かの優先順位の高いセグメントにより上書きできるか、或いは最終イメージに表 れる場合に背景セグメントによりクリッピングできるということを仮定する必要 がある(この場合「優先順位が高い」とは厳密に深度優先順位を意味する)。そ の結果、新たなセグメントのレンダリングと同時に、優先順位が高い全てのセグ メントを新たなセグメント背景と共に再レンダリングする必要がある。境界付け られていなければ、この更新は事実上スパンテーブル60の全体と、対応する出 力イメージに影響しつる。従って、スパンテーブルの更新は、新たなセグメント に対応する領域だけに限定される。これは次のようにして達成される。新たなセ グメントがセグメントツリー20に追加されたならば、新たに追加されたセグメ ントの外側境界を規定するエツジが更新輪郭リストに加えられる。これらのエツ ジは、更新領域を区切る更新領域境界を規定する役割を果たす。次に、ツリー内 の優先順位の高いセグメント、新たなセグメントそれ自体、及びその背景セグメ ントが全て、再レンダリングを必要とするセグメントとしてマークされる。その 後、更新輪郭リストの内容と、セグメントツリーのマークされたセグメントから の全てのエツジとを含む、新たなエツジテーブル61が形成される。更新輪郭リ ストに含まれるエツジ、即ち更新領域の境界を規定するエツジには、他のどのセ グメントよりも小さな処理順番号が付与されるので、それらが最初に処理される 。このようにして、各々のライン毎に新たなエツジテーブル61から順次形成さ れたアクティブエツジリスト62内には、更新領域に対応するスパンが最初に表 れる。新たなセグメントに対応するスパンもまた、その新たなセグメント用の通 常の処理順において、アクティブエツジリストに表れる(セグメントツリーは修 正の後で、そのセグメントの全ての再レンダリングに先立って再度番号付けされ ることに注意しなければならない)。
更新領域を区切るスパンはかくしてスパンテーブルの各ラインに入力され、そこ においてこのスパンは他のどのスパンよりも早く出現する。これらの更新領域ス パンは、他の如何なるセグメントからのスパンによっても上書き可能なようにマ ーク付けされるので、それらは事実上ルート領域として作用する。更新領域スパ ンは、それによって上書きされる既存のスパンの識別性に配磨、することなくス パンテーブルの適宜の位置に書き込まれるという意味で、スパンテーブルに押し 込まれる。しかしながら、各々のアクティブエツジリスト62に保持されている 他のスパンには、スパンをスパンテーブルに融合させる際の通常の規則が適用さ れる。更新領域の外側ではイメージは変更されないという事実により、アクティ ブエツジリストから更新領域の外側のスパンテーブルにスパンが融合されること はない(セグメントに関連するスパンはそれ自体上書きできない)。
このようにして、更新領域内のスパンテーブルの一部が、関連する種々のセグメ ントからスパンを融合させることによって、その最終的な形態に構築される。各 々のスパンラインが完成する毎に、更新領域内のスパンはプリミティブDraw spanを用いて出力される(この目的のために、現在のスパンライン内の更新 領域の限界は、例えば一時的に記憶される)。
前述のようにして、スパンテーブル60は、新たなセグメントの境界によって区 切られる更新領域だけにテーブルの変更を限定するようにして更新される。
既存のセグメントの構成についての知識なしにセグメントを削除することも同様 にして処理され、その場合にスパンテーブルの更新は、削除セグメントの境界に 対応する更新領域境界内に限定される。
か(してセグメントの追加の場合と同様に、削除セグメントの境界エツジが最初 に更新輪郭リストに置かれ、その後それらは新たなエツジテーブル61に移され 、最も小さい処理順番号を付される。このようにして対応するスパンはスパンテ ーブル60内に押し込まれ、他の如何なるセグメントによっても上書きできるよ うにマーク付けされる。しかしながらこの場合、セグメントツリー20の残りの 全てのセグメント21を再レンダリングする(エツジテーブルにそれらのエツジ を含めることによって)ことが必要である。何故なら、この場合には優先順位が 高いセグメントが修正されたイメージに表れるだけでなく、優先順位が低いセグ メントも同様に表れるであろうからである。それにも拘わらず、更新領域に対応 するスパンをスパンテーブルに押し込むことは、更新を更新領域に限定する。そ の結果、出力プロセスもまた同様に限定される(ハードコピー装置についての如 く、イメージを全体として出力する必要がある場合を除き)。
勿論一般には、追加又は削除されるセグメントは関連する子セグメントを有して いる。この場合、更新領域は追加/削除セグメントの上側及び下側の子セグメン トを含むように拡張されなければならないので、前述した更新輪郭リストに入力 されるエツジは、対象とするセグメントのエツジだけではなく、その上側と下側 の子セグメントのエツジも含む(包含子セグメントは勿論、更新される領域に影 響しない)。加えて、全ての子(上側、下側及び包含)のエツジは、更新処理に 含まれる他のセグメントと共に、再レンダリングされるエツジテーブルに追加さ れる。
セグメントが同時に追加及び削除される場合(例えばセグメントが移動される場 合)には、更新領域は追加又は削除される全てのセグメントを、それらの全ての 上側及び下側の子セグメントと共に包含するように拡張することができる。
次に、スパンテーブルによって提供された出力イメージの既存の構成についての 知識を援用して境界内更新を行う場合を考察する。
前述したように、スパンテーブル60は、各々のスパン65に関連するセグメン ト21の識別性を含んでいる。
(d)背景だけと相互作用する(BOI)セグメント一本グラフィックス出カシ ステムでは、キャラクタを含めて全てのイメージ要素はグラフィック要素として 内部表現され、同様にして処理される。
その1つの成り行きは、多くの場合に削除又は追加されるグラフィックセグメン トが単にその背景セグメント上で削除又は追加されるだけであり、従って例えば 、背景セグメントが用紙を表し、移動又は追加されるセグメントがキャラクタで ある場合があるということである。これらの場合は、対象とするセグメントがそ の背景セグメントとだけ相互作用するという事実によって特徴付けられ、そのよ うなセグメントは従って、背景だけと相互作用する(BOI)セグメントと呼ば れる。BOIセグメントの追加/削除の発生頻度が高いことから、これに応じて グラフィックス出力システムの動作を最適化することが好都合である。この目的 で、新たなセグメントがセグメントツリーに追加される場合、それがBOIセグ メントであるか否かを確認するためにテストが行われる。このテストは、セグメ ントを対応するスパンに変換し、スパンテーブルを参照して、出力イメージ中の 既存のセグメントのどれが(上書き、被上書き、又はクリッピングによって)新 たに追加されたセグメントと相互作用するかを識別することによって行われる。
新たなセグメントがBOIセグメントであることが判明したならば、セグメント データ構造の対応するフラグ200(図2参照)がセットされ、セグメントはそ のスパン65をスパンテーブル60に単に上書きすることによってレンダリング される。しかしながら、新たなセグメントがBOIセグメントではない場合には 、それは(C)で既に上述した境界内更新方法に従ってレンダリングされる。セ グメントがセグメントツリーから削除され、このセグメントがそのBOIフラグ のセットされたセグメントである場合には、スパンテーブルは削除セグメントの 背景セグメントを、削除セグメントに対応するスパンテーブルのスパン内に単に 再レンダリングするだけで、容易に更新することができる。削除されたセグメン トがBOIセグメントでない場合には、更新は上記で(c)に記載した境界内更 新処理に従って行われる。
スパンテーブルが修正される毎に、コンバータ14は更新により影響を受ける各 セグメントのBOIフラグの更新に配慮しなければならないことが理解されよう 。これはライン毎に行うことができる。
従って、セグメントにそのBOIフラグがセットされており、全ての構成要素ス パンをスパンテーブルに融合させることが不可能であり、或いはそのスパンがそ の後別のスパンの少な(とも一部を同じスパンラインへの融合を阻止する場合に は、セグメントのBOIフラグをリセットしなければならない。
図12は、図1のコンバータ14が、それが利用可能な更新処理の何れを特定の 更新を行うために使用するかをどのようにして選択するかを示す図である。コン バータ14が利用できる4つの主たる更新処理は、セグメントツリー20からス パンテーブル60の全体を再レンダリングするよう動作する「メイン再レンダリ ング」処理202と、セグメントツリー20の適宜のセグメントからカーソルス パンテーブル60Cを再レンダリングするよう動作する「カーソル再レンダリン グ」処理203と、フィルだけに修正が行われるセグメントを扱うために用いら れる「フィル置換」処理204と、スパンテーブル60の境界内更新が行われる 「セグメント追加/削除」処理205であり、この更新はできればBOIセグメ ントについての(d)で記述した如きものであり、そうでなければ(C)で記述 した更新である。
使用される更新処理の選択は、5つのフラグ210−214の状態に応じて図1 2のボックス内に示された制御アルゴリズムを実行する、更新制御機能ブロック 201によって行われる。
これらのフラグの第1のものは、イメージ全体を再レンダリングしたい場合(即 ち主スパンテーブル60とカーソルスパンテーブル60Cの双方が最初から作成 される場合)に、(例えばアプリケーション10によって)セットされる全レン ダリングフラグ210である。第2のフラグはカーソルフラグ211であり、カ ーソルが移動される毎に、或いはカーソルスパンテーブル内でレンダリングされ たセグメントだけに変更がある場合にセットされる。カーソルフラグ211は例 えば、ポインティングデバイスをグラフィックス出力システムと、またアプリケ ーション10とインタフェースする適当な入力事象ハンドラ(図示せず)によっ てセットされる。
第3のフラグはフィルフラグ212であり、セグメントがフィルのみの修正によ って修正される毎に、セグメントオーガナイザ13によってセットされる。
第4のフラグはA/D (追加/削除)フラグ213であり、セグメントが追加 又は削除される毎に(又は、例えばその変換データが変更される場合には双方) セグメントオーガナイザによってセットされる。
セグメントオーガナイザ13は、フィルフラグ212又はA/Dフラグ213を セットした場合に、関連するセグメントの詳細を、そのセグメントが追加/削除 されたか又はフィルが修正されたかの表示と共に、セグメント更新リスト206 内に入力する。勿論、セグメントがセグメントツリーから削除されているか、又 はフィルの修正以外によって修正されている場合には、古いセグメントの関連詳 細が一時的に記憶されて、更新処理中に利用できるようにされる。・セグメント 更新リスト206は意図的に限定されたサイズとされ、このリストがオーバフロ ーした場合には、5番めのフラグ、即ちオーバフローフラグ214がセットされ てこの事象を表示する。リスト206のオーバフローは、更新されるべきセグメ ントの数が、一連の境界内更新を行うのではなしに、主スパンテーブル60の全 体を再度生成するほうが恐らくより効率的であるような場合に生ずるようにセッ トされる。
ここで制御アルゴリズムを参照すると、これはブロック201内に示されている 。セグメントツリーがアプリケーションIOによって更新された後にコンバータ 14が制御を渡される毎に、コンバータは先ず、全レンダリングフラグがセット されたか、又はカーソルフラグ211とオーバフローフラグ214の双方がセッ トされたか否かを確認するためのテストを行う。何れが確認された場合でも、コ ンバータは、主スパンテーブル60を再度レンダリングするためのメイン再レン ダリング処理202と、カーソルスパンテーブル60Cを再度生成するためのカ ーソル再レンダリング処理203の双方を実行することによって、それがイメー ジ全体を再レンダリングしなければならないことを認識する。イメージ全体の再 レンダリングが必要でない場合には、制御アルゴリズムは次に、オーバフローフ ラグ214(カーソルフラグ211ではなく)がセットされているか否かをチェ ックすることによって、主スパンテーブルだけを再度生成する必要があるかを確 認するチェックを行う。そうである場合には、次いでメイン再レンダリング処理 202が実行される。オーバフローフラグがセットされていないが、カーソルフ ラグがセットされている場合には、カーソル再レンダリング処理203が実行さ れる。
次に、スパンテーブル60の全体的再レンダリングが必要でない場合には、何れ かのセグメントが追加/削除/修正されたか否かを確認するためにA/Dフラグ 213がチェックされ、そうである場合は、セグメント追加/削除処理205が 呼び出される。
セグメント追加/削除処理205で実行される最初のステップは、セグメントフ リーの再度の番号付けを開始することである(コンバータ14に制御を渡す前に セグメントオーガナイザによって既に行われていない場合)。その後、この処理 205はセグメント更新リスト206内の各入力項目を調べ、それを図13のフ ローチャートに示すようにして処理する。より詳°シ<言えば、リスト206内 の各人力項目は、それがセグメントの追加又は削除に関連するが否がを確認する ために調べられる(ステップ22o)。人力項目がフィルのみのセグメント更新 に関連する場合は、処理ステップは次の入力項目の検査に移行することに留意さ れたい。セグメントが追加されている場合は、このセグメントは対応するスパン に変換され(ステップ221) 、セグメントがBOIセグメントであるが否が を確認するテストが行われる(ステップ222)。追加されているセグメントが BOIセグメントである場合は、そのスパンがスパンテーブル6oに直接に書き 込まれ、対応するセグメントのBOIフラグがセットされる(ステップ223) 。
しかしながら、追加されているセグメントがBOIセグメントではない場合には 、その境界輪郭と、その上側及び下側の子の境界輪郭とが更新輪郭リスト207 に追加される。同時に、優先順位が高い全てのセグメントと、セグメントそれ自 体と、その子セグメントと背景セグメントの全てが、再レンダリングされるべき セグメントとしてセグメントツリー内でマークされる(ステップ224)。
セグメント更新リストの入力項目が、セグメントが削除されるべき旨を表示した 場合は(ステップ22o)、そのセグメントのBOIフラグのチェックが行われ る(ステップ225)。このフラグがセットされている場合は、削除されるセグ メントの背景セグメントが、削除セグメントのスパン内に再レンダリングされる 。しがしなが呟そのセグメントのBOIフラグがセットれてぃない場合は、その セグメントの輪郭とその上側及び下側の子の輪郭が更新輪郭リス) 207に追 加され、セグメントツリー内の全てのセグメントは、再レンダリングを必要とす るものとしてマークされる。
リスト206内の全ての追加/削除入力項目が図13に従って処理された後、更 新輪郭リスト207がチェックされる。このリストが空白である場合には、処理 206は完了する。しかしながら、リストに更新領域を規定する輪郭が含まれて いる場合には、更新処理は前述したように、更新データをスパンテーブルに押し 込み、マークされたセグメントをその領域内に再レンダリングすることによって 進められる。
最後に制御アルゴリズムは、フィルフラグ212がセットされているか否かをチ ェックすることによって、何れがのセグメントが単にフィルのみを修正されてい るが否がをチェックするよう進む。そうである場合には、次いでフィル置換処理 204が呼び出される。この処理はスパンテーブルを修正しないが、フィルだけ が修正されたセグメントについて更新リストをチェックし、次いでスパン出力処 理15により、適宜のセグメントのスパンを出力装置12に再出力するように進 行する。実際には、セグメントのフィルが再出力される前に、セグメントが追加 /削除処理205によって既に処理されているが否かに関してチェックが行われ る。何故ならそうであるとすれば、そのフィルを再出力する必要はないがらであ る。このチェックは、リスト206及び207を参照することによって、或いは セグメント自体が適宜マークされている場合にはセグメント自体を参照すること によって行うことができる。
出力イメージはスパンテーブル60.60Cに記憶されているので、レンダラ1 1はグラフィック出方装置にイメージの再生をもたらすように構成することがで きることが留意されよう。この場合は、スパン出力プロセス15はDrawsp anプリミティブを用いて、スパンテーブル60とカーソルスパンテーブル60 Cの全体を出方装置12へと再レンダリングする。この動作には、スパンテーブ ルの全部又は一部の再生成は含まれない。
役肚又11 上述したグラフィックス出力システムには、請求の範囲に記載した本発明の概念 から逸脱することな(、多くの設計変更を行うことが可能であることが理解され よう。
しかして、既存のイメージ構成要素の知識を利用して、非BOIセグメントの境 界内更新を行うことが可能である。例えば、新たなセグメントが追加されたが、 このセグメントがその背景以外とも相互作用する場合には、その新たなセグメン トをレンダリングするが、その場合にそのスパンが新たなセグメントの背景又は 同じ背景にクリッピングされた優先順位の低いセグメントの何れがと関連するス パンテーブル内のスパンを上書きすることだけを許容することによって、スパン テーブルを更新することができる(新たなセグメントと既存のセグメントとの関 係は勿論、セグメントツリー20を参照することによって確認できる)。セグメ ントが削除される場合には、その背景セグメントと優先順位が低い全てのセグメ ントを再レンダリングし、スパンテーブル内に存在する削除セグメントのスパン に書き込むことができる。
実際には、全てのレベル(即ち出力イメージを規定する最上レベルだけではなく 、スパンがイメージ中に表れるスパンとなっていない低いレベルにおいても)に おけるスパンの相互作用の全レコードが保存されていれば、セグメントの削除は 容易に実行することができる。これは、そのセグメントスパンのスパンテーブル からの削除は、次のレベルのスパンを自動的に昇格させるように構成でき、従っ て削除されたセグメントのスパンが最上レベルのスパンである場合に、その最上 レベルの下側のスパンが今度は最上レベルのスパンになるからである。
勿論、セグメント21の集合の基本的な編成は、上述したものと異なってよいこ とが理解されよう。例えば、上側又は下側接続関係、又は包含関係を実施しなく ともよい。
FIG5 FIGIO IG11

Claims (18)

    【特許請求の範囲】
  1. 1.グラフィックス出力システムであって、2次元出力イメージ内で潜在的にオ ーバラップする関係で表示することが意図されるグラフィックセグメントの集合 を記憶するセグメント記憶手段と、前記グラフィックセグメントが各セグメント の境界を決定する境界データと、出力イメージ中のセグメントの相対深度優先順 位及び優先順位が低い上書き可能なセグメント(ここでは対象となるセグメント の「背景」セグメント)の境界に対する前記各セグメントの全てのクリッピング を決定する相互関係データとを含むデータによって特定されることと、前記グラ フィックセグメントの集合を修正する修正手段と、セグメント間の全ての相互作 用を考慮に入れた状態で、記憶されたグラフィックセグメントを前記2次元イメ ージを表すイメージ表現としてレンダリングするコンバータ手段と、前記コンバ ータ手段か前記イメージ表現を記憶するよう動作することと、前記コンバータ手 段が前記グラフィックセグメントの集合の修正に応じてその前記イメージ表現を 、前記修正に関係する1以上のセグメントの境界により区切られた領域内で更新 することからなる、グラフィックス出力システム。
  2. 2.前記コンバータ手段か新たなセグメントの追加による前記グラフィックセグ メントの集合の修正に応じて、修正された集合から下記のセグメント、即ち −前記新たなセグメントよりも深度優先順位が高いセグメント、−前記新たなセ グメントの全ての背景セグメント、及び−前記新たなセグメント自体、 をレンダリングすることによりイメージ表現を更新するよう動作し、これらを前 記イメージ表現へと、前記イメージ表現の上書きを前記新たなセグメントの境界 内に限定して書き込む、請求項1のグラフィックス出力システム。
  3. 3.前記コンバータ手段が前記イメージ内の各々の位置に現れるセグメントを示 す関連付けデータを保持するように動作し、前記コンバータ手段が新たなデータ の追加による前記グラフィックセグメントの集合の修正に応じて、前記新たなセ グメントがその背景セグメントとだけ相互作用するか否かを前記関連付けデータ から判定することによって前記イメージ表現を更新するよう動作し、そうである 場合に前記新たなセグメントをレンダリングし、既存の前記イメージ表現に前記 新たにレンダリングされたセグメントを上書きする、請求項1のグラフィックス 出力システム。
  4. 4.前記セグメントの各々が、前記イメージ内での相互作用がその背景セグメン トとの間でだけ行われるか否かを表示する関連の背景−相互作用インジケータを 有し、前記コンバータ手段が前記イメージ表現へのセグメントの追加に際して判 定に応じて前記インジケータを制御する、請求項3のグラフィックス出力システ ム。
  5. 5.前記コンバータ手段が前記イメージ内の各々の位置に現れるセグメントを示 す関連付けデータを保持するように動作し、前記コンバータ手段が新たなデータ の追加による前記グラフィックセグメントの集合の修正に応じて、前記新たなセ グメントをレンダリングし、既存セグメントが前記新たなセグメントに対する背 景セグメントであるか、或いは既存のセグメントが前記新たなセグメントよりも 低い深度優先順位を有すると共に前記新たなセグメントと同じ背景セグメントを 有するか又は前記同じ背景セグメントを有するセグメント上に直接的又は間接的 に書き込まれる位置において、既存の前記イメージ表現を新たにレンダリングさ れたセグメントで上書きすることによって、前記イメージ表現を更新するように 動作する、請求項1のグラフィックス出力システム。
  6. 6.前記コンバータ手段が、既存のセグメントが前記新たにレンダリングされた セグメントにより上書きできるセグメントであるか否かを判定するために前記相 互関係データを参照するように動作する、請求項5のグラフィックス出力システ ム。
  7. 7.前記コンバータ手段が、既存セグメントの削除による前記グラフィックセグ メントの集合の修正に応じて、修正された集合から全てのセグメントをレンダリ ングし、これらのセグメントを前記イメージ表現へと、イメージ表現の上書きが 削除セグメントの境界内に限定されるようにして書き込むことにより前記イメー ジ表現を更新するように動作する、請求項1のグラフィックス出力システム。
  8. 8.前記コンバータ手段が前記イメージ内の各々の位置に現れるセグメントを示 す関連付けデータを保持するように動作し、前記コンバータ手段が既存のデータ の削除による前記グラフィックセグメントの集合の修正に応じて、削除セグメン トが前記イメージ内でその背景セグメントとだけ相互作用するか否かを判定する ことによって前記イメージ表現を更新するように動作し、そうである場合には前 記背景セグメントだけを再レンダリングし、前記関連付けデータによれば前記削 除セグメントが前記イメージ表現内に現れていた位置において前記既存のイメー ジ表現に前記新たにレンダリングされた背景セグメントを上書きする、請求項1 のグラフィック出力データ。
  9. 9.前記削除セグメントの前記背景−相互作用インジケータが、削除セグメント がその前記背景とだけ相互作用するか否かについての前記コンバータ手段による 判定を促進するために利用される、請求項4及び8の組み合わせによるグラフィ ックス出力システム。
  10. 10.前記コンバータ手段が前記イメージ内の各々の位置に現れるセグメントを 示す関連付けデータを保持するように動作し、前記コンバータ手段が既存セグメ ントの削除よる前記グラフィックセグメントの集合の修正に応じて、前記背景セ グメントと、前記削除セグメントよりも深度優先順位が低い全てのセグメントを 再レンダリングすることによって前記イメージ表現を更新するように動作し、前 記新たにレンダリングされたセグメントは、前記関連付けデータによれば前記削 除セグメントが前記イメージ表現内で現れていた位置においてのみ前記既存のイ メージ表現内に書き込まれる、請求項1のグラフィックス出力システム。
  11. 11.前記コンバータ手段が、既存のセグメントが再レンダリングされるべきデ ータであるか否かを判定するために前記相互関係データを参照するように動作す る、請求項10のグラフィックス出力システム。
  12. 12.前記コンバータ手段が、前記イメージ内の各々の位置に現れる最上レベル のセグメントと、前記各々の位置について前記最上レベルのセグメントの下側に ある次レベルの全てのセグメントの双方を表示する関連付けデータを保持するよ うに動作し、前記コンバータ手段が既存セグメントの削除による前記グラフィッ クセグメントの集合の修正に応じて、前記削除セグメントが前記イメージ表現内 で最上レベルのセグメントとして出現する毎に、対応する次レベルのセグメント を前記最上レベルのセグメントヘとアップグレードすることにより前記出現を置 換するように動作する、請求項1のグラフィックス出力システム。
  13. 13.前記コンバータ手段が、先ず前記新たな/削除されたセグメントに対応す る前記イメージ表現の領域を全てのセグメントで上書き可能なルート領域として マークし、その後前記修正された集合からレンダリングされたセグメントを、各 セグメントが前記ルート領域又は優先順位が低いセグメントのみを上書きするよ うにして前記イメージ表現内に書き込むことにより、前記イメージ表現の上書き を新たな/削除されたセグメントの境界内に限定する、請求項2又は7のグラフ ィックス出力システム。
  14. 14.前記新たな/削除されたセグメントが少なくとも1つの関連する子セグメ ントを有し、前記少なくとも1つの子セグメントがその親セグメントと共に前記 コンバータ手段によって処理され、その際に更新境界が前記1つの子セグメント を含むように拡張される、請求項2から13の何れか1のグラフィックス出力シ ステム。
  15. 15.前記イメージ内への別のセグメントの出現範囲に影響を及ぼす仕方で既存 のセグメントを修正することによる前記セグメントの集合の修正が、前記コンバ ータ手段により前記既存のセグメントの修正されない形態での削除、及び修正後 の形態における前記既存のセグメントに対応する新たなセグメントの追加として 処理される、請求項1のグラフィックス出力システム。
  16. 16.修正されない形態での前記既存セグメントの削除が請求項2から6の何れ か1に従って行われ、修正された形態での前記既存セグメントの追加が請求項7 から12の何れか1に従って行われる、請求項15のグラフィックス出力システ ム。
  17. 17.前記コンバータ手段によって作成される前記イメージ表現が、イメージを 構築するために用いられる複数のラインの各々についてのスパンの組の形を取り 、前記スパンの各々が前記イメージ内に表示されるそれぞれのセグメントの少な くとも一部を表し、対応するイメージラインに沿う区分座標値を含む、請求項1 から16の何れか1のグラフィックス出力システム。
  18. 18.前記各々のスパンが更に対象となるセグメントを示すデータを含むことに より前記スパンによって前記関連付けデータが提供される、請求項3から6又は 8から11の何れか1に従属した場合の請求項17のグラフィックス出力システ ム。
JP51647091A 1991-10-10 1991-10-10 境界内更新を備えたグラフィックス出力システム Expired - Lifetime JP3359634B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1991/001767 WO1993007583A1 (en) 1991-10-10 1991-10-10 Graphics output system with bounded updating

Publications (2)

Publication Number Publication Date
JPH06511576A true JPH06511576A (ja) 1994-12-22
JP3359634B2 JP3359634B2 (ja) 2002-12-24

Family

ID=10689098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51647091A Expired - Lifetime JP3359634B2 (ja) 1991-10-10 1991-10-10 境界内更新を備えたグラフィックス出力システム

Country Status (5)

Country Link
US (1) US5986661A (ja)
EP (1) EP0607136B1 (ja)
JP (1) JP3359634B2 (ja)
DE (1) DE69129339T2 (ja)
WO (1) WO1993007583A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507056A (ja) * 2007-11-21 2011-03-03 マイクロソフト コーポレーション レイアウトマネージャ

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0607131B1 (en) * 1991-10-10 1999-03-03 Hewlett-Packard Company graphics output system and method
GB9303009D0 (en) * 1993-02-15 1993-03-31 Canon Res Ct Europe Ltd Processing image data
US5977982A (en) * 1996-06-28 1999-11-02 Avid Technology Inc. System and method for modification of the visual characteristics of digital 3D objects
US6169546B1 (en) 1998-04-01 2001-01-02 Microsoft Corporation Global viewer scrolling system
US6191790B1 (en) * 1998-04-01 2001-02-20 Microsoft Corporation Inheritable property shading system for three-dimensional rendering of user interface controls
US6249284B1 (en) 1998-04-01 2001-06-19 Microsoft Corporation Directional navigation system in layout managers
US6900802B2 (en) * 2000-08-04 2005-05-31 Pts Corporation Method of determining relative Z-ordering in an image and method of using same
AUPS134202A0 (en) * 2002-03-25 2002-05-09 Canon Kabushiki Kaisha System and method for optimizing halftoning printer performance
US7046250B1 (en) 2002-07-11 2006-05-16 Sun Microsystems, Inc. Caching fonts for improved bandwidth of transmitted text
US20040008214A1 (en) 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging repeating images for improved compression
US20040008205A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging single-color images for improved compression
US20040008213A1 (en) * 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging multicolor images for improved compression
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
EP2610721B1 (en) * 2010-08-27 2018-08-08 FUJIFILM Corporation Method and device for editing layout of objects
RU2484529C1 (ru) * 2012-03-21 2013-06-10 Общество с ограниченной ответственностью "Синезис" Способ ранжирования видеоданных

Family Cites Families (7)

* 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 沖電気工業株式会社 走査変換方法
US5058042A (en) * 1989-04-03 1991-10-15 Hewlett-Packard Company Method for employing a hierarchical display list in global rendering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507056A (ja) * 2007-11-21 2011-03-03 マイクロソフト コーポレーション レイアウトマネージャ

Also Published As

Publication number Publication date
DE69129339T2 (de) 1998-08-20
WO1993007583A1 (en) 1993-04-15
EP0607136A1 (en) 1994-07-27
JP3359634B2 (ja) 2002-12-24
US5986661A (en) 1999-11-16
EP0607136B1 (en) 1998-04-29
DE69129339D1 (de) 1998-06-04

Similar Documents

Publication Publication Date Title
JPH06511576A (ja) 境界内更新を備えたグラフィックス出力システム
US5801717A (en) Method and system in display device interface for managing surface memory
US6330003B1 (en) Transformable graphical regions
JP3170279B2 (ja) グラフィックスシステムにおけるイメージ位置の解釈
WO2011052117A1 (ja) 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
JPH05135147A (ja) グラフイツクス・システムにおけるピツク方法および装置
JP5368254B2 (ja) 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
KR0150832B1 (ko) 그래픽 대상을 인터로크하기 위한 방법 및 장치
JPH03667B2 (ja)
JPH06511575A (ja) グラフィックスシステムにおけるグラフィックセグメント編成
JP2011090648A (ja) 画像処理装置および画像処理方法
US6925473B2 (en) Staged stylization in multiple tiers
JPH0623989B2 (ja) 境界表現ソリツド・モデリング・システム
JP2892898B2 (ja) ウインドウ管理方法及びラスタ表示ウインドウ管理システム
JPH02123459A (ja) マーカ・エンテイテイ管理方法
US20190311508A1 (en) Interaction-driven format for graph visualization
JP5031117B2 (ja) 幾何モデルを動的に更新する方法およびシステム
US7280114B2 (en) Line stipple pattern emulation through texture mapping
JPH11296696A (ja) 3次元画像処理装置
JP2993666B2 (ja) 図形表示システムと図形表示方法
JP2000172861A (ja) 多層型多角形編集および描画方法
JP3375069B2 (ja) 描画処理装置
Gal Hidden Feature Removal and Display of Intersecting Objects in UNIGRAFIX
Mena-Quintero et al. The {GNOME} Canvas: A Generic Engine for Structured Graphics
Internals The Editor Object

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: 20081011

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091011

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091011

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101011

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111011

Year of fee payment: 9

EXPY Cancellation because of completion of term