JPH0785310A - 3次元図形表示方法 - Google Patents

3次元図形表示方法

Info

Publication number
JPH0785310A
JPH0785310A JP22543393A JP22543393A JPH0785310A JP H0785310 A JPH0785310 A JP H0785310A JP 22543393 A JP22543393 A JP 22543393A JP 22543393 A JP22543393 A JP 22543393A JP H0785310 A JPH0785310 A JP H0785310A
Authority
JP
Japan
Prior art keywords
display
line
contour
data
polygon
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.)
Pending
Application number
JP22543393A
Other languages
English (en)
Inventor
Seiichi Kanema
誠一 金間
Hideki Tokuyama
秀樹 徳山
Toshiyuki Kuwana
利幸 桑名
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP22543393A priority Critical patent/JPH0785310A/ja
Publication of JPH0785310A publication Critical patent/JPH0785310A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】本発明は3次元図形表示装置に関し、とくに従
来の形状定義データを入力とし、濃淡表示された3次元
の面表示に、輪郭線、開口辺、稜線を区別して付加する
方法を提供することにある。 【構成】表示装置(1)において、数式的に前段の表示
処理を行なう数式空間処理部(6)に、多角形データに
対して、各辺の両端座標値の比較によって一致辺の出現
回数を調べ、輪郭線、開口辺、稜線になる辺を検出する
輪郭線検出部11を設け、画像的に後段の表示処理を行
なう画像空間処理部8で隠線消去および面画像への重ね
合わせ処理を行なうことにより達成できる。 【効果】輪郭線、開口辺、稜線を確実に分離して、検出
でき、それぞれの属性に従って表示できるので、わかり
やすい表示画像が得られる。このとき、形状定義データ
は従来のままで良い。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機などを用いた3次
元図形表示方法に係り、特に3次元図形を人に理解しや
すく表示するために、光の特性をシミュレートして得ら
れる濃淡表示画像に対して、さらに図形の輪郭部分や稜
線部分を強調表示する方法に関する。この方法は、濃淡
情報の生成に一つの面を一つの一定の濃度で表示するコ
ンスタントシェーディング法や一つの面を連続的に濃度
を変化させて表示するグーローシューディング法を、隠
線隠面消去処理にZバックア法を用いる表示装置によく
適合する。
【0002】
【従来の技術】3次元CG(Computer Gra
phics)における重要テーマの1つは、表示品質の
向上である。その中心課題は写真品質を目標としたリア
ルさの追及であり、これまでに多くの成果が発表されて
いる。また、3次元CGの応用製品である3次元形状設
計システムに、その成果が組み込まれ、実用に供されて
いる。しかし、なおリアルさは写真には及ばない点があ
り、また、たとえ写真品質であっても、素人写真によく
あるように見る人にとって、わかりやすいとは必ずしも
言えない場合もあり、表示技術にはまだ不満がある。
【0003】3次元形状情報を人から人に伝達する手段
として、CGよりも古くから実用化されているものに、
手描きのテクニカル・イラストレーションがある。これ
は、強調や省略を多用し、簡略な表現で十分に目的を果
たしていたり、超リアルな表現で写真よりも人にわかり
やすいものとなっているものもある。
【0004】テクニカル・イラストレーションの第1の
手法は輪郭線や稜線の明示である。いっぽう、CGの世
界において、輪郭線や稜線のみによる線画表示(以下で
はワイヤフレーム表示と呼ぶ)と、面に対して濃淡付け
した面画表示(以下では単に濃淡表示と呼ぶ)とにおけ
る形状認識の容易さを比較した実験結果(坂本,今宮
「三次元図形同異判定過程への描画法の影響」,情報処
理学会研究報告,ヒューマンインターフェース 46-4, p
p. 25-31, 1992年)があり、条件によってはワイヤフレ
ーム表示の方が優位となることが示されている。これ
は、濃淡表示されたCG画像へ輪郭線や稜線を付加する
ことの有効性を暗示するものである。
【0005】実際にテクニカル・イラストレーションの
手法をCGに持ち込み、わかりやすい表示を実現しよう
とする試みがいくつかある。これらは大きく2つに分類
できる。その1つは、対話手段を用いて手動的に輪郭線
や稜線を付加するものである。他の1つは、自動的にそ
れらを付加した画像を生成するものである。自動的に付
加するものはさらに2種類に分けられる。その第1は、
表示すべき輪郭線や稜線部分をあらかじめデータとして
明示的に与えておいて、そのあとは自動処理を行うもの
である。第2は、輪郭線や稜線部分の明示的な指定のな
いデータをもとに計算機で濃淡表示画像を生成し、その
とき副産物、または輪郭線検出用に特別に生成した画像
データをもとに、輪郭線や稜線部分を検出・付加するも
のである。
【0006】それぞれの具体例として、次のものがあ
る。
【0007】(1)手動付加法 濃淡表示されたCG画像に、計算機上で対話的に人手に
よって輪郭線や稜線を付加するためのツール群を準備し
たもの(近藤,木村,田嶋「インタラクティブレンダリ
ングシステムによる3次元形状の表現」,情報処理,vo
l. 26, no. 11, pp. 1401-1408, 1985年)。 (2)自
動付加法 (a)明示的定義法 (i)辺表示付き多角形法 これは、3次元図形を構成する多角形が画面上で占める
領域を塗りつぶして表示するとともに、多角形の辺を指
定の色で表示するものであり、このとき、多角形の辺全
体について表示可または否を一括して指定できるもの
(ACM SIGGRAPH「Status Report of the Graphic Stand
ards Planning Comittee」Computer Graphics, vol. 1
3, no. 3, 1979年)と、さらに個々の多角形において、
個々の辺ごとに表示可または否を指定できるもの(ISO
「Information Processing System-Computer Graphics-
Programmer's Hierachical Interative Graphics Syste
m(PHIGS)-Part4:Plus Lumiere und Surface, PHIGS PLU
S」ISO/IEC DIS 9592-4, 1991年 および X Consortiu
m「PEX Protocol Specification, Version 5.1C」X Con
sortium Review Draft, 1992年)がある。
【0008】(ii)稜線モデル組込み法 表示物体における稜線部の丸みをモデル化して、表示デ
ータに組み込み、計算機によってその部分に特別の処理
を施して表示するもの(特開平2-69881号公報)。さら
に、その処理をより精密に行うもの(田中,高橋「精密
レンダリングとそのハイライト生成への応用」情報処理
学会論文誌,vol. 33, no. 4, pp. 471-480, 1992
年)。
【0009】(b)画像処理法 (i)物体(面)番号法 個々の画素データで構成される濃淡表示用の濃淡画像デ
ータを生成すると同時に、個々の画素データごとに、そ
の画素が表現している物体、または面の番号を記録した
番号画像データを生成し、番号の変化部分を輪郭線また
は稜線部分とするもの(特開昭60-114969号公報)。
【0010】(ii)距離画像法 個々の濃淡表示用の濃淡画像データを生成すると同時
に、隠線隠面消去のために、個々の画素データの奥行値
データを生成する方法では、濃淡画像に対応した距離画
像が副産物として生成される。この距離画像を1次およ
び2次微分して、輪郭線や稜線部分を見つけるもの(特
開平3-123985号公報)。
【0011】
【発明が解決しようとする課題】上記従来の方法にはそ
れぞれ以下の問題がある。
【0012】(1)手動付加法 作業をする人の意図どおりの輪郭線や稜線を付加できる
可能性をもっている。しかし、人手に頼るから手間がか
かる。作業をする人による上手、下手や、仕上りに個人
差が出る。よほど単純な場合でないかぎり、同一人でも
同一結果を得ることがむずかしい。すなわち再現性に乏
しい。
【0013】(a) (i)辺表示付き多角形法 表示図形が、もともと多面体の場合は、その各面を構成
する多角形の辺はすべてがもとの多面体の稜線である。
したがって、多角形の辺について一括して表示可否を指
定する方法で、辺表示可とすることによって濃淡表示図
形に線画の稜線を付加した表示を得ることができる。し
かし、処理の都合上、1つの平面上の多角形をさらにい
くつかの多角形に分割して表示する場合は、本来存在し
ない辺が新たに定義されることになる。この場合は、多
角形の各辺について個別に表示可否を指定する方法によ
って、もともと存在した辺と、分割によって発生した仮
想の辺を区別して、本来の辺のみを表示可に指定してお
けば、その辺のみを付加し、仮想辺は付加しない表示を
得ることができる。
【0014】しかし、辺表示付き多角形法では、辺の表
示色などの属性定義は輪郭線と稜線で共通になってお
り、辺が輪郭線になっても稜線と区別して表示できな
い。
【0015】表示図形が曲面体の場合、それを多面体で
近似して、本来存在しない稜線は付加しないで、本来存
在する輪郭線のみを付加した濃淡表示を得るには、あら
かじめ視点位置と多面体の関係から輪郭線となる辺を見
つけ出し、その辺のみを表示可として、多角形データを
定めれば良い。しかし、視点と多面体の相対位置が変化
すると、多面体において輪郭線となる稜線部分が変化す
る。したがって、多角形データを受領・保存し、別な視
点位置データを受領することによって、その方向から見
た曲面体の表示を得ようとしても、輪郭線位置の変化に
は対応できないために、正しい位置に輪郭線を付加した
表示は得られない。
【0016】(ii)稜線モデル組み込み法 単に稜線部の丸みをモデルに組み込んでも、光源を上手
に設定しないとハッキリとした輪郭線や稜線を付加した
表示にならない。一般に、丸み部は細長く、面積をほと
んどもたない。ハイライトが生じるのはさらにその一部
の線状の領域である。したがって、グーローシェーディ
ングやレイトレーシングにおける離散的なサンプル点で
の画素の濃淡計算法では、ハイライト線の一部がサンプ
リングされずに欠けたり、まったくサンプリングされ
ず、表示されないこともある。その解決には、他の部分
のデータとは異なった精密な計算が必要となり、手順が
複雑で、処理時間も増大する。
【0017】また、一般にハイライト線は明るい線であ
ることから、斜め線となる場合は、階段状の表示が目立
つ。
【0018】これらの問題を解消するのが精密レンダリ
ング法である。この方法では、1画素1サンプル点では
なく、1画素内をさらに精密に調べる。ハイライト線に
一定の幅を仮定し、1つの画素内に占めるハイライト線
の面積の割合を求め、画素の明るさを決めるものであ
る。そのため、さらに手順が複雑になり、処理時間が増
大する。
【0019】(b) (i)物体(面)番号法 表示図形が凸であれば、物体ごとに番号を割り当ててお
けば、番号の変化部分として輪郭線を求めることができ
る。凹であれば、1つの物体像の内部にも輪郭線が生じ
る。このときはその物体を構成する面ごとに番号があれ
ば、番号の変化部分として、輪郭線と稜線を求めること
ができる。しかし、輪郭線か稜線かの判定ができず、こ
れらを区別して表示することができない。
【0020】多数の物体で構成される図形では、多くの
物体番号が必要になることはもちろんである。曲面体を
多面体で近似する場合は、面の数が極めて多くなるた
め、各面を区別する番号には大きな桁数が必要で、各画
素の番号を記憶するため番号画像データメモリの規模が
大きなものとなる。
【0021】(ii)距離画像法 距離画像法は表示物体が立方体や球に近い形状をしてお
り、それらが互に大きな距離をもって存在し、画面に大
きく表示される場合には良好な結果が得られる。このと
きは一つの面を構成する領域内では、距離画像の微分値
は一定になるという性質を利用して面を認識でき、ま
た、一つの面を構成する領域内の画素間の距離は物体間
の距離よりも必ず小さいからである。
【0022】しかし、表示物体が凸であっても、2次元
的な広がりのみで厚みをもたないものや、1次元的な広
がりしかなく細長いものが混在し、それらが近接する場
合で、対角線距離の大きな多角形が視線にほぼ平行にな
ったときは問題である。その多角形を構成する画像の領
域が細長くなるため、その領域内での距離画像の微分値
が一定とはならず、一つの面として認識できなくなる。
また隣接画素間の奥行値の差が物体間の奥行値の差より
大きくなることがある。そのため輪郭線を正しく検出で
きなくなる。
【0023】また、凹図形の場合はその図形内で同じこ
とが発生し、正しく輪郭線を検出できないことがある。
【0024】さらに、物体に対して視点位置が遠方にあ
ったり、小さい表示領域に全体を表示する場合は、各々
の面を構成する画素領域が細長くなったり、点状になっ
たりして、距離画像上での面の境界が不明となる。した
がって、このときも輪郭線や稜線を正しく検出できな
い。
【0025】この方法では、距離画像の2次微分値の変
化部分として稜線を検出する。したがって、曲面体を多
面体で近似したものと、もともと多面体であるものが混
在するとき、本来の多面体の稜線のみを表示可としよう
としても、稜線を構成する多角形の成す角度に関して、
両者に区別をつけることはできないから、曲面を近似す
る部分の稜線の表示を抑止することができない。
【0026】厚みのないコップやつぼのような形状で、
開口部においておもて面とうら面が近接していると開口
部の辺を輪郭線として検出できない。
【0027】また、距離データのみならず、その微分デ
ータを浮動小数点またはビット数の多い整数値で記憶す
ることが必要で、大規模なメモリが必要である。
【0028】本発明は上記のような問題を解決し、多角
形の形状と表示可の辺を指定する従来のインターフェー
スを維持し、従来の技術におけるような処理量やメモリ
量の増大を招くことなく、指定された視点位置に応じ
て、本来の多面体と曲面体を近似する多面体が混在して
も、また、個々の形状や相互の位置に関係なく、本来の
多面体についてはその輪郭線と稜線を区別して、また、
曲面体を近似する多面体についてはその輪郭線のみを検
出して、その可視な部分を濃淡表示画像に重ねて表示に
することができる3次元図形表示方法を提供することを
目的とする。
【0029】また、多面体が閉図形であるときは、その
開口部を構成する開口辺、輪郭線、稜線を区別して、表
示できるようにする3次元図形表示方法を提供すること
を目的とする。
【0030】
【課題を解決するための手段】上記の目的は次のように
して達成できる。まず、以下の説明で必要な言葉の定義
と図形の性質の説明を行なう。多面体を構成する各多角
形を側面、おもて面が視点側に存在する側面を前方面、
うら面が視点側に存在する側面を後方面、2つの側面が
共有する辺を稜線、2つの前方面が共有する稜線を前方
稜線、2つの後方面が共有する稜線を後方稜線、前方面
と後方面が共有する稜線を輪郭稜線と呼ぶことにする。
そこで、閉じた多面体(閉多面体)を考えると、これを
構成する側面のうち、前方面のみについて順次その辺を
一巡してゆくと、前方稜線になる辺は2回通過し、輪郭
稜線になる辺は1回しか通過しないという性質を有す
る。また、後方面のみについて順次その辺を一巡してゆ
くと、後方稜線になる辺は2回通過し、輪郭稜線になる
辺は1回しか通過しないという性質を有する。多面体が
開いたもの(開多面体)であるときは、多面体上に開い
た部分が生じる。この部分を開口部、開口部を構成する
辺を開口辺と呼ぶことにする。多面体が開多面体である
とき、前方面のみについて順次その辺を一巡してゆく
と、前方稜線になる辺は2回通過し、輪郭稜線と開口辺
になる辺は1回しか通過しない。後方面のみについて順
次その辺を一巡してゆくと、後方稜線になる辺は2回通
過し、輪郭稜線と開口辺になる辺は1回しか通過しな
い。さらに、前方面のみについて考えたときに1回しか
通過しない辺と、後方面のみについて考えたときに同じ
く1回しか通過しない辺のうち、両者に共通する辺は輪
郭稜線であり、共通しない辺は開口辺であるという性質
を有する。
【0031】この性質に着目して従来の装置を次のよう
に変更する。座標変換、前方面または後方面の判定など
の数式によって処理を行う数式空間処理部において、装
置座標系への座標変換部を分離する。また、視点座標系
に変換された多角形の各辺の始点および終点の座標値を
比較して、輪郭線となる辺を検出する輪郭線検出部を新
たに付加する。このように変更した装置を用いて、まず
第1のステップとして、受け取った多角形データを従来
の数式処理部で装置座標系の多角形データに変換し、輪
郭線および稜線を区別しないでそれらを構成する画像デ
ータを線分発生部で、面を構成する画像データを面発生
部で発生し、Zバッファ、マスクバッファを用いて、隠
線隠面消去部で隠面消去された面画像に隠線消去された
輪郭線と稜線の線画像を付加した画像データをフレーム
メモリに作成する。ただし、このときは輪郭線と稜線は
同じ属性で表示される。これと同時に、輪郭線検出部で
視点座標系に変換された多角形の各辺の始点と終点の座
標値を比較して、輪郭線となる辺の始点と終点の座標デ
ータを検出して保存する。一連の多角形データに対して
上記の処理が終了すると、第2のステップとして、輪郭
線検出部で検出した輪郭線データを取り出し、装置座標
変換部で装置座標系の値に変換し、線分発生部で数式空
間データから画像空間データに変換し、隠線隠面消去部
でZバッファを用いて隠線消去処理をして、すでにフレ
ームメモリに作成された画像に重ね合わせる表示処理を
行う。このようして、隠面消去して表示された面画像
に、隠線消去された輪郭線と稜線の線画像をそれぞれの
表示属性で重ね合わせた画像をフレームメモリに作成す
ることができ、その結果がディスプレに表示される。
【0032】
【作用】表示図形データの授受に関する従来のインター
フェースを保ちながら、輪郭線、開口辺、稜線を区別し
て、面画像に重ね合わせた表示を得ることができる。
【0033】精度の高い視点座標系で表わされた辺の始
点と終点の座標値を比較して、輪郭線を構成する辺を検
出するから、量子化された装置座標系や画像空間での処
理で問題となる検出誤りは生じない。
【0034】閉多面体では輪郭線を構成する辺を、開多
面体では輪郭線を構成する辺と開口部を構成する辺の両
者を区別して、誤りなく検出できる。
【0035】この検出処理は隠線処理を含まなくて良い
から、処理機構が簡単で、高速な処理ができる。
【0036】検出した輪郭線の隠線処理は従来の画像処
理空間で行うので、新たな処理部の追加は小規模であ
る。また、隠面消去と同じ精度での隠線消去ができる。
さらに、数式空間における隠線消去処理よりも手続きが
簡単で、処理時間は短い。
【0037】
【実施例】図1に本発明の実施例を示す。3次元図形表
示装置1の全体を大きく2つの部分に分けて、モデリン
グ部2と表示部3で構成する。モデリング部2はさらに
2つに分けて、形状定義部4と表示制御部5で、いっぽ
う、表示部3は3つに分けて、数式空間処理部6、空間
変換部7、画像空間処理部8で構成する。数式空間処理
部6は数値で表わされた多角形の頂点データを数式的に
処理するもので、前処理部9、装置座標変換部10、輪
郭線検出部11、輪郭線バッファ12で構成する。空間
変換部7は数値で表わされたデータを個々の画素で表わ
された画像データに変換するもので、面発生部13と線
分発生部14で構成する。画像空間処理部8は画像デー
タ形式で表わされた線や面を処理するもので、隠線隠面
消去部15、Zバッファ16、マスクバッファ17、フ
レームメモリ18、ディスプレイ19で構成する。
【0038】表示制御部5では、表示対象の面図形をす
べて多面体に変換し、多面体の各面を構成する多角形デ
ータを表示部3に出力する。
【0039】前処理部9は座標変換、前方面または後方
面判定の機能を有する。
【0040】装置座標変換部10は、多角形データを装
置座標系のデータに変換する。さらに、線分データを生
成して、線分発生部14に出力する。1つの多角形につ
いて、すべての辺の出力処理が終了すると、次にその多
角形の面を表示するための面データを生成して面発生部
13に出力する。
【0041】輪郭線検出部11は輪郭線表示可、前方面
表示可かつ後方面表示否のモードのときは、視点座標系
で順次入力される多角形の辺データを調べ、その両端に
おける水平、垂直、奥行き方向の座標値が一致するもの
を除去し、一致しないものを輪郭稜線として残してゆく
処理を行なう。このようにして、数式空間処理で輪郭稜
線を結果的に検出する。また、前方面と後方面の両方が
表示可のモードのときは、まず、前方面と後方面に分け
て、それぞれについて上記と同じ処理を行う。そして、
それぞれの処理で、残された両者の辺の間で比較を行な
い、共通辺と非共通辺に分離して、共通辺を輪郭稜線、
非共通辺を開口辺として検出する。
【0042】輪郭線バッファ12は、輪郭線検出部11
が検出した輪郭稜線と開口辺データを記憶する。
【0043】面発生部13は面データを入力として、そ
れを構成する画素データを出力する。
【0044】線分発生部14は線分データを入力とし
て、それを構成する画素データを出力する。
【0045】フレームメモリ18は表示画素の表示色デ
ータを画素ごとに記憶する。
【0046】Zバッファ16はフレームメモリ18に記
憶した各画素ごとの奥行値(Z値)を記憶する。
【0047】マスクバッファ17は、多角形の各辺を構
成する画素をフレームメモリ18に書き込んだとき、そ
の画素の位置を記憶する。マスクバッファ17の内容は
1つの多角形の辺と面を構成する画素の処理が終了する
と初期化される。
【0048】隠線隠面消去部15は、まず、線分発生部
14や面発生部13で発生された線分や面を構成する画
素の水平X、垂直Y、奥行きZ方向の装置座標系の座標
値データと表示色データ、Zバッファ16とマスクバッ
ファ17の座標(X,Y)におけるデータを入力とし、
その画素が隠線または隠面となる画素かどうか、またマ
スクされた画素であるかどうかを判定し、隠線または隠
面の画素でなく、またマスクされていない画素と判定さ
れたときは、線分や面を構成する画素の表示色データで
フレームメモリ18のデータを書き換える。すなわち、
辺を構成する画素のときは、その線分発生部14から入
力されたZ値と座標(X,Y)におけるZバッファ16
のZ値とを比較して、前後判定を行ない、隠線でない場
合は、フレームメモリ18とZバッファ16の座標
(X,Y)における値を辺を構成する画素の表示色とZ
の値でそれぞれ書き換え、さらにマスクバッファ17の
座標(X,Y)における値を1にして辺を構成する画素
をフレームメモリに書き込んだことを記憶する。面を構
成する画素のときは、Zバッファ16とマスクバッファ
17の両方について座標(X,Y)における値を調べ、
面発生部13から入力されたZ値とZバッファ16の値
との比較で隠面でなく、かつマスクバッファ17の値が
0で、マスク状態にないとき、フレームメモリ18とZ
バッファ16の値を面を構成する画素の表示色とZの値
でそれぞれ書き換える。輪郭稜線や開口辺を構成する画
素のときは、Zバッファ16の値のみを調べ、隠線でな
いときは、輪郭稜線や開口辺を構成する画素の表示色と
Zの値で、フレームメモリ18とZバッファ16の値を
それぞれ書き換える。
【0049】全体の動作は次のように行う。第1のステ
ップとして、一連の多角形データに対して、前処理部
9、装置座標変換部10、線分発生部14、面発生部1
3、隠線隠面消去部15、Zバッファ16、マスクバッ
ファ17を用いて、面画像に表示可の辺を輪郭稜線、開
口辺、前方稜線、後方稜線を区別なくすべて辺の表示属
性で表示して付加した画像をフレームメモリ18に生成
する。これと同時に輪郭線検出部11で輪郭稜線や開口
辺を検出し、輪郭線バッファ12に記憶しておく。これ
らの処理が終了したら、次に第2のステップとして、輪
郭線バッファ12に記憶したデータを取り出して、装置
座標変換部10、線分発生部14、隠線隠面消去部1
5、Zバッファ16を用いて、輪郭稜線と開口辺をそれ
ぞれの表示属性でフレームメモリ18の画像に重ね書き
する。
【0050】輪郭線検出部11の原理、構成、動作の詳
細を説明する。
【0051】(1)動作原理 輪郭線検出部11の動作原理は図24のようである。
【0052】(a)閉多面体 閉多面体101の各面を構成する多角形群から、前方面
を構成する多角形群102を分離する。次に、この多角
形群102を多角形ごとにその辺を調べ、一致する辺を
除去し、一致しない辺を残す処理を行なう。
【0053】(b)開多面体処理 上下に開口部を持つ開多面体104の各面を構成する多
角形群を、前方面を構成する多角形群105と後方面を
構成する多角形群106に分ける。次に、多角形群10
5について多角形ごとに各辺を調べ、他の多角形につい
て調べた辺と一致する辺を除去し、しない辺を残す処理
を行なう。これによって、開口辺と輪郭稜線の和107
が残される。同様に、多角形群106の辺を調べ、開口
辺と輪郭稜線の和108を残す。最後に、2つの開口辺
と輪郭稜線107と108について、一致する辺を調
べ、一致するものを輪郭稜線109、一致しないものを
開口辺110とする。
【0054】(2)構成と動作 図25のように、輪郭稜線検出部は前方面処理部20
1、後方面処理部202、開口辺分離部203で構成す
る。輪郭線バッファ12は3つの輪郭線リスト204、
205、206とリスト選択部207で構成する。
【0055】(a)閉多面体処理 表示図形が閉多面体で、前方面のみを処理する場合の動
作は次のようである。この時は前方面処理部201のみ
が動作する。
【0056】まず、輪郭線表示可のコマンドを受ける
と、全ての輪郭線リストを初期化する。次に、前方面処
理部201は、多角形データを受け取ると、辺ごとの情
報に分解して、個々の辺について、輪郭線リストAに対
して、一致辺の検索を行なう。一致する辺があれば輪郭
線リストAから除去する。次々に入力される多角形に対
して、この処理を順次行なう。輪郭線表示否のコマンド
を受け取ると、この処理を終了する。これによって、輪
郭線リストAに完全な輪郭稜線リストが作られる。これ
を選択部207で選択して出力する。
【0057】(b)開多面体処理 表示図形が開多面で前方面と後方面を処理する場合は、
2つのステップに分けて、処理を行なう。第1のステッ
プでは前方面処理部201と後方面処理部202が輪郭
線リストA,Bを用いて処理を行なう。まず、輪郭線表
示可のコマンドを受け取ると、全ての輪郭線リストを初
期化する。次に前方面と後方面に分けて、多角形を次々
に受け取り、前方面は前方面処理部201で、輪郭線リ
ストAについて、後方面は後方面処理部202で、輪郭
線リストBについて、一致辺検索、不一致辺登録、一致
辺除去の処理を行なう。この処理を輪郭線表示否のコマ
ンドを受け取るまで続ける。
【0058】次に、第2のステップの処理に移る。この
ステップでは開口辺分離部203が3つの輪郭線リスト
を用いて処理する。開口辺分離部203は輪郭線リスト
Bから1つの辺を読みだし、輪郭線リストAに対して、
一致辺の検索を行なう。一致辺があればそれを輪郭線リ
ストCに登録し、輪郭線リストAから除去する。一致す
る辺がなければ、そのままとする。この処理を輪郭線リ
ストBの全辺について実行する。
【0059】これによって輪郭線リストAは開口辺リス
トに作り変えられ、輪郭線リストCには輪郭稜線リスト
が作られる。これを選択部207で順次選択して出力す
る。これによって、入力データの分解能で輪郭線や開口
辺が求まる。しかし、これを分解能が不足する画像空間
処理で隠線消去処理を行なうと、輪郭線である辺と他の
辺との間での優先表示の問題が生じる。視点座標系でも
視点方向に平行、またはほぼ平行とみなせる多角形は除
去する。このようにして、前方面と判定されても、さら
に分解能の低い装置座標系に変換すると、視点方向に平
行またはほぼ平行な面となるものが再度出現する。この
とき、遠方側の辺が輪郭線で、手前側の辺が前方稜線で
あると、Zバッファを用いた隠線消去処理では輪郭線の
方が隠線と判定されて、表示されないことが生じる。い
っぽう、直接に装置座標系に変換した多角形を用いて輪
郭線の検出を行なうと、丸めにより元来は別のものであ
った辺が、同一の端点座標値を持つようになり、これが
異なる面上の多角形同志であるときは、輪郭となる辺が
稜線と判定されてしまうと言う問題がある。
【0060】この問題は、前処理部9において、前方面
の判定を2段にすることでほぼ解決できる。すなわち、
まず、視点座標系で前方面の判定を行ない、前方面と判
定された多角形はさらに装置座標系に変換し、2回目の
前方面の判定を行ない、平行またはほぼ平行とみなせる
面は除去する。このとき、とくに前方面表示可の場合
は、2回目の判定において、平行とみなす範囲を大きく
とれるようにおくと効果的である。
【0061】次に具体的な動作の詳細を述べる。まずモ
デリング部2と表示部3の間のインターフェースを述べ
る。このインターフェイスとして、業界標準規定である
PEXに準じたものを考える。モデリング部2から表示
部3に対して出力されるコマンドには次のような種類が
ある。表示図形を定義する図形コマンド、面における光
の反射係数、辺の表示色、辺の表示可否、前方面や後方
面の表示可否など表示に関わる図形側の特性を定義する
属性コマンド、光源の種類や位置などを定義する光源コ
マンド、各種中間座標系に変換する座標変換コマンド、
投影座標系への変換と視野領域を定義する投影変換コマ
ンド、装置座標系での表示位置を定義するビューポート
設定コマンド。以下では、輪郭線や稜線の表示に関係す
る図形コマンドと属性コマンドの詳細を述べる。
【0062】(1)図形コマンド 形状定義部4は表示対象図形の形状定義を保存する。一
般に、表示対象となる図形は各種の3次元図形で構成さ
れ、その定義に都合の良い表現法で保存する。しかし、
形態的には、表示対象となる3次元図形は次のように分
類できる。大きくは、空間線図形、空間平面図形、空間
立体面図形である。空間線図形には3次元空間の線分、
折れ線、曲線がある。空間平面図形には3次元空間平面
上の多角形、曲線で囲まれた領域図形がある。空間立体
面図形には、平面の組合わせによる多面体と、連続的に
表面の向きが変化する曲面体がある。これらのうち、空
間線図形は輪郭線そのものとも考えられ、検出における
問題はない。よって、以下の議論では空間線図形は除外
する。
【0063】3次空間の多面体と曲面体には次のものが
ある。多面体と曲面体には閉じたものと開いたもの、す
なわち、それぞれ閉多面体と開多面体、閉曲面体と開曲
面体がある。さらに多面体や曲面体には孔のないものと
孔のあるもの、すなわち、それぞれ単純多面体と有孔多
面体、単純曲面体と有孔曲面体がある。また単純多面体
や単純曲面体には凸なものと凹なもの、すなわち、それ
ぞれ凸多面体と凹多面体、凸曲面体と凹曲面体がある。
【0064】PEXの規定では多面体の表示は、多面体
の各面を構成する各多角形単位のデータに変換して表示
部3に転送することによって行なう。また曲面体の表示
は、多面体の表示法を拡張した方法で行なうのが基本で
ある。すなわち、曲面体をまず、多面体で近似し、さら
にこの近似多面体の各面を構成する各多角形単位の表示
データに変換して表示部3に転送し、表示を行なう。
【0065】そこで形状定義部4で保存した面図形を表
示部3で表示するに当たり、モデリング部2の表示制御
部5でつぎのような変換処理を行なう。
【0066】多角形はそのまま一つの多角形として、表
示部3に出力する。または、さらにいくつかの多角形に
分割して多角形群として出力する。
【0067】曲線で囲まれた領域図形は、多角形で近似
し、その多角形として出力する。この多角形はさらに幾
つかの多角形に分割して、多角形群として出力すること
もある。
【0068】多面体は、各面を構成する多角形を取り出
し、多角形群として出力する。このとき、一部の多角形
はさらにいくつかの多角形に分割されることもある。
【0069】曲面体は各面がほぼ平面とみなせる程度の
多面体で近似し、各面を構成する多角形を取り出し、多
角形群として出力する。
【0070】このように変換して得られた多角形をモデ
リング部2から表示部3に伝達するために、設けられた
図形コマンドは次のようである。多角形の頂点座標値を
多角形一つについて一つのFill Area 3D
コマンドで表示部3に与える。多角形群の頂点座標値を
一つのFill Area Set 3D コマンドで
与える。さらに、多角形群の各頂点の表示色を計算し、
その値を付加して表示部3に与えたり、各頂点における
法線ベクトルを付加して与え、表示部3で頂点位置、頂
点法線ベクトル、視点位置、光源位置などから、頂点の
表示色を求め、内挿法によって面上の各部について表示
色を求め、多角形群を濃淡表示するのに用いるFill
Area Set 3D With Data コマ
ンドがある。このコマンドでは各辺の表示可否も指定で
きる。
【0071】Fill Area Set 3D Wi
th Dateのコマンド形式は図2のようである。コ
マンド全体はコマンド番号、コマンド語長、形状種別、
辺表示可否、組合せ種別、色データ種別、面データ種
別、頂点データ種別、多角形数、面データ、頂点データ
で構成される。形状種別、辺表示可否、組合せ種別、色
データ種別、面データ種別、頂点データ種別は二者択一
型のフラグデータである。それぞれの定義内容は次のよ
うである。
【0072】コマンド番号:コマンドの種別を示す。
【0073】コマンド語長:コマンド全体の語長を示
す。
【0074】形状種別 :定義する多角形が凸である
か、非凸であるか、辺が自己交差する複雑な形である
か、その他であるかを指定。
【0075】辺表示可否 :定義する多角形の全辺につ
いて、その他の属性定義を無視して表示否とするか、そ
の属性定義に従うかを指定。
【0076】組合せ種別 :複数の多角形を定義すると
き、多角形が相互に面を共有することなく個別か、包含
関係にあり有孔な図形を形成するか、相互の辺が交差す
るかを指定。
【0077】色データ種別:指定色データが8bit
か、16bitかを指定。
【0078】面データ種別:多角形ごとの面色指定の有
無、面法線ベクトル指定の有無を指定。
【0079】頂点データ種別:頂点ごとの頂点色指定の
有無、法線ベクトル指定の有無、辺ごとの表示可否指定
の有無を指定。
【0080】多角形数 :定義する多角形の個数を指
定。面データと頂点データは、多角形の個数だけ定義す
る。
【0081】面データ :面データ種別で面色指定有
のときは多角形の面色、面法線ベクトル指定有のときは
多角形の面法線ベクトルを与える。
【0082】頂点データ :多角形の頂点数、各頂点の
座標値、頂点データ種別で頂点ごとの色指定有のときは
頂点色または頂点ごとの法線ベクトル指定有のときは法
線ベクトル、辺ごとの表示可否指定有のときは辺ごとの
表示可否のデータを与える。
【0083】以上の定義からもわかるように、このコマ
ンドでは、面色指定と面法線ベクトル指定の有無、多角
形の個数、多角形の頂点数、頂点ごとに与えるデータ種
別により、面データと頂点データの形式と内容がいろい
ろと変化する。たとえば、面色指定および面法線ベクト
ル指定がともに無のときは、面データは存在しない。
【0084】このコマンド形式でわかるように、表示部
3には多面体を構成する単位でのグループ分けの情報、
もともと多面体の面を構成していたものか、曲面体を近
似することによって生成されたものか、一つの多角形を
さらに分割して生成されたものかの情報は伝達されな
い。さらに、出力における順番の規定もなく、いくつか
の多面体から生成されたデータが、順序不同で伝達され
ることも有り得る。
【0085】(2)属性コマンド 多角形の表示に関しては多角形コマンドとは別にいくつ
かの属性コマンドがある。それらのうち、輪郭線や開口
辺の表示に直接関係するコマンドは次のものである。な
お、これらの属性コマンドは現在値を指定するもので、
一度コマンドが発生されると、次に同じコマンドが発生
されるまで、その指定が有効である。
【0086】(a)前方面、後方面表示 Facet Culling Mode:前方面と後方
面のそれぞれの表示可否を指定。したがって、前方面と
後方面の両面表示、前方面のみ表示、後方面のみ表示の
モードをつくることが可能。表示物体が閉じた物体なら
ば、前方面のみ表示可とすることにより、無駄な処理を
省略でき、高速に結果が得られる。表示物体が開いた物
体ならば両面ともに表示可とするのが一般的である。後
方面のみ表示可とすると不自然な表示となる。特別な目
的に使用する。
【0087】(b)辺(稜線)表示 Surface Edge Flag :多角形コマン
ドで表示可の辺を表示するかしないかを指定。
【0088】Surface Edge Type :
辺の表示線種(実線、破線など)を指定。
【0089】Surface Edge Width:
辺の表示幅を指定。
【0090】Surface Edge Color:
辺の表示色を指定。
【0091】(c)輪郭線および開口辺表示 輪郭線表示に関して新たに次のコマンドをもうける。
【0092】Contour Edge Flag :
多角形の辺のうち、輪郭線または開口辺となるものを輪
郭線または開口辺として表示するかしないかを指定。こ
の指定は辺の表示可否属性とは独立であり、Surfa
ce Edge Flagおよび多角形コマンドでの辺
の表示可否指定に無関係に、輪郭線および開口辺を表示
する。このコマンドで表示可を受領すると輪郭線検出部
11は輪郭線と開口辺の検出を開始する。表示否を受領
すると、輪郭線と開口辺の検出を終了し、輪郭線バッフ
ァ12の内容を装置座標変換部10に出力し、輪郭線と
開口辺の表示を行なう。すなわち、輪郭線と開口辺の検
出と表示はContour EdgeFlagの表示可
コマンドと表示否コマンドの間に挟まれる多角形コマン
ドの単位で行なう。
【0093】Contour Edge Type :
輪郭線の表示線種を指定。
【0094】Contour Edge Width:
輪郭線の表示線幅を指定。
【0095】Contour Edge Color:
輪郭線の表示色を指定。
【0096】Open Edge Type :
開口辺の表示線種を指定。
【0097】Open Edge Width :
開口辺の表示線幅を指定。
【0098】Open Edge Color :
開口辺の表示色を指定。
【0099】(3)コマンド例と処理 具体的な図形の処理例を述べる。
【0100】(a)有孔閉多面体の表示1 図3の有孔閉多面体32について、輪郭稜線を中太の黒
色実線で、稜線を標準幅の黒色実線で表わして、面の濃
淡表示画像に重ね合わせて表示することを考える。
【0101】(i)多面体の定義 図3の有孔閉多面体32を構成する各側面について、孔
がないと考えたときの側面を本体部側面、孔を構成する
側面を孔部側面と呼ぶことにする。これら本体部33と
孔部34の側面を4つのFill Area Set 3
D With Dataコマンドで定義する。前後に存在
する6角形の本体部側面2つを同時に定義するコマンド
1を図4に、その他の孔のない本体部側面4つと孔部側
面4つを同時に定義するコマンド2を図5に、上側の有
孔側面35を2つの4角形で定義するコマンド3Aを図
6に、下側の有孔側面36を同じく2つの4角形で定義
するコマンド4Aを図7に示す。
【0102】図4のコマンド1において、前後の本体部
側面は非凸であるから、形状種別は非凸を指定する。辺
はすべて実在するから、辺表示可否は表示可を指定す
る。2つの多角形は互に独立であるから、組合わせ種別
は個別を指定する。面および頂点色は指定せず、色デー
タ種別の指定は無視する。各面には面法線ベクトルを指
定するものとし、面データ種別では面色無、面法線ベク
トル有を指定する。本来多面体であることから、各頂点
ベクトルは面法線ベクトルと一致するので、付加しない
ことにする。辺はすべて実在するものであり、辺表示可
否で表示可を指定したから、辺ごとの表示可否は指定し
ないことにする。したがって、頂点データ種別は、頂点
色無、頂点ベクトル無、辺ごとの表示可否無を指定す
る。定義する多角形の個数は2個であるから多角形数は
2を指定する。次に、前側の6角形を定義する。面デー
タでは、6角形ABCDEFの面法線ベクトルを指定す
る。頂点数は、6角形の6を指定する。頂点Aデータで
は、頂点Aの座標値を指定する。同様に頂点B、C、
D、E、Fのデータを指定する。最後に、後側の6角形
GHIJKLを定義する。面データとしてその面法線ベ
クトル、頂点数として6、頂点データとしてGからLま
での各頂点の座標値を指定する。
【0103】図5のコマンド2では、定義する多角形は
すべて凸であるから、形状種別は凸を指定する。辺表示
可否、組合せ種別、色データ種別、面データ種別はコマ
ンド1と同じとする。定義する多角形の個数は全部で8
個であるから、多角形数は8を指定する。次に4角形C
DJI、EFLK、FAGL、ABHG、MNOP、P
OST、TSRQ、QRNMの各面について、面法線ベ
クトル、頂点数、各頂点の座標値を順次指定する。
【0104】図6のコマンド3Aでは、有孔側面37の
外形および内形の多角形を定義する。外形の4角形DE
KJ、内形の4角形MPTQはともに凸であるから、形
状種別は凸を指定する。定義する辺はすべて実在するか
ら辺表示可否は表示可を指定する。有孔図形であるから
組合せ種別は有孔を指定する。色データ種別、面データ
種別、頂点データ種別はコマンド1と同じとする。多角
形数は2を指定する。続いて4角形DEKJの面法線ベ
クトル、頂点数、各頂点D、E、K、Jの座標値を指定
する。最後に4角形MPTQについて、同様の指定を行
なう。
【0105】図7のコマンド4Aでは、有孔側面38の
外形および内形の4角形BCIH、NOSRをコマンド
3Aと同様に定義する。
【0106】(ii)表示コマンド列 図3の有孔閉多面体32について、上で述べたように、
輪郭稜線を中太の黒色実線で、稜線を標準幅の黒色実線
で表示するためのコマンド列を図8に示す。
【0107】表示対象の多面体は閉であるから、後方面
は表示の対象とする必要はない。したがって、Face
t Culling Modeでは前方面表示可、後方
面表示否を指定する。稜線を表示するから、Surfa
ce Edge Flagでは辺表示可を指定する。こ
れから以後に定義する多角形データを1つの集合とし
て、輪郭線を検出・表示するから、Contour E
dge Flagで輪郭線表示可を指定する。稜線の表
示仕様に従って、Surface Edge Typ
e、Width、Colorの各コマンドで実線、標準
幅線、黒を指定する。同様に、輪郭線の表示仕様に従っ
て、Contour Edge Type、Widt
h、Colorの各コマンドで実線、中太線、黒を指定
する。以上で表示属性の指定を終了し、次に表示対象で
ある各多角形をFill Area Set 3D W
ith Dataコマンド1、2、3A、4Aで指定す
る。これですべての指定を終了し、最後に輪郭線の検出
と表示を開始するようにContour Edge F
lagで輪郭線表示否を指定する。
【0108】(iii)コマンド処理 次に、図1の表示部3における上記コマンド列の処理を
述べる。
【0109】前処理部9は、Facet Cullin
g Modeコマンドで前方面表示可、後方面表示否、
Surface Edge Flagコマンドで辺表示
可、Contour Edge Flagコマンドで輪
郭線表示可の指定を受け取ると、これらそれぞれを記憶
する。Surface Edge Type、Widt
h、Colorの各コマンドで辺の表示線種、線幅、線
色を、ContourEdge Type、Widt
h、Colorの各コマンドで輪郭線の表示線種、線
幅、線色の指定を受け取ると、これらそれぞれを線分発
生部14に伝達する。線分発生部14は、これらそれぞ
れを記憶する。
【0110】Fill Area Set 3D Wi
th Dataコマンド1で、形状種別、辺表示可否、
組合せ種別、色データ種別、面データ種別、頂点データ
種別のフラグデータと多角形数の指定を受け取ると、こ
れらを記憶する。そして、これから受け取る多角形デー
タの形式や頂点データの形式と頂点データに対して必要
な処理を判定する。ここでは、面色無、面法線ベクトル
有であるから、各多角形データの先頭に出現するのは面
データで、そのなかで多角形の面法線ベクトルが指定さ
れることがわかる。また、頂点色無、頂点ベクトル無、
辺ごとの表示可否無であるから、各頂点データでは頂点
の座標値のみが指定されること、面法線ベクトルと頂点
座標値から各頂点の表示色を計算する必要のあることが
わかる。そこで、6角形ABCDEFの面法線ベクトル
を読み取り、これを視点座標系の値に変換する。変換し
た面法線ベクトルと視線方向ベクトルの内積値から、前
方面か後方面かを判定する。この場合は、前方面と判定
される。前方面は表示可であるから、これに続く6つの
頂点AからFの各座標値を読み取り、視点座標系の値に
変換し、さらに光源位置と面の反射係数から各頂点の表
示色を求める。この頂点座標値を輪郭線検出部11に伝
達する。また、辺表示可かつ輪郭線表示可であるから、
この頂点座標値を装置座標変換部10に伝達する。装置
座標変換部10では、座標値をさらに装置座標系の値に
変換し、線分発生部14に伝達する。線分発生部14は
受け取った座標値と、すでに受け取り、記憶してある辺
の表示属性データをもとに辺を構成する画素データを発
生し、隠線隠面消去部15に伝達する。隠線隠面消去部
15では受け取った画素の位置に対応するZバッファ1
6の内容を読み出し、受け取った画素のZ値と比較し、
隠線の判定を行う。隠線と判定した場合は、その画素の
処理は終了する。隠線でないと判定した場合は、受け取
った画素のZ値と表示色でZバッファ16およびフレー
ムバッファ18の内容を書き換える。また、マスクバッ
ファ17にマスク値1を書き込む。次に、面発生の処理
を行うが、この場合は6角形ABCDEFの形状種別が
非凸であるので、面発生部13での取り扱いが可能な多
角形への分割処理を前処理部9で行い、分割された多角
形の頂点座標値と表示色を装置座標変換部10に伝達す
る。装置座標変換部10で頂点座標値を装置座標系の値
に変換し、表示色とともに、面発生部13に伝達する。
面発生部13では多角形を構成する画素データを発生
し、隠線隠面消去部15に伝達する。隠線隠面消去部1
5では受け取った画素の位置に対応するZバッファ16
とマスクバッファ17の内容を読み出し、隠面かどうか
とマスクの有無の判定を行う。隠面である、またはマス
ク有りと判定した場合は、その画素の処理は終了する。
隠面でなく、かつマスク無しと判定した場合は、受け取
った画素のZ値と表示色でZバッファ16およびフレー
ムバッファ18の内容を書き換える。6角形ABCDE
Fの面の表示処理が終了すると前処理部9はバッファク
リアの信号をマスクバッファ17に伝達する。この信号
を受け取るとマスクバッファ17の内容はすべて0にク
リアされる。以上で、6角形ABCDEFの処理を終了
する。
【0111】次の6角形GHIJKLの処理を開始す
る。まず面法線ベクトルを読み取り、これを視点座標系
の値に変換し、前方面か後方面かの判定を行なう。この
場合は後方面と判定される。ここでは、後方面は表示否
であるから、この6角形の処理はこれで終了する。
【0112】次に、Fill Area Set 3D
With Dataコマンド2を受け取る。形状種
別、辺表示可否、組合せ種別、色データ種別、面データ
種別、頂点データ種別のフラグデータと多角形数を受け
取り、これらを記憶するとともに、これから受け取る多
角形データや頂点データの形式と頂点データに対して必
要な処理を判定する。コマンド2とコマンド1のフラグ
データを比較すると、相違は形状種別の指定のみであ
り、ここで定義される多角形はすべて凸である点が異な
る。したがって、面表示のための多角形の分割処理が不
要であること、その他の多角形や頂点の処理はコマンド
1と同じであることがわかる。まず、4角形CDJIの
面法線ベクトルを読み取り、視点座標系の値に変換し、
前方面か後方面かの判定を行う。この場合は前方面と判
定される。そこで、これに続く4つの頂点座標データを
読み取り、視点座標系の値に変換し、各頂点の表示色を
求める。この頂点座標値を輪郭線検出部11に伝達す
る。また頂点座標値と表示色を装置座標変換部10に伝
達する。装置座標変換部10では、この座標値を装置座
標系の値に変換し、この変換結果を線分発生部14に伝
達して、辺の表示処理を行う。これが終了すると、頂点
の座標値と表示色を面発生部13に伝達して、面の表示
処理を行う。同様の処理を4角形EFLK、FAGLに
ついて行う。さらにこれらに続く4角形ABHGは面法
線ベクトルの判定で後方面と判定されるので、表示処理
および輪郭線検出部11への伝達処理は行われない。
【0113】さらに孔部を構成する側面の処理を行う。
4角形TSRQ,QRNMは前方面と判定され、表示処
理と輪郭線検出部11への伝達を行う。いっぽう、4角
形MNOP、POSTは後方面と判定され、その処理は
終了する。これでコマンド2の処理は終了する。
【0114】次に、Fill Area Set 3D
With Dataコマンド3Aの処理に移る。同様
に形状種別、辺表示可否、組合せ種別、色データ種別の
フラグデータと多角形数のデータを受け取り、それらを
記憶するとともに、これから受け取る多角形データや頂
点データの形式と頂点データに対して必要な処理を判定
する。コマンド3Aとコマンド1のフラグデータを比較
すると、その相違は、形状種別と組合せ種別の指定内容
である。形状種別は凸であるが、組合せ種別が有孔であ
る点が相違する。2つの多角形で有孔な面を構成するた
め、コマンド1の場合と同様に面表示のためには、面発
生部13で取り扱いが可能な多角形への分割処理が必要
であることがわかる。まず、外形の4角形DEKJの法
線ベクトルを読み取り、前方面、後方面の判定を行う。
この場合は前方面と判定される。次に4つの頂点データ
を読み取り、視点座標系の値に変換し、頂点の表示色を
求める。そして、各頂点の座標値を輪郭線検出部11に
伝達する。また、装置座標変換部10にも伝達し、辺の
表示を行う。次に内形の4角形MPTQのデータを読み
取る。面法線ベクトルの判定では前方面と判定される。
次に4つの頂点データを読み取り、視点座標系の値に変
換し、頂点の表示色を求める。各頂点の座標値を輪郭線
検出部11に伝達する。また、各頂点の値を装置座標変
換部10に伝達し、辺の表示を行う。次に有孔面を面発
生部13で取り扱い可能ないくつかの多角形に分割し、
得られた多角形の頂点座標値と表示色を装置座標変換部
10に伝達し、面の表示処理を行う。
【0115】最後にFill Area Set 3D
With Dataコマンド4Aの処理を行う。この
コマンド4Aでは4角形BCIHとNOSRが定義され
るが、いずれも面法線ベクトルの判定で後方面と判定さ
れ、それ以上の処理は行われない。
【0116】ここまでの処理で、フレームメモリ18に
は濃淡表示された面に輪郭稜線および稜線を同じ表示属
性で表示して付加した画像が生成される。
【0117】(iv)輪郭線検出処理 次に、輪郭線検出部11での処理を述べる。前処理部9
で前方面と判定し、輪郭線検出部11に伝達される多角
形は以下のものである。
【0118】本体部 多角形ABCDEF、CDJI、DEKJ、EFLK、
FAGL 孔部 多角形TSRQ、QRNM 輪郭線検出部11ではこれらの前方面データから、前方
稜線となる辺を検出・除去し、輪郭線となる辺を残し、
保存する。前方稜線は、前方面の辺として2度出現する
ことで検出する。このようにして、前方稜線として検出
される辺とその検出要因は次のようである。
【0119】本体部 辺CD:多角形ABCDEFと多角形CDJIで2度出
現 辺DE:多角形ABCDEFと多角形DEKJで2度出
現 辺EF:多角形ABCDEFと多角形EFLKで2度出
現 辺FA:多角形ABCDEFと多角形FAGLで2度出
現 辺DJ:多角形CDJIと多角形DEKJで2度出現 辺EK:多角形DEKJと多角形EFLKで2度出現 辺FL:多角形EFLKと多角形FAGLで2度出現 孔部 辺TQ:多角形MPTQと多角形TSRQで2度出現 辺QM:多角形MPTQと多角形QRNMで2度出現 辺QR:多角形TSRQと多角形QRNMで2度出現 その結果、輪郭稜線として残され、保存される辺とその
要因は次のようである。
【0120】本体部 辺AB、BC:多角形ABCDEFのみで出現 辺CI、IJ:多角形CDJIのみで出現 辺JK :多角形DEKJのみで出現 辺KL :多角形EFLKのみで出現 辺LG、GA:多角形FAGLのみで出現 孔部 辺TP、PM:多角形MPTQのみで出現 辺RS、ST:多角形QRSTのみで出現 辺MN、NR:多角形QRNMのみで出現 この輪郭稜線を連ねて作られる輪郭線は、本体部33と
孔部34でそれぞれ次のように閉ループを構成する。
【0121】本体部:線ABCIJKLGA 孔部 :線MNRSTPM (v)輪郭線表示処理 輪郭稜線の検出処理が終了すると、その頂点座標値を装
置座標変換部10に伝達し、装置座標系の値に変換す
る。装置座標変換部10はこれを線分発生部14に伝達
する。線分発生部14はあらかじめ受け取った輪郭線の
表示属性データを用いて線分を構成する画素を生成し
て、隠線隠面消去部15に伝達する。隠線隠面消去部1
5はZバッファ16の内容を読み出し、隠線の判定を行
う。隠線と判定した場合はその画素の処理は終了する。
隠線でないと判定した場合は、受け取ったZ値と表示色
でZバッファ16とフレームメモリ18の内容を書き換
える。
【0122】これによって、フレームメモリ18には輪
郭稜線と稜線で表示法を区別して、濃淡表示画像にそれ
らを重ね合わせた画像データが生成され、図9のように
輪郭稜線35を中太の黒線で、前方稜線36を標準幅の
黒線で付加された画像がディスプレイ19に表示され
る。
【0123】(b)有孔閉多面体の表示2 図3の有孔閉多面体32について、有孔面の別定義を考
える。上側の有孔側面37と下側の有孔側面38は、図
10のように破線で示した仮想辺EM、DP、JT、K
Q、BN、CO、IS、HRを付加して、それぞれ4つ
の部分面に分割し、この仮想辺39を辺ごとの表示可否
指定で表示否とした多角形群で定義することも可能であ
る。この定義によって、上記の表示1と同様に輪郭稜線
を中太の黒色実線で、稜線を標準幅の黒色実線で表わし
て、面の濃淡表示画像に重ね合わせて表示することを考
える。
【0124】(i)多角形定義 上側の有孔側面37を4つの4角形DEMP、EKQ
M、KJTQ、JDPTに分割する。この4つの4角形
を定義するコマンド3Bを図11に示す。、下側の有孔
側面38を同じく4つの4角形BCON、CISO、I
HRS、HBNRに分割する。この4つの4角形を定義
するコマンド4Bを図12に示す。図11のコマンド3
Bでは、定義する4角形はすべて凸であるから、形状種
別は凸を指定する。辺には実際に存在するものと、仮想
的に存在するものが混在する。実在する辺は表示し、仮
想的な辺は表示しない。したがって、多角形の一部の辺
は表示するので、辺表示可否は表示可を指定する。組合
せ種別、色データ種別、面データ種別はコマンド1と同
じとする。上記のように、実在する辺は表示可、仮想的
な辺は表示否とするので、頂点データ種別の辺ごとの表
示可否は有を指定する。頂点データ種別における他の指
定はコマンド1と同じとする。多角形数は4を指定し、
各面の定義を行なう。まず、4角形DEMPの定義を行
なう。面データには4角形DEMPの面法線ベクトルを
指定する。頂点数は4を指定する。次に辺DEは実在す
るから頂点Dデータには、その座標値と辺表示可を指定
する。辺EMは仮想的な辺であるから頂点Eデータに
は、その座標値と辺表示否を指定する。辺MPは実在す
るから頂点Mデータには、その座標値と辺表示可を指定
する。辺PDは仮想的な辺であるから頂点Pデータに
は、その座標値と辺表示否を指定する。これで4角形D
EMPの定義を終了する。次に同様にして4角形EKQ
M、KJTQ、JDPTの定義を行なう。
【0125】図12のコマンド4Bでは、形状種別、辺
表示可否、組合せ種別、色データ種別、面データ種別、
頂点データ種別のフラグデータはコマンド3Bと同じも
のを指定する。続いて、同様に4角形BCON、CIS
O、IHRS、HBNRの定義を行なう。
【0126】(ii)表示コマンド列 この場合のコマンド列は、図8の( )内で示す側のコ
マンドを選択したものになり、別定義のコマンドの部分
だけが異なる。
【0127】(iii)コマンド処理 表示部3での各コマンドの処理は独立しており、変更の
ない部分は同じ処理がなされる。したがって、以下では
先の表示1とは異なるコマンド3Bおよび4Bの処理の
みについての述べる。
【0128】コマンド3Bの処理では、まず、形状種
別、辺の表示可否、組合せ種別、色データ種別、面デー
タ種別、頂点データ種別のフラグデータと多角形数のデ
ータを受け取り、それらを記憶するとともに、これから
受け取る多角形データや頂点データの形式と頂点データ
に対して必要な処理を判定する。フラグデータについて
コマンド3Bとコマンド2を比較すると、コマンド2と
の相違点は頂点データ種別に辺ごとの表示可否有の指定
が存在する点である。これによってコマンド3Bにおけ
る頂点データには座標値と辺の表示可否を示すデータが
存在し、各頂点データを読み取るごとに辺ごとの表可否
を判定し、それに従った処理を行う必要のあることがわ
かる。
【0129】まず、4角形DEMPの処理を行う。この
4角形の面法線ベクトルの判定では、前方面と判定され
る。次に頂点DからPの頂点データについて頂点の座標
値と表示可否データを読み取り、座標値を視点座標系の
値に変換し、頂点の表示色を求める。前処理部9では、
辺ごとの表示可否に関係なくすべての座標値を輪郭線検
出部11に伝達する。また、同様にこれらの頂点データ
を装置座標変換部10に伝達する。
【0130】Surface Edge Flagは辺
表示可であり、また本コマンド3Bの辺表示可否フラグ
も表示可であるから、装置座標変換部10では、受け取
った座標値を装置座標系の値に変換し、辺表示の処理を
行う。まず、辺DEについては、頂点Dのデータにおい
て辺DEは表示可と指定されているから、あらかじめ受
け取った辺表示属性で辺DEを構成する画素データを線
分発生部14で発生する。次に辺EMについては、頂点
Eのデータにおいて辺EMは表示否と指定されている
が、後記の処理を行なう。頂点Mのデータでは辺MPの
表示は可であるから、この辺MPの表示処理は行う。最
後に頂点Pのデータでは辺PDの表示は否であるが、こ
の辺も後記の処理を行なう。後記の処理とは次のようで
ある。表示否の辺は、一般の稜線となるときは表示しな
い。しかし、輪郭線表示可としたときには、輪郭稜線に
なる辺はその表示可否に関わらず輪郭線として表示する
処理を行なう。このとき、輪郭線の表示が面の表示に優
先するよう配慮しておかねばならない。そこで、表示否
の辺もマスクバッファ17への書き込みを可能として表
示処理を行う。ただし、表示上では辺が出現しないよう
にするために、辺の表示色を面の表示色とする。すなわ
ち、4角形DEMPの場合では、辺EMとPDについて
は、辺の両端に面の表示色を与えて、線分発生部14で
面と同じ色の辺の画素を発生する。そして、隠線隠面消
去部15で隠線の判定を行い、隠線でないならフレーム
メモリ18とZバッファ16の内容をその画素の値で書
き換え、さらにマスクバッファ17に1を書き込む。
【0131】(iv)輪郭線検出処理 次に、輪郭線検出部11での処理を述べる。前処理部9
で前方面と判定し、輪郭線検出部11に伝達される多角
形は以下のものである。
【0132】 多角形DEMP、EKQM、KJTQ、JDPT 輪郭線検出部11ではこれらの前方面データから、前方
稜線となる辺を検出・除去し、輪郭線となる辺を残し、
保存する。前方稜線として検出される辺とその検出要因
は次のようである。
【0133】本体部 辺DE:多角形ABCDEFと多角形DEMPで2度出
現 辺EK:多角形FELKと多角形EKQMで2度出現 辺DP:多角形DEMPと多角形JDPTで2度出現 辺EM:多角形DEMPと多角形EKQMで2度出現 辺KQ:多角形EKQMと多角形KJTQで2度出現 辺JT:多角形KJTQと多角形JDPTで2度出現 孔部 辺DJ:多角形CDJIと多角形JDPTで2度出現 辺QM:多角形EKQMと多角形QRNMで2度出現 辺TQ:多角形KJTQと多角形TSRQで2度出現 その結果、輪郭稜線として残され、保存される辺と、そ
の要因は次のようである。
【0134】本体部 辺JK:多角形KJTQのみで出現 孔部 辺MP:多角形DEMPのみで出現 辺PT:多角形JDPTのみで出現 辺NR:多角形QRNMのみで出現 辺RS:多角形TSRQのみで出現 これらの輪郭稜線を表示1と比較すると、まったく同じ
である。このように有孔側面を外形と内形の組み合わせ
で定義しても、部分に分けて多角形群として定義して
も、同じ輪郭稜線が得られる。
【0135】(v)輪郭線表示処理 先に述べたように、この時点では、部分に分けることに
よって発生した仮想辺39は、面の色で表示されてい
る。したがって、ディスプレイ19の表示状態を表示1
における同時点の状態と比較すると、人の目にはまった
く同じに見える。これに今から表示1とまったく同じ輪
郭線を重ね合わせ表示するから、最終的な表示結果も表
示1と同じに見えるものになる。
【0136】ここでは、仮想辺を有孔面の表示に適用し
たが、この方法は孔のない単純多角形にも適用できる。
PEXの形状定義には多角形コマンドしか存在しない。
そのため、円を表示するには、多数の辺を有する多角形
で近似し、表示部に伝達することになる。このとき、多
角形をそのまま伝達しても良いが、さらに多角形の内部
に点を取り、この点と各頂点を結ぶ仮想辺を導入し、単
純な図形である3角形群に分割して、表示部に伝達する
こともできる。また、複雑な凸凹のある多角形のとき
も、適当に仮想辺を加えて、より単純な多角形群に分割
して、伝達することも考えられる。
【0137】(c)開多面体表示 第2の処理例として、図13の開多面体40を考える。
この開多面体40について、開口辺を極太の黒実線で、
輪郭稜線を中太の黒実線で、稜線を標準幅の黒実線で表
わして、濃淡表示された画面像に重ね合わせた表示を行
なうことを考える。
【0138】(i)多角形定義 まず、多角形コマンドについて述べる。図13の図形4
0は、図3の図形32において、上下を向いた側面およ
び右を向いた中間部の側面を除去したものである。前後
の6角形は図3の6角形と同じである。したがって、前
後の6角形の定義コマンドは図4のコマンド1と同じに
なる。その他の側面の定義コマンドは、図5のコマンド
2で4角形CDJIとABHGだけを残したもので、図
14のコマンド5のようになる。
【0139】(ii)表示コマンド列 図13の開多面体40について、上記のように開口辺を
極太の黒線で、輪郭稜線を中太の黒線で、稜線を標準幅
の黒線で表示するためのコマンド列の例を図15に示
す。
【0140】図15において、表示対象の多面体40は
開であるから、前方面と後方面の両方が表示対象とな
る。したがって、Facet Culling Mod
eでは前方面表示可および後方面表示可を指定する。稜
線を表示するからSurface Edge Flag
では辺表示可を指定する。これから以後に定義する多角
形データを1つの集合として、開口辺と輪郭稜線を検出
して表示するから、Contour Edge Fla
gで輪郭線表示可を指定する。
【0141】次に、稜線、輪郭稜線、開口辺の表示属性
をそれぞれSurface Edge、Contour
Edge、 Open EdgeのそれぞれTyp
e、Width、Colorコマンドで指定する。
【0142】続いて、表示対象である各多角形を図4の
Fill Area Set 3DWith Data
コマンド1と図14のコマンド5で指定する。
【0143】最後に、開口辺、輪郭稜線の検出と表示の
開始するように、ContourEdge Flagで
輪郭線表示否を指定する。
【0144】(iii)コマンド処理 前処理部9は、Facet Culling Mode
コマンドで前方面表示可、後方面表示否、Surfac
e Edge Flagコマンドで辺表示可、Cont
our Edge Flagコマンドで輪郭線表示可の
指定を受け取り、これらを記憶する。Surface
Edge Type、 Width、Colorの各コ
マンドで辺の、Contour Edge Type、
Width、 Colorの各コマンドで輪郭線の、
Open Edge Type、 Width、 Co
lorの各コマンドで開口辺の線種、線幅、線色の指定
を受け取り、線分発生部14に伝達する。線分発生部1
4は、これらを記憶する。
【0145】次に、多角形データの処理を行なう。最初
のFill Area Set 3D With Da
taコマンド1のフラグデータと一つめの6角形ABC
DEFの処理は、有孔閉多面体32の場合とまったく同
じ処理を行う。
【0146】次に、6角形GHIJKLの処理を行う。
まず、面法線ベクトルの判定で後方面と判定される。後
方面も表示可であるから、さらに頂点データを読み取
り、頂点座標値を視点座標系の値に変換し、さらに頂点
の表示色を求める。この頂点座標値を輪郭線検出部11
へ伝達する。また、辺表示のため、この頂点座標値を装
置座標変換部10に伝達する。さらに面表示のために、
面発生部13での取り扱いが可能なように多角形を分割
し、装置座標変換部10へ伝達する。
【0147】次にFill Area Set 3D
With Dataコマンド5の処理を行う。このコマ
ンドは先のコマンド2のサブセットで、フラグデータは
まったく同じ内容である。したがって、フラグデータに
対しては有孔閉多面体32におけるコマンド2と同じ処
理を行う。さらに多角形データの処理を行う。4角形C
DJIに対しては、有孔閉多面体32におけるのと同じ
処理を行う。次の4角形ABHGは、頂点座標値の視点
座標系への値の変換、頂点の表示色の計算、辺と面の表
示のための装置座標変換部10への伝達および輪郭線検
出のための輪郭線検出部11への伝達を行う。
【0148】(iv)輪郭線検出処理 前処理部9で前方面と判定して、輪郭線検出部11に伝
達される多角形は次のものである。
【0149】多角形ABCDEF、CDJI また、後方面と判定して、輪郭線検出部11に伝達され
る多角形は次のものである。
【0150】多角形GHIJKL、ABHG 輪郭線検出部11では、これらの前方面と後方面のデー
タを処理して、開口辺と輪郭稜線を検出する。
【0151】前方面の処理で、辺の両端点の一致を検出
し、前方稜線として除去される辺は次のものである。
【0152】辺CD:多角形ABCDEFと多角形CD
JIで2度出現 その結果、輪郭稜線または開口辺として残され、保存さ
れる辺は次のものである。
【0153】辺AB、BC、DE、EF、FA:多角形
ABCDEFのみで出現 辺DJ、JI、IC :多角形CDJIのみ
で出現 後方面の処理で、辺の両端点の一致を検出し、後方稜線
として除去される辺は次のものである。
【0154】辺GH:多角形GHIJKLと多角形AB
HGで2度出現 その結果、輪郭稜線または開口辺として残され、保存さ
れる辺は次のものである。
【0155】辺HI、IJ、KL:多角形GHIJKL
のみで出現 辺GA、AB、BH:多角形ABHGのみで出現 前方面および後方面のそれぞれについて輪郭稜線または
開口辺として保存された辺の処理で、その両方に共通し
て出現すること検出して、輪郭稜線と判定されるのは次
のものである。
【0156】辺AB、JI 共通する辺が検出されず、開口辺と判定されるものは、
上部開口辺41と下部開口辺42に分けるとそれぞれ次
のようである。
【0157】上部開口辺:辺DE、EF、FA、JK、
KL、LG、DJ、GA 下部開口辺:辺BC、CI、IH、HB (v)輪郭稜線の表示処理 輪郭稜線と開口辺の検出処理が終了すると、それらの頂
点座標値を装置座標変換部10に伝達する。そして、線
分発生部14で輪郭線および開口辺の表示属性データを
用いてそれぞれを構成する画素データを生成し、隠線隠
面消去部15によって隠線消去しながらフレームメモリ
18の内容に重ね書きして行く。これによって、フレー
ムメモリ18には開口辺、輪郭稜線、稜線を区別して、
濃淡表示画像にそれらを重ね合わせた画像データが生成
される。その結果、図16のように開口辺43を極太の
黒線で、輪郭稜線44を中太の黒線で、稜線45を標準
幅の黒線を付加された画像がディスプレイ19に表示さ
れる。
【0158】(d)閉曲面体表示 次に、図17の閉曲面体46について、近似多面体の稜
線は表示せず、輪郭稜線のみを中太の黒実線で表して、
濃淡表示された面画像に重ね合わせた表示を求めること
を考える。
【0159】(i)多角形定義 近似多面体として、各面を3角形で構成したものを考え
る。ここでは簡単のために、この3角形群を図18のよ
うに一つのFill Area Set 3DWith
Dataコマンドで定義し、コマンド6とする。定義
する多角形はすべて3角形で、凸であるから、形状種別
は凸を指定する。すべての辺は仮想的なものであり、表
示しないから辺表示可否では表示否を指定する。組合わ
せ種別は個別を指定する。3角形ごとの面色は指定せ
ず、いっぽう面法線ベクトルは指定するものとして、面
種別データでは面色無、面法線ベクトル有を指定する。
頂点ごとの色は指定せず、法線ベクトルを指定するもの
とし、全辺が仮想的な辺であり、しかも稜線としての表
示もしないから、頂点データ種別では、頂点色無、頂点
法線ベクトル有、辺ごとの表示可否無を指定する。
【0160】多角形数には定義する3角形の個数を指定
する。次に3角形ごとにその面法線ベクトルと頂点数、
頂点ごとに座標値と頂点法線ベクトルを指定する。
【0161】(ii)表示コマンド列 図17の閉曲面体46について、上記のように近似多面
体の稜線は表示せず、輪郭稜線のみを中太の黒実線で表
示するためのコマンド列を図18に示す。コマンド列と
しては図8の閉多面体表示のときに準じているが、ここ
では稜線は表示しないため、Surface Edge
Type、Width、Colorの各コマンドが出
現しないところが異なる。
【0162】(iii)コマンド処理 前処理部9では、Facet Culling Mod
eコマンドで前方面表示可、後方面表示否、Surfa
ce Edge Flagで辺表示否、Contour
Edge Flagで輪郭線表示可を受け取り、それ
らを記憶する。また、Surface Edgeの各コ
マンド、Contour Edgeの各コマンドで、辺
と輪郭稜線の表示属性の指定を受け取り、それらを線分
発生部14に伝達する。
【0163】次にFill Area Set 3D
With Data コマンド6の処理を行う。まず形
状種別などのフラグデータを読み取る。ここでは、辺表
示は否、面法線ベクトルは有、頂点法線ベクトルは有、
辺ごとの表示可否は無の指定である。これによって、定
義される多角形ごとにまず面法線ベクトルが指定され、
次に頂点数が出現し、さらに頂点データが続くこと、各
頂点データは座標値とその点における法線ベクトル値が
指定されることがわかる。また、頂点座標値と頂点法線
ベクトルから、各頂点の表示色を求める必要のあること
がわかる。
【0164】まず3角形P1P2Q1の処理を行う。3
角形の面法線ベクトルの判定から、この場合は後方面と
判定される。ここでは後方面は表示否であるから、この
3角形の処理はこれで終了する。同様に3角形P2P3
Q2、・・・の処理が行われる。さらに進んで、3角形
Q1Q2R2の処理では、面法線ベクトルの判定で、前
方面と判定される。このときは3つの頂点データを読み
取り、座標値と法線ベクトルを視点座標系の値に変換
し、さらに光源位置のデータなどと組み合わせて、各頂
点の表示色を求める。ここでは辺表示否で輪郭線表示可
であるから、まず、装置座標変換部10にこれらの値を
伝達し、さらに線分発生部14による面の色での辺の表
示と、面発生部13による面の表示を行う。これと同時
に頂点データを輪郭線検出部11に伝達する。同様に3
角形Q2Q3R3、・・・・の処理を行い、全3角形の
処理を終了する。
【0165】(iv)輪郭線検出処理 前処理部9で前方面と判定して、輪郭線検出部11に伝
達される多角形は次のものである。
【0166】 3角形Q1Q2P2、Q2Q3P2、・・・・・ Q1R1R2、Q2R2R3、・・・・・ 輪郭線検出部11では、これらの前方面のデータを処理
して輪郭稜線を検出する。辺の両端点の一致を検出し、
前方稜線として除去される辺は次のものである。
【0167】 辺Q1R1、Q1R2、Q2R2、Q2R3、・・・・ R1R2、R2R3、・・・・ その結果、輪郭稜線として残され、保存される辺は次の
ものである。
【0168】 辺Q1Q2、Q2Q3、Q3Q4、・・・・ (v)輪郭稜線の表示処理 輪郭稜線の検出処理が終了すると、それらの頂点座標値
を装置座標変換部10に伝達する。線分発生部14で輪
郭線の表示属性データを用いて画素データを生成し、隠
線隠面消去部15によって隠線消去しながらフレームメ
モリ18の内容に重ね書きして行く。これによって、フ
レームメモリ18には輪郭稜線を濃淡表示画像に重ね合
わせた画像データが生成される。その結果、図20のよ
うに近似多面体の稜線は表示せず、輪郭稜線のみを中太
の黒実線で付加した画像がディスプレイ19に表示され
る。
【0169】(e)開曲面体表示 図21に示した開曲面体について、近似多面体の稜線は
表示せず、輪郭稜線を中太の黒実線で、開口辺を極太の
黒実線で表して、濃淡表示された面画像に重ね合わせた
表示を行うことを考える。
【0170】(i)多角形の定義 この場合も、近似多面体として、各面を3角形で構成し
たものを考え、また1つのFill Area Set
3D With Dataコマンドで定義するものと
する。このように定めると、頂点データの具体的な数値
は異なるが、記号を用いた表記ではコマンド形式は図1
7のコマンド6と全く同じものになる。
【0171】(ii)表示コマンド列 図21の開曲面体について、上記のように近似多面体の
稜線は表示せず、輪郭稜線は中太の黒実線で、開口辺は
極太の黒実線で表示するためのコマンド列を図22に示
す。
【0172】コマンド列としては図15の開多面体表示
のときに準じている。ここでは、閉曲面体46のときと
同様に稜線は表示しないため、Surface Edg
eFlagの指定が辺表示否となることと、稜線の表示
属性を定義するSurface Edge Type、
Width、Colorの各コマンドが出現しないとこ
ろが異なる。
【0173】(iii)開曲面体の処理 前処理部9ではFacet Culling Mode
コマンドで前方面表示可、Surface Edge
Flagで辺表示否、Contour Edge Fi
agで輪郭線表示可を受け取り、それらを記憶する。ま
たSurface Edge、Contour Edg
e、Open Edgeコマンド群で辺、輪郭稜線、開
口辺の表示属性の指定を受け取り、それらを線分発生部
14に伝達する。
【0174】次にFill Area Set 3D
With Data コマンド6の処理を行う。このコ
マンドのフラグデータの内容および多角形データの表記
は閉曲面体46のときとまったく同じである。まずフラ
グデータを読み取り、閉曲面体46のときと同じ処理を
行う。次に3角形の処理を順次行う。3角形P1P2Q
2は面法線ベクトルの判定によって前方面と判定され
る。次に3つの頂点データを読み取り、閉曲面体46の
場合とまったく同じように座標変換、頂点の表示色計
算、面の色での辺の表示、面の表示、頂点座標値の輪郭
線検出部11への伝達を行う。同様に3角形P2P3Q
3、・・・の処理を行う。
【0175】3角形P6P7Q7の処理では後方面と判
定される。ここでは後方面も表示可であるから、前方面
の場合と同じように3つの頂点データを読み取り、座標
変換、頂点の表示色の計算、面の色での辺の表示、面の
表示、頂点座標の輪郭線検出部11への伝達を行う。同
様に3角形P7P8Q8、・・・の処理を行い、すべて
の3角形の処理を終了する。
【0176】(iv)輪郭線検出部処理 前処理部9で前方面と判定して、輪郭線検出部11に伝
達される3角形は次のものである。
【0177】 3角形P1P2Q2、P2P3Q3、・・・、P5P6Q3 P1Q1Q2、P2Q2Q3、・・・、P5Q5Q6、P6Q6Q7 ・ ・ U1U2V1、U2U3V2、U3U4V3、U4U5V4 V1V2U2、V2V3U3、V3V4U4 前処理部9で後方面と判定して、輪郭線検出部11に伝
達される3角形は次のものである。
【0178】 3角形P6P7Q7、P7P8Q8、P8P9Q P7Q7Q8、P8Q8Q9 Q7Q8R8、Q8Q9R9 Q8R8R9 U5U6V5、・・・ V4V5U5、・・・ 輪郭線検出部11では、これらの前方面と後方面のデー
タを処理して、開口辺と輪郭稜線を検出する。
【0179】前方面の処理で、辺の両端点の一致を検出
し、前方稜線として除去される辺は次のものである。
【0180】 辺P1Q2、P2Q2、P2Q3、P3Q3、P3Q4、・・・ Q1Q2、Q2Q3、Q3Q4、・・・ ・ ・ U1U2、U2U3、U3U4、U4U5 V1U2、V1V2、V2U3、V2V3、V3U4 その結果、輪郭稜線または開口辺として残され、保存さ
れる辺は次のものである。
【0181】辺P1P2、P2P3、P3P4、P4P
5、P5P6、P6Q7、Q7R8、R8R9 P1Q1、Q1R1、U1V1、・・・ V3V4、V4U5、U5T5、T5T6、・・・ 後方面の処理で、辺の両端点の一致を検出し、後方稜線
として除去される辺は次のものである。
【0182】 辺P7Q7、P7Q8、P8Q8、P8Q9 Q7Q8、Q8Q9、Q8RR、Q8R9 その結果、輪郭稜線または開口辺として残され、保存さ
れる辺は次のものである。
【0183】辺P6P7、P7P8、P8P9 P6Q7、Q7R8、R8R9 P9Q9、Q9R9 前方面および後方面のそれぞれについて輪郭稜線または
開口辺として保存された辺の処理で、その両方に共通し
て出現すること検出して、輪郭稜線と判定されるのは次
のものである。
【0184】 辺V3V4、V4U5、U5T5、T5T6、・・・ P6Q7、Q7R8、R8R9、・・・ 共通する辺が検出されず、開口辺と判定されるのは次の
ものである。
【0185】 辺P1P2、P2P3、・・・、P6P7、P7P8、
P8P9 P1Q1、Q1R1、・・・、T1U1、U1V1、・
・・、R9Q9、Q9P9 (v)輪郭稜線の表示処理 輪郭稜線と開口辺の検出処理が終了すると、それらの頂
点座標値を装置座標変換部10に伝達する。そして、線
分発生部14で輪郭線および開口辺の表示属性データを
用いてそれぞれを構成する画素データを生成し、隠線隠
面消去部15によって隠線消去しながらフレームメモリ
18の内容に重ね書きして行く。これによって、フレー
ムメモリ18には開口辺、輪郭稜線、稜線を区別して、
濃淡表示画像にそれらを重ね合わせた画像データが生成
される。その結果、図23のように近似多面体の稜線は
表示せず、開口辺49を極太の黒実線で、輪郭稜線50
を中太の黒実線で付加した画像がディスプレイ19に表
示される。
【0186】
【発明の効果】本発明によれば、入力された多角形デー
タをもとに、輪郭線、開口辺、稜線を指定の表示属性
で、濃淡表示された面画像に重ね合わせた表示ができる
ので、人にわかりやすい表示が得られる。
【0187】入力される多角形データは、従来の形式の
ままであるので、従来システムからの利用が容易であ
る。
【0188】輪郭線や開口辺を表示するか否かの指定が
できるので、従来の表示も可能である。また、表示図形
全体やその一部についてのみ、輪郭線や開口辺の重ね合
わせ表示ができる。
【0189】入力された時点での頂点座標値の精度で、
多角形の辺の比較を行ない、輪郭線、開口辺、稜線を区
別するので、装置座標系や画像レベルでの検出よりも確
実な検出と表示が行なえる。
【0190】輪郭線や開口辺の検出は数式的処理で、隠
線消去は画像的処理で行なうので、現行装置のハードウ
エアで、実現することも可能である。
【0191】画面像への輪郭稜線や開口辺の線画の重ね
合わせるときの、隠線判定の誤りが少なく、高品質の重
ね合わせ表示が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す装置構成図である。
【図2】表示多角形を定義するコマンドの一般的な構造
を説明するためのコマンド構造図である。
【図3】有孔閉多面体の形状と各部の名称を説明するた
めの幾何学的構造図である。
【図4】前後の非凸6角形側面を定義するためのコマン
ド構造図である。
【図5】本体部および孔部の凸4角形側面群を定義する
ためのコマンド構造図である。
【図6】上側の有孔側面を定義するためのコマンド構造
図である。
【図7】下側の有孔側面を定義するためのコマンド構造
図である。
【図8】有孔閉多面体の表示に関するコマンドの種類、
順序、指定内容を説明するためのコマンド列構成図であ
る。
【図9】有孔閉多面体の表示結果を説明するためのディ
スプレイ表示画像の模式図である。
【図10】有孔面の分割を説明するための幾何学的構造
図である。
【図11】上側の有孔側面を4つの凸4角形群で分割定
義するためのコマンド構造図である。
【図12】下側の有孔側面を4つの凸4角形群で分割定
義するためのコマンド構造図である。
【図13】開多面体の形状と各部の名称を説明するため
の幾何学的構造図である。
【図14】左右の凸4角形側面を定義するためのコマン
ド構造図である。
【図15】開多面体の表示に関するコマンドの種類、順
序、指定内容を説明するためのコマンド列構成図であ
る。
【図16】開多面体の表示結果を説明するためのディス
プレイ表示画像の模式図である。
【図17】閉曲面体と近似多面体の各部の名称を説明す
るための幾何学的構造図である。
【図18】曲面体を近似する3角形側面群を定義するた
めのコマンド構造図である。
【図19】閉曲面体を多面体近似して表示するときのコ
マンドの種類、順序、指定内容を説明するためのコマン
ド列構成図である。
【図20】閉曲面体を多面体近似して表示した結果を説
明するためのディスプレイ表示画像の模式図である。
【図21】開曲面体と近似多面体の各部の名称を説明す
るための幾何学的構造図である。
【図22】開曲面体を多面体近似して表示するときのコ
マンドの種類、順序、指定内容を説明するためのコマン
ド列構成図である。
【図23】開曲面体を多面体近似して表示した結果を説
明するためのディスプレイ表示画像の模式図である。
【図24】輪郭線検出部における処理過程を説明するた
めの概念図である。
【図25】輪郭線検出部の構造を説明するための装置構
成図である。
【符合の説明】
1…3次元図形表示装置、 2…モデリング部、 3…表示部、 4…形状定義部、 5…表示制御部、 6…数式空間処理部、 7…空間変換部、 8…画像空間処理部、 9…前処理部、 10…装置座標変換部、 11…輪郭線検出部、 12…輪郭線バッファ、 13…面発生部、 14…線分発生部、 15…隠線隠面消去部、 16…Zバッファ、 17…マスクバッファ、 18…フレームメモリ、 19…ディスプレイ、 32…有孔閉多面体、 33…本体部、 34…孔部、 35…輪郭稜線、 36…前方稜線、 37…上側の有孔面、 38…下側の有孔面、 39…仮想辺、 40…開多面体、 41…上部開口辺、 42…下部開口辺、 43…開口辺、 44…輪郭稜線、 45…稜線、 46…閉曲面体、 47…輪郭稜線、 48…開曲面体、 49…開口辺、 50…輪郭稜線、 101…閉多面体、 102…前方面、 103…輪郭稜線、 104…開多面体、 105…前方面、 106…後方面、 107…開口辺と輪郭稜線の和、 108…開口辺と輪郭稜線の和、 109…輪郭稜線、 110…開口辺、 201…前方面処理部、 202…後方面処理部、 203…開口辺分離部、 204…輪郭線バッファA、 205…輪郭線バッファB、 206…輪郭線バッファC、 207…選択部。

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】多面体、または曲面体を近似する多面体の
    各面を構成する多角形データ、光源データ、投影法デー
    タ、多角形の面および辺の表示属性データ、輪郭線の表
    示属性データを入力として、表示される対象を多面体と
    考えたときの輪郭線と稜線を推定し、該推定された輪郭
    線及び稜線を輪郭線表示属性データおよび辺表示属性デ
    ータに従った属性で、多角形の面を連続的な明暗や色付
    けで表示した面画像に重ね合わせて表示することを特徴
    とする3次元図形表示方法。
  2. 【請求項2】上記多角形データは、もとの多面体を構成
    するための多角形間の組合わせ情報を含まない形式に変
    換された個別の多角形または多角形群のデータであるこ
    とを特徴とする請求項1記載の3次元図形表示方法。
  3. 【請求項3】上記輪郭線を表示するか、しないかを指定
    することができることを特徴とする請求項1記載の3次
    元図形表示方法。
  4. 【請求項4】上記輪郭線の推定と表示は、輪郭線表示可
    の指定とこれに後続する輪郭線表示否の指定の間で指定
    された多角形データごとに行なうことを特徴とする請求
    項1記載の3次元図形表示方法。
  5. 【請求項5】上記輪郭線の表示属性は、輪郭線表示可の
    指定とこれに後続する輪郭線表示否の指定の間で指定さ
    れた多角形データ全体について1種類とし、輪郭線表示
    否を指定されたときの表示属性データに従うことを特徴
    とする請求項1記載の3次元図形表示方法。
  6. 【請求項6】辺表示属性が表示否であっても、輪郭線表
    示可の指定とこれに後続する輪郭線表示否の指定の間で
    指定された多角形データについては、輪郭線となる辺
    は、輪郭線表示属性データに従って表示することを特徴
    とする請求項1記載の3次元図形表示方法。
  7. 【請求項7】上記輪郭線の表示属性データとして、少な
    くとも線種(実線、破線など)、線幅(細線、太線な
    ど)、線色(赤色、黒色など)を指定することができる
    ことを特徴とする請求項1記載の3次元図形表示方法。
  8. 【請求項8】上記輪郭線は、閉じた多面体では前方面と
    後方面で共有される輪郭稜線であり、開いた多面体で
    は、前方面と後方面で共有される輪郭稜線および共有さ
    れずに開口部を構成する開口辺であることを特徴とする
    請求項1記載の3次元図形表示方法。
  9. 【請求項9】上記輪郭線を構成する輪郭稜線と開口辺に
    ついて、それぞれ少なくとも線種、線幅、線色の表示属
    性データを指定できることを特徴とする請求項1記載の
    3次元図形表示方法。
  10. 【請求項10】上記入力された多角形データを辺単位の
    データに分解し、辺ごとに考えたときの入力回数を調査
    することによって、稜線、輪郭稜線、開口辺となる辺を
    検出することを特徴とする請求項1記載の3次元図形方
    法。
  11. 【請求項11】上記辺ごとの入力回数の調査は、入力さ
    れた時点での精度またはそれに近い精度を有する辺両端
    の座標値の比較によって辺が一致すると判定される回数
    で行なうことを特徴とする請求項1記載の3次元図形表
    示方法。
  12. 【請求項12】多角形や辺を頂点や両端の座標値で表現
    して処理する数式空間処理と、多角形や辺を画素で表現
    して処理する画像空間処理の組合せによって、輪郭線と
    稜線をそれぞれについて指定された表示属性で表わし
    て、多角形の面を連続的な明暗や色付けで表示した面画
    像に重ね合わせて表示を行なうことを特徴とした請求項
    1記載の3次元図形表示方法。
  13. 【請求項13】上記数式空間処理とは、少なくとも座標
    変換、前方面と後方面の判定、輪郭線となる辺の判定を
    含むものであることを特徴とする請求項2記載の3次元
    図形表示方法。
  14. 【請求項14】上記画像空間処理とは、少なくともZバ
    ッファを用いた隠線隠面消去処理を含むものであり、Z
    バッファを用いて隠面消去された上記面画像を生成する
    手段を有し、この手段によって、隠面消去された上記面
    画像を求めると同時に、上記数式空間処理によって輪郭
    稜線や開口辺を求めておき、これらの処理が終了する
    と、輪郭線や開口辺の表示を開始し、このとき隠線消去
    処理を上記Zバッファを用いて行なうことを特徴とする
    請求項2記載の3次元図形表示方法。
  15. 【請求項15】上記画像空間処理で多角形の面画像に辺
    の線画像を重ね合わせて表示するとき、辺の表示を面の
    表示よりも優先させる辺表示優先機構を組み込み、辺表
    示付き面表示のときは、表示可の辺は辺表示属性データ
    の色で、表示否の辺は面の色で、辺表示付きでない面表
    示のときは、辺の表示可否の指定に関係なくすべての辺
    を面の色で、上記辺表示優先機構を用いて表示処理を行
    ない、つぎに、数式空間処理で検出した輪郭線の画像空
    間処理では、Zバッファを用いて、隠線消去処理をする
    ことによって、輪郭線の表示を面の表示よりも優先させ
    た重ね合わせ画像を得られるようにしたことを特徴とす
    る請求項2記載の3次元図形表示方法。
JP22543393A 1993-09-10 1993-09-10 3次元図形表示方法 Pending JPH0785310A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22543393A JPH0785310A (ja) 1993-09-10 1993-09-10 3次元図形表示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22543393A JPH0785310A (ja) 1993-09-10 1993-09-10 3次元図形表示方法

Publications (1)

Publication Number Publication Date
JPH0785310A true JPH0785310A (ja) 1995-03-31

Family

ID=16829298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22543393A Pending JPH0785310A (ja) 1993-09-10 1993-09-10 3次元図形表示方法

Country Status (1)

Country Link
JP (1) JPH0785310A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6828969B2 (en) 2000-06-05 2004-12-07 Namco Ltd. Game system, program and image generating method
US6890261B2 (en) 2000-02-17 2005-05-10 Namco Ltd. Game system, program and image generation method
US6980214B2 (en) 1999-12-28 2005-12-27 Square Co., Ltd. Methods and apparatus for shading object drawings in video games
US6988059B1 (en) 1999-09-14 2006-01-17 Kabushiki Kaisha Square Enix Rendering method and device, game device, and computer-readable recording medium for storing program to render stereo model
US7542033B2 (en) 2002-03-01 2009-06-02 Celsys Co., Ltd. Method and program for generating a two-dimensional cartoonish picturization of a three-dimensional object
CN111862334A (zh) * 2019-04-29 2020-10-30 杭州优工品科技有限公司 一种显示三维图形、提供图形及图形数据的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988059B1 (en) 1999-09-14 2006-01-17 Kabushiki Kaisha Square Enix Rendering method and device, game device, and computer-readable recording medium for storing program to render stereo model
US6980214B2 (en) 1999-12-28 2005-12-27 Square Co., Ltd. Methods and apparatus for shading object drawings in video games
US6890261B2 (en) 2000-02-17 2005-05-10 Namco Ltd. Game system, program and image generation method
US6828969B2 (en) 2000-06-05 2004-12-07 Namco Ltd. Game system, program and image generating method
US7542033B2 (en) 2002-03-01 2009-06-02 Celsys Co., Ltd. Method and program for generating a two-dimensional cartoonish picturization of a three-dimensional object
CN111862334A (zh) * 2019-04-29 2020-10-30 杭州优工品科技有限公司 一种显示三维图形、提供图形及图形数据的方法及装置

Similar Documents

Publication Publication Date Title
US5745666A (en) Resolution-independent method for displaying a three-dimensional model in two-dimensional display space
EP0854441A2 (en) Method and apparatus for rapidly rendering computer generated images of complex structures
US20050068333A1 (en) Image processing apparatus and method of same
US6670955B1 (en) Method and system for sort independent alpha blending of graphic fragments
US7149345B2 (en) Evaluating method, generating method and apparatus for three-dimensional shape model
JPH0581438A (ja) 三次元ソリツド対象物を表現する表示可能情報を発生する装置と方法
US7889208B1 (en) Z-texture mapping system, method and computer program product
EP1519317B1 (en) Depth-based antialiasing
US20090153555A1 (en) System and Computer-Implemented Method for Modeling the Three-Dimensional Shape of An Object by Shading of a Two-Dimensional Image of the Object
KR100700307B1 (ko) 굴절이 있는 이미지를 렌더링하는 방법 및 장치
JP4209129B2 (ja) グラフィックスモデルを表す複数のポリゴンを含むメッシュをレンダリングする方法
JPH0785310A (ja) 3次元図形表示方法
US8174526B2 (en) Methods and apparatus for rendering or preparing digital objects or portions thereof for subsequent processing
US10366470B2 (en) Object separation for scanned assets
CN117315154B (zh) 一种可量化的人脸模型重建方法及系统
US6441826B1 (en) Method and apparatus for generating textures for display
JP3341549B2 (ja) 3次元形状データ処理装置
US6937236B2 (en) Methods and apparatus for culling sorted, back facing graphics data
ABDELHAMID IMAGE SYNTHESIS
JPH08279057A (ja) 三次元図形の輪郭線および稜線強調表示装置
Ferranti et al. Single Image 3D Building Reconstruction Using Rectangles Parallel to an Axis
Balsys et al. Visualizing nonmanifold and singular implicit surfaces with point clouds
Reniers et al. Extreme simplification and rendering of point sets using algebraic multigrid
CN117197300A (zh) 一种基于透明通道的三维线框透视动图的渲染合成方法
JPH06231274A (ja) 3次元シミュレーション方法及び装置