JPH0793584A - 画像処理方法及び装置 - Google Patents

画像処理方法及び装置

Info

Publication number
JPH0793584A
JPH0793584A JP1831194A JP1831194A JPH0793584A JP H0793584 A JPH0793584 A JP H0793584A JP 1831194 A JP1831194 A JP 1831194A JP 1831194 A JP1831194 A JP 1831194A JP H0793584 A JPH0793584 A JP H0793584A
Authority
JP
Japan
Prior art keywords
polygon
list
tree
favorite
graph
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.)
Withdrawn
Application number
JP1831194A
Other languages
English (en)
Inventor
Pooru Otsutoo Geruharuto
ゲルハルト・ポール・オットー
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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority claimed from GB939303009A external-priority patent/GB9303009D0/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of JPH0793584A publication Critical patent/JPH0793584A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

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

Abstract

(57)【要約】 【目的】 表出順序リストかツリーかグラフかに設定さ
れる本命の原線を選択する方法を提供することである。 【構成】 表出順序リストかツリーかグラフかに対応づ
けられる観察方向の集合を表現する概念的な観察軸を規
定する段階と、前記本命原線上の一点と候補原線上の一
点とを概念的な観察軸方向の広がりの度合を比較するこ
とによって、前記本命原線は表出順序リストかツリーか
グラフかに設定するものとして適当かどうかを判断する
段階とで構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像処理方法と装置とに
係わる。具体的には、本発明は、三次元空間で多角形な
どの面原線の位置を表現するデータを処理して例えば二
次元空間で前記の原線の視野像を表出するために必要な
順序リストを生成する方法と装置とに係わる。
【0002】
【従来の技術】本出願人の同時に申請中の欧州特許公開
公報第EP-A0531157 号(最初に記載の日付の時点では未
公開)において開示されているシステムを始めとする対
話式三次元図形システムにおいては、オペレータからの
入力指令に応答して、多角形を表現するデータが対話式
に三次元空間で加工処理される。オペレータと仮想三次
元環境との間の閉フィードバックループを維持するのに
充分な速度で二次元画像がオペレータに提示される。
【0003】
【発明が解決しようとする課題】三次元画像データを二
次元平面に表出することによって二次元画像を生成す
る。視野毎に「潜伏面除去」を実行して、他の原線を遮
る原線が遮られる原線の代わりか少なくとも遮られる多
角形の後かに確実に二次元平面に表出されるようにす
る。遮り方は部分的なことが多い。従って、遮る側の多
角形を表出する前に遮られる側の多角形を表出する方が
好ましい。また、完全に目に見えない原線を選別して、
表出プロセス中に更に注目しないようにしても良い。こ
のように、表出プロセスの非常に重要な側面は原線を正
確な順序で確実に表出することである。しかし、反復毎
に繰り返し表出順序を正確に決定することは、処理時間
の相当な部分の浪費につながる。
【0004】先述の同時に申請中の欧州特許公開公報に
表出順序リストを生成するシステムが開示されている。
このシステムにおいては、対話操作の前に位相的分類法
を用いて前プロセスとして表出順序リストの生成を実行
する。必要ならば、視野の向きを複数個選択して、それ
らの視野の一つ一つに対して表出順序リストを生成す
る。対話操作においては、実際の視野の向きと前処理で
得た向きとを比較して、実際の向きにほぼ合致する前処
理の向きを判定することによって、これらの表出順序リ
ストの中からどれか一つを選択する。これによって、対
話操作に必要な演算オーバヘッドが顕著に低減する。
【0005】
【課題を解決するための手段】本発明は、表出順序リス
トかツリーかグラフかに設定される本命の原線を選択し
て方法を提供する。この方法は、表出順序リストかツリ
ーかグラフかに対応づけられる観察方向集合を表現する
概念的な観察軸を規定する段階と、前記本命原線上の一
点と候補原線上の一点との概念的な観察軸方向の広がり
の度合を比較することによって、前記本命原線は表出順
序リストかツリーかグラフかに設定するものとして適当
かどうかを判断する段階とで構成される。
【0006】本発明によれば、最小限の処理労力で順序
づけ処理を効率よく実行できる。具体的実施例において
は、例えば、観察主から遠くに位置する概念的な観察軸
の方向に最も近くで広がる現行本命原線の広がりの度合
が、未だ表出順序リストかツリーか有向グラフかに設定
されていない候補原線であって、最も遠くまで広がる複
数の候補原線の広がりの度合に比較される。この試験に
よって表出順序リストかツリーかグラフかの生成に重要
なプロセスが実現される。一方、この試験を満足させら
れない本命原線については、更に試験を実施して表出順
序リストに追加できるかどうかを判断する。
【0007】本発明は、更に、上記の発明に従って生成
された表出順序リストかツリーか有向グラフかに基づい
て三次元の被写体を表現する画像を表出する方法と装置
とを提供する。
【0008】
【実施例】三次元図形システムは、被写体と光源と観察
位置とを概念的な三次元空間内で処理するための仮想三
次元環境を提供する。観察位置には、「世界空間」と呼
ばれる仮想三次元世界へのウィンドウが設けられる。世
界空間自体は、三次元座標および色や反射力などの変数
を定義するデータとして存在する。概念的なウィンドウ
に提示される二次元画像は、表出処理として知られる手
続き内で三次元画像データを処理することによって作成
される。
【0009】周知のシステムにおいては、三次元空間に
存在する被写体をその被写体の表面上の選択された点の
座標で表示する。表出処理には、画像の二次元領域に画
素値を割当てる段階が含まれる。従って、これら座標点
を直線で連結して平坦な二次元多角形の三次元ネットを
提供することによって、座標点を概念的な領域に変換す
る。
【0010】物体全体が表出されるまで、画素値は多角
形毎に生成される。その後、表出プロセスによって生成
された画素値はラスタで走査され、映像信号が生成され
る。ところが、固定三次元被写体の幻影を維持するため
には、遮る多角形が表出される前に遮られる多角形が確
実に表出されるという順序に従って多角形三個を表出す
ることが大切である。この問題を一層深刻にするのは、
観察方向が変化するにつれて、遮り優先度が変化すると
いう事実である。
【0011】三次元図形環境を提供する段階を図1 に示
す。まず最初に、被写体を定義するデータを用意する。
ステップ15で第一の被写体をモデル化する。同様に、ス
テップ16で第二の被写体をモデル化する。被写体のモデ
ル化は、ステップ17でN 番目の被写体がモデル化される
まで続く。各被写体は、それ自体のモデル化空間と呼ば
れる座標集合に従ってモデル化される。被写体データの
各集合は形状を定義する。図形環境でその形状を再生す
るのに必要なデータは、形状ファイルに格納される。
【0012】次の段階は、ステップ18、19、および20か
ら成り前処理段階の一部を成す。
【0013】ステップ18で形状ファイルを読む。形状フ
ァイルのデータは、多角形の頂点と多角形の表面特性と
に基づき被写体の形状を定義する。ステップ19で、形状
ファイルのデータで定義されるデータを処理し、多角形
表出順序リストを作成する。被写体が多数ある場合、そ
の個数だけ順序リストが必要になる。ステップ20で別の
被写体を処理するかどうかを判断する。判断の結果が肯
定の場合、ステップ18と19を繰返する。そして、次の被
写体の形状ファイルを読む。
【0014】被写体一つ一つに対する順序リストの用意
が終了したら、表出段階へ進むことが出来る。ステップ
21で照明パラメータと視野パラメータとを定義する入力
指令を受信する。入力指令に応えて、被写体を表現する
三次元データをステップ22で加工処理する。ステップ23
で観察主の位置と向きとに基づいて二次元画像を生成す
る。そして、ステップ24で画像を表示する。環境によっ
ては、普通非常に精細度の高い単体画像を特定の視野位
置に作成する。対話式三次元環境においては、オペレー
タ指令に応じてパラメータを調整し、対話中に新しい視
野を繰り返し生成する。点線25で示すようにステップ21
〜24が繰返される。以降、図形システムの具体的な実現
方法について図23と24を参照しながら要約する。
【0015】前述のように、被写体は、隣合う頂点を共
有する多角形を接続したものと考えられる。従って、形
状ファイルに定義される被写体データは、複数個の接続
された多角形を定義する。
【0016】形状ファイルに被写体データを格納するた
めに、多数の異なるデータ構造が考えられる。その内の
一つを図2 詳細に示す。図2 において、データ項目の特
徴は、そのデータ項目のデータ構造内の位置によって決
まる。
【0017】図2 に示す形状ファイルの第一行には、被
写体内に存在する頂点の個数を示す整数値N(V)と被写体
を形成する多角形の個数を示す第二の整数値N(P)とが設
定される。その後の行には頂点の座標が設定される。例
えば、形状ファイルの第二行には、第一の頂点V1の座標
が設定される。この行の第一の値は、頂点V1のX 座標を
表す浮動小数点値X(V1) ある。第一の値の次には、頂点
のY 座標を表すY(V1)とz 座標を表すZ(V1) とが設定さ
れる。同様に、次の行にはX(V2) 値とY(V2) 値とZ(V2)
値とが第二の頂点V2のX 座標とY 座標とZ 座標として設
定される。この設定は、最後の頂点の値X(Vm) 、Y(Vm)
およびZ(Vm) が設定されるまで続く。ここで、m はN(V)
に等しい。
【0018】頂点全部の座標が求められると、それらの
座標から多角形が定義される。第一の多角形をP1とし、
第二の多角形をP2とする。同様に、多角形Pq(q=N(P))
までの多角形を定義する。第一の多角形P1の場合、第一
項目には多角形P1を構成する頂点の個数を示す整数値N
(V)1 が設定される。それ以降、その多角形の一部を構
成する頂点が一つ一つ次の手続きに従って順次設定され
る。多角形の前面から反時計回りに多角形を構成する頂
点が列記される。このようにして、すなわち、多角形の
前面から反時計回りに多角形の各頂点Va1 〜Vn1 が判別
され、最終的にN(V)1 個の頂点が列記される。
【0019】多角形P1が頂点三個から成る三角形である
場合、多角形の第一の値N(V)1 は3に等しい。多角形を
構成する頂点は、前面から反時計回りに、例えば、頂点
V2、V3およびV4と記される。従って、頂点の個数を定義
する項目に続く項目には整数値が記入される。各整数値
は先に規定された頂点に対応する。
【0020】多角形を構成する頂点が列記された時点で
は、特定の多角形に関する項目には、光に対する多角形
の反射力を示す値が含まれている。第一の値Kaは周囲の
光に対する反射力を表し、第二の値Kdと第三の値Ksとは
各光源に関する反射力係数を表す。第二の値Kdは拡散反
射力を規定する。第三の値Ksは鏡面反射力すなわち多角
形の表面の輝きを規定する。反射力値は、同時に申請中
の欧州特許出願第93307772.9号(代理人の参照番号:22
27830 )に記載されているように、浮動小数点値もしく
は固定小数点値として格納される。
【0021】各多角形に関する最後の項目は多角形の色
を規定する。これには、多数の構成が考えられる。例え
ば、24ビット値を使ってRGB 色空間に色を定義してもよ
い。あるいは、ビット数を減らしてルックアップテーブ
ルのアドレスを指定するようにしてもよい。同時申請中
の欧州特許出願第93307611.5(代理人の参照番号:2227
730 )に記載されているように、色データを非線形ルッ
クアップテーブルに格納してもよい。
【0022】このように、頂点と反射力値と色値とから
成るリストが、被写体を構成する多角形P1〜Pqの各々に
対して作成される。最後に、形状ファイルには注解が設
けられる。多角形Pqに対して色を定義した後に設定した
データが、注解として処理される。
【0023】形状ファイルを読む段階すなわち図1 のス
テップ18を図3 に詳細に示す。ステップ31で被写体の頂
点の個数を表す値N(V)を読取る。ステップ32で被写体を
構成する多角形の個数を表す値N(P)を読取る。ステップ
33で各頂点のX 、Y およびZ座標を定義する頂点データ
を読取る。ステップ34で各多角形を構成する頂点の中の
どれか一つを指定する多角形データを各多角形の反射力
値と色値と一緒に読取る。注解は、この段階では読み取
られず破棄される。
【0024】各多角形は、三次元世界空間内に設定され
た無限平面内に存在すると見なされる。これらの平面は
各々、次の平面方程式によって定義される。
【0025】Ax+By+Cz+D =0 ここで、A 、B 、C およびD は平面の位置を示すパラメ
ータである。A 値、B 値およびC 値は、多角形の前面か
ら延長し多角形の平面に対して法線となるベクトル、す
なわち、多角形の平面に垂直なベクトルを規定する。平
面の向きを判別するばかりでなく、法線ベクトルは多角
形の表面のどれが前面かを識別する。
【0026】ステップ34で多角形データ全部の読取りが
終了したら、多角形を順番に処理する。ステップ35で多
角形の平面方程式の演算を試みる。ステップ36で平面方
程式を演算できるかどうかを判断する。判断の結果が否
定ならば、その多角形をステップ37で破棄する。
【0027】ステップ35で平面方程式の演算が終了した
ら、算出された表面の法線ベクトル(A、B 、C)をステッ
プ38で処理(正規化)して、同一方向に向いた単位長の
ベクトルを設定する。単位法線ベクトルを定義するデー
タを多角形データに追加する。これらのデータは、ステ
ップ19で多角形順序リストを用意するために使用される
ばかりでなく、ステップ23の表出手続きでも使用され
る。具体的には、単位法線ベクトルは、照明パラメータ
を算出するときにパラメータ値を判定するために必要で
ある。同時申請中の欧州特許出願第93307772.9号(代理
人の参照番号:2227830 )に記載されているように、被
写体自体のモデル化空間で照明パラメータ量を算出して
もよい。
【0028】ステップ38で単位法線ベクトルが算出され
たら、ステップ39で別の多角形が存在するかどうかを判
断する。結果が肯定ならば、次の多角形に対する平面方
程式をステップ35で演算する。多角形全部を着目し終る
と、ステップ39での判断の結果は否定となる。図1 のス
テップ19へ制御を戻す。
【0029】このように、図3 に詳細に示した手続き
は、形状ファイルを読み多角形毎に単位法線ベクトルを
算出し注解があれば注解を破棄する。
【0030】図1 のステップ19で多角形表出順序リスト
を用意する。これについて、以下に述べる。観察主をカ
メラと考える。カメラの特性については、パラメータ三
個で充分に定義できる。パラメータは、カメラが指示す
る方向とカメラの位置とカメラの視野とである。各表出
順序リストは、カメラの方向の集合一個もしくは複数個
に対応づけられる。理想的には、考えられる全てのカメ
ラ方向を二個か三個の集合に分類する。こうすれば、選
択対象の表出順序リストの個数が最低になる。一般的に
は、カメラのパラメータ全部が、所定の表出順序リスト
に対応づけられた値に影響を及ぼす。しかし、本実施例
では、最も大きな影響を及ぼすパラメータをカメラの方
向であるとみなす。カメラの方向は、カメラの絶対位置
とは無関係でカメラの観察軸が指示する方向に一致す
る。特定の方向に広がる領域は視野によって異なる。状
況によっては、カメラの位置をも処理の対象にしなけれ
ば、完璧な順序リストを作成することができないかもし
れない。このような状況では、リストはツリーか有向グ
ラフかの形態をとる。観察位置に従って特定の岐を選択
する。このように、方向のみに従ってリストを完成する
ことが不可能となる位置で分岐が発生する。分岐点で
は、カメラの絶対位置に関連した判断が下される。判断
の結果によって二つの枝の一方か他方を選び、リスト形
成を続ける。
【0031】対話操作によって、カメラの特定の向き
(観察方向)に対して特定の表出順序リストが選択され
る。多数の表出順序リストが作成される。各表出順序リ
ストは、後述のように、いわゆる概念的な観察軸に関係
する。本実施例においては、概念的な観察軸数個の中で
実際の観察方向に最も近接しているのはどれかを評価す
ることによって、リストが選択される。
【0032】理解し易いように、これ以降「リスト」と
いう用語は、リスト、ツリー、有向グラフなどのデータ
構造を意味するものとする。
【0033】方向空間を図4 に示す。図4 において、球
体41上の各点は球体の中心の原点42への方向を表現す
る。
【0034】必要な表出順序リスト(ツリーかグラフ)
の個数は、被写体の幾何学的形状によって異なる。しか
し、本実施例に係わるプロセスの場合、最小リスト数は
4 個である。概念的な観察軸の個数すなわち作成される
リストの個数は、オペレータによって指定される。図4
に示す例では観察軸は8 本指定される。従って、球体41
は8 個の区画に分割される。
【0035】概念的な観察軸43は、概念的な観察軸8 本
の中の一つであり、水平な分割面45と第一の垂直分割面
46と第二の垂直分割面47と境を成す区画44を画定する。
着目される区画は、視野錐体によってではなく平面間の
交点によって画定される。関心方向を上記のように定義
することによって、データを加工し易くなり処理時間を
顕著に短縮できる。
【0036】多角形表出順序リストの準備に係わる図1
のステップ19について図5 で詳細に説明する。ステップ
51で概念的な観察軸の集合が一組選択される。集合中の
軸の個数によって、対話操作で選択される表出順序リス
トの個数が決まる。先述のように、この選択はオペレー
タ指令に応答して実行される。時間が立てば、オペレー
タは、着目する被写体の幾何学的形状の特徴によって好
適な軸集合を判別することに慣れる。
【0037】ステップ52で、ステップ51で選択された観
察軸の位置に基づいて分割面の位置を決定する。このよ
うに、例えば、観察軸43から、ステップ42で算出される
分割面44、46および47の位置が決まる。次に、ステップ
52について図6 を参照して詳細に説明する。図4 から明
白なように、各平面は二つの概念的な観察方向に共有さ
れていると考えられる。特定の概念的な観察軸の領域を
画定する実際の分割面全部をその軸に対して演算するよ
うなシステムを構成する。このように構成されたシステ
ムの場合、(概念的な観察軸43に関する処理ステップで
必要な)平面46の前面は、その平面の背面とは異なる平
面であり、隣接する概念的な観察軸に対して演算される
べきものである。
【0038】概念的なカメラや目には、パラメータ定義
方向があるばかりでなく、中心観察軸の方向に向いてい
ても、視野錐体内ならば他の方向をも目に見れる視野が
ある。図4 に示すような観察平面の中のどれか一つの平
面方向に向いているとき、カメラや目は、その平面と境
を成す区画内ならどの方向をも観察できる。しかし、カ
メラや目は、視野のお陰で、観察面の他方の面に存在す
るその他の方向をもある程度は観察できる。更に、視野
が増大するにつれて、境界をつけられた区画の外側に存
在するその他の方向をカメラが観察できる度合が増す。
【0039】ステップ54で境界面の位置を調節して視野
を設定する。この調整について図7を参照して更に詳細
に説明する。視野を補償するために、境界面を概念的な
観察軸から離れた位置に置き直す。これによって、着目
している区画の寸法が増加する。
【0040】概念的な観察軸一つ一つに対して、常に後
ろを向いている多角形がいくつかあり、後ろを向いてい
るがために目に見えないということがありえる。ステッ
プ55では、この種の目に見えない多角形を除去する。次
に、この除去について図8 を参照して詳細に説明する。
【0041】ステップ56で予備リストを作成する。この
際、概念的な観察軸方向に存在する多角形の最も遠くの
頂点間の距離に着目する。図9 を参照して一層詳細に説
明する。予備リストは最終表出順序リストを表すのでは
なく、表出順序リストを作成し易くするものである。ま
た、予備リストを設ける目的は、完全な表出順序リスト
の生成を行う処理段階において論理順序に従って多角形
を選択できるようにすることである。また、演算オーバ
ヘッドを顕著に短縮できる。予備リストによって定義さ
れた順序で多角形を比較することによって、最終表出順
序リストを作成するのに必要な比較回数が顕著に低下す
る。
【0042】ステップ57で、予備リストからの選択を実
行し、着目している特定の概念的な観察軸に対する最終
表出順序リストを作成する。次に、図11と12を参照して
一層詳細に説明する。
【0043】ステップ58で、着目していない概念的な観
察軸があるかどうか(別の表出順序リストを作成する必
要があるかどうか)を判断する。判断の結果が肯定なら
ば、ステップ53へ制御を戻す。
【0044】ステップ58での判断の結果が否定ならば
(概念的な観察軸一つ一つに対する表出順序リストの作
成が終了したならば)、図1 のステップ20へ制御を戻
す。
【0045】図6 は、図5 のステップ52に示された分割
面の位置を算出する段階について詳細に示す。ステップ
61で第一の軸を選択する。この軸は特定の方向をもちベ
クトルI とされる。ベクトルI は、図4 に示す概念的な
観察軸43に対応する。ステップ62で軸があるかどうかを
判断する。反復一回目では結果は肯定である。
【0046】ステップ63で第二の軸J を選ぶ。この選択
で、先に選択された軸が再度選択されることもある。ス
テップ64で軸があるかどうかを判断する。反復一回目で
は、やはり、結果は肯定である。
【0047】ステップ63で、ステップ61で選択された軸
を再度選んでしまったかもしれないので、ステップ65で
軸J と軸I が同じかどうかを判断する。結果が肯定なら
ば、ステップ63へ制御を戻し別の軸を軸J として選択す
る。
【0048】ステップ65での判断の結果が否定ならば、
ベクトル減算を実行する。ベクトル減算では、軸J が軸
I から減算される。この演算を実行するために、ベクト
ルIの大きさはベクトルJ の大きさと同じでなければな
らない。
【0049】図4 から、ベクトル43と平面46の他方の面
に存在する同様なベクトルとに対してベクトル減算を実
行できることが分かる。ベクトル減算によって、別のベ
クトルが作成される。このベクトルは、ベクトル43を隣
接ベクトルに接続する働きをし、平面46に垂直な方向に
存在する。ベクトルI とベクトルJ とは長さが等しいの
で、作成されたベクトルは平面46の法線となる。また、
このベクトルは、ベクトルJ ではなくベクトルI を指示
する方向に向いている。
【0050】ステップ66で算出されたベクトル(I-J) を
ステップ67で絶対値を使って除算する。これによって、
単位長の等価ベクトルが算出される。このようにして、
単位法線ベクトルで平面46を規定する。そして、ステッ
プ63へ制御を戻して第二の軸J を選択できるようにす
る。この際、平面44を規定し、次に平面47を規定できる
ようにベクトルを選択してもよい。
【0051】J ベクトル軸全部が特定のI ベクトル軸に
対して着目されてしまうと、ステップ64での判断の結果
は否定となり、ステップ61へ制御が戻される。
【0052】ステップ61に制御が戻されるとすぐに、更
なる軸がI 軸として選択されプロセスが繰返される。概
念的な観察軸43と平面46の他方の面上の概念的な観察軸
とに関連づけて説明したプロセスは、反復一回目でなく
とも効率よく再実行される。但し、上記のベクトルの役
目は逆転する。平面46の位置が再度判断されるが、単位
法線ベクトルは、平面の背面から伸長して他の概念的な
観察軸に係わる平面を規定する。
【0053】こうして最終的には、概念的な観察軸全部
が第一の軸I として着目され、ステップ62での判断の結
果は否定となる。そして、制御がステップ53に渡され
る。
【0054】特定の概念的な観察軸に対応する観察方向
は、境界面によって規定される。また、境界面は、その
他の有限数の概念的な観察軸を規定するベクトルに算術
演算を実行することによって算出される。
【0055】各境界面は、特定の概念的な観察軸に対応
しない方向の範囲とその観察軸に対応する範囲とに観察
方向全部を分類する。平面から除外される範囲は、その
平面の単位法線ベクトルの方向で判別され、許容観察方
向に配向される。対応する観察方向の実際の範囲は、概
念的な観察軸I を指示する単位法線ベクトルを有する境
界面から除外される範囲である。
【0056】概念的な観察軸43に対応するカメラの向き
(観察方向)の範囲に着目するとき、境界面はカメラが
観察できる方向全部を規定する。このように、境界面に
よって画定される領域は、元来、観察方向のみに係わる
ものである。しかし、これでは視野を合わせないから、
好ましくない状況もある。そのため、境界面によって画
定される区画の拡大処理を実行して視野を変更する。こ
の場合、境界面は調整されるが平面としての幾何学的構
成は維持される。
【0057】図7 に詳細に示す手続きに従って、視野の
半角で指定される量だけ境界面を調整して視野を合わせ
る。視野の半角とは、視野錐体の中心観察軸と錐体の周
縁部との間の角度である。視野領域は事実上円錐形をし
ているので、上記の処理は拡張部分を完全には反映でき
ない。従って、平面を実際に必要な量より僅かに多い量
だけ調整して、着目している区画の幾何学的形状を複雑
にし過ぎないようにする。
【0058】図5 を再度参照する。ステップ54での視野
調整は概念的な観察軸毎に実行される。ステップ54は軸
選択ループの中にある。従って、図4 において、隣接す
る区画に係わる境界面を調整すると、境界面は合致しな
くなり区画は重なり合う。
【0059】視野を調整する手続きを図7 に詳細に示
す。概念的な観察軸をステップ53で選択する。そして、
その他の観察軸に対して演算を行う。ステップ71で他の
観察軸の中のどれか一つを選択する。この形態が設定さ
れていない場合、単位ベクトルを算出する。この単位ベ
クトルをA とする。
【0060】ステップ72で軸があるかどうかを判断す
る。反復一回目では、判断の結果は肯定である。ステッ
プ71で選択される軸が、ステップ53で選択された概念的
な観察軸と同一ではないという保証はない。従って、ス
テップ71で選択された軸がステップ53で選択された軸と
同一かどうかをステップ73で判断する。判断の結果が肯
定である場合、ステップ71へ制御を戻し別の軸を選択す
る。判断の結果が否定である場合、二本の選択された軸
を分離する平面を規定する単位法線ベクトルN を読取
る。この単位法線ベクトルはステップ67で算出されたも
のであり、このステップで格納されステップ74で読出さ
れる。
【0061】ステップ75で単位ベクトルA とN との点乗
積を算出する。これらのベクトル両方の長さが単位長で
あるならば、それらの点乗積は双方の間の角度の余弦関
数である。
【0062】ステップ75で算出された点乗積の絶対値あ
るいは大きさが1 より大きいかどうか、すなわち、その
大きさが+1より大きいか-1より小さいかどうかをステッ
プ76で判断する。点乗積の大きさが1 より大きい場合、
丸め誤差が原因なので、ステップ77で大きさを1 に設定
する。必要ならば、判断処理を重ねて、システム内の論
理誤差の存在を明確に反映する数値を判別してもよい。
【0063】点乗積が+1に極めて近いか(例えば、0.99
99より大きいか)をステップ78で判断する。判断の結果
が肯定ならば、ステップ71へ制御を戻し別の軸を選択す
る。
【0064】ステップ78での判断の結果が否定ならば、
ステップ79で点乗積の逆余弦関数を算出し、二つのベク
トル間の角度α値を判定する。
【0065】ステップ80で、ステップ79で算出され
た角度α値から視野の半角を減算する。この結果、新し
い値α’が得られる。この値は、平面を視野に合わせて
調整した後のその他の概念的な観察軸からの角度を表
す。
【0066】ステップ81でα’値がゼロより小さいかゼ
ロと等しいかどうかを判断する。判断の結果が肯定なら
ば、制御をステップ71へ戻す。
【0067】ステップ81での判断の結果が否定ならば、
ベクトルA とN とのクロス乗積を算出して回転軸R を求
める。ステップ83で新しい単位法線ベクトルN ’を算出
して、視野を変更するために置換させられた境界面の向
きを規定する。新しい単位ベクトルは、例えば、(i) 概
念的な観察軸ベクトルA で乗算された角度α’値の余弦
関数、あるいは、(ii)ベクトルR とA とのクロス乗積で
乗算された角度α’値の正弦関数を加算することによっ
て求められる。
【0068】ステップ84で、調整された単位ベクトルN
’を記述し制御をステップ71へ戻す。後続の演算で
は、N で規定される半空間の代わりにN ’で規定される
半空間を使用する。
【0069】最終的には、ステップ72での判断の結果が
否定になり、制御がステップ85へ渡される。これによっ
て、観察軸自体が観察角度構造に追加される。
【0070】図8 は、図5 のステップ55での目に見えな
い多角形の除去について詳細に示す。ステップ91では、
ステップ54で視野に合わせて調整された境界面に着目す
る。具体的には、着目する境界面とは、ステップ53で選
択された概念的な観察軸に対応する方向に境界をつける
ために必要な平面のことである。このような境界面の小
集合を非冗長境界面と呼ぶ。これらの境界面は、現在選
択されている観察軸に対しては非冗長なのである。
【0071】ステップ91で選択された非冗長境界面は交
差している。ステップ92で、交点を規定する辺ベクトル
を算出する。これらのベクトルは後続の処理に使用され
る。従って、これらのベクトルを定義するデータを将来
の使用のために格納する。
【0072】ステップ93〜98で、多角形全部に順番に着
目して、着目している概念的な観察軸方向に目に見える
か見えないかを判断する。目に見えない多角形は、選択
された概念的な観察軸に関する表出順序リストの作成に
関して更に着目されることはないので除去される。
【0073】具体的には、ステップ93で別の多角形があ
るかどうかを判断する。反復一回目では、判断の結果は
肯定である。ステップ94では別の辺ベクトル(ステップ
92で算出された集合に含まれる辺ベクトル)があるかど
うかを判断する。反復一回目では、判断の結果は肯定で
ある。
【0074】ステップ95で、多角形単位法線ベクトルと
ステップ94で選択された辺ベクトルとの間の点乗積を算
出する。
【0075】ステップ96で、ステップ95で演算された点
乗積がゼロより大きいかどうかを判断する。点乗積がゼ
ロより大きい場合、判断の結果は肯定となる。従って、
ステップ97で多角形を保持し、制御をステップ93へ戻
す。そして、別の多角形を選択する。
【0076】ステップ96での判断の結果が否定ならば、
多角形は目に見えない可能性がある。但し、その多角形
が目に見えないのは、辺ベクトル全部で構成された点乗
積がゼロより大きくないときだけである。このように、
ステップ96での判断の結果が否定ならば、制御をステッ
プ94へ戻し別の辺ベクトルを選択する。ステップ95で、
次の辺ベクトルに対する点乗積を再度算出し、ステップ
96で、この点乗積はゼロより大きいかどうかを判断す
る。
【0077】点乗積がどれもゼロより大きくない場合、
ステップ94での判断の結果は否定となる。そのため、ス
テップ98で当該多角形を除去し更に着目しないようにす
る。
【0078】多角形全部が着目されてしまうと、ステッ
プ93での判断の結果は否定となり、制御はステップ56へ
移る(図5)。
【0079】図9 は予備リストを作成するためのステッ
プ56(図5 )を詳細に示す。ステップ101 で、ステップ
18(図1 )で形状ファイルから読取られた多角形データ
を再構成して図10に示す形態にする。多角形データの各
ブロックにはラベルがつけられ、一意に判別できるよう
になっている。このラベルは目に見える多角形を判別す
る。また、目に見えない多角形はステップ55(図5 )で
除去される。更に、各多角形には追加空間が設けられ、
図10に示すように予備リストや「子「および/あるいは
「親」への接続を示すポインタが設定される。後に、こ
れらのポインタの機能について図10を参照して説明す
る。
【0080】図9 に戻る。ステップ102 で、概念的な観
察軸方向に最も遠くまで広がる多角形を選択する。そし
て、概念的な観察軸方向の距離に着目して予備リストを
作成する。この予備リストから後続の処理の対象となる
多角形の論理順序が決まり、表出順序リストを作成でき
る。
【0081】ステップ103 で、選択された多角形を予備
リストの最後に追加し、ステップ104 で、別の多角形が
あるかどうかを判断する。判断の結果が肯定であれば、
制御をステップ102 へ戻し、最も遠くまで広がる次の多
角形を選択する。
【0082】最終的には、ステップ104 での判断の結果
は否定となり、制御はステップ57へ戻される。
【0083】他の多角形に優先して表出される多角形を
判別して、表出順序リストを作成する。リストに設定さ
れる第一の多角形は、後続の多角形で遮られるものであ
り、最初に表出されるものである。優先して他の多角形
を遮る多角形は、最後にリストに設定される。
【0084】状況によっては、存在する多角形から(予
備リストに類似した)正しくリストを作成できない。例
えば、第一の多角形が第二の多角形を遮り、第二の多角
形が第三の多角形を遮り、第三の多角形が第一の多角形
を遮るという具合いに、多角形が相互に互いを遮るとい
う状況である。この場合、どの多角形がどの多角形より
優先されるかを判断するのは不可能である。このような
状況を以降サイクルと呼ぶ。
【0085】本実施例においては、後により詳細に説明
するが、サイクルの破壊に二通りの手続きが採用され
る。第一の手続きにおいては、多角形を分割して「子」
多角形を二個作成することによってサイクルを破壊す
る。すなわち、子多角形を表出順序リストに設定し、次
に別の多角形をリストに設定し、その後に他方の子多角
形をリストに設定することで、相互に遮るのを回避しよ
うとする。分割多角形は、子多角形二個の「親」と呼ば
れる。子多角形に対して図10に示す親ポインタが設定さ
れ、関連する親多角形のラベルを指示する。同様に、子
ポインタを設け、親多角形が順番に特定の子多角形に関
する多角形データを指示できるようにしている。本実施
例においては、親多角形は常に子二個に分解される。そ
の後に、子多角形を両方とも表出順序リストに設定し
て、あたかも親多角形がそのリストに設定されたかのよ
うに処理する。
【0086】多角形を分割してサイクルを破壊すること
ができない場合、第二の手続きが試みられる。すなわ
ち、表出順序リストを分岐させてサイクル破壊を実行
し、表出順序リストに決定点を設定するのである。決定
点に達したら、概念的なカメラの実際の位置およびカメ
ラの視野(観察)方向に着目し、どれか一つの枝を選択
する。サイクルを破壊するには、様々な地点で表出順序
リストを分岐させることが必要である。すなわち、ツリ
ー構造を採用するのである。ツリーの各枝は同一の多角
形集合で構成される。但し、多角形のいくつかは、異な
る方法で子多角形に分割されているかもしれない。枝間
の相違は基本的には多角形の順序である。この順序は概
念的なカメラの実際の位置によって異なる。
【0087】分岐が行われ複数個の多角形が(枝毎に異
なる順序で)列記されたら、枝二本における多角形の順
序が再び同じになる可能性がある。このような状況で
は、どれか一つの枝に存在する多角形を列記し、多角形
の完全なリストが出来ている枝を指示するポインタを他
の枝に設定する。この場合、リストは有向グラフの形態
をとる。また、最終表出順序リストへの参照にはツリー
や有向グラフへの参照が含まれる。
【0088】図10において、各多角形データブロックは
一意な多角形ラベルを備えている。多角形ラベルは、形
状ファイルから読取られた多角形データに付加される。
更に、特定の多角形がそれ自体子多角形である場合に親
を指す親ポインタと、予備リスト内の位置を直接あるい
は親多角形を介して示す接続ポインタと、多角形が子多
角形に分割されている場合に子多角形を判別する子ポイ
ンタとが多角形データブロックに設定される。
【0089】予備リストは多角形のどれかが分割される
前に形成されるので、この段階で着目している多角形全
部が接続ポインタを予備リスト内のある位置に設定され
る。しかし、多角形を分割して表出順序リストを作成す
る場合もある。また、子多角形が表出順序リストに設定
されたとき、付随する子多角形も親多角形に優先してそ
のリストの適当な位置に設定される。
【0090】図11と12は図5 のステップ57を詳細に示
す。先述のように、多角形はこの段階では既に予備リス
トに設定されている。そして、その予備リストから多角
形を選択して最終表出順序リストを作成する。具体的に
は、予備リストの位置から鑑み最終表出順序リストに設
定される可能性が最も高い多角形が選ばれる。この多角
形は「現行本命多角形」と認識される。最終表出順序リ
ストに設定する前に、試験を実行して現行本命多角形を
リストに設定できるかどうかを確認する。試験を実行し
て、現行本命多角形と他の多角形とを比較し、現行本命
多角形が最終表出順序リストに設定されるのを阻止しよ
うとする多角形を判別する。現行本命多角形に比較され
る多角形を候補多角形と呼ぶ。
【0091】現行本命多角形が表出順序リストに設定さ
れるのを候補多角形が阻止しようとしているかどうかを
判断するために行われる試験について説明する前に、現
行本命多角形を表出順序リストに設定されない場合に採
られる論理処理構成について述べる。
【0092】現行本命多角形と候補多角形とを比較し
て、本命多角形がリストに付加されるのを候補多角形が
阻止できるかどうかを判断する。本命多角形がリストに
付加されるのを候補多角形が阻止できることが検出され
ると、特定の多角形が現行本命多角形として選択された
が、表出順序リストへの設定は拒絶されたという趣意が
表示される。その後、別の現行本命多角形が選択され
る。
【0093】拒絶された現行本命多角形はスタックに投
入される。そして、以前に候補多角形だった多角形であ
って、以前の現行本命多角形が最終表出順序リストある
いはツリーに設定されるのを阻止した多角形が、新しい
現行本命多角形として選択される。新しい現行本命多角
形が最終表出順序リストに設定されたら、以前の現行本
命多角形はスタックから弾き出され、他の候補多角形に
対して試験される。
【0094】このように、現行本命多角形はスタックに
付加されたりスタックから除去されたりする。これによ
って、現行本命多角形が拒絶された場合には、そのこと
が表示される。一方、予備リストの残りの多角形に優先
して過去の現行本命多角形に再度着目できるようにす
る。
【0095】スタックも、サイクルの発生を識別するた
めの機序を与える。すなわち、既にスタックに入ってい
る新しい現行本命多角形がスタックに投入されそうにな
ったら、それは明らかにサイクルが存在するということ
であり、サイクルを破壊するための処理を実行しなけれ
ばならない。
【0096】上記のように、多角形を分割してサイクル
を破壊しようとすると、特定の多角形が分割されて一対
の子多角形が作成される。子としての多角形は再度分割
され一対の子多角形が作成される。子多角形が小さ過ぎ
ないよう保証する手段が設けられている。
【0097】多角形をスタックに投入するための構成で
は、子多角形を処理でき、親多角形に優先して子多角形
を表出順序リストに設定することできる。
【0098】図12を詳細に考察する。ステップ121 で空
のスタックを作成し、ステップ122でスタックが空かど
うかを判断する。反復の一回目では判断の結果が肯定な
のは明かである。制御をステップ124 へ渡す。
【0099】ステップ124 で多角形全部が処理されたか
どうかを判断する。判断の結果が肯定であるとき、最終
出力表出順序リストあるいはツリーが完成したことを意
味する。制御を図5 のステップ58へ戻す。
【0100】ステップ124 での判断の結果が否定である
とき、制御をステップ125 へ渡す。そして、予備リスト
から次の多角形を現行本命多角形として選択する。
【0101】多角形のスタックへの投入が終了すると、
ステップ122 での判断の結果は否定となる。ステップ12
3 で、予備リストから多角形を取出すのに優先してスタ
ックから最上位の多角形を取出し、次の現行本命多角形
を判別する。その後、制御を再びステップ126 へ渡す。
【0102】ステップ126 で現行本命多角形が既に最終
表出順序リストに設定されているかどうかを判断する。
判断の結果が肯定ならば、制御をステップ122 へ戻す。
判断の結果が否定ならば、制御をステップ127 へ渡す。
【0103】ステップ127 で現行本命多角形が子多角形
かどうかを判断する。判断の結果が肯定ならば、最下位
の子多角形を判別し現行本命多角形として設定する。最
下位の子多角形は、それ自体は子を持たない多角形であ
り、多角形のツリー構造の末端の「葉」と呼ばれるもの
を同定することで判別される。
【0104】ステップ127 での判断の結果が否定なら
ば、制御をステップ128 の次のステップ129 へ渡す。ス
テップ129 で現行本命多角形が遮ることができる多角形
を判別するための処理を実行する。この処理で現行本命
多角形が遮れる多角形を判別できたら、ステップ129
で、遮る側の多角形に関する表示と供にこの事実に関す
る情報が表示される。あるいは、現行本命多角形が遮れ
る多角形はないという趣意が表示される。
【0105】ステップ130 で現行本命多角形が遮ること
ができる多角形があるかどうかを判断する。判断の結果
が否定ならば、制御をステップ137 へ渡す。
【0106】ステップ130 での判断の結果が肯定なら
ば、これは、すなわち、現行本命多角形を最終表出順序
リストに設定できないということである。ステップ131
で、今では古い現行本命多角形と呼ばれる現行本命多角
形をスタックに投入し、制御をステップ132 へ渡す。
【0107】ステップ131 で古い現行本命多角形のスタ
ックへの投入が終了したら、ステップ129 で判別された
多角形(候補多角形)がステップ132 で新しい現行本命
多角形となる(図12)。
【0108】ステップ133 で、新しい現行本命多角形が
既にスタックに存在するかどうか、そして、サイクルが
存在するかを判断する。判断の結果が肯定ならば、サイ
クルが存在する。そして、ステップ134 でサイクルを破
壊しようとする。
【0109】ステップ133 での判断の結果が否定なら
ば、制御をステップ129 (図11)へ戻す。そして、新た
に選択された現行本命多角形が遮れる多角形を判別する
ための処理を実行する。
【0110】図12において、ステップ134 でサイクルの
破壊が終了すると、多角形の中には修正(例えば、分割
とか切捨て)されたものがあるかもしれない。ステップ
135でこれらの多角形をスタックから除去す。ステップ1
34 のサイクル・破壊・ルーチンは、ステップ135 の制
御に戻る前に最下位の修正された多角形を記録する。ほ
かの修正された多角形より長くスタックに存在した修正
されたポリゴンを意味する。それからステップ135 は修
正された多角形の他に、修正された多角形の1つより後
にスタックに追加された未修正の多角形も取り除く。サ
イクル分割の試みが常に不成功に終る可能性がある。ま
た、サイクルが存在するということを受け付けるか無視
するかを判断する処理も必要かもしれない。しかし、図
12に関連づけた説明では、サイクル全部を破壊するもの
とする。大多数の場合、サイクル全部を破壊するからで
ある。
【0111】ステップ135 で修正された多角形のスタッ
クからの除去が終了したら、ステップ136 でスタックは
空かどうかを判断する。ステップ136 での判断の結果が
否定ならば、スタックは空ではないということなので、
制御をステップ123 へ戻す。そして、最上位の多角形を
スタックから排除して現行本命多角形を選択する。ある
いは、ステップ136 での判断の結果が肯定ならば、スタ
ックは空であるということなので、制御をステップ124
へ戻す。そして、多角形全部が処理されたかどうかを再
度判断する。
【0112】ステップ130 (図11)での判断の結果が否
定ならば、ステップ129 で呼出された手続きは、現行本
命多角形が遮れる多角形を判別できなかったということ
である。従って、ステップ137 で現行本命多角形を表出
順序リストに設定す(図12)。ステップ138 で、多角形
データに変更を加えて、その多角形は表出順序リストに
設定されているという事実を記録する。ステップ139
で、別の子多角形が存在するかどうかを判断する。現行
本命多角形自体が子多角形ならば、判断の結果は肯定で
ある。そうでなければ、判断の結果を否定にし制御をス
テップ122 へ戻す。
【0113】ステップ137 で表出順序リストに設定され
た多角形が子多角形ならば、ステップ140 でその他の子
多角形が表出順序リストに設定されているがどうかを判
断する。判断の結果が否定ならば、制御を再びステップ
122 へ戻す。あるいは、判断の結果が肯定ならば、親多
角形を判別するデータに着目することが必要になる(ス
テップ141 )。子多角形が両方とも表出順序リストに設
定されたということは、親多角形が表出順序リストに設
定されたということと同じなので、親多角形を除去して
着目しないようにする。
【0114】ステップ141 で制御をステップ138 へ戻
す。そして、親多角形に関する項目が変更されて、親多
角形は表出順序リストに設定されているという趣意にな
る。先述のように、この親多角形はそれ自体が子なの
で、ステップ139 で判断が再度下される。そして、制御
をステップ122 へ戻すまでループを数回反復させる。
【0115】図13は図11のステップ129 に示された手続
きを詳細に示す。この手続きは、現行本命多角形が遮れ
る多角形を識別する。ステップ151 で、次の多角形を予
備リストから選択して現行本命多角形によって遮られる
候補多角形として試験する。
【0116】ステップ152 で、別の多角形がステップ15
1 で抽出されたかどうかを判断する。予備リスト内の多
角形全部の処理が終了したならば、判断の結果は否定に
なる。ステップ152 での判断の結果が否定ならば、現行
本命多角形は多角形をどれも遮れない(多角形は何も残
ってないので遮れない)という趣意を表示し、制御を図
11A のステップ130 へ戻す。この場合、ステップ130 で
の判断の結果は否定になる。従って、制御をステップ図
12の137 へ渡す。そして、現行本命多角形を順番に表出
順序リストに設定する。
【0117】ステップ151 で予備リストから候補多角形
を求めることができたら、ステップ152 での判断の結果
を肯定にし、制御をステップ154 へ渡す。
【0118】ステップ154 で、選択された候補多角形が
現行本命多角形と同一かどうかを判断する。候補多角形
が現行本命多角形と同一であり、ステップ154 での判断
の結果が肯定ならば、制御をステップ151 へ戻し、次の
多角形を新しい候補多角形として予備リストから選択
し、現行本命多角形によって遮られるかどうかについて
の試験を実施する。
【0119】ステップ154 での判断の結果が否定なら
ば、候補多角形は現行本命多角形とは異なるということ
なので、試験を実施して現行本命多角形が候補多角形を
遮れるかどうかを判断する。
【0120】ステップ155 で、観察軸方向の広がりの度
合に着目する。広がりの度合に基づいて予備リストを作
成するのである。観察軸方向に最も遠くまで広がる多角
形を観察主の近辺に広がる多角形に優先してリストに設
定するという順序で、多角形を予備リストに設定する。
予備リストを作成する際、観察方向に最も遠くまで広が
る多角形同士の頂点同士を比較して多角形を分類する。
このようにして、ステップ155 で活用された特性に基づ
く予備リストが作成される。
【0121】ステップ155 で、最も遠くまで広がる候補
多角形の広がりの度合すなわち候補多角形を予備リスト
に位置づける際に使用された広がりの度合を、最も近く
で広がる現行本命多角形の広がりの度合に比較する。現
行本命多角形に関する限り、ステップ155 で着目される
のは最も遠くまで伸びる広がりの度合(予備リストへ投
入する際に使用された広がりの度合)ではなく最も近く
で伸びる広がりの度合である。
【0122】ステップ156 で、最も近くで広がる現行本
命多角形の広がりの方が実際には最も遠くまで広がる候
補多角形の広がりより遠くまで伸びているかどうかを判
断する。この判断の結果が肯定ならば、現行本命多角形
は候補多角形を覆い隠すことは出来ない。
【0123】予備リストの重要な特徴は、ステップ155
と156 で行われた比較の結果に基づいて、本命多角形が
候補多角形を遮ることは出来ないと判断される場合、多
角形が予備リストに順序正しく配置されると仮定すれ
ば、本命多角形は他のどの多角形をも覆い隠すことはで
きないということである。これは、予備リストに設定さ
れる多角形全部が最も遠くまで広がっているからであ
る。このように、最も遠くまで広がる多角形の広がり
が、最も近くで広がる本命多角形の広がりよりも近くま
でしか伸びていない場合、その他の多角形全部の広がり
は、最も近くで広がる本命多角形の広がりより近くまで
しか伸びていないことになる。従って、本命多角形は他
の多角形のどれをも遮ることは出来ない。すなわち、予
備リストに残る他の多角形のどれかに対して試験をしな
くても現行本命多角形を表出順序リストに設定できる。
この手続きの優位性は、ステップ156 で実施した試験が
成功すれば、必要な処理時間を顕著に低減できることい
うことである。
【0124】この試験の優位な特徴は、サイクルを破壊
するために分割された候補多角形の子多角形に着目する
必要が無い点である。最も遠くまで広がる親多角形の広
がりが、最も遠くまで広がる子多角形の広がりと同等と
なる。また、この(最も遠くまで広がる)子多角形が現
行本命多角形によって遮られなければ、他の子多角形の
どれもが現行本命多角形によって遮られない。このよう
に、ステップ155 と156 で実施される試験は、試験が成
功して、残りの多角形のどれかを試験する必要がなけれ
ば、非常に有効である。
【0125】予備リストの作成で二つの重要な機能が発
揮される。第一の機能は、表出順序リストに設定するた
めに本命多角形を選択するときや本命多角形に対して比
較するために候補多角形を選択するときの論理順序を提
供する。第二の機能は、それをステップ155 と156 の処
理に組合わせて実行すれば、本命多角形を最終表出順序
リストに設定するのに必要な演算オーバヘッドをかなり
短縮できるというものである。
【0126】ステップ156 での判断で、現行本命多角形
は候補多角形を遮れないことを確認できない場合、図11
のステップ130 へ復帰する前に何等かの処理を行わなけ
ればならない。実現し易くするために、候補多角形を分
割して複数個の子多角形を作成するときに、葉の子多角
形一つ一つに個別に着目することが望ましい。また、ス
テップ152 での判断の結果が否定になるまで、あるい
は、ステップ155 と156で実施される広がり試験が成功
するまで、予備リストに残っている多角形全部に着目す
ることが必要である。
【0127】ステップ157 で、候補多角形は子多角形か
どうかを判断する。判断の結果が肯定ならば、子多角形
の構造を検査して葉の子多角形すなわち親ではなく分割
されてない子多角形を判別する。ステップ158 で次の葉
の子多角形を選択する。子多角形の構造に関連したプロ
セスは、予備リストから選ばれた根の多角形を構成する
葉の子多角形全部が着目されるまで続く。子多角形を作
成するステップにおいて、第一の子多角形は普通第二の
子多角形よりも観察主から離れた位置に作成される。従
って、ステップ158 では、ツリー構造の階層毎に階層順
位順に子多角形を選択する。
【0128】ステップ157 での判断の結果が否定なら
ば、制御をステップ159 へ渡す。制御はステップ158 に
続くステップ159 にも渡される。ステップ159 で、手続
きを実行して現行本命多角形が候補多角形を遮れるどう
かを確認する。この候補多角形は、予備リストから選択
された候補多角形あるいは予備リストから選択された多
角形の葉の子多角形としての候補多角形である。
【0129】ステップ160 で、現行本命多角形が候補多
角形を遮れるかどうかを判断する。判断の結果が肯定な
らば、ステップ161 でこの趣意を表示し制御をステップ
130へ戻す。ステップ130 での判断の結果が肯定なら
ば、ステップ131 で現行本命多角形をスタックに投入す
る。
【0130】ステップ160 での判断の結果が否定なら
ば、予備リストから選択された多角形から派生した別の
葉の子多角形があるかどうかをステップ162 で判断す
る。判断の結果が肯定ならば、制御をステップ158 へ戻
しステップ159 で次の葉の子多角形を選択し現行本命多
角形と比較する。このように、選択された多角形の葉の
子多角形全部が着目されるまで、このループは繰返され
る。
【0131】葉の子多角形全部に着目し終えたら、ステ
ップ162 での判断の結果を肯定にし、制御をステップ15
1 へ戻す。ステップ151 で、次の多角形を候補多角形と
して予備リストから選択する。その後、先に詳細に説明
した手続きが繰返えされる。
【0132】予備リストから選択された次の多角形の広
がりをステップ155 で比較する。ステップ156 での判断
の結果が肯定ならば、残りの多角形のどれも現行本命多
角形によって遮られないことが明白となる。すると、残
りの多角形全部を候補多角形として着目する必要がなく
なる。但し、ステップ155 と156 で実施した試験が不成
功に終った場合は着目しなければならない。
【0133】図14は図13のステップ159 の手続きを詳細
に示す。この手続きは、現行本命多角形が候補多角形を
遮れるかどうかを判断する。ステップ183 で、候補多角
形のどこかの部分が現行本命多角形の平面の後に来るか
どうかを判断する。現行本命多角形の平面は現行本命多
角形の単位法線ベクトルによって規定される。また、現
行本命多角形の平面は、実際の多角形の辺より先へ伸
び、着目している世界空間の境界から外れた平面であ
る。候補多角形のどの部分も現行本命多角形の平面の後
に来ていないならば、現行本命多角形が候補多角形を遮
ることはできない。また、ステップ183 での判断の結果
は否定になる。
【0134】ステップ183 での判断の結果が否定なら
ば、制御をステップ195 へ渡す。そして、現行本命多角
形が候補多角形を遮ることは出来ないという趣意を表示
し、制御を図13のステップ160 へ戻す。
【0135】ステップ183 での判断の結果が肯定的なら
ば、候補多角形の一部が現行本命多角形の平面の後に来
るということなので、ステップ184 で「候補多角形の断
片」と呼ばれるこの部分を表現するデータを格納する。
【0136】ステップ185 で、現行本命多角形のどこか
の部分が候補多角形の平面の前に来ているかどうかを判
断する。現行本命多角形のどの部分も候補多角形の平面
の前には来ていない場合、現行本命多角形が候補多角形
を遮ることはできない。ステップ185 での判断の結果が
否定ならば、制御を再びステップ195 へ渡す。そして、
ステップ160 で、現行本命多角形は候補多角形を遮れな
いという趣意のデータを表示する。しかし、ステップ18
5 での判断の結果が肯定ならば、現行本命多角形は候補
多角形を遮れる可能性が限定的ではないがある。
【0137】ステップ186 で、候補多角形の平面の前に
来ている現行本命多角形の断片を定義するデータを格納
する。次に、ステップ184 と186 で格納された断片と境
界面とを比較する。
【0138】ステップ187 で境界面を選択する。平面に
は絶対位置はないが、その単位法線ベクトルで向きが規
定される。単位法線ベクトルの正の方向は、対応する概
念的な観察軸の方向である。また、多角形の断片の位置
は、この正の方向に対して比較される。具体的には、ス
テップ188 で、境界面の法線ベクトルの正の方向に最も
近くに位置する現行本命多角形の断片の点を判定する。
その後ステップ189 で、同一の境界面の法線ベクトルの
正の方向に最も遠くに位置する候補多角形の断片の点を
判定する。ステップ190 で、現行本命多角形の断片の最
も近い点は候補多角形の断片の最も遠い点より遠いかど
うかを着目している平面に対して判断する。
【0139】現行本命多角形の断片上の境界面に最も近
い点が、前記の方向において候補多角形の断片の最も遠
い点より遠い場合、現行本命多角形は境界面と平行な観
察方向において候補多角形を遮れない。ステップ190 で
の判断の結果が肯定ならば、ステップ191 で、着目して
いる境界面はもっとあるかどうかを判断する。この判断
の結果が肯定ならば、制御をステップ187 へ戻す。そし
て、次の境界面を選択し、ステップ188 、189 および19
0 で距離試験を繰返す。現行本命多角形の境界面のどれ
かに最も近い点が、候補多角形のその境界面から最も遠
い点よりも遠い場合、ステップ190 での判断の結果は肯
定となり、現行本命多角形は候補多角形を遮れない。ま
た、制御はステップ195 へ渡される。
【0140】複数個の試験が入れ子形式で実施される。
試験は、相互の効果が最大となるような順序で実施され
る。ステップ183 と185 で実施される試験は第一段階試
験と見なされる。すなわち、候補多角形のどこかの部分
が好適多角形の平面の後に来ているかどうかが判断され
る試験の他に、候補多角形の断片を定義するデータが収
集される試験が実施される。同様に、現行本命多角形の
どこかの部分が候補多角形の平面の前に来ているかどう
かがステップ185 で判断されるとき、現行本命多角形の
断片を定義するデータが収集される。
【0141】ステップ183 と185 で実施される試験が不
成功に終った場合、すなわち、判断の結果が肯定となっ
た場合、第二段階試験が実施される。しかし、第二段階
試験は、元の多角形データに対しては実行されず、ステ
ップ184 と186 で格納されたデータに対して実行され
る。
【0142】このように、現行本命多角形が表出順序リ
ストに追加されるのを候補多角形が阻止する位置にある
かどうかの判断が試みられる場合、第一試験で一方の多
角形のポテンシャル摩擦が発生する可能性のある部分
(あるいは、両方の多角形の部分)を判別する。これに
よって、現行本命多角形が表出順序リストに追加される
のを阻止する。その後、遮る側の多角形の特定の部分一
個あるいは複数個に対してのみ第二段階試験が排他的に
実施される。このように、第一段階試験で現行本命多角
形がリストに追加されるかどうかの決定が不成功に終る
ことがあったとしても、第二段階試験の実施を可能にす
る情報は得られる。
【0143】ステップ190 での判断の結果が境界面全部
に対して否定ならば、ステップ91での判断の結果も否定
になる。この時点で、候補多角形は現行本命多角形によ
って遮られないとは言えなくなる。ステップ192 で、現
行本命多角形が候補多角形を遮れるかどうかの最終判断
を下す。
【0144】ステップ193 で、現行本命多角形が候補多
角形を遮れるかどうかを判断する。判断の結果が再度否
定ならば、制御をステップ195 へ渡す。しかし、試験全
部を終了した後でも、ステップ193 での判断の結果が以
前として肯定ならば、現行本命多角形は候補多角形を遮
れると推測する。ステップ160 でこの趣意の情報を表示
する。
【0145】現行本命多角形が候補多角形を遮れるかど
うかの最終判断を下すステップ192の手続きを図15と16
に詳細に示す。
【0146】上記のように、図14のステップ185 での現
行本命多角形の断片に関する判断の結果に基づいて行え
ば、ステップ189 での判断は下し易くなる。更に、もし
ステップ189 の後でも遮りがあると判断される場合、こ
の遮りの原因は、現行本命多角形の断片として判別され
た現行本命多角形の一部であることは周知の通りであ
る。このように、候補多角形を遮るものがあるとした
ら、それは現行本命多角形の断片である。また、現行本
命多角形の残りの部分は候補多角形のどの部分をも遮れ
ない。従って、図15と16の手続きにおいて、更に着目す
る必要があるのは現行本命多角形のみである。現行本命
多角形の断片が候補多角形を遮っていないことを示すこ
とができれば、現行本命多角形全体を最終表出順序リス
トに設定できる。
【0147】上記のように、ステップ190 (図14)で実
施される試験では、境界面の法線ベクトル方向に最も近
い現行本命多角形の断片の点と最も遠い候補多角形の点
とを比較する。この試験に関する限り、着目された領域
は、境界面の位置に関係する領域であり、断片自体の実
面積より大きい領域になりがちである。実際の断片より
大きい面積に着目すると、実際には遮りが起こる可能性
が無い時に発生する遮りの可能性を試験で認識すること
ができる。従って、ステップ192 の手続きは、現行本命
多角形の断片の広がりで画定される領域ではなく実際の
現行本命多角形が原因で遮りが発生するかどうかを判断
する。
【0148】図15と16は、候補多角形が現行本命多角形
を実際に遮れるかどうかを判断する手続きを詳細に示
す。この手続きは、境界辺、すなわちベクトルによって
規定される境界面の交点で画定される辺と、断片辺と呼
ばれる現行本命多角形の断片の辺とを参照する。具体的
には、この手続きは、現行本命多角形の断片の一辺を選
択し境界辺毎にその断片に着目する。その後、同様な手
続きが他の断片の辺に対して繰り返される。
【0149】ステップ201 (図15)で少なくとも一つの
境界辺があるかどうかを判断する。境界面が一つだけ存
在する場合、この判断の結果は否定である。覆い隠しが
発生し易くなり、制御はステップ215 (図16)へ渡され
る。
【0150】境界辺が少なくとも一つはある場合、ステ
ップ201 での判断の結果が肯定になり境界辺が選択され
る。ステップ202 で、ステップ186 (図14)で格納され
た現行本命多角形の断片の詳細情報を読取る。
【0151】ステップ203 で現行本命多角形の断片に別
の辺があるかどうかを判断する。反復一回目では、この
判断の結果は肯定になる。断片の辺を選択して更なる試
験を実施する。その後、ステップ204 で、断片辺の長さ
がゼロより大きいかどうかを判断する。ステップ204 で
の判断によって、辺が存在するように見えるが実際には
長さがゼロであり存在しない場合の条件が認識される。
こうして、ステップ204 での判断の結果が否定ならば、
制御をステップ203 へ戻し次の断片辺を選択する。
【0152】ステップ204 での判断の結果が肯定になる
とき、ステップ205 で、断片のある平面が「視野錐体」
に交差するかどうかを判断する。
【0153】視野錐体は、境界面を境を成す方向の集合
として定義される。視野錐体に交差する平面は、許容観
察方向を示す正接ベクトルをもつ。この種の平面におい
ては、前面を見れる観察方向があり、背面を見れる観察
方向もある。逆に、断片の平面は、それが視野錐体の外
側方向のみをもつ場合、視野錐体に交差しないと考えら
れる。この様な多角形の場合、視野錐体内の全方向に前
面が見えるか、あるいは、視野錐体内の全方向に後面が
見える。
【0154】ステップ205 での判断の結果が肯定なら
ば、現行本命多角形平面は視野錐体に交差するというこ
となので、ステップ206 で、現行本命多角形の断片の選
択された辺の方向が視野錐体内にあるかどうかを判断す
る。すなわち、選択された辺を規定するベクトルが、視
野錐体によって規定される許容観察方向の一つの方向に
一致するかどうかを判断する。
【0155】選択された辺ベクトルが許容観察方向に一
致する場合、ステップ206 での判断の結果を肯定にし、
制御をステップ203 へ戻して、別の辺を選択する。ステ
ップ206 での判断の結果が否定ならば、あるいは、ステ
ップ205 での判断の結果が否定ならば、制御をステップ
207 へ渡して、ベクトルK を算出する。
【0156】ステップ207 で、選択された断片辺を規定
するベクトルと選択された境界辺を規定するベクトルと
のクロス乗積を算出することによってベクトルK を決定
する。
【0157】ステップ208 で、別の境界辺があるかどう
かを判断する。判断の結果が肯定ならば、次の境界辺を
選択し更に着目する。
【0158】ステップ209 で、先に算出されたベクトル
K とステップ208 で新たに選択された境界辺との間に形
成される点乗積が負となるかどうかを判断する。
【0159】ステップ209 で算出された点乗積が負の場
合、ステップ210 で、K の新しい値が断片辺の新しい境
界辺(ステップ208 で選択される辺)とのクロス乗積と
して算出される。あるいは、ステップ209 での判断の結
果が否定ならば、算出された点乗積はゼロより大きいか
ゼロと等しいとうことなので、以前に算出されたK の値
をそのままにし、制御をステップ208 へ戻す。そして、
別の境界辺を選択する。このように、ステップ208 と20
9 とを境界辺毎に繰返す。ステップ209 で算出された点
乗積が負であることが判明したら、格納されていたベク
トルK を再度算出する。
【0160】最終的には、ステップ208 での判断の結果
は否定になる。すなわち、境界辺はもうないので、制御
を図16のステップ211 へ渡す。
【0161】ステップ211 で、先に算出されたベクトル
K に垂直な平面で、断片辺を規定するベクトルをもつ平
面S を算出する。
【0162】ステップ212 で断片のどこかの部分がステ
ップ211 で算出された平面S の前に来ているかどうかを
判断する。この判断の結果が肯定ならば、ステップ213
で着目している断片の定義内容を変更し、実際に平面S
の前に来ている断片の部分の定義を含むようにする。そ
の後、制御をステップ203 へ戻し、更なる断片辺に着目
する。
【0163】ステップ212 での判断の結果が否定なら
ば、断片のどの部分も新たに算出された平面S の前に来
ていないとうことなので、現行本命多角形が候補多角形
を遮ることはできない。従って、制御をステップ214 へ
渡し、この趣意をも念的な観察軸に対応する許容観察方
向のどれに対しても現行本命多角形によって遮られるこ
とはない。
【0164】断片辺全部に着目し終えると後はずっと、
ステップ212 での判断の結果は肯定になる。すなわち、
断片の一部が常に新たに算出された平面S の前に来ると
いうことなので、現行本命多角形が候補多角形を遮るよ
うに見える。こうして、ステップ203 での判断の結果は
否定になり、制御をステップ215 へ渡す。
【0165】ステップ215 での判断の結果によって、現
行本命多角形が候補多角形を遮れないことを確認しよう
と試みる。ステップ213 で現行本命多角形の断片をおそ
らく数回修正したので、現行本命多角形の断片は非常に
小さくなっている。ステップ215 で、現行本命多角形の
断片がシステム内の丸め誤差と同じくらい小さくなった
かどうかを判断する。現行本命多角形の断片が実際に存
在するか、あるいは、この段階で断片と思われるものは
単なる算術的な丸め誤差の産物なのかどうかについて
は、そのどちらにしても断言できない。ステップ215 で
の判断の結果が肯定ならば、残存する現行本命多角形の
断片がシステム内の丸め誤差と同じくらい小さいという
ことなので、現行本命多角形は候補多角形を遮れないと
いう趣意のデータをステップ214 へ戻す。
【0166】しかし、修正された現行本命多角形の断片
が許容丸め誤差より大きい場合、ステップ215 での判断
の結果は否定になり、現行本命多角形は候補多角形を遮
れると推測する。この趣意を表すデータをステップ216
で設定し、制御を図14のステップ193 へ戻す。
【0167】詳細に説明してきた手続きは、表出順序リ
ストに設定するための現行本命多角形を判別する。その
後、試験を実施して、現行本命多角形と表出順序リスト
に設定されていない候補多角形とを比較することによっ
て、現行本命多角形をリストに設定するのは適切かどう
かを判断する。現行本命多角形が候補多角形を遮れるた
めに、現行本命多角形をリストに追加できない場合、現
行本命多角形をスタックに投入し、遮られる候補多角形
を次の現行本命多角形と見なす。
【0168】説明してきた手続きを使えば、リスト、ツ
リーあるいは有向グラフを完璧に組立てることができ
る。但し、それらの手続きは、現行本命多角形をリスト
に設定できるかどうか、あるいは、候補多角形を遮れる
ため現行本命多角形をリストに設定できないかどうかに
ついて、そのどちらにしても、常に判断を下すことがで
きなければならない。
【0169】これらの手続きに障害が起こると思われる
唯一の状況は、図12のステップ133のサイクルが認識さ
れる状況である。すなわち、新しい現行本命多角形が選
択されるが、この現行本命多角形は以前に選択されたこ
とがあり、既にスタックに投入されている場合である。
ステップ133 で試験が実施されなければ、連続ループに
陥り先に進まない。
【0170】図12のステップ134 に示すように、サイク
ル破壊手続きが設けられている。また、本実施例では、
サイクル全部をステップ134 の処理で破壊できると仮定
している。
【0171】図17〜22は、図12のステップ134 に示すサ
イクル破壊手続きを多数詳細に示す。サイクルが存在す
る場合、その中には多角形が二個だけ含まれる。多角形
は互いに相手を遮ることが出来る。多角形の一方を他方
の平面の周囲で分割させることでサイクルを破壊できる
ならば、このような二重多角形サイクルの破壊は比較的
簡単である。しかし、本実施例では、必要とされる分割
回数を低減させるために、手続きを最適化する。多角形
を二個より多く有するサイクルには、より高度な分割手
続きが必要である。
【0172】図17のステップ221 と222 で、サイクル長
が2 に等しいかどうかを判断する。判断の結果が否定な
らば、サイクルには多角形が二個より多く存在するとい
うことなので、制御を図19のステップ241 に渡する。
【0173】ステップ222 での判断の結果が肯定なら
ば、サイクルには多角形が二個だけ存在するということ
なので、多角形の構成は図18の構成に類似したものとな
る。図18は二個の多角形P1とP2の先端を突合わせた様子
を示す。図18において、多角形の平面は軸240 の方向に
交差している。図18において、多角形の二次元図は軸24
0 の方を見おろしている。
【0174】多角形P2の平面に着目すると、多角形P1
は、多角形P2の平面の一方の面例えば左側の面の方へ垂
線距離d1だけ伸長している。同様に、多角形P1は、多角
形P2の平面の他方の面の方へ距離d2だけ伸長している。
更に、逆の見方をすれば、多角形P2は、多角形P1の平面
の一方の面の上方へ距離d3だけ延長し、多角形P1の平面
の他方の面の上方へ距離d4だけ延長している。ステップ
223 でこれらの距離d1、d2、d3およびd4を算出し、ステ
ップ224 でd2値がd1値より大きいかどうかを判断する。
d2値がd1値より大きい場合、ステップ224 での判断の結
果は否定になり、ステップ225 で変数v1をd2に等しい値
に設定する。あるいは、判断の結果が肯定ならば、d2値
はd1値より大きいということなので、ステップ226 で変
数v1をd1に等しい値に設定する。
【0175】ステップ227 で、d4値がd3値より大きいか
どうかを判断する。判断の結果が否定ならば、d4値はd3
値より大きくないということなので、ステップ228 で変
数v2をd4と等しい値に設定する。あるいは、判断の結果
が肯定ならば、d4値はd3値より大きいということなの
で、ステップ229 で変数v2をd3に等しい値に設定する。
【0176】ステップ230 で、変数v2が変数v1より大き
いかどうかを判断する。判断の結果が肯定ならば、v2値
はv1値より大きいということなので、ステップ231 で多
角形P2を分割する。あるいは、ステップ230 での判断の
結果が否定になれば、変数v2は変数v1より大きくないと
いうことなので、ステップ232 で多角形P1を分割する。
【0177】どちらの場合でも、多角形の分割は交線24
0 上で起こる。図18に示す例においては、d1値はd3値よ
り大きいので、変数v1は変数v2より大きいと判断され
る。これによって、多角形P1は二つの子多角形に分割さ
れる。分割は軸240 で起こる。この分割によって、サイ
クルが破壊し制御は図12のステップ135 へ戻る。
【0178】ステップ222 での判断の結果が否定なら
ば、サイクルには多角形が二個より多く存在するという
ことなので、制御を図19のステップ241 へ渡す。
【0179】ステップ241 で、別の多角形がサイクルに
存在するかどうかを判断する。反復の一回目では判断の
結果は肯定になる。
【0180】ステップ242 で、多角形の平面が観察(視
野)錐体に交差するかどうかを判断する。前述のよう
に、現行の概念的な観察軸に対応する観察方向全部から
表面を一つだけを見ることができ、その表面は背面か前
面であるとき、平面は観察錐体に交差しない。同様に、
平面が観察錐体に交差するならば、いくつかの方向から
前面を見ることができ、他の方向から背面を見ることが
できる。単位法線ベクトルの向きを変化させることによ
って、このような平面を検出できる。すなわち、単位法
線ベクトルを反転して、以前に背面だった表面を前面す
ればよい。多角形が観察錐体に交差しない場合、反転後
の多角形は目に見えなくなる。従って、不可視試験を繰
返せば、この種の多角形平面を判別できる。しかし、平
面が観察錐体に交差する場合、反転させても向きによっ
ては依然として目に見えるようならば、多角形の反転は
何の効果もない。
【0181】図19に示す手続きの目的は、観察錐体に交
差しない多角形を判別することである。この多角形の観
察方向は、平面の一方の面上にあるとも平面の他方の面
上にあるとも考えられる。このような多角形が存在する
場合、その多角形を使えば、サイクルの破壊後に他の多
角形全部を分割させるための平面を判別できる。具体的
には、ステップ241 で選択された平面が観察錐体に交差
するかどうかのステップ242 での判断の結果が肯定なら
ば、その平面を拒絶し制御をステップ241 へ戻す。ステ
ップ242 での判断の結果が否定ならば、選択された多角
形は観察錐体に交差しない平面に存在するということな
ので、ステップ243 でサイクル内の他の多角形全部を選
択された多角形の平面の周囲で分割する。ステップ244
で、最下位の分割多角形が判別されたことを記録し、修
正(分割)された多角形全部をスタックから除去し制御
をステップ135 へ戻す。
【0182】ステップ241 での判断の結果が否定なら
ば、多角形全部が着目され、その多角形全部が観察錐体
に交差するということなので、多角形のどれか一つを使
用して残りの多角形全部を分割させるための平面を識別
することはできない。ステップ241 での判断の結果が否
定ならば、制御を図20のステップ251 へ渡す。
【0183】図20に示す手続きは、観察錐体に交差しな
い平面の回りで多角形を分割するという点で図19の手続
きに類似している。前述の手続きにおいては、多数の平
面が演算の対象となる。具体的には、初期境界面と、視
野の調節後に設定された境界面とが演算の対象となる。
観察錐体内に多角形が何も存在しないので、多角形を使
って分割を実行できない場合、この条件を満たす別の平
面が選択される。
【0184】ステップ251 で、境界面の位置を定義する
ために先に生成されたデータから候補多角形の分割面を
選択する。法線ベクトルに基づいて適当な候補多角形を
選択する。法線ベクトルを反転しても、依然として不可
視試験に合格せず、いくつかの有効観察方向から見える
場合、その平面は候補平面となる。
【0185】候補平面の集合の収集が終了したら、候補
平面一つ一つに着目して多角形分割を実行するのに適当
な平面を判別する。
【0186】先に演算されたデータを参照して選択した
候補平面は、単位法線ベクトルで規定される。各単位法
線ベクトルは実際に平行面族を規定する。平行面の向き
は同じだが絶対位置によって規定されない。この平面集
合から、概念的な平面を法線ベクトル方向に所望の絶対
位置まで移動することによって、実際の分割面を画定す
ることができる。ステップ252 で、別の候補平面がある
かどうかを判断する。判断の結果が肯定ならば、第一の
候補平面を選択する。先述のように、この段階では、候
補平面は絶対位置をもたない。また、候補平面は法線ベ
クトル方向に移動させられる。候補平面を法線ベクトル
方向に移動すると多角形の交点が発生する。その交点の
個数を記録する(ステップ253 )。
【0187】ステップ254 で、多角形の交点の個数から
局所最小点の位置を判別する。交点の位置を定義するデ
ータをヒストグラムとする。局所最小点はヒストグラム
内の一つの位置であり、その位置に対して平面を法線方
向に移動させると交点数が増加する。実施例では、これ
らの局所最小点位置を候補多角形の分割面用のポテンシ
ャル位置と考える。
【0188】理想的な分割面は多角形を一つだけ分割さ
せる。このような平面を識別できれば、それを即座に好
適な分割面として採用する。ステップ255 で、たった一
つの多角形に交差する候補平面に関して局所最小点位置
があるかどうかを判断する。この判断の結果が肯定なら
ば、制御をステップ258 へ渡す。すなわち、選択された
平面の周囲に対して分割を実行し、これによって、サイ
クルを破壊するのである。そして、手続きは図12のステ
ップ135 へ戻る。ステップ255 での判断の結果が否定な
らば、局所最小点全部が一つより多くの多角形に交差す
るということなので、制御をステップ252 へ戻し、別の
候補平面を選択する。
【0189】ステップ255 での判断の結果が肯定になる
まで、候補平面毎にステップ252 〜255 を繰返す。その
結果、分割が発生する。さもなければ、ステップ252 で
の判断の結果が否定になる。
【0190】ステップ252 での判断の結果が否定になる
と、候補平面各々の局所最小点を互いに比較し、最下位
の局所最小点をもつ平面を選択する(ステップ256 )。
最下位の局所最小点がゼロに等しいならば、丸め誤差か
らサイクルを検出できる。すなわち、丸め誤差のないサ
イクルが判別される。この場合、分割するものは何もな
いので、制御を図12のステップ135 へ渡す。
【0191】最下位の局所最小点がゼロに等しくない場
合、制御をステップ258 へ渡し、選択された平面に対し
て分割を実行する。その後、サイクルを破壊した後、制
御をステップ135 へ渡す(図12)。
【0192】ステップ256'で、局所最小点があるかどう
かを判断する。判断の結果が否定ならば、サイクルを破
壊する別の手続きが、図21に詳細に示すように起動され
る。
【0193】図21において、ステップ261 で多角形をP1
と見なす。この多角形は、概念的な観察軸方向に最も遠
くまで広がる多角形である。サイクル内に存在する多角
形の中でP1は、サイクル内の他のどの多角形よりも先に
予備リストに設定された多角形である。多角形P1の概略
を図22に示す。
【0194】ステップ262 で、多角形P2を判別する。多
角形P2は、多角形P1を遮れる多角形である。この多角形
も図22に認識される。
【0195】ステップ263 で、多角形P2に実際に遮られ
た多角形P1の断片を判別する。ステップ264 で、ステッ
プ263 で判別された多角形の断片が多角形P1全体に該当
するかどうかを判断する。すなわち、多角形P1全体が実
際には多角形P2によって遮られているかどうかを判断す
る。判断の結果が肯定ならば、制御をステップ265 へ渡
す。そして、次に最も遠くまで広がる多角形があるかど
うかを判断する。判断の結果が肯定ならば、制御をステ
ップ261 へ戻し、最も遠くまで広がる次の多角形を選択
し新しいP1とする。
【0196】各多角形が全体的に別の多角形によって遮
られることは殆ど有り得ないが、有り得ない事態が起こ
ったとき、ステップ265 での判断の結果は否定になる。
その結果、制御をステップ266 へ渡し、サイクルを破壊
できないという趣意を表示する。そして、制御をステッ
プ135 へ戻する。
【0197】ステップ264 での判断の結果が否定なら
ば、断片は多角形P1全体より小さいということなので、
制御をステップ267 へ渡す。そして、多角形P2によって
遮られた多角形P1の断片はサイクル内の次の多角形を遮
るかどうかを判断する。
【0198】図22に示す例では、多角形P2によって遮ら
れた多角形P1の断片は多角形P3を遮らない。この場合、
ステップ267 での判断の結果は否定になる。そうした
ら、多角形P1を分割して断片と残りの部分とにし(ステ
ップ268 )、これによって、サイクルを破壊し、制御を
ステップ135 へ戻す。
【0199】ステップ267 での判断の結果が肯定なら
ば、多角形P2によって遮られた断片は多角形P3を遮ると
いうことなので、多角形P1の断片と残りの部分への分割
はサイクルの破壊には到らない。しかし、この分割によ
って他の処理でサイクルを破壊し易くなる。従って、分
割によって断片や残りの部分が非常に小さくなることが
なければ、分割は実行する価値がある。
【0200】ステップ267 での判断の結果が肯定なら
ば、制御をステップ269 へ渡す。そして、多角形の残り
の部分の面積(P1−断片)が究極の親多角形の面積を3
で除した商より大きいかどうかを判断す。究極親多角形
は、予備リストに存在する根元の多角形であり、子では
ない多角形である。
【0201】ステップ269 での判断の結果が肯定なら
ば、残りの部分は究極親多角形の面積を3 で除した商よ
り大きいということなので、ステップ270 で分割を実行
し制御をステップ261 へ戻す。そして、別の多角形P1を
選択する。
【0202】ステップ269 での判断の結果が否定なら
ば、残りの部分は小さいということなので、分割を実行
しても何も達成されないと判断する。この場合、制御を
ステップ266 へ戻し、サイクルを破壊できないという意
味で肯定応答をする。その後、制御をステップ135 へ戻
す。
【0203】図23は、内部メモリ装置に対してデータの
読み書きを行うプロセッサ315 が配置された対話式三次
元図形システムを示す。メモリ装置に格納されたデータ
は三次元画像データと二次元画像データとプロセッサへ
の指令とを定義する。
【0204】プロセッサ315 は入力装置からデータを入
力し、手動キーボード316 とマウスやトラックボール31
7 やデジタルタブレット/スタイラスなどの位置検出装
置とで構成される。
【0205】二次元画像は可視表示装置(VDU)318上に表
示される。可視表示装置318 は、フレームバッファをラ
スタで走査することによって映像速度で出力画像データ
を受信する装置で、専用表示器を備えている。可視表示
装置318 が提供できる精細度は、例えば、画素1000個に
対応する走査線を1000本という形式で表現される。従っ
て、1,000,000 個の画素に対応する領域をもつフレーム
バッファが必要である。プログラムデータと画像データ
との一括転送を実行するために、ハード磁気ディスクや
光ディスクや光テープドライブなどの大容量記憶装置31
9 が設けられている。
【0206】フロッピーディスク320 やCD ROMなどの取
り外し可能記憶装置を使用して画像データ及び/あるい
はプロセッサ命令を格納してもよい。画像信号は、VDU3
18に出力されて画像を表示し、フレームバッファやプロ
セッサ315 から取出されて送信もしくは格納される。例
えば、ビデオカセット記録器322 を接続して、取り外し
可能ビデオカセット324 に生成された画像を記録する。
【0207】図24を参照して、一般的なシステムの操作
法について説明する。プロセッサ315 は異なる時刻に異
なる多数の処理を実行して、内部メモリに格納されたプ
ログラムを走行させる。プロセッサ315 は、(内部メモ
リの外に)その処理を行う手段402 〜410 を備えてい
る。これらの手段を図24に図示する。本実施例において
は、これらの手段は全部プロセッサ315 によって実現さ
れる。しかし、別のプロセッサや専用論理回路を相互接
続して各々の機能を果たすようにも構成できる。
【0208】システムは、第一に動画化される三次元の
被写体の形状を定義し、選択的に被写体を編集するため
に配置された定義器すなわちエディタ402 で構成され
る。通常、定義器402 は大容量記憶装置319 と320 に接
続され、定義された被写体を格納して後に使用できるよ
うにする。また、エディタ402 は入力装置316 と317 に
接続され、オペレータが三次元の被写体を変更できるよ
うにする。その他の入出力装置(例えば、ネットワーク
を介して接続される他のコンピュータ)を追加してもよ
いし、入力装置316 と317 および大容量記憶装置319 と
320 の代わりに用いてもよい。次に詳細に説明するが、
本実施例においては、三次元被写体を定義するデータと
は、被写体を構成する複数個の多角形表面(通常、連続
する多角形表面)の頂点を表現するデータである。頂点
のみを定義するだけで、多数の画素をもつ表面を比較的
小さくしかも被写体の画像が再生される際の解像度に左
右されずに表現できる。
【0209】プロセッサ315 は、更に、他の領域を遮る
領域を最後に描出するという描出順序(すなわち、フレ
ームバッファ412 に表出する順序)を決定する順位に従
って被写体の表面あるいは領域を分類するという初期処
理を実行するための手段404を備えている。分類器404
は、定義器402 によって定義された被写体データを読取
り、後に使用される領域の分類リストを生成し、その
後、被写体を描出し動画化する。
【0210】表示器318 などの二次元画面上に表示され
た被写体やフレームバッファ412 に格納された画像デー
タは、被写体が観察される方向に依存する。しかも、被
写体と表示器318 の平面に対応する概念的な観察点との
間の距離にも依存するかもしれない。プロセッサ315
は、オペレータが入力装置317 を使って(例えば、観察
点の座標および/もしくは方向を定義することによっ
て)観察方向すなわち方向と距離とを定義できるように
する視野制御手段406 を備えている。一度に一つづつ観
察点を定義するのではなく、入力手段317 を使って、例
えば、連続的に表出される画像を動画化するのに充分な
移動方向と速度とを設定することによって連続する観察
点の軌道すなわち観察方向を規定する。観察方向および
/もしくは距離を定義するデータは、被写体と表示器31
8 の概念的な平面(概念的な観察点)との間の相対的な
距離と方向とを規定する。また、被写体が一つだけ表示
されている場合、問題なのは被写体と画面との間の相対
的な傾きだから、上記のデータを使って被写体の位置と
向きあるいは画面の位置と向きを規定する。一方、相互
に規定された位置に存在する多数の被写体を描出する場
合、視野コントローラ406 は、一度に一つの被写体に対
して視野位置か新しい位置かを規定し、一つの被写体を
単独で移動できるか視野を被写体全部に対して移動でき
ることが好ましい。
【0211】表示器318 に対応する観察面に関して被写
体の相対的な向きを規定し終えると、プロセッサ315
は、必要なデータを使って投影手段408 が各三次元被写
体を(領域毎に)二次元観察面に投影できるようにす
る。投影器408 によって投影された二次元観察面領域
は、その領域を着色する(すなわち、その領域内の画素
に対応するフレームバッファ領域に予め設定された色値
を割当てる)ための表出器410 によって分類器404 が先
に定義した順序で表出される。外側か(前向きの)被写
体の方へ向いている領域だけを表出することが必要であ
る。表出器410 は、各領域を試験して投影面上でその領
域が向いている方向を判定する。領域全部を表出しフレ
ームバッファ318 に対応する画像データを書込み終る
と、視野コントローラ406 は必要ならば観察点を更新す
る。観察点が変更されると、投影器408 と表出器410 と
が各々のプロセスを前述のように再実行する。
【0212】図23と24に示すシステム内の手段402 〜41
0 は、被写体の新しい視野が表示される度に作動する必
要のあるもの(手段406 、408 および410 )と実際に必
要な視野に関係なく作動できるもの(手段402 と404 )
との二つのグループに分類される。当業者ならば、この
二つのグループの内で機能毎に分類して機能ブロックを
作成して、その機能ブロックを様々な形態に実現できる
ことが認識されよう。
【0213】プロセッサ315 の対話プロセス段階406 〜
410 における操作手順について背景に触れながら簡単に
述べる。視野コントローラ406 は制御されて観察変換を
定義する。観察変換は、被写体の頂点が規定された「世
界」座標系に観察点を関係づける。局所変換と観察変換
とが終了すると、実際に見える被写体の広がりを判定す
ることによって被写体選別を実行する。広がりは、次元
毎に被写体に対して規定される。すなわち、最高値と最
低値とが、被写体に対してX 軸、Y 軸およびZ軸の各々
について決定される。X 軸、Y 軸およびZ 軸方向の広が
りが一定の平面から成る立方体の境界箱を画定すれば、
このプロセスを容易に実行できる。境界箱は観察空間へ
変換され、変換された境界箱の位置が着目され、境界箱
が観察可能な空間内に完全に入っているか、観察可能空
間から完全に外れているか、観察可能空間に交差してい
るどうかが判断される。
【0214】被写体が観察可能空間から完全に外れてい
る場合、その被写体を画定する多角形に対しては何も処
理を施さない。このため、処理時間は顕著に低減され
る。観察空間内に完全に入っている被写体の場合、多角
形に対する処理は進み、処理時間の低減は行われない。
しかし、境界箱を変換するための処理オーバヘッドは極
めて僅かである。一部が観察可能空間内にあり一部が観
察可能空間外にある被写体の場合、交差面を定義するデ
ータを格納して多角形の切抜きを行い易くする。
【0215】反復毎に一意に時刻を刻むクロックが設け
られている。この刻時は、光源か被写体かの位置が変わ
る度に適用される。前回の反復期間から今回の反復期間
までの間に、照明の位置や向きあるいは多角形の位置に
変化が生じなかったことが分かれば、先回の反復期間中
に算出された照明パラメータ値を再使用する。
【0216】局所変換は、被写体を被写体自体の空間か
ら世界空間へ変換する。光源の位置に逆変換を施して光
源を被写体空間へ変換することによって、照明パラメー
タ値を求める。すなわち、被写体空間で照明パラメータ
値を算出する。そして、連結マトリックスに基づいて被
写体自体の空間から直接観察空間へ被写体を変換する。
【0217】このように連結局所変換と視野変換を実現
して、被写体の幾何学的構造を観察空間へ変換する。
【0218】観察空間内に存在しない多角形は切抜かれ
る。このプロセスを実行するために、被写体選別で発生
した追加情報が使用される。
【0219】三次元画像データを二次元画像データへ変
換し、背面選別を実行する。走査変換を施す。このプロ
セスは、1画素当りのビット数が8 しかないというフレ
ームバッファの限定容量によって制限される。その後、
ビデオ速度でフレームバッファをラスタ走査して、二次
元ビデオ画像を作成する。
【0220】
【発明の効果】上記の方法が三次元画像生成の前処理段
階で実現されているが、その中の少なくともいくつかの
方法を対話段階に使用できることは当業者には明白であ
る。例えば、電子図形システムは、周知の通り、前処理
なしで多角形を分類して対話を通して設定される観察位
置単位に表出順序リストを作成する。このように、本発
明は本書に記載の実施例に限定されない。
【図面の簡単な説明】
【図1】三次元対話式図形環境の各段階を示す図、
【図2】被写体を構成する多角形の位置を定義する形状
ファイルの構造を示す図、
【図3】図2に示された形状ファイルを読む手続きを示
す図、
【図4】概念的な観察方向と境界面とを示す図、
【図5】分割面の位置を算出するステップと、視野を調
節するステップと、目に見えない多角形を除去するステ
ップと、予備リストを作成するステップと、表出順序リ
ストを作成するステップとから成る表出順序リストの準
備段階を示す図、
【図6】図5に示す分割面の位置の算出に係わるステッ
プを詳細に示す図、
【図7】図5に示す視野の調節手続きを詳細に示す図、
【図8】図5に示す可視性試験手続きを詳細に示す図、
【図9】図5に示す予備リストの作成手続きを詳細に示
す図、
【図10】親多角形を分割して子多角形を作成するとき
の多角形データ構成を示す図、
【図11】予備リストの多角形を選択して表出順序リス
トあるいはツリー上にそれらの多角形を設定するための
手続きであって、現行本命多角形によって遮られる候補
多角形を判別しようとするステップを含む手続きを詳細
に示す図、
【図12】予備リストの多角形を選択して表出順序リス
トあるいはツリー上にそれらの多角形を設定するための
手続きであって、現行本命多角形によって遮られる候補
多角形を判別しようとするステップを含む手続きを詳細
に示す図、
【図13】図11に示す現行本命多角形が遮れる候補多
角形を判別するための手続きを詳細に示す図、
【図14】図13に示す現行本命多角形が候補多角形を
遮れるかどうかを確認するための手続きを詳細に示す
図、
【図15】図14に示す現行本命多角形が候補多角形を
遮れるかどうかを確認するための更なる手続きを詳細に
示す図、
【図16】図14に示す現行本命多角形が候補多角形を
遮れるかどうかを確認するための更なる手続きを詳細に
示す図、
【図17】多角形二個から成るサイクルを破壊するため
の図11B に示す手続きを詳細に示し、二個より多く
の多角形をもつサイクルを破壊するための手続きを示す
図、
【図18】図17に示す手続きについて図解する図、
【図19】図17に示す二個より多くの多角形をもつサ
イクルを分割するための手続きを詳細に示す図、
【図20】二個より多くの多角形をもつサイクルを分割
するための更なる手続きを詳細に示す図、
【図21】二個より多くの多角形をもつサイクルを分割
するための更なる手続きを詳細に示す図、
【図22】図21に詳細に示された手続きについて図解
する図、
【図23】対話式三次元図形環境を提供するシステムに
ついて図解する図、
【図24】対話式三次元図形環境を提供するシステムに
ついて図解する図。
【符号の説明】
41 球体 42 原点 43 概念的な観察軸 44 区画 45 水平分割面 46 第一の垂直分割面 47 第二の垂直分割面

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 三次元空間で面原線を定義するデータを
    処理して、表出順序リストかツリーか有向グラフかを生
    成する方法において、 表出順序リストかツリーか有向グラフかに設定される本
    命の原線が選択されるという方法であって、 リストかツリーかグラフかに対応づけられる観察方向集
    合を表現する概念的な観察軸を規定する段階と、 前記本命原線上の一点と候補原線上の一点との概念的な
    観察軸方向の広がりの度合を比較することによって、前
    記本命原線はリストかツリーかグラフかに設定されるも
    のとして適当かどうかを判断する段階とで構成される方
    法。
  2. 【請求項2】 前記広がりの度合は、観察主から離れた
    位置にある概念的な観察軸の方向に測定されることを特
    徴とする請求項第1項に記載の方法。
  3. 【請求項3】 最も遠くまで広がる候補原線の広がりの
    度合は、最も近くで広がる現行本命原線の広がりの度合
    に比較されることを特徴とする請求項第2項に記載の方
    法。
  4. 【請求項4】 各本命原線は、未だ表出順序リストかツ
    リーか有向グラフかに設定されていない複数の候補原線
    に対して検査されることを特徴とする請求項第3項に記
    載の方法。
  5. 【請求項5】 前記最も近くで広がる本命原線の広がり
    が、最も遠くまで広がる候補原線全部の広がりよりも観
    察主から遠くへ伸びている場合に、現行本命原線は表出
    順序リストに設定されることを特徴とする請求項第4項
    に記載の方法。
  6. 【請求項6】 最も近くで広がる本命原線の広がりは最
    も遠くまで広がる候補原線全部の広がりよりも遠くまで
    伸びているという条件を満足させない本命原線は、前記
    概念的な観察軸に対応する観察方向集合に基づく更なる
    試験の対象となり、表出順序リストに追加されるか、前
    記更なる試験の結果に左右されないことを特徴とする請
    求項第3、4あるいは5項に記載の方法。
  7. 【請求項7】 概念的な観察軸方向の広がりの度合に基
    づく順序で本命原線が選択され着目されることを特徴と
    する請求項第1〜6項のどれかに記載の方法。
  8. 【請求項8】 試験の結果によると表出順序リストに設
    定できない本命原線は表記され、少なくとも一つのその
    他の原線が表出順序リストに追加されたときに本命原線
    として再度選択されることを特徴とする請求項第7項に
    記載の方法。
  9. 【請求項9】 三次元で面原線を定義するデータを処理
    して表出順序リストかツリーか有向グラフかを生成する
    装置において、 表出順序リストかツリーかグラフかに設定される本命の
    原線が選択されるという装置であって、 リストかツリーかグラフかに対応づけられる観察方向集
    合を表現する概念的な観察軸を規定する手段と、 前記本命原線上の一点と候補原線上の一点との前記概念
    的な観察軸方向の広がりの度合を比較することによっ
    て、前記本命原線はリストかツリーかグラフかに設定さ
    れるものとして適当かどうかを判断する手段とで構成さ
    れることを特徴とする装置。
  10. 【請求項10】 前記広がりの度合は観察主から離れた
    位置にある概念的な観察軸の方向に測定されることを特
    徴とする請求項第9項に記載の装置。
  11. 【請求項11】 最も遠くまで広がる候補原線の広がり
    の度合は、最も近くで広がる現行本命原線の広がりの度
    合に比較されることを特徴とする請求項第10項に記載
    の装置。
  12. 【請求項12】 各本命原線は、未だ表出順序リストか
    ツリーか有向グラフかに設定されていない複数の候補原
    線に対して検査されることを特徴とする請求項第11項
    に記載の装置。
  13. 【請求項13】 前記最も近くで広がる現行本命原線の
    広がりが、最も遠くまで広がる候補原線全部の広がりよ
    りも観察主から遠くへ伸びている場合に、現行本命原線
    が表出順序リストに設定されることを特徴とする請求項
    第10項に記載の装置。
  14. 【請求項14】 最も近くで広がる本命原線の広がりは
    最も遠くまで広がる候補原線全部の広がりより観察主か
    ら遠くへ伸びているという条件を満足させない本命原線
    は、前記概念的な観察軸に対応する観察方向集合に基づ
    く更なる試験の対象になり、表出順序リストに追加され
    るか、前記更なる試験の結果に左右されないことを特徴
    とする請求項第13項に記載の装置。
  15. 【請求項15】 概念的な観察軸方向の広がりの度合に
    基づく順序で本命原線が選択され着目されることを特徴
    とする請求項第9項に記載の装置。
  16. 【請求項16】 試験の結果によると表出順序リストに
    設定できない本命原線は表記され、少なくとも一つの他
    の本命原線が表出順序リストに追加されたときに本命原
    線として再度選択されることを特徴とする請求項第15
    項に記載の装置。
  17. 【請求項17】 三次元で定義された面原線を表出して
    二次元画像を生成する対話式図形システムを操作する方
    法であって、 観察方向を判別し前記観察方向に対応する表出順序リス
    トかツリーか有向グラフかを選択することによって前記
    画像を表出する段階で構成される方法において、 前記表出順序リストかツリーか有向グラフかは、 前記リストかツリーかグラフかに対応づけられる観察方
    向集合を表現する概念的な観察軸を規定し、 前記リストかツリーかグラフかに設定される本命の多角
    形を選択し、 前記本命原線上の一点と候補原線上の一点との前記概念
    的な観察軸方向の広がりの度合を比較することによっ
    て、前記本命原線は前記リストかツリーかグラフかに設
    定されるものとして適当かどうかを判断することによっ
    て、生成されることを特徴とする方法。
  18. 【請求項18】 概念的な観察軸を複数規定し、画像を
    表出する前に概念的な観察軸毎に表出順序リストツリー
    かグラフかを生成することを特徴とする請求項第17項
    に記載の方法。
  19. 【請求項19】 一連の画像を表出するために、画像毎
    に複数の概念的な観察軸から一つの概念的な観察軸が選
    択され、対応する表出順序リストに従って当該画像が表
    出されることを特徴とする請求項第18項に記載の方
    法。
  20. 【請求項20】 三次元で定義した面原線の定義内容を
    格納する手段と、 観察方向を判別し、前記観察方向に対応する表出順序リ
    ストかツリーか有向グラフかを選択することによって前
    記原線から成る二次元画像を表出する手段とで構成され
    る対話式図形装置であって、 更に、前記リストかツリーかグラフかに対応づけられる
    観察方向集合を表現する概念的な観察軸を規定し、 前記リストかツリーかグラフかに設定される本命の原線
    を選択し、 前記本命原線上の一点と候補原線上の一点との前記概念
    的な観察軸方向の広がりの度合を比較することによっ
    て、前記本命原線は前記リストかツリーかグラフかに設
    定するものとして適当かどうかを判断することによっ
    て、前記リストかツリーかグラフかを生成する手段で構
    成される装置。
  21. 【請求項21】 更に、概念的な観察軸を複数規定する
    手段で構成され、画像を表出するために観察方向を規定
    する前に、規定された概念的な観察軸毎に表出順序リス
    トかツリーかグラフかが生成されることを特徴とする請
    求項第20項に記載の装置。
  22. 【請求項22】 プログラマブル処理装置のために命令
    を伝達するデータ信号媒体あるいは記憶媒体において、 前記装置へ搭載されて、 表出順序リストかツリーか有向グラフかに対応づけられ
    る観察方向集合を表現する概念的な観察軸を規定し、 前記リストかツリーかグラフかに設定される本命の原線
    を選択し、 前記本命原線上の一点と候補原線上の一点との前記概念
    的な観察軸方向の広がりの度合を比較することによっ
    て、前記本命原線は前記リストかツリーかグラフかに設
    定するものとして適当かどうかを判断することによっ
    て、 三次元で定義された面原線に対して表出順序リストかツ
    リーか有向グラフかを生成するプログラムを前記装置に
    設定させること特徴とする媒体。
  23. 【請求項23】 三次元で定義された被写体を表現する
    二次元画像を伝達する信号媒体あるいは記憶媒体におい
    て、 前記画像は、観察方向を判別し前記観察方向に対応する
    表出順序リストかツリーか有向グラフかを選択すること
    によって表出され、 前記表出順序リストかツリーか有向グラフかは、前記リ
    ストかツリーかグラフかに対応づけられる観察方向集合
    を表現する概念的な観察軸を規定し、 前記リストかツリーかグラフかに設定される本命の原線
    を選択し、 前記本命原線上の一点と候補原線上の一点との前記概念
    的な観察軸方向の広がりの度合を比較することによっ
    て、前記本命原線は前記リストかツリーかグラフかに設
    定するものとして適当かどうかを判断することによっ
    て、生成されることを特徴とする媒体。
  24. 【請求項24】 画像を表出するために観察方向を規定
    する前に生成された複数の表出順序リストかツリーか有
    向グラフかの中から前記観察方向に対応する表出順序リ
    ストかツリーか有向グラフかを選択することによって前
    記画像が表出され、また、一連の観察方向に対して一連
    の画像を表出する度に、以前に生成された表出順序リス
    トかツリーか有向グラフかの集合が選択されることを特
    徴とする請求項第23項に記載の信号媒体あるいは記憶
    媒体。
JP1831194A 1993-02-15 1994-02-15 画像処理方法及び装置 Withdrawn JPH0793584A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB939303009A GB9303009D0 (en) 1993-02-15 1993-02-15 Processing image data
GB9303009.6 1993-07-01
GB9313643A GB2275154A (en) 1993-02-15 1993-07-01 Image processing
GB9313643.0 1993-07-01

Publications (1)

Publication Number Publication Date
JPH0793584A true JPH0793584A (ja) 1995-04-07

Family

ID=26302459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1831194A Withdrawn JPH0793584A (ja) 1993-02-15 1994-02-15 画像処理方法及び装置

Country Status (2)

Country Link
EP (1) EP0612026A3 (ja)
JP (1) JPH0793584A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594673A (en) * 1983-06-28 1986-06-10 Gti Corporation Hidden surface processor
US4825391A (en) * 1987-07-20 1989-04-25 General Electric Company Depth buffer priority processing for real time computer image generating systems

Also Published As

Publication number Publication date
EP0612026A2 (en) 1994-08-24
EP0612026A3 (en) 1995-01-04

Similar Documents

Publication Publication Date Title
US5903272A (en) Apparatus and method for determining a rendering order between first and second object surface primitives
EP2828830B1 (en) Luggage visualization and virtual unpacking
KR101257849B1 (ko) 3차원 그래픽 객체 렌더링 방법 및 장치, 이를 위한 렌더링객체 최소화 방법 및 장치
US6744430B1 (en) Image processing method and its apparatus
EP0531157A2 (en) Three dimensional graphics processing
JP4142065B2 (ja) 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法
JP2572515B2 (ja) 画素処理方法及び装置並びにグラフィックバッファ
KR100700307B1 (ko) 굴절이 있는 이미지를 렌더링하는 방법 및 장치
KR0150832B1 (ko) 그래픽 대상을 인터로크하기 위한 방법 및 장치
JP3548218B2 (ja) 画像処理方法及び装置
EP3876205A1 (en) Image generation system and method
US5872570A (en) Method and apparatus for use in generating a rendering order for use in rendering images
JPH0793582A (ja) 画像処理方法及び装置
JP3542372B2 (ja) 画像処理方法及び装置
JPH06342466A (ja) 画像処理方法及び装置
JPH0793584A (ja) 画像処理方法及び装置
JPH0793583A (ja) 画像処理方法及び装置
JPH0793590A (ja) 画像処理方法及び装置
JP2000331185A (ja) 画像処理方法、画像処理装置、及びプログラム提供媒体
JPH05303652A (ja) レイトレーシング方法及びグラフィック表示装置
JPH04367083A (ja) 画像生成装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010508