JP4405822B2 - トリム内外判定装置およびその方法 - Google Patents

トリム内外判定装置およびその方法 Download PDF

Info

Publication number
JP4405822B2
JP4405822B2 JP2004035410A JP2004035410A JP4405822B2 JP 4405822 B2 JP4405822 B2 JP 4405822B2 JP 2004035410 A JP2004035410 A JP 2004035410A JP 2004035410 A JP2004035410 A JP 2004035410A JP 4405822 B2 JP4405822 B2 JP 4405822B2
Authority
JP
Japan
Prior art keywords
intersection
trim
determination
trim line
line
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
JP2004035410A
Other languages
English (en)
Other versions
JP2005227992A5 (ja
JP2005227992A (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.)
AOMORI YAMADA GAKUEN EDUCATIONAL CORPORATION
Toyota Motor Corp
Biprogy Inc
Original Assignee
AOMORI YAMADA GAKUEN EDUCATIONAL CORPORATION
Toyota Motor Corp
Nihon Unisys 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 AOMORI YAMADA GAKUEN EDUCATIONAL CORPORATION, Toyota Motor Corp, Nihon Unisys Ltd filed Critical AOMORI YAMADA GAKUEN EDUCATIONAL CORPORATION
Priority to JP2004035410A priority Critical patent/JP4405822B2/ja
Publication of JP2005227992A publication Critical patent/JP2005227992A/ja
Publication of JP2005227992A5 publication Critical patent/JP2005227992A5/ja
Application granted granted Critical
Publication of JP4405822B2 publication Critical patent/JP4405822B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明はトリム内外判定装置およびその方法に関し、例えば、凹凸や滑らかな自由曲面を多用する複雑な形状を有する物体、例えば自動車や二輪車の車体、曲面を多用する家具、家電製品、携帯電話などの意匠形状をレイトレース処理する場合のトリム内外判定に関する。
自動車産業においては、自動車の設計情報をCAD (Computer Aided Design)データとして保持しているが、CADデータがデザイナの意図したとおりの形状となっているか否かを確認するために、CADデータを基にしてコンピュータグラフィックスを描画することが行われる。その際、高精度の描画を行うにはレイトレースと呼ばれる手法が適している。この手法を用いることで、写真に遜色のない画像をコンピュータ上で作成することができるため、例えば、実車が作成される前に、自動車広告のためのカタログやコマーシャルフィルム制作を行ったりすることも可能である。一般に、レイトレースによる画像制作は、カメラ位置やライト位置などの描画条件を変えるごとに何度も行われる。
また、自動車の車体のような、複雑な形状を有する物体の意匠形状を表すコンピュータグラフィックスは、高品質の曲面を扱う必要があるため、スプライン曲面の技術が使用される(例えば、特許文献1参照)。
また、自動車の車体モデルのような複雑な形状は、複数の曲面の集合で表現される。一つの曲面は、それを表す基底面とその有効領域を指定するトリム線によって構成され、これをトリム面(Trimmed Surface)と呼ぶ。また、基底面上にトリム線と呼ぶ閉じたループを描くことで、その内側を面の有効領域として指定する(これをトリミングすると言う)。自動車の車体などを扱うCADシステムは、その形状情報を曲面およびその曲面上の有効領域を指定するトリム線を一組とする集合として保持する。曲面やトリム線のデータは、三次元空間(x, y, z)で表したり、これをパラメタ空間に投影したUV平面で表したりすることができ、両者は相互に変換可能である。なお、実際の車体モデルは、数万から数十万のトリム面で構成される。
上述したレイトレース処理は、物体に当たる光線(以降「レイ」と呼ぶ場合がある)を視点から辿り、物体の反射や屈折、陰影などを考慮して、地球上の場所、季節、時間により異なる、空から降り注ぐ光を積算する手法である。
レイトレース処理は、大きく分けて三つのブロックから成り立っている。以下に、各ブロックの処理概要を説明する。
(1) 光線と曲面の交点計算 … 光線と曲面の交点を数値計算で求める。
(2) トリム内外判定 … 曲面はトリム面であり、トリム線に囲まれた内部の曲面に当たる光線についてのみ後述する着色計算を行い、トリム線の外部に当たる光線については計算を行わない。このため光線と計算対象の曲面の交点がトリム線の領域内にあるか否かを判定する。
(3) 着色計算 … 太陽や空からの光、地面からの照り返し等によって照らされた物体の色を計算する。
レイトレース処理を行う際、トリム内外判定により、光線と曲面の交点(以降「交点R」という)がトリム線の領域内にあるか否かを判定する。トリム内外判定は、三次元空間で表した三次元トリム線とUV平面で表したUVトリム線のそれぞれに対して、様々な方法が提案されている(例えば、非特許文献1参照)。これらの方法は、何れも、探索線(後述する)と自由曲線の交点を求めるために、ニュートン法(例えば、非特許文献2参照)などによる数値計算に多大な時間を要し、物体の形状を高速に描画しようとする際の妨げになる。
特開2002-108955号公報(第2-6頁、第9-16図) Andrew S. Glassner、"An Introduction to Ray Tracing"、Academic Press、1989年8月 矢野健太郎監修、春日正文編、「科学新興社モノグラフ 24. 公式集改訂版」、科学新興社、1975年7月、pp.166-167 G. Farin著、木村文彦監修、山口泰監訳、"CAGDのための曲線・曲面理論 -実践的利用法-"、共立出版、1991年12月、p.27
本発明は、上述の問題を個々にまたはまとめて解決するもので、トリム内外判定を高速に行うことを目的とする。
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
本発明にかかる判定方法は、情報処理装置を用いて、レイトレース処理におけるトリム内外判定を行う判定方法であって、トリム線データを含むCADデータを入力する入力ステップと、前記トリム線データを基に、トリム線を囲む外接矩形のデータ、前記外接矩形を所定方向にN(整数)等分した矩形領域を前記トリム線と交わらないように前記所定方向に直交する方向に分割したトリビアルインボックスとトリビアルアウトボックスのデータ、並びに、前記トリム線のセグメントを包含する矩形であるバウンディングボックスのデータを含む判定用の補助データを作成する作成ステップと、前記補助データを使用して、面と光線の交点が前記トリム線の領域の内か外かを判定する判定ステップとを有し、前記判定ステップは、前記交点が前記外接矩形の外にあれば前記トリム線の領域の外と判定する第一の判定ステップと、前記第一の判定ステップで判定できない前記交点について、前記トリビアルインボックス内にあれば前記トリム線の領域の内と判定し、前記トリビアルアウトボックス内にあれば前記トリム線の領域の外と判定する第二の判定ステップと、前記第二の判定ステップで判定できない前記交点について、前記交点から前記所定方向に直交する方向に引き出した探索線と前記交点を含まない前記バウンディングボックスの交差回数を数え、前記交点を含む前記バウンディングボックスについてはニュートン法により前記探索線と前記トリム線の交差回数を計算して、前記交差回数の合計が奇数であれば前記トリム線の領域の内と判定し、前記交差回数の合計が数であれば前記トリム線の領域の外と判定する第三の判定ステップとを有することを特徴とする。
本発明にかかるトリム内外判定装置は、トリム線データを含むCADデータを入力する入力手段と、前記トリム線データを基に、トリム線を囲む外接矩形のデータ、前記外接矩形を所定方向にN(整数)等分した矩形領域を前記トリム線と交わらないように前記所定方向に直交する方向に分割したトリビアルインボックスとトリビアルアウトボックスのデータ、並びに、前記トリム線のセグメントを包含する矩形であるバウンディングボックスのデータを含む判定用の補助データを作成する作成手段と、前記補助データを使用して、面と光線の交点が前記トリム線の領域の内か外かを判定する判定手段とを有し、前記判定手段は、前記交点が前記外接矩形の外にあれば前記トリム線の領域の外と判定する第一の判定手段と、前記第一の判定手段が判定できない前記交点について、前記トリビアルインボックス内にあれば前記トリム線の領域の内と判定し、前記トリビアルアウトボックス内にあれば前記トリム線の領域の外と判定する第二の判定手段と、前記第二の判定手段が判定できない前記交点について、前記交点から前記所定方向に直交する方向に引き出した探索線と前記交点を含まない前記バウンディングボックスの交差回数を数え、前記交点を含む前記バウンディングボックスについてはニュートン法により前記探索線と前記トリム線の交差回数を計算して、前記交差回数の合計が奇数であれば前記トリム線の領域の内と判定し、前記交差回数の合計が数であれば前記トリム線の領域の外と判定する第三の判定手段とを有することを特徴とする。
本発明によれば、繰り返し計算を行うニュートン法による交点計算の回数を減少させることで計算時間を短縮し、トリム内外判定を高速に行うことができる。
本発明は、レイトレース処理における、上記の(2)トリム内外判定に関する。以下、本発明にかかる実施例のトリム内外判定を図面を参照して詳細に説明する。
[概要]
本発明は、予めCADシステムにて用意されているトリム線を利用してトリム内外判定を高速に行うが、その第一段階の処理として、UVトリム線データを基に、外接矩形データ、トリビアルインアウトボックス(Trivial In/Out Box)データ、バウンディングボックス(Bounding Box)データの三つの補助データを作成する。そして第二段階の処理として、この補助データを使用して次に示す方法でトリム内外判定を行うことで、ニュートン法による交点計算回数を減少させる。
ステップS1:UVトリム線を囲む外接矩形によるトリム内外判定を行う。ここで判定できないものについては以降のステップで処理する。
ステップS2:トリビアルインアウトボックスを使用したトリム内外判定を行う。つまり、外接矩形を、UVのどちらかの方向に向かってN(整数)等分して矩形領域(以降「スキャンライン」と呼ぶ)を生成する。さらに、スキャンライン内部をトリビアルイン(Trivial In)、トリビアルアウト(Trivial Out)、不定の三領域に区分する。トリビアルイン、トリビアルアウトの二つの領域については、このステップでトリム内外判定を行い、不定の領域についてだけは以降のステップで処理する。
ステップS3:UVトリム線のセグメントを包含する矩形であるバウンディングボックスを使用してトリム内外判定を行う。ここで判定できないものについて次のステップで処理する。
ステップS4:ニュートン法による交点計算を行い、交差回数の偶奇によりトリム内外判定を行う。
[トリム内外判定]
図1は三次元空間における曲面とトリム線の一例を示す図である。図1に示すように、曲面101上にあるトリム線112によって面の有効領域が定義される。コンピュータグラフィクスでレイトレース処理を行う場合、光線(レイ)103と曲面101が交わる点(交点R)を計算した後、その交点Rがトリム線112の領域内にあるか否かをトリム内外判定で判定する。
トリム線102はパラメトリック曲線の一つであるベジエ(Bezier)曲線であり、式(1)で表されるセグメントと呼ばれる部分曲線を複数接続して生成される(例えば、非特許文献3参照)。このセグメント上の点Qは式(1)で表すことができる。
Q(x, y, z) = Q(u) = Σi=0 NBi,N(u)・Pi …(1)
ここで、uはパラメタ
Nは曲線の次数
Pi(Px, Py, Pz) (i = 0-N)は曲線の制御点
Bi,Nはバーンシュタイン(Bernstein)の基底関数
バーンシュタインの基底関数は、次数をN、パラメタをuとすると、以下のように定義される。
Bi,N = NCi(1 - u)N-iui …(2)
ここで、NCi = N!/{(N-i)!i!}
図1にはトリム線が四つのセグメントから構成されている例を示した。また、三次元空間の曲面上の曲線であるトリム線は、パラメタ空間であるUV平面に投影することが可能である。図2は三次元空間のトリム線112をUV平面に投影したUVトリム線102の様子を示す図である。
UV平面におけるトリム内外判定は、図3に示すように、光線103と曲面の交点位置R1やR2から探索線L1やL2を任意の方向に引き出し、探索線L1やL2とトリム線102との交差回数を数える。そして交差回数が奇数に対応する交点R2はトリム線102の内側に、交差回数が偶数(零回を含む)に対応する交点R1はトリム線102の外側にあると判定することができる。
[システム構成]
図4はトリム内外判定システムの構成例を示すブロック図である。
コンピュータネットワーク4を介して接続された端末5の操作により、トリム内外判定装置1の判定サーバ2は、CADシステム6が作成した、処理対象の曲面とトリム線のデータ(以下「CADデータ」と呼ぶ)を受け取り、ハードディスクなどの外部記憶装置3に格納し、外部記憶装置3からCADデータを読み込んで上述した第一段階の処理を行い、その処理結果を中間ファイルとして外部記憶装置3に格納する。その後、判定サーバ2は、上述した第二段階の処理として、外部記憶装置3から中間ファイルを読み込みトリム内外判定を行い、その判定結果を外部記憶装置3に格納するとともに、端末5などへ出力する。第二段階の処理は、観察方向などの条件の違いに応じて、端末5からの指示により、何度でも実行することができる。
なお、図4には、コンピュータネットワーク4を介して、トリム内外判定装置1、端末5およびCADシステム6が相互に接続されたサーバクライアントシステムを記載したが、これらを一つにまとめたスタンドアローンシステムや、トリム内外判定装置1とCADシステム6を直結したシステムにすることもできる。
[第一段階の処理]
次に、自由曲面のトリム内外判定の処理のための前処理である第一段階の処理を詳細に説明する。第一段階の処理は、外接矩形、バウンディングボックス、トリビアルインアウトボックスを作成する。なお、外接矩形は、UVトリム線全体を囲む矩形である。バウンディングボックスは、UVトリム線のセグメントを囲む矩形である。トリビアルインアウトボックスは、スキャンライン線(後述)とその近傍の近似点列で形成される矩形である。
図5は第一段階の処理を説明するフローチャートで、端末5の指示により、判定サーバ2が実行する処理である。
● CADデータの読み込み(S10)
CADシステム6により、三次元空間(x, y, z)上の制御点の集合である、処理対象の曲面とトリム線のデータがCADデータとして生成され、CADデータは外部記憶装置3に保存されている。判定サーバ2は、外部記憶装置3に保存されたCADデータ(曲面とトリム線のデータ)を読み込む。
● 三次元空間からUV平面への変換(S20)
読み込んだ三次元空間(x, y, z)の制御点のデータをUV平面のデータへ変換する。この処理により、三次元空間はUV平面に、三次元トリム線はUVトリム線(以降、単に「トリム線」という場合がある)に変換される。
● 近似点列の発生(S30)
トリム線102のセグメントごとに、次の三つの条件C1-C3を満たす近似点列(例えば、図6に示すPn、Pn+1)を発生する。
条件C1:近似点は必ずUVトリム線上にある。
条件C2:隣接する近似点間の線分上の中点と、UVトリム線上のパラメタ中点
との距離を、予め定めた公差(例えば1/1000)以下にする。
条件C3:近似点間の距離の最大値を制御点間の最小距離の1/2に設定する。
すなわち近似点間の距離は最小制御点間の距離の1/2以下になる。
● バウンディングボックスの計算(S40)
近似点列より、セグメントごとにセグメントを囲むバウンディングボックスを計算する(図6参照)。
● UVトリム線全体を囲む外接矩形の計算(S50)
近似点列より、トリム線102の全体を囲む外接矩形104を計算する(図7参照)。
● セグメントの分割(S60)
近似点列より、U方向、V方向それぞれの方向について、セグメントの極大点、極小点を調べ、すべてのセグメントに含まれる極大点、極小点の少ない方向(UまたはV)を求めた後、この方向で極大点、極小点を基にセグメントを分割する。この極大点、極小点の少ない方向を探索線の向きにする。
図8はセグメントの分割を説明する図である。図8(a)において、V方向に極大点が一個あり、U方向には極大点、極小点が無いため、図8(b)に示すように、このセグメントはU方向に分割される。つまり、探索線の向きはU方向になる。
また、トリム線を表すベジエ曲線の極大点、極小点における分割の詳細は次のとおりである。
極大点・極小点近傍の近似点を発見し、ニュートン法の初期値t0を求める。つまり、極大点・極小点では曲線の傾きの符号が変わるので次式を満たす。そこで、N個の近似点列P1からPNの全点について、この式を満たす点と、その個数を求め、その点をニュートン法の初期値として使用する。
(ui+1 - ui)×(ui - ui-1) ≦ 0(U方向の極大点・極小点の場合)
(vi+1 - vi)×(vi - vi-1) ≦ 0(V方向の極小点・極小点の場合) …(3)
このとき、近似点列はステップS30の条件C1、C2を満たすことから、ti-1<tx<ti+1なるパラメタtxで必ず極大点・極小点がある。
上で求めた点の集合{P}について、パラメタ値t0を初期値としてニュートン法で曲線の導関数=0になるパラメタtxを求める(この点が極大点・極小点)。ここで、トリム線を表すベジエ曲線の方程式を式(4)とすると、極大点・極小点は、導関数=0になる点なので、それぞれの方向で解くべき方程式F(t)は式(5)のようになる。
┌ ┐ ┌ ┐
│u(t)│ │ui
│ │= ΣPi・Bi,N(t) = Σ│ │・Bi,N(t) …(4)
│v(t)│ │vi
└ ┘ └ ┘
ここで、Piは制御点(i=0からN)
Bi,Nはバーンシュタインの基底関数
Σ演算はi=0からNまで
F(t) = du(t)/dt = d/dt{ΣPi・Bi,N(t)} = Σui・B'i,N(t) = 0(U方向の場合)
F(t) = dv(t)/dt = d/dt{ΣPi・Bi,N(t)} = Σvi・B'i,N(t) = 0(V方向の場合) …(5)
ここで、Σ演算はi=0からNまで
つまり、この方程式(5)を満たすパラメタtの値が、求める極大点・極小点を表すパラメタ値である。この方程式(5)をニュートン法を用いて解くと、ニュートン法の繰り返し計算は式(6)のようになる。
tk+1 = tk - F(tk)/F'(tk)
= tk - Σui・B'i,N(tk)/{Σui・B"i,N(tk)}(U方向の場合) …(6)
ここで、Σ演算はi=0からNまで
従って、パラメタtの一回増分は式(7)のようになり、これに、先ほど求めた初期値t0を与え、このdtを反復計算し収束した点が極大点・極小点である。
dt = - Σui・B'i,N(tk)/{Σui・B"i,N(tk)}(U方向の場合) …(7)
ここで、Σ演算はi=0からNまで
そして、ここで求めたパラメタtxが、前述した条件ti-1<tx<ti+1を満たすかチェックし、条件を満たせば、求めた極値(ux, vx, tx)の位置でセグメントを、ド・カステリョ(de Casteljau)のアルゴリズム(例えば、非特許文献3参照)を用いて分割する。
● 分割後のセグメントを囲むバウンディングボックスの計算(S70)
分割後の各セグメントについて、ステップS30、S40と同様の処理を行い、分割後の各セグメントにおける近似点列を発生して、セグメントを囲むバウンディングボックスを求める。
● スキャンライン線と交わるバウンディングボックス情報の保存(S80)
探索線の方向とは異なる(UまたはV)方向に外接矩形104をN等分する。図9は外接矩形104をV方向に十等分する例である。この場合、スキャンラインの方向はV方向であるといい、等分線105をスキャンライン線、等分した矩形106をスキャンラインと呼ぶ。そして、判定サーバ2は、スキャンライン線105と交わるバウンディングボックスについて、次の値を外部記憶装置3または内部メモリに保存する。
(1) バウンディングボックスの識別記号
(2) スキャンライン線105とトリム線102の交点に最も近い二つの近似点
の識別記号(例えば図6の近似点Pn、Pn+1
● トリビアルインアウトボックスの作成(S90)
図10は、ステップS80で保存した、スキャンライン線105と交わるバウンティングボックスの情報を基に作成される、交点で挟まれた矩形領域であるトリビアルインアウトボックス(以降「トリビアルボックス」と呼ぶ場合がある)の一例を示す図で、●印はトリム線102とスキャンライン線105との交点位置を示す。
トリビアルインアウトボックスの始点位置および終点位置は、予め定めた公差×2の分、小さくなるように設定し、トリム線102と交わらないようにする。図10において、左から数えて奇数番目のトリビアルボックスがトリビアルインボックス(ドットパターンで示す、以降「インボックス」という場合がある)、偶数番目のトリビアルボックスがトリビアルアウトボックス(斜線パターンで示す、以降「アウトボックス」という場合がある)である。
● トリム線の膨らみに対する補正(S100)
図11はトリム線の膨らみに対する補正を説明する図である。つまり、図11(a)に示すように、トリム線102に膨らみがある場合、トリム線102とトリビアルボックスが交わることがある。これを避けるため、ステップS80で保存したバウンディングボックスの識別記号およびスキャンライン内の近似点列の位置情報を利用して、図11(a)に示す交点位置Aから交点位置Bまで点列を辿って、図11(b)に示すように、近似点Cを含まないようにトリビアルボックスを縮小する。
● 特定のトリビアルボックスの削除(S110)
図12に示すトリム線102aのように、完全にスキャンラインに含まれるトリム線が存在する。また、近似点列はトリビアルボックスに含まれなくても、トリム線102としてみた場合、トリビアルボックスと交差するトリム線が存在する。これらの場合、後述するトリビアルボックスによる内外判定が無効になるので、この段階で、このような特定のトリビアルボックスを削除する必要がある。そこで、近時点列の隣接する二点が形成する線分と、トリビアルボックスとが交わらないか否かを判定し、交わる場合はそのトリビアルボックスを削除する。
● 中間ファイルへのデータ保存(S120)
外接矩形104、バウンディングボックス、トリビアルボックスなどの各データを外部記憶装置3に中間ファイルとして保存する。
図13Aはトリム線102の制御点情報を格納する中間ファイルのフォーマット例を示す図で、トリム線102の識別番号および制御点の識別番号に対応する、UV平面における制御点の位置を示す座標値(U値、V値)を有する。また、図13Bはバウンディングボックス情報を格納する中間ファイルのフォーマットを示す図で、トリム線102の識別番号およびバウンディングボックスの識別番号に対応する、UV平面におけるバウンディングボックス(矩形)の二頂点を示す二組の座標値(U大値、U小値、V大値、V小値)を有する。
また、図13Cは曲面、トリム線102の外接矩形、スキャンライン、トリビアルボックスの情報を格納する中間ファイルのフォーマット例を示す図で、曲面の識別番号に対応して、トリム線102の外接矩形の二頂点を表す二組の座標値(外接矩形U大値、外接矩形U小値、外接矩形V大値、外接矩形V小値)、スキャンラインの向き(UまたはV)および数を有する。さらに、各スキャンラインに対応して、トリビアルボックスの数、および、そのスキャンラインと交差するバウンディングボックスの数が格納され、各トリビアルボックスに対応してインかアウトかを表すフラグ、各トリビアルボックスのスキャンライン方向の座標値(小値、大値)を有し、並びに、各バウンディングボックスに対応してバウンディングボックスの識別番号およびトリム線の識別番号を有する。
[第二段階の処理]
上記の第一段階の処理がCADデータの基底面の数だけ繰り返され、各トリム線に対応付けられた外接矩形104、バウンディングボックス、トリビアルボックスなどのデータが中間ファイルとして保存される。詳細は後述するが、レイトレース処理は、視点や観察方向などの条件に応じて何度も実行する必要がありるが、その際、判定サーバ2は、中間ファイルを使用して(言い換えれば第一の処理を行わずに)、交点Rがトリム線102の領域内にあるか否かを判定する第二段階の処理を繰り返し実行することができる。
図14は第二段階の処理の一回分を説明するフローチャートで、端末5の指示により、判定サーバ2が実行する処理である。
● 中間ファイルデータの読み込み(S210)
まず、中間ファイルから、UV平面で表した曲面とトリム線102のデータを読み込む(図13A-13C参照)。
● トリム線を囲む外接矩形によるトリム内外判定(S220)
次に、ステップS50で作成し、中間ファイルに保存したトリム線102を囲む外接矩形104のデータ(図13C参照)によるトリム内外判定を行う。
交点Rが外接矩形104の内にあれば内側、外接矩形104の外(図7に示す斜線部分)にあれば外側と判定する。なお、トリム線102と外接矩形104が一致する場合もあるが、交点Rが外接矩形104の内にあれば内側と判定する。そして、ここで判定できない交点Rについては、以降のステップで判定する。
● トリビアルボックス を使用するトリム内外判定(S230)
次に、ステップS90、S100で作成し、中間ファイルに保存したトリビアルボックスのデータ(図13C参照)を使用してトリム内外判定を行う。スキャンライン内は、トリビアルインボックス、トリビアルアウトボックス、不定の三つの領域(図10参照)に区分されているが、交点Rがトリビアルインボックス内にあれば内側、トリビアルアウトボックス内にあれば外側と判定する。そして、不定の領域にある交点Rについては、以降のステップで判定する。
● バウンディングボックスを使用するトリム内外判定(S240)
次に、ステップS40、S70で作成し、中間ファイルに保存したバウンディングボックスのデータ(図13A-13C参照)を使用してトリム内外判定を行う。
図15はバウンディングボックスを使用するトリム内外判定を説明する図で、(イ)から(ト)で示す七つのバウンディングボックスがある場合を示している。
図15において、交点Rが属するスキャンライン201と交差する(イ)(ニ)(ホ)(ヘ)(ト)の五つのバウンディングボックスはスキャンライン201と関連付けられているので、探索線202とこれら五つバウンディングボックスの交差を判定すれば交差回数を数えることができる。このうち探索線202と交差するのは(ニ)(ヘ)(ト)の三つのバウンディングボックスである。なお、バウンディングボックス(ヘ)および(ト)については、ステップS60、S70において、セグメントの極大点で二つのバウンディングボックスに分割したため、トリム線102と探索線202の交点を求める必要はなく、各バウンディングボックスと探索線202の交差判定を行えばよい。
バウンティングボックス(ヘ)および(ト)の交差回数はそれぞれ一回ずつで計二回になり、判定サーバ102はこれを内部メモリなどに記憶する。また、バウンティングボックス(ニ)は、その内部に交点Rを含むので、トリム線102との交差判定は次のステップで行う。
● ニュートン法によるトリム内外判定(S250)
交点Rがその内部にあるバウンディングボックス(ニ)の場合、ニュートン法による交点計算を行い、ステップS240で記憶した交差回数と合計し、その結果の偶数奇数によりトリム内外判定を行う。判定サーバ102によるニュートン法の交点計算は次のようになる。
┌ ┐ ┌ ┐
│u(t)│ │ui
│ │= ΣPi・Bi,N(t) = Σ│ │・Bi,N(t) …(8)
│v(t)│ │vi
└ ┘ └ ┘
ここで、tはベジェ曲線のパラメタ
Piは制御点(i=0からN)
(u(t), v(t))はベジエ曲線上の点
Bi,Nはバーンシュタインの基底関数
Σ演算はi=0からNまで
探索線の方向をU方向として、トリム内外判定の対象になる光線と曲面の交点Rの座標値をパラメタで(uA, vA)とすると、解くべき方程式は式(9)で表される。
F(t) = Σui・B'i,N(t) - uA = 0 …(9)
ここで、Σ演算はi=0からNまで
この方程式(9)を満たすパラメタtの値が、求める半直線と曲線の交点位置を表す。この式F(t)はニュートン法を用いて解くことができる。F(t)にニュートン法の繰り返し計算を適用すると、以下の式が成り立つ。
tk+1 = tk - F(tk)/F'(tk)
= tk - {Σui・Bi,N(tk) - uA}/{Σui・B'i,N(tk)}
= tk - (U・B - uA)/(U・B') …(10)
ここで、Σ演算はi=0からNまで
ここで、U、BおよびB'を次とすると、dtは式(11)で表される。
U = {u0, u1, u2, …, uN}
B = {B0,N(tk), B1,N(tk), …, BN,N(tk)}
B' = {B'0,N(tk), B'1,N(tk), …, B'N,N(tk)}
dt = (uA - U・B)/(U・B') …(11)
判定サーバ102は、パラメタtの値が解に収束するまで、このdtを繰り返し用いて計算する。パラメタtが収束した場合、パラメタtの値から交点が求まる。光線と曲面の交点Rより、探索線202とトリム線102の交点が正の方向にある場合、探索線202とトリム線102が交わるので交差回数を「1」とし、負の方向にある場合、探索線202とトリム線102は交わらないので交差回数は「0」とする。
● 結果の出力(S260)
判定サーバ102は、トリム内外判定の結果を外部記憶装置103に保存する。
[レイトレース処理]
次に、上述したトリム内外判定を含むレイトレース処理を説明する。図16はレイトレース処理の概要を示すフローチャートで、例えば図4に示すCADシステム6や端末5などが実行する処理である。勿論、判定サーバ102に実行させてもよい。
まず、対象となる物体の上述した中間ファイルが存在するか否かを判定し(S310)、存在しなければ判定サーバ102にCADデータを供給して、上述した第一段階の処理を実行させる(S320)。
次に、レイトレース処理の条件(視点や観察方向など)を入力し(S330)、入力した条件に基づき視点を起点として光線を発生する(S340)。発生する光線は、描画する画面(画像)の1ピクセル当り一本または複数数本で、例えば800×600ピクセルの画面サイズであれば最低800×600=480,000本の光線を発生する。
次に、発生した光線の一本について、描画対象の曲面との交点を計算し(S350)、交点Rがあるか否かを判定し(S360)、交点Rがなければ、処理をステップS410へ進める。
また、計算対象の曲面に交点Rがあれば、判定サーバ102に上記の第二の処理によるトリム内外判定を行わせ(S380)、その判定結果がトリム線の内側に交点Rがあることを示せば(S390)、太陽直射光、天空光、地上光、材質に応じた交点Rの着色計算を行い、計算結果の画像データ(例えばRGBデータ)をメモリに保存する(S400)。なお、交点Rの計算結果は、下記に一例を示すようなU値およびV値からなる座標値で、この値が判定サーバ102の第二の処理に渡される。
U値:3.526143e-01
V値:2.325176e-02
次に、発生した光線すべての処理を終了したかを判定し(S410)、未了であれば計算対象の光線を変えて処理をステップS350に戻し、発生した光線の数分、ステップS350からS400の処理を繰り返す。
発生した光線すべての処理が終了すると、レイトレース処理は終了し、メモリに保存された画像データを市販の描画ソフトに渡すなどすれば、描画結果を観察することができる。そして、この観察の結果、レイトレース処理の条件を変更する必要があれば、図16に示すレイトレース処理を再実行する。つまり、例えばカタログやコマーシャルフィルム用に適切な画像が得られるまで、レイトレース処理が繰り返される。
トリム内外判定(S380)において、前述したニュートン法による内外判定を行えば、その処理に多大の時間がかかるが、上述した第二段階の処理を行うことにより、ニュートン法による内外判定の計算量を減らし、処理時間を大幅に短縮することができる。
図17および図18は、本発明のトリム内外判定を車体の意匠形状のレイトレース処理に適用した場合の効果を説明する図である。
図17に示すように、内外判定の必要数(1,973,114)のうち、外接矩形とトリビアルインアウトボックスの利用した判定により1,578,652(80%)を処理することができる。
図17の残りの20%については、さらに判定が必要とされたものであるが、それらの各一回の内外判定には複数の交差判定を行う必要がある。図18は、この交差判定の必要数(図18では2,991,816)を基に記載してあり、そのうち、バウンディングボックスを利用した判定により2,954,399(98.7%)を処理して、残りの37,417(1.3%)だけをニュートン法による交差判定で行えばよい。これは、供述したように、バウンディングボックスと探索線の交差判定により、バウンディングボックスが交点Rを含む場合のみニュートン法による交点計算の繰り返し計算を行えばよいためである。
例えば、総曲面数が七万面の形状モデルのレイトレース処理を行い、640×486ピクセルの画像を作成した場合、約200万回のトリム内外判定の必要が生じる。これを、クロックが833MHzのCPUで計算し、三次元トリムで内外判定すると330秒を要するが、本発明を適用すれば、第一段階の処理と第二段階の処理を合計して三秒で処理することができる。すなわち、処理時間を1/100程度に短縮することができる。
三次元空間における曲面とトリム線の一例を示す図、 三次元空間のトリム線をUV平面に投影した様子を示す図、 UV平面におけるトリム内外判定を説明する図、 トリム内外判定システムの構成例を示すブロック図、 第一段階の処理を説明するフローチャート、 近似点列の発生を説明する図、 トリム線全体を囲む外接矩形を説明する図、 セグメントの分割を説明する図、 外接矩形をV方向に十等分する例を示す図、 トリビアルインアウトボックスの作成を説明する図、 トリム線の膨らみに対する補正を説明する図、 特定のトリビアルボックスの削除を説明する図、 トリム線の制御点情報を格納する中間ファイルのフォーマット例を示す図、 バウンディングボックス情報を格納する中間ファイルのフォーマットを示す図、 曲面、トリム線の外接矩形、スキャンライン、トリビアルボックスの情報を格納する中間ファイルのフォーマット例を示す図、 第二段階の処理を説明するフローチャート、 バウンディングボックスを使用するトリム内外判定を説明する図、 レイトレース処理の概要を示すフローチャート、 本発明の効果を説明する図、 本発明の効果を説明する図である。

Claims (6)

  1. 情報処理装置を用いて、レイトレース処理におけるトリム内外判定を行う判定方法であって、
    トリム線データを含むCADデータを入力する入力ステップと、
    前記トリム線データを基に、トリム線を囲む外接矩形のデータ、前記外接矩形を所定方向にN(整数)等分した矩形領域を前記トリム線と交わらないように前記所定方向に直交する方向に分割したトリビアルインボックスとトリビアルアウトボックスのデータ、並びに、前記トリム線のセグメントを包含する矩形であるバウンディングボックスのデータを含む判定用の補助データを作成する作成ステップと、
    前記補助データを使用して、面と光線の交点が前記トリム線の領域の内か外かを判定する判定ステップとを有し、前記判定ステップは、
    前記交点が前記外接矩形の外にあれば前記トリム線の領域の外と判定する第一の判定ステップと、
    前記第一の判定ステップで判定できない前記交点について、前記トリビアルインボックス内にあれば前記トリム線の領域の内と判定し、前記トリビアルアウトボックス内にあれば前記トリム線の領域の外と判定する第二の判定ステップと、
    前記第二の判定ステップで判定できない前記交点について、前記交点から前記所定方向に直交する方向に引き出した探索線と前記交点を含まない前記バウンディングボックスの交差回数を数え、前記交点を含む前記バウンディングボックスについてはニュートン法により前記探索線と前記トリム線の交差回数を計算して、前記交差回数の合計が奇数であれば前記トリム線の領域の内と判定し、前記交差回数の合計が数であれば前記トリム線の領域の外と判定する第三の判定ステップとを有することを特徴とする判定方法。
  2. さらに、前記補助データをメモリに保存する保存ステップを有し、前記判定ステップは、前記メモリに保存された補助データを使用して、前記判定を繰り返し実行可能であることを特徴とする請求項1に記載された判定方法。
  3. トリム線データを含むCADデータを入力する入力手段と、
    前記トリム線データを基に、トリム線を囲む外接矩形のデータ、前記外接矩形を所定方向にN(整数)等分した矩形領域を前記トリム線と交わらないように前記所定方向に直交する方向に分割したトリビアルインボックスとトリビアルアウトボックスのデータ、並びに、前記トリム線のセグメントを包含する矩形であるバウンディングボックスのデータを含む判定用の補助データを作成する作成手段と、
    前記補助データを使用して、面と光線の交点が前記トリム線の領域の内か外かを判定する判定手段とを有し、前記判定手段は、
    前記交点が前記外接矩形の外にあれば前記トリム線の領域の外と判定する第一の判定手段と、
    前記第一の判定手段が判定できない前記交点について、前記トリビアルインボックス内にあれば前記トリム線の領域の内と判定し、前記トリビアルアウトボックス内にあれば前記トリム線の領域の外と判定する第二の判定手段と、
    前記第二の判定手段が判定できない前記交点について、前記交点から前記所定方向に直交する方向に引き出した探索線と前記交点を含まない前記バウンディングボックスの交差回数を数え、前記交点を含む前記バウンディングボックスについてはニュートン法により前記探索線と前記トリム線の交差回数を計算して、前記交差回数の合計が奇数であれば前記トリム線の領域の内と判定し、前記交差回数の合計が数であれば前記トリム線の領域の外と判定する第三の判定手段とを有することを特徴とするトリム内外判定装置。
  4. さらに、前記補助データを保存するメモリを有し、前記判定手段は、前記メモリに保存された補助データを使用して、前記判定を繰り返し実行可能であることを特徴とする請求項3に記載された判定装置。
  5. 情報処理装置を制御して、請求項1または請求項2に記載されたトリム内外判定を実行することを特徴とするコンピュータプログラム。
  6. 請求項5に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
JP2004035410A 2004-02-12 2004-02-12 トリム内外判定装置およびその方法 Expired - Fee Related JP4405822B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004035410A JP4405822B2 (ja) 2004-02-12 2004-02-12 トリム内外判定装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004035410A JP4405822B2 (ja) 2004-02-12 2004-02-12 トリム内外判定装置およびその方法

Publications (3)

Publication Number Publication Date
JP2005227992A JP2005227992A (ja) 2005-08-25
JP2005227992A5 JP2005227992A5 (ja) 2006-11-16
JP4405822B2 true JP4405822B2 (ja) 2010-01-27

Family

ID=35002670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004035410A Expired - Fee Related JP4405822B2 (ja) 2004-02-12 2004-02-12 トリム内外判定装置およびその方法

Country Status (1)

Country Link
JP (1) JP4405822B2 (ja)

Also Published As

Publication number Publication date
JP2005227992A (ja) 2005-08-25

Similar Documents

Publication Publication Date Title
JP5890105B2 (ja) 平行測地線によってモデリングされるパーツの設計
JP3962361B2 (ja) 位相判断装置、分解可能形状生成装置、構造メッシュ生成装置、位相判断方法、分解可能形状生成方法、および該位相判断方法を実行させるためのコンピュータ実行可能なプログラム、分解可能形状生成方法を実行させるためのコンピュータ実行可能なプログラム並びに構造メッシュ生成システム
US12045549B2 (en) Hybrid measurement and simulation based distortion compensation system for additive manufacturing processes
US8384716B2 (en) Image processing method
Chan et al. Volumetric parametrization from a level set boundary representation with PHT-splines
US9704293B2 (en) Finite element mesh customisation
US20040090437A1 (en) Curved surface image processing apparatus and curved surface image processing method
US10796497B2 (en) Distance field coupled fitted deformation lattices for shape modification
JP2013507679A (ja) 三次元物体モデルの3dプリントが可能な方法及びシステム
JP2015024631A (ja) スライスデータ作成装置、スライスデータ作成方法、プログラムおよびコンピューター読み取り可能な記録媒体
JP2016157429A (ja) 細分割曲面上における2d画像のエングレービング
Ma et al. B-spline surface local updating with unorganized points
JPWO2005066852A1 (ja) 三次元cadデータの近似および表示方法、その方法を実行するシステム
CN110766783A (zh) 一种零件的三维建模方法
US10845779B2 (en) Designing an outer surface of a composite part
US7388584B2 (en) Method and program for determining insides and outsides of boundaries
CN110532670B (zh) 一种适分析样条实体模型构建方法及系统
JP4405822B2 (ja) トリム内外判定装置およびその方法
US20190251218A1 (en) System and Method for Performing Isogeometric Analysis and Finite Element Analysis Using H-Splines
Adhikary et al. A slice-based algorithm for automatic and feature-preserving hole-filling in a CAD mesh model
JP2002207777A (ja) 中立面モデルの生成方法
CN113496468A (zh) 深度图像的修复方法、装置和存储介质
Bashir et al. Geometric analysis of non-degenerate shifted-knots Bézier surfaces in Minkowski space
CN117893655B (zh) 一种提升裁剪点搜索速度和gpu速度的方法
JP4949440B2 (ja) 図面作成支援装置、図面作成支援方法、図面作成支援プログラム、記録媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091105

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4405822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees