JPH0520406A - メタボール多角形分割装置および画像装置 - Google Patents
メタボール多角形分割装置および画像装置Info
- Publication number
- JPH0520406A JPH0520406A JP3172694A JP17269491A JPH0520406A JP H0520406 A JPH0520406 A JP H0520406A JP 3172694 A JP3172694 A JP 3172694A JP 17269491 A JP17269491 A JP 17269491A JP H0520406 A JPH0520406 A JP H0520406A
- Authority
- JP
- Japan
- Prior art keywords
- metaball
- polygon
- data
- coordinates
- metaballs
- 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
Links
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】
【目的】 メタ表面を多角形近似する。
【構成】 メタボールの形状、色等のデータを格納した
メタボールのデータベース10から互に影響させ合いたい
一連のメタボールのデータをメタボールデータ管理部11
が取り出し、メタ表面多角形分割分割12は、指定された
分割数で一連のメタボールを分割し、その分割座標に対
応したメタ表面上の座標を求め、このメタ表面上の座標
より多角形を形成し、セグメントバッファ13に格納す
る。
メタボールのデータベース10から互に影響させ合いたい
一連のメタボールのデータをメタボールデータ管理部11
が取り出し、メタ表面多角形分割分割12は、指定された
分割数で一連のメタボールを分割し、その分割座標に対
応したメタ表面上の座標を求め、このメタ表面上の座標
より多角形を形成し、セグメントバッファ13に格納す
る。
Description
【0001】
【産業上の利用分野】本発明は、画像生成ならびに画像
表示の分野において、“メタボール(正確にはメタ表
面)”を高速に表示するための画像生成並びに画像表示
技術に関する。近年、“メタボール”を用いて、効果的
に曲面を表示することが行われている。メタボールを用
いると、滑らかに面を接続することが可能であるため、
人体などの画像の生成などに役立つ。
表示の分野において、“メタボール(正確にはメタ表
面)”を高速に表示するための画像生成並びに画像表示
技術に関する。近年、“メタボール”を用いて、効果的
に曲面を表示することが行われている。メタボールを用
いると、滑らかに面を接続することが可能であるため、
人体などの画像の生成などに役立つ。
【0002】
【従来の技術】図2は、従来のメタボールによる画像生
成法の原理図である。本画像生成法は参考文献(西村
他、「分布関数による物体モデリングと画像生成の一手
法」、電子通信学会論文誌、’85/4,Vol. J68−D
No.4)に開示されている。図2中、200 は、メタボー
ルの形状データなどを格納したメタボールデータベー
ス、201 は、視点から発射されたレイと各メタボールが
交差するか否かを判定するメタボール‐レイ交差判定
部,202 は、レイとメタボールが交差する場合に、レイ
とメタ表面との交点をtリストを用いた方法で求める、
メタ表面‐レイ交点計算部、203 は、レイとメタ表面と
交点と照明情報などから、スクリーンの画素の明るさ・
色などを算出するライティング部、204 は、各画素の明
るさ・色を蓄積するフレームバッファ、205 は、その画
素の明るさ・色を表示するCRTディスプレイである。
成法の原理図である。本画像生成法は参考文献(西村
他、「分布関数による物体モデリングと画像生成の一手
法」、電子通信学会論文誌、’85/4,Vol. J68−D
No.4)に開示されている。図2中、200 は、メタボー
ルの形状データなどを格納したメタボールデータベー
ス、201 は、視点から発射されたレイと各メタボールが
交差するか否かを判定するメタボール‐レイ交差判定
部,202 は、レイとメタボールが交差する場合に、レイ
とメタ表面との交点をtリストを用いた方法で求める、
メタ表面‐レイ交点計算部、203 は、レイとメタ表面と
交点と照明情報などから、スクリーンの画素の明るさ・
色などを算出するライティング部、204 は、各画素の明
るさ・色を蓄積するフレームバッファ、205 は、その画
素の明るさ・色を表示するCRTディスプレイである。
【0003】メタボールは、3次元空間に配置された点
電荷の作り出す等電位面をヒントに、形状に応用したも
のである。しかしながら、実際の点電荷の分布関数は無
限の範囲に広がっているために、通常分布関数を有限の
範囲に収めたものを用いる。また、分布関数で表現され
ているために、形状表面が陽に関数表現できないという
特徴がある。これを用いて画像を生成するには、例え
ば、上述の参考文献に述べられているような方法では、
図3のように、レイトレーシング(光線追跡法)を用い
て、画像を生成する。
電荷の作り出す等電位面をヒントに、形状に応用したも
のである。しかしながら、実際の点電荷の分布関数は無
限の範囲に広がっているために、通常分布関数を有限の
範囲に収めたものを用いる。また、分布関数で表現され
ているために、形状表面が陽に関数表現できないという
特徴がある。これを用いて画像を生成するには、例え
ば、上述の参考文献に述べられているような方法では、
図3のように、レイトレーシング(光線追跡法)を用い
て、画像を生成する。
【0004】この原理は、視点からスクリーン上の画素
に向かってレイを発射し、視線と交差するメタボールを
選別し、その各メタボールの視線上に於ける分布関数を
求め、その分布関数の値の和があるしきい値(threshol
d )を越えた点を、レイとメタ表面(後述の定義参照)
との交点とすることにある。その交点を求める方程式
は、一般には代数的に解くことが出来ないために、上述
の参考文献では、各メタボールの視線上の分布関数を幾
つかの区間に分け、その各区間で方程式を近似的に解
く、「可変節点位置近似解法」を用いている。
に向かってレイを発射し、視線と交差するメタボールを
選別し、その各メタボールの視線上に於ける分布関数を
求め、その分布関数の値の和があるしきい値(threshol
d )を越えた点を、レイとメタ表面(後述の定義参照)
との交点とすることにある。その交点を求める方程式
は、一般には代数的に解くことが出来ないために、上述
の参考文献では、各メタボールの視線上の分布関数を幾
つかの区間に分け、その各区間で方程式を近似的に解
く、「可変節点位置近似解法」を用いている。
【0005】次に上述したメタボール、メタ表面、tリ
ストの定義を説明する。 (a)メタボール メタボールの定義は2,3存在するが、大阪学院大学教
授(元大阪大学助教授)大村晧一工学博士の定義による
メタボールは、以下のような分布関数wi (x,y ,z
)を用いた式で表される。すなわち、個々のメタボー
ルmi は、中心位置c i .半径bi .重みdi などによ
って、以下のように定義される。
ストの定義を説明する。 (a)メタボール メタボールの定義は2,3存在するが、大阪学院大学教
授(元大阪大学助教授)大村晧一工学博士の定義による
メタボールは、以下のような分布関数wi (x,y ,z
)を用いた式で表される。すなわち、個々のメタボー
ルmi は、中心位置c i .半径bi .重みdi などによ
って、以下のように定義される。
【0006】
【数1】
ここで、ベクトルは英字の下線付きで表わしcは位置ベ
クトルを表わす。また、この形状の外側へと向かう法線
ベクトルnは
クトルを表わす。また、この形状の外側へと向かう法線
ベクトルnは
【数2】
で表わされる。式(1)の部分をメタボールの核、式
(2)の部分をメタボールの裾という。
(2)の部分をメタボールの裾という。
【0007】(b)メタ表面
幾つかのメタボールを使用した場合(メタボール単独で
もよい)、それらで構成される形状の分布関数は、各々
のメタボールの分布関数の和になる。つまりメタボール
mi がメタボールの集合Mの要素であるとき、この集合
Mが成す形状の分布関数の表面は、
もよい)、それらで構成される形状の分布関数は、各々
のメタボールの分布関数の和になる。つまりメタボール
mi がメタボールの集合Mの要素であるとき、この集合
Mが成す形状の分布関数の表面は、
【数3】
である。ただし、Tはしきい値(threshold )で、通常
簡単のために1とおくことが多い。この式で定義された
形状(すなわち、分布関数w(x ,y ,z )のしきい値
がT以上になった部分)の表面を、メタ表面という。我
々が通常画像で見ている図4のようなメタボールの表面
は、実はこのメタ表面である(メタボールは、あくまで
球の形状の分布関数で定義された形状である)。
簡単のために1とおくことが多い。この式で定義された
形状(すなわち、分布関数w(x ,y ,z )のしきい値
がT以上になった部分)の表面を、メタ表面という。我
々が通常画像で見ている図4のようなメタボールの表面
は、実はこのメタ表面である(メタボールは、あくまで
球の形状の分布関数で定義された形状である)。
【0008】(c)tリスト
節点番号をkとした時、メタボールmi のtリストの要
素は、(i,k,tik)と表わされる。tリストは、こ
の要素をある法則に従って連結し、リスト構造にしたも
のである。
素は、(i,k,tik)と表わされる。tリストは、こ
の要素をある法則に従って連結し、リスト構造にしたも
のである。
【0009】
【発明が解決しようとする課題】従って、レイトレーシ
ングを使用してメタボールを用いた画像を生成する場
合、レイの本数だけ(つまり画素の数だけ、例えば128
×128 ドットの小さな画像だと、16384 本のレイにな
る)、メタボールとの交差判定を行う必要があり、また
レイがメタボールと交差する場合は、「可変節点位置近
似解法」を用いて、方程式を何回か解き、メタ表面との
交点を求めねばならないため、計算量が非常に多く、計
算コストも高かった。もちろん、メタボールの表面色な
どを変更した場合も、最初からレイトレーシングを用い
て画像を生成する必要があった。
ングを使用してメタボールを用いた画像を生成する場
合、レイの本数だけ(つまり画素の数だけ、例えば128
×128 ドットの小さな画像だと、16384 本のレイにな
る)、メタボールとの交差判定を行う必要があり、また
レイがメタボールと交差する場合は、「可変節点位置近
似解法」を用いて、方程式を何回か解き、メタ表面との
交点を求めねばならないため、計算量が非常に多く、計
算コストも高かった。もちろん、メタボールの表面色な
どを変更した場合も、最初からレイトレーシングを用い
て画像を生成する必要があった。
【0010】また、メタボールの画像となって現れる部
分(メタ表面)の形状が一般的にははっきりとは分から
ないため、この表面を多角形分割を行って近似し、近年
発達してきた多角形を高速に描画することができるグラ
フィックワークステーションでの描画が出来ないなどの
不都合が生じていた。なお、最近のグラフィックワーク
ステーション(GWS)は秒速最大100 万ポリゴン(一
秒間に最大100 万枚の多角形を描画することができる)
の性能を持つものが現れている。
分(メタ表面)の形状が一般的にははっきりとは分から
ないため、この表面を多角形分割を行って近似し、近年
発達してきた多角形を高速に描画することができるグラ
フィックワークステーションでの描画が出来ないなどの
不都合が生じていた。なお、最近のグラフィックワーク
ステーション(GWS)は秒速最大100 万ポリゴン(一
秒間に最大100 万枚の多角形を描画することができる)
の性能を持つものが現れている。
【0011】本発明では、上述の問題点に鑑みてなされ
たもので、メタ表面を指定の方法で多角形で近似し、レ
イトレーシングのような高価な画像生成法を用いずにメ
タボールによる画像生成を可能とするメタボール多角形
分割装置および画像装置を提供することを目的とする。
たもので、メタ表面を指定の方法で多角形で近似し、レ
イトレーシングのような高価な画像生成法を用いずにメ
タボールによる画像生成を可能とするメタボール多角形
分割装置および画像装置を提供することを目的とする。
【0012】
【課題を解決するための手段】図1は本発明の原理図で
ある。同図において10はメタボールの形状・色を含むデ
ータを格納したメタボールのデータベース、11はこのメ
タボールのデータベース10から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部、12は指定された分割数で前記一連のメタボールを
分割し、その分割座標に対応したメタ表面上の座標を求
めこのメタ表面上の座標より多角形を形成するメタ表面
多角形分割部、13はこの多角形データを格納するセグメ
ントバッファである。
ある。同図において10はメタボールの形状・色を含むデ
ータを格納したメタボールのデータベース、11はこのメ
タボールのデータベース10から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部、12は指定された分割数で前記一連のメタボールを
分割し、その分割座標に対応したメタ表面上の座標を求
めこのメタ表面上の座標より多角形を形成するメタ表面
多角形分割部、13はこの多角形データを格納するセグメ
ントバッファである。
【0013】また、メタボールの形状・色を含むデータ
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データごとに輝度計算を行い
1つの多角形は同一の色を割り当てるコンスタントシェ
ーディング部14とを備えたものである。
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データごとに輝度計算を行い
1つの多角形は同一の色を割り当てるコンスタントシェ
ーディング部14とを備えたものである。
【0014】また、メタボールの形状・色を含むデータ
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データの頂点に対して輝度計
算を行い、頂点間で線形補間した色を多角形を表示する
画素に割り当てるグーローシェーディング部15とを備え
たものである。
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データの頂点に対して輝度計
算を行い、頂点間で線形補間した色を多角形を表示する
画素に割り当てるグーローシェーディング部15とを備え
たものである。
【0015】また、メタボールの形状・色を含むデータ
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データの頂点の法線よりこの
多角形を表示する各画素の法線を線形補間し、各画素ご
とに輝度計算を行うフォングシェーディング部16を備え
たものである。
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、この多角形データの頂点の法線よりこの
多角形を表示する各画素の法線を線形補間し、各画素ご
とに輝度計算を行うフォングシェーディング部16を備え
たものである。
【0016】また、メタボールの形状・色を含むデータ
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、視点から表示画面の画素に向ってレイを
発射し、視点に最も近い前記多角形上の点を求めて画像
を生成するレイトレーシング部17を備えたものである。
を格納したメタボールのデータベース10と、このメタボ
ールのデータベース10から互に影響させ合いたい一連の
メタボールのデータを取り出すメタボールデータ管理部
11と、指定された分割数で前記一連のメタボールを分割
し、その分割座標に対応したメタ表面上の座標を求めこ
のメタ表面上の座標より多角形を形成するメタ表面多角
形分割部12と、この多角形データを格納するセグメント
バッファ13と、視点から表示画面の画素に向ってレイを
発射し、視点に最も近い前記多角形上の点を求めて画像
を生成するレイトレーシング部17を備えたものである。
【0017】
【作用】メタボールデータ管理部11はメタボールのデー
タベース10より互に影響させ合いたい一連のメタボール
のデータを取り出し、メタ表面多角形分割部12は、この
一連のメタボールのデータと、指定された分割数より、
この一連のメタボールを分割し、この分割座標に対応し
たメタ表面上の座標を求め、このメタ表面上の座標より
多角形を構成する。この多角形をセグメントバッファ13
に格納する。これによりレイトレーシングを用いてメタ
ボールとの交差判定を行う必要もなく、処理を迅速に行
うことができる。
タベース10より互に影響させ合いたい一連のメタボール
のデータを取り出し、メタ表面多角形分割部12は、この
一連のメタボールのデータと、指定された分割数より、
この一連のメタボールを分割し、この分割座標に対応し
たメタ表面上の座標を求め、このメタ表面上の座標より
多角形を構成する。この多角形をセグメントバッファ13
に格納する。これによりレイトレーシングを用いてメタ
ボールとの交差判定を行う必要もなく、処理を迅速に行
うことができる。
【0018】また、このようにして得た多角形を用い、
多角形単位で輝度計算を行って1つの多角形は同一の色
を割り当てるコンスタントシェーディングを行うことが
できる。
多角形単位で輝度計算を行って1つの多角形は同一の色
を割り当てるコンスタントシェーディングを行うことが
できる。
【0019】また、このようにして得た多角形を用い、
この多角形の各頂点に対して輝度計算を行い、頂点間で
線形補間した色を多角形を表示する各画素に割り当てる
グーローシェーディングを行うことができる。
この多角形の各頂点に対して輝度計算を行い、頂点間で
線形補間した色を多角形を表示する各画素に割り当てる
グーローシェーディングを行うことができる。
【0020】また、このようにして得た多角形を用い、
この多角形データの頂点の法線より、この多角形を表示
する画素の法線を線形補間し、各画素ごとにこの法線に
基づき輝度計算を行うフォングシェーディングを行うこ
とができる。
この多角形データの頂点の法線より、この多角形を表示
する画素の法線を線形補間し、各画素ごとにこの法線に
基づき輝度計算を行うフォングシェーディングを行うこ
とができる。
【0021】また、このようにして得た多角形を用い、
視点から表示画面の画素に向ってレイを発射し、視点に
最も近い多角形上の点を求めて画像を生成するレイトレ
ーシングを行うことができる。
視点から表示画面の画素に向ってレイを発射し、視点に
最も近い多角形上の点を求めて画像を生成するレイトレ
ーシングを行うことができる。
【0022】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。第1実施例は図1に示す原理図と同一構成である。
以下構成部の動作を説明する。メタボールデータ管理部
11が、メタボールのデータベース10から、互いに影響さ
せ合いたい一連のメタボールの形状データや色・材質係
数等を取り出す。以下では、この取り出された一連のメ
タボールを、互いに影響し合う物(つまり、変形・融合
などが起き得る物、変形・融合などが起きない場合も存
在する)として扱う。
る。第1実施例は図1に示す原理図と同一構成である。
以下構成部の動作を説明する。メタボールデータ管理部
11が、メタボールのデータベース10から、互いに影響さ
せ合いたい一連のメタボールの形状データや色・材質係
数等を取り出す。以下では、この取り出された一連のメ
タボールを、互いに影響し合う物(つまり、変形・融合
などが起き得る物、変形・融合などが起きない場合も存
在する)として扱う。
【0023】使用者はメタ表面多角形分割部12に対し
て、分割数を指定する。この分割数は、メタボールをど
のくらいの分割数で分割するか、を指定する。具体的に
は、図5のように、メタボールの表面(メタ表面ではな
い。分布関数の値が、零になる境界。前述のメタボール
の定義式で言えば、変数ri が、メタボールの半径bi
に等しくなるところ)を、緯度方向に(または直径を)
m分割(偶数)、経度方向にn分割、というような指示
を行う。この分割数を大きく取れば、メタ表面を細かく
多角形に分割できて精度良い近似が可能であるが、多角
形数が多くなるので、多角形への分割と分割後の多角形
の描画に時間がかかるようになるため、注意が必要であ
る。
て、分割数を指定する。この分割数は、メタボールをど
のくらいの分割数で分割するか、を指定する。具体的に
は、図5のように、メタボールの表面(メタ表面ではな
い。分布関数の値が、零になる境界。前述のメタボール
の定義式で言えば、変数ri が、メタボールの半径bi
に等しくなるところ)を、緯度方向に(または直径を)
m分割(偶数)、経度方向にn分割、というような指示
を行う。この分割数を大きく取れば、メタ表面を細かく
多角形に分割できて精度良い近似が可能であるが、多角
形数が多くなるので、多角形への分割と分割後の多角形
の描画に時間がかかるようになるため、注意が必要であ
る。
【0024】次に、メタ表面多角形分割部12は、分割さ
れるメタボールの数によって、処理を分岐し、メタ表面
を分割、多角形を生成する。 (1) メタボールが1個しかない場合 メタボールが1個しかない場合は、図6に示すように、
メタボールの中心から、メタボールの北極(又は南極で
もよい)に向かって線分を引く。しかし通常の状態では
北極・南極の区別が無いので、メタボールの中心から、
メタボールの位置を定義しているワールド座標系の座標
軸(xyzのどれか)に平行な線分を引くことにする。
この線分上に於いてメタボールの分布関数が与えられた
しきい値T(Threshold )を越えた所を後述の探索法で
探索し、メタボールの中心から与えられたしきい値T
(Threshold )を越えた所(メタ表面)での半径rを求
める。
れるメタボールの数によって、処理を分岐し、メタ表面
を分割、多角形を生成する。 (1) メタボールが1個しかない場合 メタボールが1個しかない場合は、図6に示すように、
メタボールの中心から、メタボールの北極(又は南極で
もよい)に向かって線分を引く。しかし通常の状態では
北極・南極の区別が無いので、メタボールの中心から、
メタボールの位置を定義しているワールド座標系の座標
軸(xyzのどれか)に平行な線分を引くことにする。
この線分上に於いてメタボールの分布関数が与えられた
しきい値T(Threshold )を越えた所を後述の探索法で
探索し、メタボールの中心から与えられたしきい値T
(Threshold )を越えた所(メタ表面)での半径rを求
める。
【0025】次に、このメタボールと中心が同じで、半
径rの球を考え、この球の表面を、緯度・経度方向に指
定された分割数で緯線・経線を引いて分割し、その交点
を求める。交点を求めるには、何も方程式を解く必要は
無く、球の半径rと緯線・経線の分割数から求められる
分割の角度から、極座標から直交座標への変換公式を使
うことで、求められる。
径rの球を考え、この球の表面を、緯度・経度方向に指
定された分割数で緯線・経線を引いて分割し、その交点
を求める。交点を求めるには、何も方程式を解く必要は
無く、球の半径rと緯線・経線の分割数から求められる
分割の角度から、極座標から直交座標への変換公式を使
うことで、求められる。
【0026】この交点を分割後の多角形の頂点とし、北
極または南極から見た最初の緯線までは、北極または南
極を一つの頂点とし、北極または南極から見た最初の緯
線と、各経線との交点を頂点とする三角形に、他の部分
は各緯線・経線の交点を頂点とする四角形に分割するこ
とで、多角形分割を行う。更に以後の実施例で述べる描
画部で、多角形の頂点の法線ベクトルを必要とする場合
は、メタボールの中心から各多角形の頂点へと向かうベ
クトルを正規化することで、求めることが可能となる。
極または南極から見た最初の緯線までは、北極または南
極を一つの頂点とし、北極または南極から見た最初の緯
線と、各経線との交点を頂点とする三角形に、他の部分
は各緯線・経線の交点を頂点とする四角形に分割するこ
とで、多角形分割を行う。更に以後の実施例で述べる描
画部で、多角形の頂点の法線ベクトルを必要とする場合
は、メタボールの中心から各多角形の頂点へと向かうベ
クトルを正規化することで、求めることが可能となる。
【0027】何故このような単純処理で多角形分割が可
能かと言うと、メタボールがただ一つしかない場合は、
分布関数の値が等しくなる境界(等分布関数面)は、球
面になるからである(参考文献参照)。従って、メタボ
ールが1個しかない場合は、計算が簡単となり、処理速
度の向上に役立つ。メタボールを単独で扱う場合は、例
えば、あるメタボールを、他のメタボールと変形又は融
合等の、メタボール相互間の影響をさせずに用いたい場
合である。
能かと言うと、メタボールがただ一つしかない場合は、
分布関数の値が等しくなる境界(等分布関数面)は、球
面になるからである(参考文献参照)。従って、メタボ
ールが1個しかない場合は、計算が簡単となり、処理速
度の向上に役立つ。メタボールを単独で扱う場合は、例
えば、あるメタボールを、他のメタボールと変形又は融
合等の、メタボール相互間の影響をさせずに用いたい場
合である。
【0028】(2) メタボールの個数が、2個以上の
場合 メタボールの個数が2個以上になると、メタボール相互
間の干渉(変形・融合等)を考えなければならない。そ
こで、(1)のメタボール単独の場合とは異なるアプロ
ーチを取ることにする。説明を簡単にするため、図7に
示すようにメタボール2個の場合で話を進める。まず、
(a)に示すように2つの相対するメタボールの中心を
通り、互いに平行な2つの大円を求める。これらの大円
を完全に含む面の方程式は、2つのメタボールの中心同
士を結ぶ線分に垂直で、各メタボールの中心を通る平面
を求めることで可能となる(平面は、法線ベクトルと平
面を通る一点が定まれば、一意に定まる)。
場合 メタボールの個数が2個以上になると、メタボール相互
間の干渉(変形・融合等)を考えなければならない。そ
こで、(1)のメタボール単独の場合とは異なるアプロ
ーチを取ることにする。説明を簡単にするため、図7に
示すようにメタボール2個の場合で話を進める。まず、
(a)に示すように2つの相対するメタボールの中心を
通り、互いに平行な2つの大円を求める。これらの大円
を完全に含む面の方程式は、2つのメタボールの中心同
士を結ぶ線分に垂直で、各メタボールの中心を通る平面
を求めることで可能となる(平面は、法線ベクトルと平
面を通る一点が定まれば、一意に定まる)。
【0029】次に(b)に示すごとく、この大円が経線
上にあると考え、等分に分割した緯度を通る直径を求
め、(c)に示すごとく、各直径を表わす線分を分割し
た点を求める。しかしながら、(1)の場合と同様、各
メタボールの北極・南極ははっきりとは分からないの
で、以下のような方法でこの大円を緯度並びに直径方向
に分割する点を求める。
上にあると考え、等分に分割した緯度を通る直径を求
め、(c)に示すごとく、各直径を表わす線分を分割し
た点を求める。しかしながら、(1)の場合と同様、各
メタボールの北極・南極ははっきりとは分からないの
で、以下のような方法でこの大円を緯度並びに直径方向
に分割する点を求める。
【0030】 まず、どちらか片方のメタボールの外
形を表す球(中心(x0 ,y0 ,z0),半径r0 )の
方程式と、その球に属する大円を完全に含む平面の方程
式(法線ベクトルn=(nx ,ny ,nz ),ワールド
座標原点からの距離d1 )が、以下のようであるとす
る。 平面:nx x+ny y+nz z+d1 =0 球 :(x−x0 )2 +(y−y0 )2 +(z−z0 )2 =r0 2 また、平面の法線ベクトルn=(nx ,ny ,nx )
は、正規化されているとする。
形を表す球(中心(x0 ,y0 ,z0),半径r0 )の
方程式と、その球に属する大円を完全に含む平面の方程
式(法線ベクトルn=(nx ,ny ,nz ),ワールド
座標原点からの距離d1 )が、以下のようであるとす
る。 平面:nx x+ny y+nz z+d1 =0 球 :(x−x0 )2 +(y−y0 )2 +(z−z0 )2 =r0 2 また、平面の法線ベクトルn=(nx ,ny ,nx )
は、正規化されているとする。
【0031】 次に、nと平行でない単位ベクトルV
et を考える。Vet は以下のようにして求める。 (a) もし|nx |≧|ny |かつ|nx |≧|nz
|ならば、Vet =(0,1,0) (b) もし|ny |≧|nx |かつ|ny |≧|nz
|ならば、Vet =(0,0,1) (c) もし|nz |≧|nx |かつ|nz |≧|ny
|ならば、Vet =(1,0,0) つまり、nの各要素の中で、絶対値最大の成分以外の成
分のうち一つが1であるような単位ベクトルを考えれば
良い。
et を考える。Vet は以下のようにして求める。 (a) もし|nx |≧|ny |かつ|nx |≧|nz
|ならば、Vet =(0,1,0) (b) もし|ny |≧|nx |かつ|ny |≧|nz
|ならば、Vet =(0,0,1) (c) もし|nz |≧|nx |かつ|nz |≧|ny
|ならば、Vet =(1,0,0) つまり、nの各要素の中で、絶対値最大の成分以外の成
分のうち一つが1であるような単位ベクトルを考えれば
良い。
【0032】 nとVet との外積を、Vi とする。す
なわち、Vi =n×Vet nとVi との外積を、Vj とする。すなわち、Vj
=n×Vi
なわち、Vi =n×Vet nとVi との外積を、Vj とする。すなわち、Vj
=n×Vi
【0033】 与えられた緯度方向の分割数をNとす
ると、大円における1分割数あたりの角度Δθは、Δθ
=2π/Nである。また直径方向分割数をM(偶数)と
すると、半径方向の半径の増加分Δrは、2r0 /Mと
なる。この時、大円の中心から放射状に緯度方向分割数
Nと同じ本数の線分を出し、それらを直径方向に分割し
た際の、各点の座標Pmk は、Pmk =mΔr(Vi cos (kΔθ)+Vj sin (kΔ
θ)+(x0 ,y0 ,z 0 ) で求められる。ただし、1≦m≦M/2、0≦k≦Nの
整数である。
ると、大円における1分割数あたりの角度Δθは、Δθ
=2π/Nである。また直径方向分割数をM(偶数)と
すると、半径方向の半径の増加分Δrは、2r0 /Mと
なる。この時、大円の中心から放射状に緯度方向分割数
Nと同じ本数の線分を出し、それらを直径方向に分割し
た際の、各点の座標Pmk は、Pmk =mΔr(Vi cos (kΔθ)+Vj sin (kΔ
θ)+(x0 ,y0 ,z 0 ) で求められる。ただし、1≦m≦M/2、0≦k≦Nの
整数である。
【0034】以上のような方法で図7(c)に示すよう
にこの大円を緯度方向並びに直径方向に分割する点を求
める。この方法を用いて、2つのメタボールの大円内と
大円の円周上に点を発生させるのであるが、片方のメタ
ボールに対して上記Pの式の第一項を求めたら、もう片
方のメタボール内の大円の各点の座標は、この式の第一
項にそのメタボールの中心座標を加えることで求められ
る。この手法で点を発生させた後、図8のように、2つ
の大円同士で対応する2点を通る直線を求め、これが片
方のメタボールと交差する点を求める。この方法は以下
のようである。
にこの大円を緯度方向並びに直径方向に分割する点を求
める。この方法を用いて、2つのメタボールの大円内と
大円の円周上に点を発生させるのであるが、片方のメタ
ボールに対して上記Pの式の第一項を求めたら、もう片
方のメタボール内の大円の各点の座標は、この式の第一
項にそのメタボールの中心座標を加えることで求められ
る。この手法で点を発生させた後、図8のように、2つ
の大円同士で対応する2点を通る直線を求め、これが片
方のメタボールと交差する点を求める。この方法は以下
のようである。
【0035】便宜上、一方のメタボールを「メタボール
0」、もう一方のメタボールを「メタボール1」とす
る。メタボール0の大円上の点をP0 =(P0x,P0y,
P0z)、P0 に対応するメタボール1の大円上の点をP
1 とすると、点P0 から点P1 へ向かう直線の方程式
(tをパラメタとする媒介変数表示)は、以下のように
なる。
0」、もう一方のメタボールを「メタボール1」とす
る。メタボール0の大円上の点をP0 =(P0x,P0y,
P0z)、P0 に対応するメタボール1の大円上の点をP
1 とすると、点P0 から点P1 へ向かう直線の方程式
(tをパラメタとする媒介変数表示)は、以下のように
なる。
【数4】
となる。ここで、A=(Ax ,Ay ,Az )は直線の方
向ベクトルで、以下のようになる。
向ベクトルで、以下のようになる。
【数5】
【0036】要するに、ベクトルAはベクトル(P1 −
P0 )の単位ベクトルである。この直線の方程式(6)
と、メタボール0との交点を求める。メタボールの表面
(分布関数の値が零となるところ)は球状であるので、
交点は以下のように二次方程式を解くことで求められ
る。 メタボール0の表面の方程式(中心(x0 ,y0 ,
z0 ),半径r0 ): (x−x0 )2 +(y−y0 )2 +(z−z0 )2 =r0 2 これに直線の方程式を代入し、tについて整理すると、 αt2 +βt+γ=0 ……(8)
P0 )の単位ベクトルである。この直線の方程式(6)
と、メタボール0との交点を求める。メタボールの表面
(分布関数の値が零となるところ)は球状であるので、
交点は以下のように二次方程式を解くことで求められ
る。 メタボール0の表面の方程式(中心(x0 ,y0 ,
z0 ),半径r0 ): (x−x0 )2 +(y−y0 )2 +(z−z0 )2 =r0 2 これに直線の方程式を代入し、tについて整理すると、 αt2 +βt+γ=0 ……(8)
【0037】ここで、
【数6】
である。ただし、αは計算せずとも1であることが分か
っているので、求める必要はない。(それは、レイの方
向ベクトルが正規化されているため、αの値が常に1と
なるからである)。なお、この計算には、あらかじめP
0x−x0 ,P0y−y0 ,P0z−z0 を計算しておいてか
ら、各係数の計算を行ったほうが良い。
っているので、求める必要はない。(それは、レイの方
向ベクトルが正規化されているため、αの値が常に1と
なるからである)。なお、この計算には、あらかじめP
0x−x0 ,P0y−y0 ,P0z−z0 を計算しておいてか
ら、各係数の計算を行ったほうが良い。
【0038】次に方程式(8)は二次方程式であるの
で、この判別式をDとすると、その値は、 D=β2 −4γ ……(10) と計算される。ここで点P0 は、メタボール0の内部に
ある点であるので、この直線はメタボール0と2つの交
点を必ず持つ。それらの交点のうちtの値の小さい方を
t1 、大きい方をt2 とすると、これらは以下のように
求めることができる。 t1 =(−β−√D)/2 ……(11) t2 =(−β+√D)/2 ……(12) ただし、求める必要のあるのはt1 だけである。それ
は、図8のように、t1に対応するメタボール0上の点
S0 は直線の始点から見て、直線の方向ベクトルとは逆
方向に有るからで、このためt1 は常に負、t2 は常に
正となるからである。そこで、t1 に対応するメタボー
ル0上の点S0 の座標を求める。
で、この判別式をDとすると、その値は、 D=β2 −4γ ……(10) と計算される。ここで点P0 は、メタボール0の内部に
ある点であるので、この直線はメタボール0と2つの交
点を必ず持つ。それらの交点のうちtの値の小さい方を
t1 、大きい方をt2 とすると、これらは以下のように
求めることができる。 t1 =(−β−√D)/2 ……(11) t2 =(−β+√D)/2 ……(12) ただし、求める必要のあるのはt1 だけである。それ
は、図8のように、t1に対応するメタボール0上の点
S0 は直線の始点から見て、直線の方向ベクトルとは逆
方向に有るからで、このためt1 は常に負、t2 は常に
正となるからである。そこで、t1 に対応するメタボー
ル0上の点S0 の座標を求める。
【0039】
【数7】
以上の手順で交点S0 が求まったら、次にメタ表面を多
角形分割するために、この点を起点とし、方向ベクトル
Aである直線の方程式を考え、これをレイとする。そし
て、後述する方法で、このレイとメタ表面との交点を求
め、分割後の多角形の頂点とする。また多角形の頂点に
おける法線ベクトルが必要ならば、後述する方法で求め
ることが可能である。
角形分割するために、この点を起点とし、方向ベクトル
Aである直線の方程式を考え、これをレイとする。そし
て、後述する方法で、このレイとメタ表面との交点を求
め、分割後の多角形の頂点とする。また多角形の頂点に
おける法線ベクトルが必要ならば、後述する方法で求め
ることが可能である。
【0040】(3) メタボールの数が3個以上の場合
基本的には2個の場合の拡張と考えて良い。2個のメタ
ボールを一組として考え、全ての組み合わせについて向
かい合う大円をセットし、大円内に放射状の点を求め、
メタ表面との交点を求めて、多角形の頂点(と必要なら
ば頂点の法線ベクトル)を求める。
ボールを一組として考え、全ての組み合わせについて向
かい合う大円をセットし、大円内に放射状の点を求め、
メタ表面との交点を求めて、多角形の頂点(と必要なら
ば頂点の法線ベクトル)を求める。
【0041】以上の手順で求められた多角形群は、セグ
メントバッファ13の多角形のデータベースに格納され
て、後の表示に使用される。この方法でメタ表面を多角
形に分割すると、普通のレイトレーシングでメタボール
を画像にするよりもはるかに少ないレイ・メタボールの
交点計算の量で、画像の生成が出来るなどの利点があ
る。
メントバッファ13の多角形のデータベースに格納され
て、後の表示に使用される。この方法でメタ表面を多角
形に分割すると、普通のレイトレーシングでメタボール
を画像にするよりもはるかに少ないレイ・メタボールの
交点計算の量で、画像の生成が出来るなどの利点があ
る。
【0042】次にメタボールが単独で存在する場合の、
交点探索法について説明する。例として、世界座標系の
x軸に平行な線分を、メタボールの中心から引くことに
すると、この線分を含む直線の方程式は、以下のように
なる。
交点探索法について説明する。例として、世界座標系の
x軸に平行な線分を、メタボールの中心から引くことに
すると、この線分を含む直線の方程式は、以下のように
なる。
【数8】
c=(cx ,cy ,cz )はメタボールの中心で、t≧
0である。この線分は、中心から半径方向に外向きに引
かれる。また、このメタボールの分布関数の式を、メタ
ボールの中心からの距離をrとして、以下のように定義
する。
0である。この線分は、中心から半径方向に外向きに引
かれる。また、このメタボールの分布関数の式を、メタ
ボールの中心からの距離をrとして、以下のように定義
する。
【0043】
【数9】
ここでbはメタボールの半径、dはメタボールの重みで
ある。一方、メタボールの中心からこの線分上の点まで
の距離をt(b≧t≧0)とすると、この線分上のメタ
ボールの分布関数は、図9のようになる。また、上述の
参考文献より、線分上の分布関数の式w(t)は、
ある。一方、メタボールの中心からこの線分上の点まで
の距離をt(b≧t≧0)とすると、この線分上のメタ
ボールの分布関数は、図9のようになる。また、上述の
参考文献より、線分上の分布関数の式w(t)は、
【数10】
したがって、しきい値T(T<dとしないと、しきい値
がメタボールの分布関数の最大値よりも高い所に出てし
まうので、交点が無くなる)とし、また、線分の始点か
らtが正になる方向だけを考えればいいので、以下の3
個の方程式を立てれば良い。
がメタボールの分布関数の最大値よりも高い所に出てし
まうので、交点が無くなる)とし、また、線分の始点か
らtが正になる方向だけを考えればいいので、以下の3
個の方程式を立てれば良い。
【数11】
【0044】この三個の方程式のうち、最後のものはあ
り得ない(というか関係ない)ので考慮の対象から外
す。残りをtについて解くと、
り得ない(というか関係ない)ので考慮の対象から外
す。残りをtについて解くと、
【数12】
となる。実際にはこの二つの解を両方求めてみて、それ
ぞれの区間に入ったものを本当の解とする。これで求め
られた解を前述のメタボールが1個しかない場合での、
しきい値Tを越えた所までの半径rとして用いる。
ぞれの区間に入ったものを本当の解とする。これで求め
られた解を前述のメタボールが1個しかない場合での、
しきい値Tを越えた所までの半径rとして用いる。
【0045】次にメタボールが2個以上存在する場合
の、交点探索法について説明する。この場合には、交点
の座標は上述のメタボールが1個のときのように解析的
には求められないことが分かっている(上述の参考文
献)。そこで、次のような「可変節点位置近似解法」を
用いる。
の、交点探索法について説明する。この場合には、交点
の座標は上述のメタボールが1個のときのように解析的
には求められないことが分かっている(上述の参考文
献)。そこで、次のような「可変節点位置近似解法」を
用いる。
【0046】処理a メタボールmi (i =0,1,‥
‥)とレイとの交差判定(その1) レイの方向余弦をA=(Ax ,Ay ,Az ),その始点
をS0 =(S0x,S0y,S0x)とすると、tを媒介変数
としたレイの方程式は以下の式(19)のようになる。
‥)とレイとの交差判定(その1) レイの方向余弦をA=(Ax ,Ay ,Az ),その始点
をS0 =(S0x,S0y,S0x)とすると、tを媒介変数
としたレイの方程式は以下の式(19)のようになる。
【数13】
また、交差判定の対象となるメタボール(メタ表面では
ない)mi (i =0,1,‥‥)上の点Pは、各メタボ
ールの半径をbi ,中心をc i とするとき、一般的に以
下のような式で表現できる。 |P−c i |2 =bi 2 ……(20) この式に、上記レイの方程式(19) を代入して整理する
と、以下のtに関する2次方程式(21) が導かれる。 t2 +Bi t+Ci =0 ……(21)
ない)mi (i =0,1,‥‥)上の点Pは、各メタボ
ールの半径をbi ,中心をc i とするとき、一般的に以
下のような式で表現できる。 |P−c i |2 =bi 2 ……(20) この式に、上記レイの方程式(19) を代入して整理する
と、以下のtに関する2次方程式(21) が導かれる。 t2 +Bi t+Ci =0 ……(21)
【0047】ここで、
【数14】
である。処理aでは、上記方程式(21)の係数Bi ,C
iを求める。
iを求める。
【0048】処理b メタボールmi とレイとの交差判
定(その2) 方程式(21)は2次方程式であるから、その判別式をD
i とすると、その値は、 Di =Bi 2 −Ci ……(23) と計算される。この判別式(23)の値が負か零であれ
ば、今交差判定を行っているメタボールはレイと交点を
持たないので、次のメタボールとの交差判定に移る。い
ずれのメタボールとの交点も無いという場合はあり得な
い(何故なら、レイの始点がメタボール上の点であるか
ら)。もしこの判別式の値が正ならば、今交差判定を行
っているメタボールはレイと交点を持つ(かもしれな
い)ので、Di の値を取っておき、次の処理cへいく。
定(その2) 方程式(21)は2次方程式であるから、その判別式をD
i とすると、その値は、 Di =Bi 2 −Ci ……(23) と計算される。この判別式(23)の値が負か零であれ
ば、今交差判定を行っているメタボールはレイと交点を
持たないので、次のメタボールとの交差判定に移る。い
ずれのメタボールとの交点も無いという場合はあり得な
い(何故なら、レイの始点がメタボール上の点であるか
ら)。もしこの判別式の値が正ならば、今交差判定を行
っているメタボールはレイと交点を持つ(かもしれな
い)ので、Di の値を取っておき、次の処理cへいく。
【0049】処理c レイの始点から各メタボールとの
交点までの距離計算 このメタボールmi は、レイと2つの交点を持つ可能性
がある。そこで、tdi=√Di と−Bを一度だけ求め、
その値をとっておき、以下の処理で使用する。そして、
レイの始点から各交点までの距離のうち、値の大きな方
ti+を、以下の式(24)で求める。 ti+=−Bi +tdi ……(24) また、レイの始点から各交点までの距離のうち、値の小
さなti-を、以下の(25)式で求める。 ti-=−Bi −tdi ……(25) 以上の処理a〜処理cまでの処理を、関係する全メタボ
ールについて行い、交点のあったメタボールについての
み、各ti+,ti-を適切なデータ構造で保存しておく。
交点までの距離計算 このメタボールmi は、レイと2つの交点を持つ可能性
がある。そこで、tdi=√Di と−Bを一度だけ求め、
その値をとっておき、以下の処理で使用する。そして、
レイの始点から各交点までの距離のうち、値の大きな方
ti+を、以下の式(24)で求める。 ti+=−Bi +tdi ……(24) また、レイの始点から各交点までの距離のうち、値の小
さなti-を、以下の(25)式で求める。 ti-=−Bi −tdi ……(25) 以上の処理a〜処理cまでの処理を、関係する全メタボ
ールについて行い、交点のあったメタボールについての
み、各ti+,ti-を適切なデータ構造で保存しておく。
【0050】次に,レイ上の分布関数の方程式w
# (t)=Tを解いて、メタ表面とレイとの交差判定・
交点計算を行う。Tはしきい値である。レイ上の分布関
数の近似方程式を、以下のようにおく。 w# (t)=at2 +bt+c=T ……(26) 係数a,b,cの初期値を零とする。
# (t)=Tを解いて、メタ表面とレイとの交差判定・
交点計算を行う。Tはしきい値である。レイ上の分布関
数の近似方程式を、以下のようにおく。 w# (t)=at2 +bt+c=T ……(26) 係数a,b,cの初期値を零とする。
【0051】処理d tリストの生成
処理a〜cで求めた視点からメタボールmi までの距離
のうち、ti-を節点番号零の点におけるti0に対応させ
る(ti+をti3に対応させる)。そこで、要素(i ,
0,ti0)をtリストの要素とし、ti0の小さい順にt
リストの全要素をソートし、ポインタで接続してtリス
トを生成する。tリストの要素数が1個しかない(メタ
ボールの数が1個しかない)場合はありえない。
のうち、ti-を節点番号零の点におけるti0に対応させ
る(ti+をti3に対応させる)。そこで、要素(i ,
0,ti0)をtリストの要素とし、ti0の小さい順にt
リストの全要素をソートし、ポインタで接続してtリス
トを生成する。tリストの要素数が1個しかない(メタ
ボールの数が1個しかない)場合はありえない。
【0052】処理e tリストの処理(その1)
tリストの先頭の要素が(m,n,tmn)の時、メタボ
ールmmの節点n(n=0,1,2,3)に関する近似
分布関数W# (t)の各係数の変化分Δa,Δb,Δc
を求め、今までのa,b,cに加える。Δat2 +Δb
t+Δcは以下のようになる。
ールmmの節点n(n=0,1,2,3)に関する近似
分布関数W# (t)の各係数の変化分Δa,Δb,Δc
を求め、今までのa,b,cに加える。Δat2 +Δb
t+Δcは以下のようになる。
【数15】
ただし、hi はレイとメタボールmi の中心との最短距
離、ei はhi の関数で、次式(28)のような形をして
いる。
離、ei はhi の関数で、次式(28)のような形をして
いる。
【数16】
【0053】処理e tリストの処理(その2)
tリストの2番目の要素が(p,q,tpq)の時、区間
〔tmn,tpq〕で2次方程式w# (t)=Tを解く処理
を行い、tリストの先頭要素を(m,n+1,tmn+1)
と更新する。ただし、n=3の場合はtリストの先頭の
要素を取り除く。取り除いた結果、tリストの要素が
(k,1,tk1)だだ1つになった場合は、メタボール
が1個の場合の特殊処理(後述する処理j)を行って、
交点を探索する。もちろん、tリストの要素が1個の場
合で1が4ならば、もう交差判定の対象となるメタボー
ルは無いわけであるが、そのような場合は存在しない
(必ず2個以上のメタボールと交差するから)。tリス
トの要素(i ,k,tik)のうち、節点番号1と2に対
応するtikの値ti1,ti2は以下のように求められる。
これらの値は必要になった時点で求める。もちろん、e
i の計算は一度だけで済ませる必要がある。 ti1=−Bi −ei tdi ti2=−Bi +ei tdi
〔tmn,tpq〕で2次方程式w# (t)=Tを解く処理
を行い、tリストの先頭要素を(m,n+1,tmn+1)
と更新する。ただし、n=3の場合はtリストの先頭の
要素を取り除く。取り除いた結果、tリストの要素が
(k,1,tk1)だだ1つになった場合は、メタボール
が1個の場合の特殊処理(後述する処理j)を行って、
交点を探索する。もちろん、tリストの要素が1個の場
合で1が4ならば、もう交差判定の対象となるメタボー
ルは無いわけであるが、そのような場合は存在しない
(必ず2個以上のメタボールと交差するから)。tリス
トの要素(i ,k,tik)のうち、節点番号1と2に対
応するtikの値ti1,ti2は以下のように求められる。
これらの値は必要になった時点で求める。もちろん、e
i の計算は一度だけで済ませる必要がある。 ti1=−Bi −ei tdi ti2=−Bi +ei tdi
【0054】処理f 方程式の判別と求解
処理eで解いた方程式の解が得られた(処理法は以降に
記す)ならば処理gへ。もし解が得られなければ、tリ
ストをtik(定義(c)参照)の小さい順にソートし直
す。tリストの要素が無くなるまで、処理eから繰り返
す。tリストの要素が全て無くなるまで方程式の解が得
られないならば、レイと交差するメタ表面は無い(こう
いう場合はあり得る)。
記す)ならば処理gへ。もし解が得られなければ、tリ
ストをtik(定義(c)参照)の小さい順にソートし直
す。tリストの要素が無くなるまで、処理eから繰り返
す。tリストの要素が全て無くなるまで方程式の解が得
られないならば、レイと交差するメタ表面は無い(こう
いう場合はあり得る)。
【0055】次に処理eで解いた方程式の解が得られた
場合の処理法について説明する。 (1) 方程式(26)が、2つの異なる実数解を持つ場
合(方程式の判別式が正の場合) 得られた解が、区間〔tmn,tpq〕に入っているかどう
かを確認する。区間からはみ出した解は採用しない(他
の区間で他の値の解が求まるから)。また、得られた解
の符号によって処理が変化するので注意が必要である。
2つの解のうち、大きな方をt+ ,値の小さな方をt-
とし、先にt+ を求める。t+ の符号により、以下の
(a)(b)に処理が分かれる。
場合の処理法について説明する。 (1) 方程式(26)が、2つの異なる実数解を持つ場
合(方程式の判別式が正の場合) 得られた解が、区間〔tmn,tpq〕に入っているかどう
かを確認する。区間からはみ出した解は採用しない(他
の区間で他の値の解が求まるから)。また、得られた解
の符号によって処理が変化するので注意が必要である。
2つの解のうち、大きな方をt+ ,値の小さな方をt-
とし、先にt+ を求める。t+ の符号により、以下の
(a)(b)に処理が分かれる。
【0056】(a)t+ が正の場合
t+ に対応する交点は、レイの始点から見てレイの進行
方向にある(以下レイの始点から見たレイの進行方向を
「レイの始点の前」という。よって、レイの始点から見
た進行方向と逆の方向を「レイの始点の後ろ」とい
う)。次に、レイの始点から各交点までの距離のうち、
値の小さな方t- を求める。t- の符号によって、処理
が以下の,の2つに分かれる。 t- が負か零の場合 t- に対応する交点は、レイの始点の後ろ(レイの始点
から見て、レイの進行方向と逆方向)に有るか、レイの
始点がメタ表面によってできる形状の内部に有る形にな
る。また、t- が零の場合は、レイの始点がメタ表面に
よってできる形状の表面にある。従って、t+ に対応し
た交点のみを計算することとする。その他詳細は後述す
る処理h参照。 t- が正の場合 t- に対応する交点も、t+ に対応する交点と同じく、
レイの始点の前に有る。また、計算式(24),(25)か
ら明らかなように、t- <t+ である。そこで、t- ,
t+ に対応した交点の座標P- ,P+ を処理hで求める
(ここでは計算しない)。これがメタ表面とレイとの交
点の座標である。
方向にある(以下レイの始点から見たレイの進行方向を
「レイの始点の前」という。よって、レイの始点から見
た進行方向と逆の方向を「レイの始点の後ろ」とい
う)。次に、レイの始点から各交点までの距離のうち、
値の小さな方t- を求める。t- の符号によって、処理
が以下の,の2つに分かれる。 t- が負か零の場合 t- に対応する交点は、レイの始点の後ろ(レイの始点
から見て、レイの進行方向と逆方向)に有るか、レイの
始点がメタ表面によってできる形状の内部に有る形にな
る。また、t- が零の場合は、レイの始点がメタ表面に
よってできる形状の表面にある。従って、t+ に対応し
た交点のみを計算することとする。その他詳細は後述す
る処理h参照。 t- が正の場合 t- に対応する交点も、t+ に対応する交点と同じく、
レイの始点の前に有る。また、計算式(24),(25)か
ら明らかなように、t- <t+ である。そこで、t- ,
t+ に対応した交点の座標P- ,P+ を処理hで求める
(ここでは計算しない)。これがメタ表面とレイとの交
点の座標である。
【0057】(b)t+ が負か零の場合
t+ は、レイの始点からの交点までの距離のうち、大き
い方に対応している。したがって、この値が負か零であ
るということは、2つの交点が両方ともレイの始点の後
ろに有る(t+ が負の場合)か、若しくはt-に対応す
る交点はレイの後ろに有り、t+ に対応する交点はメタ
表面上に有る(t+ が零の場合)ことを意味する。この
ような場合は、交点が有るとはみなさない。よって、次
のメタ表面との交点を探索する。
い方に対応している。したがって、この値が負か零であ
るということは、2つの交点が両方ともレイの始点の後
ろに有る(t+ が負の場合)か、若しくはt-に対応す
る交点はレイの後ろに有り、t+ に対応する交点はメタ
表面上に有る(t+ が零の場合)ことを意味する。この
ような場合は、交点が有るとはみなさない。よって、次
のメタ表面との交点を探索する。
【0058】(2) 方程式(26)が、1つの重解を持
つ場合(方程式の判別式が零の場合) 得られた解に対応する交点は、レイとメタ表面が接触す
る場合に相当する。このような場合は、交点があるとは
見なさない。 (3) 方程式(26)が、2つの複素数解を持つ場合
(方程式の判別式が負の場合) この場合は、解は得られない。
つ場合(方程式の判別式が零の場合) 得られた解に対応する交点は、レイとメタ表面が接触す
る場合に相当する。このような場合は、交点があるとは
見なさない。 (3) 方程式(26)が、2つの複素数解を持つ場合
(方程式の判別式が負の場合) この場合は、解は得られない。
【0059】処理g tリストの処理(その3)
処理fで解が得られた時、レイとの交点Pにおいて、メ
タ表面の色や表面状態に影響を与えるメタボールの集合
は、tリストからk=0の要素に対応したメタボールを
取り除いたものである。すなわち、もしtリストの要素
が(j,0,t j0)ならば、j番目のメタボールはメタ
表面に影響を与えない。また、tリストの先頭要素が
(j,3,tj3)ならば、j番目のメタボールもメタ表
面に影響を与えない。なぜならば、tj3から始まる区間
のメタ表面には、j番目のメタボールは影響を与えない
からである。
タ表面の色や表面状態に影響を与えるメタボールの集合
は、tリストからk=0の要素に対応したメタボールを
取り除いたものである。すなわち、もしtリストの要素
が(j,0,t j0)ならば、j番目のメタボールはメタ
表面に影響を与えない。また、tリストの先頭要素が
(j,3,tj3)ならば、j番目のメタボールもメタ表
面に影響を与えない。なぜならば、tj3から始まる区間
のメタ表面には、j番目のメタボールは影響を与えない
からである。
【0060】処理h 交点と法線ベクトルの計算
処理fで、方程式の解(すなわち視点からの距離)が求
められたので、交点の座標がわかる。視点から交点まで
の距離(方程式の解)をteqとし、交点Pの座標を(P
x ,Py ,Pz )とすると、その値は以下の式(29)で
求められる。
められたので、交点の座標がわかる。視点から交点まで
の距離(方程式の解)をteqとし、交点Pの座標を(P
x ,Py ,Pz )とすると、その値は以下の式(29)で
求められる。
【数17】
【0061】法線ベクトルの各要素は、交点に関係する
各メタボールの関数式の和の関数式を、x,y,zの各
成分で偏微分したものである。和の関数式をw(x,
y,z),各メタボールの関数式をw0 (x,y,
z),w1 (x,y,z),‥‥‥‥wN-1 (x,y,
z)とすると、交点における法線ベクトルnの各成分
(nx,ny nz )は、
各メタボールの関数式の和の関数式を、x,y,zの各
成分で偏微分したものである。和の関数式をw(x,
y,z),各メタボールの関数式をw0 (x,y,
z),w1 (x,y,z),‥‥‥‥wN-1 (x,y,
z)とすると、交点における法線ベクトルnの各成分
(nx,ny nz )は、
【数18】
となる。法線ベクトルを正規化することは、いうまでも
ない。
ない。
【0062】処理i 全ての交点を求める
同様にして、レイとメタ表面との交点をすべて求め、交
点座標、交点における法線ベクトル、各交点に影響を及
ぼすメタボールの番号、関数値を出力する。この際に注
意することは、 (a)tリストの先頭の要素を(m,n,tmn)とした
時、nが3である場合は、この要素はメタボールmm の
分布関数の右端を示すので、tmnで始まる区間にはメタ
ボールmm は影響を及ぼさない。 (b)tリストの先頭の要素を、(m,n,tmn)とし
た時、nが0である場合は、この要素はメタボールmm
の分布関数の左端を示すので、tmnで終わる区間にはメ
タボールmm は影響を及ぼさない。 つまり、tリストの値と区間とをよく見て、交点に影響
を与えるメタボールを選択する必要がある、ということ
である。
点座標、交点における法線ベクトル、各交点に影響を及
ぼすメタボールの番号、関数値を出力する。この際に注
意することは、 (a)tリストの先頭の要素を(m,n,tmn)とした
時、nが3である場合は、この要素はメタボールmm の
分布関数の右端を示すので、tmnで始まる区間にはメタ
ボールmm は影響を及ぼさない。 (b)tリストの先頭の要素を、(m,n,tmn)とし
た時、nが0である場合は、この要素はメタボールmm
の分布関数の左端を示すので、tmnで終わる区間にはメ
タボールmm は影響を及ぼさない。 つまり、tリストの値と区間とをよく見て、交点に影響
を与えるメタボールを選択する必要がある、ということ
である。
【0063】処理j メタボールがただ1個しかなくな
ってしまった場合(もしくはこれと同等の場合)の特殊
処理 この場合は4つの節点に区切られた3つの区間内で順番
に解を探索する必要がある。
ってしまった場合(もしくはこれと同等の場合)の特殊
処理 この場合は4つの節点に区切られた3つの区間内で順番
に解を探索する必要がある。
【0064】次に第2実施例を説明する。第2実施例か
ら以降に述べる第5実施例までは、いずれも第1実施例
で得られた多角形データを用いて画像処理する装置であ
り、,本実施例はコンスタントシェーディング(又はフ
ラットシェーディング)処理を行う装置である。図10は
第2実施例の構成を示すブロックで図1と同一符号のも
のは同一の機能を表わす。
ら以降に述べる第5実施例までは、いずれも第1実施例
で得られた多角形データを用いて画像処理する装置であ
り、,本実施例はコンスタントシェーディング(又はフ
ラットシェーディング)処理を行う装置である。図10は
第2実施例の構成を示すブロックで図1と同一符号のも
のは同一の機能を表わす。
【0065】図10において、一点鎖線で囲った範囲がコ
ンスタントシェーディング部14であり、1001はセグメン
トバッファ13に格納された多角形を管理し以降の処理の
ために取り出すセグメント管理部、1002は多角形の明る
さ、色など輝度計算を行うライティング部、1003は多角
形のうち視界から外れた部分を取り除くクリッピング
部、1004は多角形に色塗りをする面塗り部、1005はアナ
ログ量を計数形の表現にする微分解折器で直線のラスタ
化を行うDDA(Digital Differential Analyzer )
部、1006は視点から見えなくなる部分を消去する隠面消
去部、1009は視点より見える画素のZ値を格納するZバ
ッファ、1007はCRT1008に表示するデータを格納する
フレームバッファである。
ンスタントシェーディング部14であり、1001はセグメン
トバッファ13に格納された多角形を管理し以降の処理の
ために取り出すセグメント管理部、1002は多角形の明る
さ、色など輝度計算を行うライティング部、1003は多角
形のうち視界から外れた部分を取り除くクリッピング
部、1004は多角形に色塗りをする面塗り部、1005はアナ
ログ量を計数形の表現にする微分解折器で直線のラスタ
化を行うDDA(Digital Differential Analyzer )
部、1006は視点から見えなくなる部分を消去する隠面消
去部、1009は視点より見える画素のZ値を格納するZバ
ッファ、1007はCRT1008に表示するデータを格納する
フレームバッファである。
【0066】次に動作について説明する。セグメントバ
ッファ13に格納された多角形データは、セグメント管理
部1001によって一枚ずつ取り出され、多角形ライティン
グ部1002で照明情報や各図形の色などから各多角形毎の
ライティングを行う。次に、クリッピング部1003で視野
に入らない部分を刈り込まれ、面塗り部1004で走査線
(スキャンライン)毎の形状に分けられ、さらにDDA
部1005によって3次元DDAの手法により画素の集合ま
でに展開される。ここで隠面消去部1006は、DDA部10
05で展開された各画素のZ値をZバッファ1009に格納さ
れている該当画素のZ値と比較して、今展開された画素
が、可視であるかどうかを判定する。これは例えばZ値
が小さければ可視であるとあらかじめ設定されている場
合は、Z値が今まで格納されているZ値よりも小さけれ
ば可視と判定する。この隠面消去の手法は、3次元CG
(コンピュータグラフィック)の分野においては、Zバ
ッファ隠面消去と呼ばれ、広く用いられている方法であ
る。また、アルゴリズムが高速でそのうえハードウェア
化し易いため、グラフィックワークステーション (GW
S)などの様々な分野で用いられている。また、画素の
色には、多角形ライティング部1002で付けられた色がそ
のまま表示される。このような手法を、フラットシェー
ディング(またはコンスタントシェーディング)とい
い、曲面を近似的に表示するにはあまり向かないが、非
常に高速な画像生成手段である。
ッファ13に格納された多角形データは、セグメント管理
部1001によって一枚ずつ取り出され、多角形ライティン
グ部1002で照明情報や各図形の色などから各多角形毎の
ライティングを行う。次に、クリッピング部1003で視野
に入らない部分を刈り込まれ、面塗り部1004で走査線
(スキャンライン)毎の形状に分けられ、さらにDDA
部1005によって3次元DDAの手法により画素の集合ま
でに展開される。ここで隠面消去部1006は、DDA部10
05で展開された各画素のZ値をZバッファ1009に格納さ
れている該当画素のZ値と比較して、今展開された画素
が、可視であるかどうかを判定する。これは例えばZ値
が小さければ可視であるとあらかじめ設定されている場
合は、Z値が今まで格納されているZ値よりも小さけれ
ば可視と判定する。この隠面消去の手法は、3次元CG
(コンピュータグラフィック)の分野においては、Zバ
ッファ隠面消去と呼ばれ、広く用いられている方法であ
る。また、アルゴリズムが高速でそのうえハードウェア
化し易いため、グラフィックワークステーション (GW
S)などの様々な分野で用いられている。また、画素の
色には、多角形ライティング部1002で付けられた色がそ
のまま表示される。このような手法を、フラットシェー
ディング(またはコンスタントシェーディング)とい
い、曲面を近似的に表示するにはあまり向かないが、非
常に高速な画像生成手段である。
【0067】次に第3実施例を説明する。図11は第3実
施例の構成を示すブロック図である。一点鎖線で囲まれ
た範囲がグーローシェーディング部15である。本実施例
は、第2実施例が多角形ごとに色付けしたのに対し、多
角形の各頂点おける色から各頂点間の画素の色を線形補
間し、色表現を行うようにしたもので、なめらかな色付
けとなる。このため多角形ライティング部1002が頂点ラ
イティング部1102となり、これ以降のクリッピング部11
03、面塗り部1104、DDA部1105、隠面消去部1106が頂
点ライティング部1102の出力に対応した処理を行う。
施例の構成を示すブロック図である。一点鎖線で囲まれ
た範囲がグーローシェーディング部15である。本実施例
は、第2実施例が多角形ごとに色付けしたのに対し、多
角形の各頂点おける色から各頂点間の画素の色を線形補
間し、色表現を行うようにしたもので、なめらかな色付
けとなる。このため多角形ライティング部1002が頂点ラ
イティング部1102となり、これ以降のクリッピング部11
03、面塗り部1104、DDA部1105、隠面消去部1106が頂
点ライティング部1102の出力に対応した処理を行う。
【0068】次に動作について説明する。セグメントバ
ッファ13に格納された多角形データは、セグメント管理
部1001によって一枚ずつ取り出され、頂点ライティング
部1102で照明情報や各図形の色などから各多角形の頂点
のライティングを行う。次に、クリッピング部1103で視
野に入らない部分を刈り込まれ、面塗り部1104で走査線
(スキャンライン)毎の形状に分けられ、さらにDDA
部1105によって3次元のDDAの手法により画素の集合
までに展開される。ここで隠面消去部1106は、DDA部
1105で展開された各画素のZ値をZバッファ1009に格納
されている該当画素のZ値と比較して、今展開された画
素が、可視であるかどうかを判定する。
ッファ13に格納された多角形データは、セグメント管理
部1001によって一枚ずつ取り出され、頂点ライティング
部1102で照明情報や各図形の色などから各多角形の頂点
のライティングを行う。次に、クリッピング部1103で視
野に入らない部分を刈り込まれ、面塗り部1104で走査線
(スキャンライン)毎の形状に分けられ、さらにDDA
部1105によって3次元のDDAの手法により画素の集合
までに展開される。ここで隠面消去部1106は、DDA部
1105で展開された各画素のZ値をZバッファ1009に格納
されている該当画素のZ値と比較して、今展開された画
素が、可視であるかどうかを判定する。
【0069】これは例えばZ値が小さければ可視である
とあらかじめ設定されている場合は、Z値が今まで格納
されているZ値よりも小さければ可視と判定する。この
隠面消去の手法は、第2実施例と同じであるが、クリッ
ピング部1103からDDA部1105までの間では、多角形の
頂点の色を線型補間によって画素の段階の色に至るまで
求められ、各画素毎の色となって、フレームバッファ10
07に書き込まれて、CRT1008によって表示される。こ
のような手法を、グーローシェーディングと言い、高速
であり、写実的な画像を生成できる画像表示手段の一つ
である。
とあらかじめ設定されている場合は、Z値が今まで格納
されているZ値よりも小さければ可視と判定する。この
隠面消去の手法は、第2実施例と同じであるが、クリッ
ピング部1103からDDA部1105までの間では、多角形の
頂点の色を線型補間によって画素の段階の色に至るまで
求められ、各画素毎の色となって、フレームバッファ10
07に書き込まれて、CRT1008によって表示される。こ
のような手法を、グーローシェーディングと言い、高速
であり、写実的な画像を生成できる画像表示手段の一つ
である。
【0070】次に第4実施例を説明する。図12は本実施
例の構成を示すブロック図であり、一点鎖線で囲まれた
範囲がフォングシェーディング部16である。本実施例
は、画像生成手段として、多角形分割時に生成された頂
点の法線ベクトルを使用し、頂点ライティングを行わ
ず、クリッピング部1203からDDA部1205までの間にお
いては、頂点の色を線型補間するのでは無く、頂点にお
ける法線ベクトルから各画素における法線ベクトルを線
型補間によって求め、さらに隠面消去終了後の画素に対
してライティング部1202が各画素毎の法線ベクトルと照
明情報や各図形の色などを用いてライティングを行い、
フレームバッファ1007に書き込む。この手法を、フォン
グシェーディングと言い、各画素毎の法線ベクトルを使
用してライティングを行うため、グーローシェーディン
グよりもより計算量は増加する(グーローシェーディン
グは1次元の色の補間だが、フォングシェーディングは
3次元ベクトルの補間を行う必要がある)が、グーロー
シェーディングより写実的な画像を生成することが可能
である。
例の構成を示すブロック図であり、一点鎖線で囲まれた
範囲がフォングシェーディング部16である。本実施例
は、画像生成手段として、多角形分割時に生成された頂
点の法線ベクトルを使用し、頂点ライティングを行わ
ず、クリッピング部1203からDDA部1205までの間にお
いては、頂点の色を線型補間するのでは無く、頂点にお
ける法線ベクトルから各画素における法線ベクトルを線
型補間によって求め、さらに隠面消去終了後の画素に対
してライティング部1202が各画素毎の法線ベクトルと照
明情報や各図形の色などを用いてライティングを行い、
フレームバッファ1007に書き込む。この手法を、フォン
グシェーディングと言い、各画素毎の法線ベクトルを使
用してライティングを行うため、グーローシェーディン
グよりもより計算量は増加する(グーローシェーディン
グは1次元の色の補間だが、フォングシェーディングは
3次元ベクトルの補間を行う必要がある)が、グーロー
シェーディングより写実的な画像を生成することが可能
である。
【0071】次に第5実施例を説明する。図13は本実施
例の構成を示すブロック図であり、一点鎖線で囲まれた
範囲がレイトレーシング部17である。本実施例は、画像
生成手段として、多角形分割で生成された多角形に対
し、レイトレーシングによる画像生成を行うものであ
る。レイトレーシングは、前述のように視点から画素に
向かってレイを発射し、そのレイと交点を持つ物体(こ
の場合は多角形)を探索するものである。この処理を行
うのが、交差判定/交点計算/隠面消去部1301である。
この名称からはこの部分を3つの部分に分けられそうで
あるが、実際には各画素毎に、 レイが多角形と交差するか(交差判定) 交差するならば、レイと多角形との交点を求める
(交点計算) レイと多角形との複数の交点の中で、一番視点に近
いものを求める(隠面消去)という処理を行うため、分
けることは出来ない。 画像生成手段としてレイトレーシングを用いると、鏡面
反射/透過などの実際の光の振る舞いに近い画像表現が
出来る反面、計算量が多くなる。しかしながら、メタボ
ールを直接交差判定の対象とするのではなく、多角形を
その対象とするために、その処理量は小さくなる、とい
う利点もある。また、交差判定/交点計算/隠面消去部
1301では、交点における法線ベクトルも求めるため、第
4実施例におけるライティング部1202以降が、そのまま
使用可能である。
例の構成を示すブロック図であり、一点鎖線で囲まれた
範囲がレイトレーシング部17である。本実施例は、画像
生成手段として、多角形分割で生成された多角形に対
し、レイトレーシングによる画像生成を行うものであ
る。レイトレーシングは、前述のように視点から画素に
向かってレイを発射し、そのレイと交点を持つ物体(こ
の場合は多角形)を探索するものである。この処理を行
うのが、交差判定/交点計算/隠面消去部1301である。
この名称からはこの部分を3つの部分に分けられそうで
あるが、実際には各画素毎に、 レイが多角形と交差するか(交差判定) 交差するならば、レイと多角形との交点を求める
(交点計算) レイと多角形との複数の交点の中で、一番視点に近
いものを求める(隠面消去)という処理を行うため、分
けることは出来ない。 画像生成手段としてレイトレーシングを用いると、鏡面
反射/透過などの実際の光の振る舞いに近い画像表現が
出来る反面、計算量が多くなる。しかしながら、メタボ
ールを直接交差判定の対象とするのではなく、多角形を
その対象とするために、その処理量は小さくなる、とい
う利点もある。また、交差判定/交点計算/隠面消去部
1301では、交点における法線ベクトルも求めるため、第
4実施例におけるライティング部1202以降が、そのまま
使用可能である。
【0072】
【発明の効果】以上の説明から明らかなように、本発明
はメタボールを分割し、それに対応したメタ表面に多角
形を形成することによりメタボールを使用した画像を高
速に生成することができる。またこのようにして得た多
角形データを、コンスタントシェーディング、グーロー
シェーディング、フォングシェーディング、レイトレー
シングなどの手法を用いて画像処理を行うことができ
る。
はメタボールを分割し、それに対応したメタ表面に多角
形を形成することによりメタボールを使用した画像を高
速に生成することができる。またこのようにして得た多
角形データを、コンスタントシェーディング、グーロー
シェーディング、フォングシェーディング、レイトレー
シングなどの手法を用いて画像処理を行うことができ
る。
【図1】本発明の原理図である。
【図2】従来の手法を実現するブロック図である。
【図3】レイトレーシングの原理を説明する図である。
【図4】メタ表面の画像の例を示す図である。
【図5】経度方向と緯度方向分割の説明図である。
【図6】メタボール1個の場合のメタ表面算出説明図で
ある。
ある。
【図7】メタボール2個の場合の緯度方向の分割および
直径方向の分割点の説明図である。
直径方向の分割点の説明図である。
【図8】多角形分割前処理でメタ表面との交点を探索す
る説明図である。
る説明図である。
【図9】分布関数を示す図である。
【図10】本発明の第2実施例の構成を示すブロック図
である。
である。
【図11】本発明の第3実施例の構成を示すブロック図
である。
である。
【図12】本発明の第4実施例の構成を示すブロック図
である。
である。
【図13】本発明の第5実施例の構成を示すブロック図
である。
である。
10 メタボールデータベース
11 メタボールデータ管理部
12 メタ表面多角形分割部
13 セグメントバッファ
14 コンスタントシェーディング部
15 グーローシェーディング部
16 フォングシェーディング部
17 レイトレーシング部
1001 セグメント管理部
1002 多角形ライティング部
1102 頂点ライティング部
1202 ライティング部
1003,1103,1203 クリッピング部
1004,1104,1204 面塗り部
1005,1105,1205 DDA部
1006,1106,1206 隠面消去部
1007 フレームバッファ
1008 CRT
1009 Zバッファ
Claims (5)
- 【請求項1】 メタボールの形状・色を含むデータを格
納したメタボールのデータベース(10)と、このメタボ
ールのデータベース(10)から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部(11)と、指定された分割数で前記一連のメタボー
ルを分割し、その分割座標に対応したメタ表面上の座標
を求めこのメタ表面上の座標より多角形を形成するメタ
表面多角形分割部(12)と、この多角形データを格納す
るセグメントバッファ(13)とを備えたことを特徴とす
るメタボール多角形分割装置。 - 【請求項2】 メタボールの形状・色を含むデータを格
納したメタボールのデータベース(10)と、このメタボ
ールのデータベース(10)から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部(11)と、指定された分割数で前記一連のメタボー
ルを分割し、その分割座標に対応したメタ表面上の座標
を求めこのメタ表面上の座標より多角形を形成するメタ
表面多角形分割部(12)と、この多角形データを格納す
るセグメントバッファ(13)と、この多角形データごと
に輝度計算を行い1つの多角形は同一の色を割り当てる
コンスタントシェーディング部(14)とを備えたことを
特徴とする画像装置。 - 【請求項3】 メタボールの形状・色を含むデータを格
納したメタボールのデータベース(10)と、このメタボ
ールのデータベース(10)から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部(11)と、指定された分割数で前記一連のメタボー
ルを分割し、その分割座標に対応したメタ表面上の座標
を求めこのメタ表面上の座標より多角形を形成するメタ
表面多角形分割部(12)と、この多角形データを格納す
るセグメントバッファ(13)とこの多角形データの頂点
に対して輝度計算を行い、頂点間で線形補間した色を多
角形を表示する画素に割り当てるグーローシェーディン
グ部(15)とを備えたことを特徴とする画像装置。 - 【請求項4】 メタボールの形状・色を含むデータを格
納したメタボールのデータベース(10)と、このメタボ
ールのデータベース(10)から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部(11)と、指定された分割数で前記一連のメタボー
ルを分割し、その分割座標に対応したメタ表面上の座標
を求めこのメタ表面上の座標より多角形を形成するメタ
表面多角形分割部(12)と、この多角形データを格納す
るセグメントバッファ(13)とこの多角形データの頂点
の法線よりこの多角形を表示する各画素の法線を線形補
間し、各画素ごとに輝度計算を行うフォングシェーディ
ング部(16)を備えたことを特徴とする画像装置。 - 【請求項5】 メタボールの形状・色を含むデータを格
納したメタボールのデータベース(10)と、このメタボ
ールのデータベース(10)から互に影響させ合いたい一
連のメタボールのデータを取り出すメタボールデータ管
理部(11)と、指定された分割数で前記一連のメタボー
ルを分割し、その分割座標に対応したメタ表面上の座標
を求めこのメタ表面上の座標より多角形を形成するメタ
表面多角形分割部(12)と、この多角形データを格納す
るセグメントバッファ(13)と視点から表示画面の画素
に向ってレイを発射し、視点に最も近い前記多角形上の
点を求めて画像を生成するレイトレーシング部(17)を
備えたことを特徴とする画像装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3172694A JPH0520406A (ja) | 1991-07-12 | 1991-07-12 | メタボール多角形分割装置および画像装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3172694A JPH0520406A (ja) | 1991-07-12 | 1991-07-12 | メタボール多角形分割装置および画像装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0520406A true JPH0520406A (ja) | 1993-01-29 |
Family
ID=15946625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3172694A Withdrawn JPH0520406A (ja) | 1991-07-12 | 1991-07-12 | メタボール多角形分割装置および画像装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0520406A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0737119A (ja) * | 1993-07-19 | 1995-02-07 | Nec Corp | 分子情報の図形表示方法 |
US6894688B2 (en) | 2002-07-30 | 2005-05-17 | Koei Co., Ltd. | Program, recording medium, rendering method and rendering apparatus |
JP2006164078A (ja) * | 2004-12-09 | 2006-06-22 | Minoru Takayama | 描画方法及びその装置 |
-
1991
- 1991-07-12 JP JP3172694A patent/JPH0520406A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0737119A (ja) * | 1993-07-19 | 1995-02-07 | Nec Corp | 分子情報の図形表示方法 |
US6894688B2 (en) | 2002-07-30 | 2005-05-17 | Koei Co., Ltd. | Program, recording medium, rendering method and rendering apparatus |
JP2006164078A (ja) * | 2004-12-09 | 2006-06-22 | Minoru Takayama | 描画方法及びその装置 |
JP4585298B2 (ja) * | 2004-12-09 | 2010-11-24 | 穣 高山 | 描画方法及びその装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2667835B2 (ja) | コンピユータグラフイツクス表示装置 | |
US5574835A (en) | Bounding box and projections detection of hidden polygons in three-dimensional spatial databases | |
JP3461980B2 (ja) | 高速描画方法および装置 | |
Clark | Hierarchical geometric models for visible surface algorithms | |
US5367615A (en) | Spatial augmentation of vertices and continuous level of detail transition for smoothly varying terrain polygon density | |
US5630718A (en) | Weather simulation system | |
JPH0757117A (ja) | テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム | |
US5409379A (en) | Weather simulation system | |
JPH06223198A (ja) | 光線追跡による画像生成装置及び方法 | |
US6806886B1 (en) | System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline | |
US5003497A (en) | Method for three-dimensional clip checking for computer graphics | |
JP2002531905A (ja) | ボクセル空間から透視描画を形成する方法 | |
US4930091A (en) | Triangle classification setup method and apparatus for 3-D graphics display system | |
CN109598792B (zh) | 三维场景中建筑物注记的自动放置方法 | |
JPH0520406A (ja) | メタボール多角形分割装置および画像装置 | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
Machover et al. | Interactive computer graphics | |
JP3724006B2 (ja) | 高速レンダリング方法およびその装置 | |
KR100269100B1 (ko) | 삼각형탐색방법및이를채용한래스터라이저 | |
US20110074777A1 (en) | Method For Displaying Intersections And Expansions of Three Dimensional Volumes | |
JP2952585B1 (ja) | 画像生成方法 | |
US10504279B2 (en) | Visibility function of a three-dimensional scene | |
JPH03268186A (ja) | グラフィックス処理装置 | |
EP0408232B1 (en) | Spatial augmentation of vertices for level of detail transition | |
Willis | A real time hidden surface technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19981008 |