JPH0799549B2 - 陰影表示方法 - Google Patents

陰影表示方法

Info

Publication number
JPH0799549B2
JPH0799549B2 JP61229076A JP22907686A JPH0799549B2 JP H0799549 B2 JPH0799549 B2 JP H0799549B2 JP 61229076 A JP61229076 A JP 61229076A JP 22907686 A JP22907686 A JP 22907686A JP H0799549 B2 JPH0799549 B2 JP H0799549B2
Authority
JP
Japan
Prior art keywords
patch
unit area
data
processing
curved surface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP61229076A
Other languages
English (en)
Other versions
JPS6383871A (ja
Inventor
敦 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP61229076A priority Critical patent/JPH0799549B2/ja
Publication of JPS6383871A publication Critical patent/JPS6383871A/ja
Publication of JPH0799549B2 publication Critical patent/JPH0799549B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A 産業上の利用分野 B 発明の概要 C 従来の技術(第13図〜第14図) D 発明が解決しようとする問題点(第15図) E 問題点を解決するための手段(第1図) F 作用(第1図) G 実施例(第1図〜第12図) (G1)分割数の決定(第1図及び第2図) (G2)切り出し用パツチの生成(第1図及び第2図) (G3)処理手順(第1図〜第12図) (G4)実施例の作用 H 発明の効果 A 産業上の利用分野 本発明は陰影表示方法に関し、例えばCAD(computer ai
ded design)、又はCAM(computer aided manufacturin
g)、などにおいて生成された自由曲面について、陰影
処理をする場合に適用して好適なものである。
B 発明の概要 本発明は枠組み空間にそれぞれ張られたパツチから三角
形単位領域を切り出して陰影処理するようになされた陰
影処理方法において、枠組み空間に張られたパツチを拡
大した切り出し用パツチを生成し、これから三角形単位
領域を切り出して陰影処理することにより、従来パツチ
間において生じていたギヤツプの発生を回避し、陰影処
理した自由曲面が自然な陰影を有した曲面に見えるよう
にしたものである。
C 従来の技術 例えばCADの手法を用いて自由曲面をもつた物体の形状
をデザインする場合(geometric modeling)、一般にデ
ザイナは、曲面が通るべき3次元空間における複数の点
(これを節点と呼ぶ)を指定し、当該指定された複数の
節点を結ぶ境界曲線網を所定のベクトル関数を用いてコ
ンピユータによつて演算させることにより、いわゆるワ
イヤフレームで表現された曲面を作成する。かくして境
界曲線によつて囲まれた多数の枠組み空間を形成するこ
とができる(このような処理を枠組み処理と呼ぶ)。
かかる枠組み処理によつて形成された境界曲線網は、そ
れ自体デザイナがデザインしようとする大まかな形状を
有しており、各枠組み空間を囲む境界曲線を用いて所定
のベクトル関数によつて表現できる曲面を補間演算する
ことができれば、全体としてデザイナがデザインした自
由曲面(2次関数で規定できないものを言う)を生成す
ることができる。ここで各枠組み空間に張られた曲面は
全体の曲面を構成する基本要素を形成し、これをパツチ
と呼ぶ。
従来この種のCADシステムにおいては、境界曲線網を表
現するベクトル関数として、計算が容易な例えばベジエ
(bezier)式、B−スプライン(B-spline)式でなる3
次のテンソル積が用いられており、例えば形状的に特殊
な特徴がないような自由曲面を数式表現するには最適で
あると考えられている。
すなわち形状的に特殊な特徴がないような自由曲面は、
空間に与えられた点をxy平面上に投影したとき、当該投
影さた点が規則的にマトリクス状に並んでいることが多
く、この投影点の数がm×nで表されるとき、当該枠組
み空間を3次のベジエ式で表される四辺形パツチを用い
て容易に張ることができる。
これに対して形状的に特徴がある曲面(例えば大きく歪
んだ形状をもつ曲面)に滑らかな自由曲面を張ろうとす
る場合には、枠組み空間の共有境界について、接平面連
続の条件を満足するような内部の制御点を求め、当該内
部の制御点によつて決まる自由曲面を表すベクトル関数
によつて、自由曲面でなるパツチを張ることができる。
ところでこのような手法によつて生成された自由曲面デ
ータによつて表される自由曲面に対して、陰影処理を施
すことによつて陰影をつけることができれば、当該曲面
をデイスプレイ上に立体的に表示できることにより、グ
ラフイツク画像として高品位の画像を提供することがで
きると考えられ、従来かかる陰影処理を線形補間によつ
て実現する方法が提案されている(特願昭60-37077号、
特願昭60-37078号、特願昭60-37079号)。
この陰影処理方法は、例えば第13図及び第14図に示すよ
うに、四辺形パツチ及び三辺形パツチ について、パツチ の座標を表すu及びv方向について、それぞれ所定の分
割数で分割し(例えば4×4分割し)、各分割領域ごと
に、三角形単位領域UAを切り出し、当該三角形単位領域
UAの3つの頂点について自由曲面の明るさを表すデータ
を求め、当該3つのデータによつて三角形単位領域UAに
張つた輝度平面に基づいて、三角形単位領域UAに含まれ
る全てのピクセルについての輝度を線形補間演算するよ
うになされている。
このようにすれば、三角形単位領域UAに含まれる全ての
ピクセルについて逐一輝度を演算するような処理の場合
と比較して、格段的に陰影処理を短時間の間に実行する
ことができる。
D 発明が解決しようとする問題点 ところで、この手法によつて陰影処理する場合、パツチ
の分割数を少なくすれば、その分処理時間が短くなる。
ところが上述の手法においては、大きなパツチも小さな
パツチも同一の分割数で分割しているため、分割数を小
さくとると、大きなパツチにおいては隣り合うパツチと
の境界が直線的に表示されるようになるという問題があ
る。
逆に、分割数を多くとると、大きなパツチの境界は、自
然な曲線形状となつて表示されるようになるが、その代
わり小さなパツチも必要以上に細分割されるようにな
り、処理時間が長くなつてしまうという問題がある。
この問題を解決するための1つの方法として、パツチの
大きさに応じて分割数をパツチごとに変更し、一辺の長
さが所定の大きさになるように三角形単位領域を切り出
して陰影処理する方法が考えられる。
ところがこの手法によつて陰影処理する場合、隣合うパ
ツチの境界位置に陰影処理ができない部分(これをギヤ
ツプと呼ぶ)が生ずるおそれがある。
例えば第15図に示すように、隣接する2つの枠組み空間
に3次のベジエ式で表される2つの四辺形パツチ を張る場合、第1及び第2のパツチ を共有境界COM1を介して接平面連続の条件が成り立つよ
うに内部の制御点を設定することによつて2つのパツチ を接続したとする。
このとき、大きなパツチ は、パツチ を囲むu方向の共有境界COM1及びCOM3のうち長さの長い
共有境界COM3の長さに基づいて、共有境界COM1及びCOM3
上に4つの分割点(Q101、Q201、Q301、Q401)及び(Q
121、Q221、Q321、Q421)をパラメータuについて設定
する。
同様にv方向の共有境界COM2及びCOM4のうち長さの長い
共有境界COM4の長さに基づいて、共有境界COM2及びCOM4
上に分割点Q511及びQ011をパラメータvについて設定す
る。
かくしてパツチ においては、u方向及びv方向にマトリツクス状に配置
された18個の分割点及び節点によつて三角形単位領域UA
を切り出して陰影処理をする。
これに対して、小さなパツチ はパツチ を囲むu方向の共有境界COM1及びCOM6のうち、長さの長
い共有境界COM1の長さに基づいて共有境界COM1及びCOM6
上に2つの分割点(Q122、Q222)及び(Q102、Q202)を
パラメータuについて設定する。
同様にv方向の共有境界COM5及びCOM7に基づいて共有境
界COM5及びCOM7上に1つの分割点Q012、及びP312をパラ
メータvについて設定する。
かくしてパツチ においては、u方向及びv方向に並ぶ12個の分割点及び
節点によつて三角形単位領域UAを切り出して陰影処理を
する。
ところがこのようにすると、第1のパツチ の三角形単位領域UAの切り出しは、枠組み処理によつて
形成された共有境界COM1の両端位置の節点 間を1つのセグメントとして5分割しているの対し、第
2のパツチ の三角形単位領域UAの切り出しは、共有境界COM1を3分
割している。
従つて節点 間を5分割する三角形単位領域UAの共有境界COM1に沿う
一辺が通る位置と、同様に節点 間を3分割する三角形単位領域UAの共有境界COM1に沿う
一辺が通る位置とが一致しない場合が生じ、この間にギ
ヤツプGUPXが生ずることになる。
このギヤツプGUPXの部分については、陰影処理がされな
いことになり、結局陰影がつかない部分が生じることに
よりいわゆる穴があくことになる。
このように陰影処理ができない部分が生ずると、陰影を
つけた自由曲面が不自然に見える不都合が生ずる。
本発明は以上の点を考慮してなされたもので、隣り合う
パツチの共有境界に沿つてギヤツプGUPXが生じることが
なく、しかも短時間で陰影処理を行うことができる陰影
表示方法を提案しようとするものである。
E問題点を解決するための手段 かかる問題点を解決するために、本発明においては、枠
組み処理によつて境界曲線で囲まれた多数の枠組み空間
を形成し、上記枠組み空間にそれぞれ位置を表すパラメ
ータを有するベクトル関数で表されるパツチ を張ることにより生成された自由曲面に陰影をつけるよ
うになされた陰影表示方法において、パツチ を所定量ΔMPだけ拡大して得られる切り出し用パツチ から多数の三角形単位領域UAを切り出し、当該三角形単
位領域UAの3つの頂点位置P1、P2、P3、の輝度情報I1
I2、I3に基づいて、三角形単位領域UAに含まれているピ
クセルについての輝度情報を補間することにより、自由
曲面に陰影をつけるようにする。
F 作用 パツチ を拡大した切り出し用パツチ は、隣り合う切り出し用パツチ 間の境界部分で重なり合う部分が生じる。その結果、切
り出し用パツチ を三角形単位領域UAに切り出して陰影処理しても、隣り
合うパツチ間にギヤツプが生じることを有効に回避する
ことができる。
G 実施例 以下図面と共に本発明の一実施例について詳述する。
第1図は上述したようにして形成された自由曲面につい
て、本発明を適用した場合の実施例を示すもので、パツ
を三角形単位領域に切り出す際に、パツチ に基づいて切り出し用パツチ を生成し、この切り出し用パツチ から三角形単位領域UAを切り出すようにする。
すなわちパツチ は次式 0≦u≦1 ……(1) 0≦v≦1 ……(2) のように定義されるパラメータu及びvと共有境界COM1
の一端の位置を表す位置ベクトルで表される制御点 (枠組み空間を形成する節点でなる)を用いた3次のベ
ジエ式で、次式 のように表される。
ここでE及びFは、シフト演算子で、パツチ 上の位置ベクトルで表される制御点 に対して次式 i=0、1、2、3 ……(6) j=0、1、2、3 ……(7) の関係をもつ。
ここでパラメータにu及びvを(1)式及び(2)式で
表される範囲より広い範囲で変化させれば、(1)式及
び(2)式の条件で(3)式に基づいて得られるパツチ より所定量だけ大きい切り出し用パツチ を得ることができる。
ここでは切り出し用パツチ を得る前に先ず三角形単位領域UAに切り出すための分割
数を決定する。
(G1)分割数の決定 パツチ の制御点 を表示画像に対応する平面に透視変換して得られる2次
元の位置ベクトルで表される制御点を、制御点 に対応させて (i=0、1、2、3,j=0、1、2、3)を用いて表
し、同様にパツチ を透視変換して得られる2次元のパツチをパツチ に対応させて を用いて表す。
ここでu方向についてのパツチ のパラメータvをv=0及びv=1とした共有境界COM1
及びCOM3に対応する制御点間距離Ru0及びRu1を、次式 で求める。
ここで次式 Ru0>Ru1 ……(10) の結果が得られると次式を用いてu方向の制御点間距離
Ruを Ru=Ru0 ……(11) と置き、次式 Ru0≦Ru1 ……(12) の結果が得られると次式 Ru=Ru1 ……(13) と置く。
さらに表示画像の隣接する画素間の距離を、値Dを用い
て表し、次式 で表されるu方向の分割数Kuを得る。ここで(14)式
は、透視変換された三角形単位領域の一辺の長さが値MP
を用いて表される長さD・MPになるように、各切り出し
用パツチ の分割数を決定したことを意味する。さらにこのとき、
共有境界COM1及びCOM3の長さに代えて制御点間距離Ru0
及びRu1に基づいて分割数を決定したことにより、例え
ば曲率の小さなところは細かく分割することができる。
従つてこのような手法を用いて切り出し用パツチS(u,v)
cを分割すると、ギヤツプGUPXを小さくする効果を得る
ことができる。
同様にv方向についてもパツチ のパラメータuをu=0及びu=1とした共有境界COM4
及びCOM2に対応する次式 で表される制御点間距離Rv0及びRv1を求める。
これより、次式 Rv0>Rv1 ……(17) の結果が得られると、次式を用いてv方向の制御点間距
離Rvを Rv=Rv0 ……(18) と置き、次式 Rv0≦Rv1 ……(19) の結果が得られると、次式 Rv=Rv1 ……(20) と置く。
さらに(14)式の場合と同様にして次式 よりv方向の切り出し用パツチ の分割数Kvを決定する。
(G2)切り出し用パツチの生成 以下パツチ を所定の大きさだけ拡大して切り出し用パツチ を生成する方法について述べる。
例えば一辺の長さが上述の距離D・MPで表される三角形
単位領域UAを切り出す際に、この値MPをMP=5〔ピクセ
ル〕と選定し、パツチ を各方向u及びvにΔMP=0.5〔ピクセル〕だけ大きく
するように選定したとする(この選定は、オペレータの
設定操作によつてなされる)。
(1)式に対応するパラメータuの変化範囲をv=0の
共有境界COM1に対応してu10及びu20とおき、次式 u10≦u≦u20 ……(22) で表される値u10及びu20を求める。
同様にv=1の共有境界に対応して変化範囲をu11及びu
21とおき、次式 u11≦u≦u21 ……(25) で表される値u11及びu21を求める。
これに対して(2)式に対応するパラメータvの変化範
囲をu=0の共有境界に対応してv10及びv20とおくと、
次式 v10≦v≦v20 ……(28) で表される値v10及びv20を求める。
さらに同様にu=1の共有境界に対応してパラメータv
の変化範囲をv11及びv21とおき、次式 v11≦v≦v21 ……(31) で表される値v11及びv21を求める。
このようにして求められた範囲で(3)式に対してパラ
メータu及びvを変化させることにより、第1図に示す
ように、透視変換されたパツチ よりも所定の大きさだけ各方向u及びvに大きくなつた
(この場合は0.5〔ピクセル〕ずつ)切り出し用パツチ を得ることができる。
さらにこのようにして得られた切り出し用パツチ を従来と同様の手法を用いて三角形単位領域に切り出す
ためにパツチ のパラメータu及びvに対応する切り出し用パツチ の0から1までの間まで変化するパラメータuc及びvc
設定し、パラメータuc及びvcを用いて分割点Qを設定す
る。
すなわち0〜1までの範囲を(14)式及び(21)式で求
めた分割数Ku及びKvで分割して得られるパラメータuk
びvkを用いて、次式 uc=(1−uk)(1−vk)u10+(1−uk)vku11 +uk(1−vk)u20+ukvku21 ……(34) vc=(1−vk)(1−uk)v10+(1−uk)vku20 +uk(1−vk)v11+ukvkv21 ……(35) で求められるパラメータuc及びvcによつて分割点Q(ij)
を設定し、これに基づいて切り出し用パツチ から三角形単位領域UAを切り出すようにする。
(G3)処理手順 画像表示装置は、中央処理ユニツト(CPU)によつて第
2図の処理手順に従つて、画像変換処理を実行する。
まずステツプSP1において、変換処理プログラムを開始
し、ステツプSP2において、透視変換に要する視点1
(第3図)の位置、陰影処理に要する光源の位置、及び
パツチを三角形単位領域に切り出す際のピクセル数MP
(透視変換された三角形単位領域一辺の長さを表す)を
オペレータの操作によつて入力する。
続いてCPUは、ステツプSP3において予め格納している3
次元の自由曲面データに基づいて、当該自由曲面データ
によつて表される3次元(x、y、zの3次元座標で表
される)の自由曲面画像5を、ステツプSP2において指
定された視点1によつて決まる仮想スクリーン2(第3
図に示すようにxy座標で表される二次元平面でなる)上
に透視する際に、3次元自由曲面画像5の曲面上の点を
仮想スクリーン2上の対応する点に変換するために用い
る透視変換マトリクスを生成する。
次にCPUは、ステツプSP4において変換すべき自由曲面デ
ータの各パツチ の制御点 のデータを読出し、次のステツプSP5において表示領域
の決定をする。この処理は、表示すべき画像をデイスプ
レイの画面のほぼ中央位置に適切な寸法で表示させるた
めの表示領域を決めるステツプで、先ずステツプSP4に
おいて読み込まれた制御点データをステツプSP3で生成
した透視変換マトリクスを用いて、第4図に示すように
2次元の仮想スクリーン2上に透視変換する。その結果
得られる仮想スクリーン2上の2次元の制御点 のX軸方向の最大値Xmax及び最少値Xminと、Y軸方向の
最大値Ymax及び最小値Yminとをそれぞれ抽出し、X軸方
向について最大値Xmax及び最小値Xminの中心位置Xcを次
によつて求めると共に、Y軸方向の最大値Ymax、最小値
Yminの中心位置Ycを次式 によつて求める。かくして求めた中央位置(Xc、Yc)を
デイスプレイのラスタ表示画面11の中心位置に設定する
と共に、表示画像DESがデイスプレイの表示画面11を形
成するピクセルに対応するメモリセルを有するフレーム
バツフアのサイズに収まるような表示領域AREを定め
る。
ここで表示領域AREは第4図から明らかなように、X軸
方向に最大値Xmax〜最小値Xminの領域をもち、かつY軸
方向に最大値Ymax〜最小値Yminの領域をもつ。
CPUは、この表示領域AREを決定すると、以下当該表示領
域ARE内にあるピクセルに限つて以後の処理ステツプを
実行する。このことは、ラスタ表示画面上に表示すべき
画像の変換演算量を一段と低減できることを意味してい
る。すなわち一般に、ラスタ表示画面上に画像変換処理
された画像を表示させようとする場合、ラスタ表示画面
を構成する全てのピクセルについて、表示すべき画像デ
ータの有無及びその内容を演算しながらフレームバツフ
アメモリの対応するメモリエリアにその演算結果を格納
して行く方法が採用されている。この場合は、ラスタ表
示画面11のうち、表示すべきデータがないピクセルにつ
いては演算処理をしないので、結局全体として画像変換
演算量を格段的に低減し得る。
続いてCPUは、ステツプSP6に移つて、ステツプSP5にお
いて予め求められた2次元の制御点 に基づいて上述の(8)式〜(21)式の演算を実行し
て、所定の切り出し用パツチのu方向及びv方向の分割
数を決定した後、ステツプSP7に移る。
ステツプSP7においてCPUは上述の(22)式〜(33)式の
演算を実行して、切り出し用パツチ を生成するためのパラメータu10、u20、u11、u21
v10、v20、v11及びv21を求めた後、ステツプSP8に移
り、(34)式及び(35)式の演算を実行して切り出し用
パツチ を分割するためのパラメータuc及びvcを求める。
続いてCPUは、ステツプSP9に移り、ステツプSP7におい
て求めていたパラメータu10、u20、u11、u21、v10
v20、v11及びv21に基づいて、切り出し用パツチ を生成した後、ステツプSP8において求めたパラメータu
c及びvcを用いて当該切り出し用パツチ を分割する分割点Q(すなわち三角形単位領域UAの各頂
点データになる)を設定する。
この実施例の場合、第5図に示すように、三角形単位領
域UAの切出しは、1パツチ分の切り出し用パツチ のデータDATAを上述のパラメータuc及びvcに基づいて、
三角形単位領域の一辺の長さが等間隔になる(必ずしも
曲面上で等間隔にはならない)ような間隔で順次配列す
る2群の切出線群L1及びL2の交点位置を順次演算して行
く。切出線群L1及びL2に含まれる切出線の数は例えば縦
横5本に選定され、切出線群L1及び切出線群L2が互いに
網目状に交差するように設定されている。かくして1パ
ツチ分のデータDATAでなる曲面は、切出線群L1及びL2の
隣り合う2本の切出線によつて囲まれた小領域UAXに分
割され、当該小領域UAXを4つの交点PXによつて囲むよ
うに切出処理される。
小領域UAXは、互いに対向する2つの交点間を結ぶ対角
線L3によつて2つの三角形単位領域UAに分割され、かく
してデータDATAが表す曲面が多数の三角形単位領域UAに
分割される。
さらにステツプSP9においてこのようにして曲面から三
角形単位領域UAの切出しを実行した後、CPUが各三角形
単位領域UAの頂点にある3つの交点位置について法線単
位ベクトルを計算し、物体の表面のうち、視点から見て
見えない部分についてはデイスプレイ上に表示しないよ
うに頂点のデータを処理する。この処理は、第6図に示
すように、物体5の表面でなる曲面5Aを視点1から見た
とき、見える部分(これを可視部分と呼ぶ)と見えない
部分(これを不可視部分と呼ぶ)とが生ずることに基づ
いて、見える部分に対応する部分だけを表示画面上に表
示させるためのものである。
ここで、曲面5Aの各部分が可視部分であるか否かの判断
のための第1条件は、視点1から視線EL1に沿つて物体
5の曲面5Aを見たとき、視線EL1が曲面5Aと交差する点P
11、P12、P13のうち、点P12の面部分は、視線EL1の視点
1側の位置P11に視線EL1と交差する面部分が存在するこ
とにより、当該面部分に隠される結果になつており、従
つて点P12の面部分は不可視であると判断し、物体5及
び視点1間に設けられた仮想スクリーン2上に可視であ
る位置P11の面部分を透視するような頂点データの変換
処理を実行する。
すなわち三角形単位領域UAの3つの頂点について、視線
単位ベクトル を演算により求め、この視線単位ベクトル と法線単位ベクトル との内積を演算で求めて各頂点の可視−不可視データを
生成する。このとき内積の結果が正ならば当該頂点が視
点1側に向いたパツチ上にあることを意味し、負なら
ば、視点1とは逆側に向いたパツチ上になることを意味
している。従つて内積の結果が正か否かを判断すること
によつて可視−不可視を判断することができる。
これに続いてCPUは、1つの切出し用パツチ の三角形単位領域UAの各頂点について第7図に示すよう
に、頂点PXから視点1までの距離ベクトル を計算で求める。
すなわち第6図において可視−不可視を判断するために
は、注目している面部分が他の曲面に隠されていないこ
とも判断する必要がある。物体5の曲面5Aと視点1との
間に他の物体6が存在し、視線EL2に沿つて物体5を見
たとき、視線EL2が物体6の曲面6Aと交差した後、物体
5の曲面5Aと交差するような状態にあるとき、物体5の
曲面5A上の位置P14の面部分は、視点1側にある物体6
の曲面6A上の位置P15の面部分によつて隠されており、
従つて仮想スクリーン2上には、不可視の面部分(位置
P14の面部分)を表示せずに可視の面部分(位置P15の面
部分)を表示する必要がある。
このため三角形単位領域の頂点PXから視点1までの距離
ベクトル を曲面の位置ベクトル 及び視点の位置ベクトル を用いて、次式 によつて演算した後、当該距離ベクトル の絶対値を距離データDとして得る。
かくしてデイスプレイのラスタ表示画面上、同じピクセ
ルについて複数の曲面部分についての距離データが得ら
れたとき、視点1に最も近い曲面部分のデータを可視部
分として判定することができる。
次に、各頂点の輝度データの生成処理を行う。このステ
ツプは、第8図に示すように、各頂点PXにおける輝度を
計算するもので、光源8の位置ベクトル を用いて、次式 によつて頂点PXから見た光源8に対する位置ベクトル を計算する。そしてその計算結果を用いて、頂点PXの法
線単位ベクトル との内積に基づいて入射角θの余弦cosθを次式 を演算し、これを変数Aとおく。
さらにこの変数Aを用いて輝度Iを次式 I=(1−D)・A+D ……(41) によつて演算する。
ここで定数Dの値は、例えば0.22程度であるのに対し
て、変数Aは0〜1の範囲で変動する(θが±π/2の範
囲で変動するので)。かくして輝度Iは頂点PXに対して
光源8から入射する光の変化に応じて変化し、これによ
り各頂点の輝度データが得られる。
続いてCPUはステツプSP10に移り上述のステツプSP6から
SP9において得られた切り出し用パツチ の各頂点データから第5図に示すように1つの三角形単
位領域UAの3つの頂点データを抽出し、ステツプSP12か
らSP15の補間演算によつて三角形単位領域UA内の陰影処
理を行う。
このようにして処理すべき曲面のデータDATAを三角形単
位領域UAに分割して、3つの頂点についてデータを得る
ことは、三角形単位領域UAをデイスプレイのラスタ表示
画面上に変換したとき、当該変換した三角形単位領域に
含まれているピクセルについてのデイスプレイを、3つ
の頂点のデータによつて代表させたことを意味し、従つ
て以後の処理を3つの頂点のデータに基づいて実行する
ことにより、データの処理速度を格段的に速めることが
できることを意味している。
CPUは、ステツプSP11において、表示領域AREに含まれる
1パツチ分のピクセルのうち、現時点において輝度を演
算決定すべきピクセル(これを処理点と呼ぶ)Pcが、ど
の三角形単位領域UAに属するものであるかを判定する。
この判定は第9図に示すように、三角形単位領域UAの3
つの頂点を透視変化してなるXY平面上の位置ベクトル で表される点P1、P2及びP3に基づいてそれぞれベクトル を次式 で表す。
さらに位置ベクトル で表される点P1から位置ベクトル で表される処理点Pcまでを次式 で表されるベクトル を用いて表し、次式 の関係式を満足する変数α及びβの値を判断する。
このとき、三角形単位領域UAの内側に処理点Pcがあると
次式 α>0 ……(46) β>0 ……(47) α+β<1 ……(48) の関係が得られる。かかる演算は、予めベクトル から求められるマトリクス の逆行列を計算しておくことにより、簡単に求めること
ができる。
このようにして処理点Pcの位置が三角形単位領域UAの外
側にあると判断されたとき、CPUは当該三角形単位領域U
Aについての以後の補間演算を実行せずに、処理点Pc
内部に含むような三角形単位領域UAを見出すことができ
るまで、新たな処理点Pcについての判定を繰返して行
く。
この結果ステツプSP11において処理点Pcが内部にある三
角形単位領域UAを発見すると、CPUは次のステツプSP12
に移つて線形補間による可視又は不可視の決定処理を実
行する。この処理は、CPUが順次当該三角形単位領域UA
の頂点P1、P2、P3について格納されている可視−不可視
データを読出し、第10図に示すように、デイスプレイの
表示画面上の位置P1、P2、P3に対して、対応する可視−
不可視データVI1、VI2、VI3を垂直に立てる。そして可
視−不可視データVI1、VI2、VI3の先端に可視−不可視
平面VPXを張る。
この可視−不可視平面VPXは、頂点P1、P2、P3の可視−
不可視データVI1、VI2、VI3の値によつて、可視−不可
視データVI1〜VI3の全部が「+1」の値をもつときには
第10図(A)に示すように三角形単位領域UAに対して上
方に平行に延長する可視−不可視平面VPXが得られ、こ
れに対して可視−不可視データVI1〜VI3が全て「−1」
のときには、第10図(B)に示すように、三角形単位領
域UAの下方に平行に延長する可視−不可視平面VPXが得
られる。
これに対して、可視−不可視データVI1〜VI3のうちの一
部(例えばVI1及びVI2)が「+1」であり、かつ他部
(すなわちVI3)が「−1」である場合には、第10図
(C)に示すように可視−不可視平面VPXが三角形単位
領域UAと交差することになり、その交差線LINを挟んで
頂点P1及びP2側の可視−不可視平面VPXが正となり、か
つ境界線LINを挟んで、頂点P3側の可視−不可視平面VPX
の符号が負になる。
従って処理点Pcを通り、三角形単位領域UA(従つてデイ
スプレイのラスタ表示画面)に垂直な直線LC1と可視−
不可視平面VPXとの交点を求め、その値VIpcを当該処理
点Pcの可視−不可視データとして補間する。
このようにすれば、表示すべき3次元の曲面から得たデ
ータとして3つの頂点P1、P2、P3についての可視−不可
視データVI1、VI2、VI3を得さえすれば、デイスプレイ
の表示画面上の三角形単位領域UAに含まれる全ての処理
点Pc(これは表示画面上のピクセルを表している)にお
ける可視−不可視データを、処理点Pcを通る直線LC1と
三角形平面でなる可視−不可視平面VPXとの交点を演算
する(これは線形補間演算になる)ことによつて、簡易
に得ることができる。
因に当該線形補間演算は、平面と直線との解を求める演
算になり、簡易かつ一義的に解が求まることになる。
次に、CPUはステツプSP13に移つて、線形補間による輝
度の決定処理を実行する。この処理は、第11図に示すよ
うに、デイスプレイの表示画面上の三角形単位領域UAの
頂点P1、P2、P3の輝度データI1、I2、I3に基づいて、三
角形単位領域UAに含まれるピクセルでなる処理点Pcにお
ける輝度Icを補間演算するもので、次の手順によつて演
算処理を実行する。
すなわち先のステツプSP9において得られた三角形単位
領域UAの頂点P1、P2、P3の輝度データI1、I2、I3をデイ
スプレイの表示画面上の対応する頂点P1、P2、P3位置に
垂直に立てる。そして輝度データI1、I2、I3の先端を結
ぶ輝度平面BPXを張る。そして三角形単位領域UAに含ま
れる各ピクセルについての処理点Pcからデイスプレイの
表示画面に垂直に直線LC2を引き、当該直線LC2と輝度平
面BPXとの交点を求め、その交点における輝度平面BPXの
値を処理点Pcの輝度Ipcと決定する。
このようにすれば、三角形単位領域UAに含まれる全ての
ピクセルを順次処理点Pcとして選定して行けば、直線LC
2と三角形輝度平面BPXとの交点を求める線形補間演算を
実行することによつて3次元曲面から得た3つの輝度デ
ータから簡易に全てのピクセルについての輝度データを
得ることができる。
因にこの場合も、直線LC2と平面BPXとの解を求めること
になるので、当該演算は簡易であり、かつその解は一義
的に決まることになる。
次に、CPUはステツプSP14において、補間演算による距
離の決定処理を実行する。この処理は、第12図に示すよ
うに、デイスプレイの表示画面上の三角形単位領域UAに
含まれるピクセルについて、視点からの距離を補間演算
するもので、CPUは次の処理手順に従つて補間演算を実
行する。
すなわち先ず、先のステツプSP9において得られたデイ
スプレイの表示画面上の頂点P1、P2、P3について距離デ
ータD1、D2、D3を、頂点P1、P2、P3位置に垂直に立て
る。そして距離データD1、D2、D3の先端を結ぶように距
離平面DPXを張り、処理点Pcを通り、かつデータの表示
画面と垂直な直線LC3と、距離平面DPXとの交点を演算に
より求める。そしてこの交点における距離平面DPXの値D
pcを当該処理点Pcの視点からの距離データとして決定す
る。
かくしてこの場合にも、三角形単位領域UAに含まれる全
てのピクセルを順次処理点Pcとして処理して行くことに
より、当該処理点Pcの距離データDpcを線形補間演算に
よつて得ることができる。この場合も、当該補間演算
は、直線LC3と距離平面DPXとの解を求めることになるの
で、簡易な演算により、一義的な解を求めることができ
る。
その後CPUは、ステツプSP15に移つて距離の比較による
ピクセルデータの生成処理を実行する。この処理は、デ
イスプレイの表示画面上の表示領域ARE(第4図)に含
まれる全てのピクセルについて、それぞれ距離データD
pcが最も小さい曲面に対応する輝度データIpc及び可視
−不可視データVIpcを集め、可視データが得られかつ距
離データDpcが最も小さい曲面についての輝度データが
デイスプレイ上に表示すべきピクセルデータとして生成
される。
実際上CPUは、デイスプレイの各ピクセルに対応するメ
モリセルを有するフレームバツフアメモリと、当該フレ
ームバツフアメモリの各ピクセルに対応するデイスプレ
イバツフアメモリとを有し、ステツプSP14において各ピ
クセルに対する距離データDpcが決定されて行くとき、
同一ピクセルについて最も小さい距離データDpcが得ら
れたとき、当該距離データをデイスプレイバツフアメモ
リの当該ピクセルに対応するメモリエリアに記憶すると
共に、ステツプSP13において決定された輝度データIpc
をフレームバツフアメモリに書込んで行くようになさ
れ、かくして最も距離データDpcが小さい曲面から得ら
れた輝度データIpcがフレームバツフアメモリに書込ま
れることになる。
かかるステツプSP13〜SP15の一連の演算処理は1つの三
角形単位領域に含まれるピクセルごとに実行され、CPU
はステツプSP15の処理が終了するごとにステツプSP16に
おいて全ての三角形単位領域についての演算処理が終了
したか否かを判断し、否定結果が得られたとき再度ステ
ツプSP10に戻つて新たな三角形単位領域についてのデー
タの演算処理を繰返す。これに対してステツプSP16にお
いて肯定結果が得られれば、CPUはステツプSP17に移つ
て全てのパツチについての演算処理が終了したか否かを
判断し、否定結果が得られたとき再度ステツプSP4に戻
つて新たなパツチについて切り出し用パツチを生成して
データの演算処理を繰返す。これに対してステツプSP17
において肯定結果が得られれば、CPUはステツプSP18に
移つて各ピクセル点の輝度データを出力した後、ステツ
プSP19に移つて当該プログラムを終了する。
上述の方法によれば、パツチ に対してこれより所定量だけ大きい切り出し用パツチ を生成した後、これを三角形単位領域に切り出して補間
演算するようにした結果、隣り合う切り出し用パツチに
重なり合う部分が生じることにより三角形単位領域を切
り出した際に従来のようにパツチ間のギヤツプの発生を
有効に回避することができる。
さらに切り出し用パツチの生成も単に外挿演算をするだ
けで良いので、短い演算時間のうちに上述の陰影処理を
終了することができる。
さらに、パツチを切り出す際に共有境界の長さに代えて
制御点間距離に基づいて、この長さが所定の値になるよ
うに分割数を決定したので、共有境界の長さに比して制
御点間距離が大きな例えば曲率な小さな共有境界におい
ては小さくパツチが切り出されるようになり、滑らかか
つな不自然さのない境界を有する表示画像を得ることが
できる。
逆に共有境界の長さに対して制御点間距離がそれ程大き
くない例えば直線的な共有境界においては、大きくパツ
チが切り出されるようになりその結果透視変換処理に要
する頂点の数が少なくなり、その分陰影処理に要する時
間を短くすることができる。
さら上述の実施例においては、処理点Pcが三角形単位領
域の内か外かを判断するために頂点を結ぶベクトルで表
されるマトリクス を用いて判断するようにしたので、従来に比して一段と
処理時間を短縮することができる。
因に上述の切り出し用パツチの拡大量はステツプSP2に
おいて入力する設定量によつて自由に設定できるので、
上述の処理プログラムを実行した後得られる表示画面上
に未だ未処理のギヤツプが存在する場合は、上述の拡大
量を新たに設定し直すようにすることにより、ギヤツプ
のない表示画像を得ることができる。
なお上述の実施例においては、自由曲面を透視変換する
場合について述べたが、例えばステツプSP3において生
成する透視変換マトリクスに代えて平行透視変換マトリ
クスを生成するようにすれば、平行透視変換されて陰影
処理が施された画像を得ることができる。
H 発明の効果 以上のように本発明によれば、三角形単位領域を切り出
し用パツチから切り出すようにしたので、隣り合うパツ
チ間に、ギヤツプを生じることなく、自然な陰影処理が
施された自由曲面を容易に得ることができる。
【図面の簡単な説明】
第1図は本発明による切り出し用パツチの生成の一実施
例を示す略線図、第2図は第1図に示す切り出し用パツ
チを用いた陰影処理手順を示すフローチヤート、第3図
は透視変換手順を示す略線図、第4図は表示領域の決定
手順を示す略線図、第5図は三角形単位領域の切り出し
手順を示す略線図、第6図は可視−不可視データの生成
手順を示す略線図、第7図は距離データの生成手順を示
す略線図、第8図は輝度データの生成手順を示す略線
図、第9図は処理点が三角形単位領域の内か外かを判断
する処理手順を示す略線図、第10図は可視−不可視デー
タの補間手順を示す略線図、第11図は輝度データの補間
手順を示す略線図、第12図は距離データの補間手順を示
す略線図、第13図及び第14図は従来のパツチの切り出し
の説明に供する略線図、第15図はその陰影処理によつて
生じるギヤツプの説明に供する略線図である。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】枠組み処理によつて境界曲線で囲まれた多
    数の枠組み空間を形成し、上記枠組み空間にそれぞれ位
    置を表すパラメータを有するベクトル関数で表されるパ
    ツチを張ることにより生成された自由曲面に陰影をつけ
    るようになされた陰影表示方法において、 上記パツチを所定量だけ拡大して得られる切り出し用パ
    ツチから多数の三角形単位領域を切り出し、当該三角形
    単位領域の3つの頂点位置の輝度情報に基づいて、上記
    三角形単位領域に含まれているピクセルについての輝度
    情報を補間することにより、上記自由曲面に陰影をつけ
    るようにした ことを特徴とする陰影表示方法。
JP61229076A 1986-09-27 1986-09-27 陰影表示方法 Expired - Fee Related JPH0799549B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61229076A JPH0799549B2 (ja) 1986-09-27 1986-09-27 陰影表示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61229076A JPH0799549B2 (ja) 1986-09-27 1986-09-27 陰影表示方法

Publications (2)

Publication Number Publication Date
JPS6383871A JPS6383871A (ja) 1988-04-14
JPH0799549B2 true JPH0799549B2 (ja) 1995-10-25

Family

ID=16886364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61229076A Expired - Fee Related JPH0799549B2 (ja) 1986-09-27 1986-09-27 陰影表示方法

Country Status (1)

Country Link
JP (1) JPH0799549B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5674796A (en) * 1994-07-20 1997-10-07 Lucky Engineering Co., Ltd. Processes of regenerating Ni catalysts and of preparing Ni catalysts

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6462738B1 (en) 1999-04-26 2002-10-08 Spatial Technology, Inc. Curved surface reconstruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5674796A (en) * 1994-07-20 1997-10-07 Lucky Engineering Co., Ltd. Processes of regenerating Ni catalysts and of preparing Ni catalysts

Also Published As

Publication number Publication date
JPS6383871A (ja) 1988-04-14

Similar Documents

Publication Publication Date Title
JP4385524B2 (ja) ポリゴンデータの生成方法及び、これを用いた画像表示装置
US7034823B2 (en) 3D computer graphics processing apparatus and method
US5488684A (en) Method and apparatus for rendering trimmed parametric surfaces
KR100261076B1 (ko) 범프 맵핑과 퐁 쉐이딩을 동시에 수행하는 렌더링방법 및 장치
JP4464657B2 (ja) 曲面画像処理装置及び曲面画像処理方法
JPWO2000002165A1 (ja) ポリゴンデータの生成方法及び、これを用いた画像表示装置
CN104732479B (zh) 对图像进行调整大小
JPH08138082A (ja) 四角形メッシュの生成方法及びシステム
JP3124999B1 (ja) レンダリング方法及び装置、ゲーム装置、並びに仮想空間内のオブジェクトの陰影に関するデータを計算するためのプログラムを格納するコンピュータ読み取り可能な記録媒体
JPH04289984A (ja) ビット平面マスキングを用いた消去表面表示システムおよびその方法
CN109934893B (zh) 几何体任意截面的显示方法、装置及电子设备
CN115471585B (zh) 一种将矢量图形像素化为图像的方法及系统
US7158131B2 (en) Implicit function rendering method of nonmanifold, direct drawing method of implicit function curved surface and programs thereof
CN112562036A (zh) 一种直线多边形绘制组态系统道岔图符的方法
CN117274527A (zh) 一种发电机设备三维可视化模型数据集构建方法
JP2837584B2 (ja) 地形データの作成方法
US6147689A (en) Displaying 2D patches with foldover
JPH0799549B2 (ja) 陰影表示方法
KR100433947B1 (ko) 형상 기반의 삼각망 생성 방법
CN113674419B (zh) 气象云数据的三维展示方法、装置、电子设备及存储介质
CN101764935B (zh) 一种基于像素空间掩码矩阵的形态渐变径向色彩填充方法
JPH1125286A (ja) 付影処理方法
JP4056118B2 (ja) 画像処理装置
CN115761139A (zh) 一种建模方法和装置
Bruijns Quadratic Bezier triangles as drawing primitives

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees