(57)【特許請求の範囲】
【請求項１】
幾何学的オブジェクトの任意の集まりを、すべてのオブジェクトを境界づけるルートボリュームから、その個々のオブジェクトまたはアセンブリを境界づけるサブボリュームまでの境界ボリュームのハイアラーキへと処理して、前記オブジェクトに連続して近似するものとして用いるための方法であって、
ａ）  前記オブジェクトに境界ボリュームを作成するステップと、
ｂ）  選択された境界ボリュームを処理するステップと、
ｃ）  新しい境界ボリュームを、組合せが可能な境界ボリュームに関して作成するステップとを含み、前記組合せ境界ボリュームはそのサブボリュームを含み、前記新しい境界ボリュームは前記サブボリュームの空間関係に近似し、前記方法は、
前記境界ボリュームと前記ルートボリュームとの間の幾何学上の関係に基づいて、予め定められた組合せアルゴリズムを介し、前記選択された境界ボリュームを組合せて前記選択された境界ボリュームを表わす新しいボリュームにすることができるか否かを判断するステップに特徴づけられ、前記判断するステップは、
少なくとも２つの境界ボリュームを選択するステップと、
前記選択された境界ボリュームの組合せボリュームを計算するステップと、
前記組合せボリュームが前記ルートボリュームの、予め定められたパーセンテージのボリュームよりも小さいかどうかを判断し、
（ａ）  もし小さくなければ、前記選択された境界ボリュームを組合せることが不可能であると判断してそれを組合せようとせず、
（ｂ）  もし小さければ、前記選択された境界ボリュームを組合せることが可能であると判断するステップとを含む、方法。
【請求項２】
前記予め定められたパーセンテージは約８．３％として選択される、請求項１に記載の方法。
【請求項３】
予め定められた組合せアルゴリズムを介して選択された境界ボリュームを処理するステップは、
親ボリューム内に含まれるサブボリュームを組合せようとして、
最小のサブボリュームが前記親ボリュームの前記予め定められたパーセンテージのボリュームより大きいかどうかを判断し、もし大きければ、前記親のサブボリュームのうち組合せが可能なものはないと判断し、それを組合せようとしないステップをさらに含む、請求項２に記載の方法。
【請求項４】
予め定められた組合せアルゴリズムを介して選択された境界ボリュームを処理するステップは、
前記親ボリュームの、前記予め定められたパーセンテージの１０分の１よりも大きいボリュームを有する各サブボリュームを特定し、かつ、このようなサブボリュームの各々は他のボリュームとの組合せになる可能性が低いと判断し、それを組合せようとしないステップをさらに含む、請求項２または３に記載の方法。
【請求項５】
予め定められた組合せアルゴリズムを介して選択された境界ボリュームを処理するステップは、
新しい境界ボリュームを少なくとも２つのサブボリュームを含む親ボリューム内に組合せようとして、
前記新しい境界ボリュームと前記サブボリュームのうちの１つとの組合せが可能であるかどうかを判断し、もし組合せが可能であるならば、残りのサブボリュームが組合せられる可能性は低いと判断し、それを組合せようとしないステップをさらに含む、請求項１から４のいずれかに記載の方法。
【請求項６】
任意に分配された部品から、空間的に均衡した密な境界ボリュームハイアラーキを作成して、元の部品および部品アセンブリに連続して近似するものとして用いるための方法であって、
ａ）  第１の部品を選択するステップと、
ｂ）  前記第１の部品の第１の境界ボリュームを計算するステップと、
ｃ）  ルートボリュームを拡張して前記第１の境界ボリュームを含むステップと、
ｄ）  第２の部品を選択するステップと、
ｅ）  前記第２の部品の第２の境界ボリュームを計算するステップと、
ｆ）  前記ルートボリュームを拡張して、前記古いルートボリュームと第２の境界ボリュームとをそのサブボリュームとして備えた前記第２の境界ボリュームを含むステップと、
ｇ）  第３の部品を選択するステップと、
ｈ）  前記第３の部品の第３の境界ボリュームを計算するステップと、
ｉ）  前記ルートボリュームを拡張して前記第３の境界ボリュームを含み、そのサブボリュームとして前記第３の境界ボリュームを加えるステップと、
ｊ）  第１の対の前記サブボリュームを選択するステップと、
ｋ）  予め定められた組合せアルゴリズムを介して前記選択サブボリュームを処理し、これにより、前記サブボリュームと前記ルートボリュームとの間の幾何学上の関係に基づいて、
前記選択サブボリュームを組合せて新しい境界ボリュームにすることができるかどうかを判断し、
ｉ）  もし組合せが不可能であるならば、新しい対のサブボリュームを選択し、ステップｋ）を介して前記選択された対のサブボリュームを処理し、
ii）  もし組合せが可能であるならば、
１）  そのサブボリュームとして前記選択サブボリュームを備えた新しい境界ボリュームを作成し、
２）  新しい対のサブボリュームを選択し、ステップｋ）を介して前記選択された対のサブボリュームを処理するステップとを含み、
それにより、前記ルートボリュームのサブボリュームがテストされ、それらを組合せて新しい境界ボリュームにすることができるかどうかを判断し、それにより、前記境界ボリュームハイアラーキを作成する、方法。
【請求項７】
任意に分配した部品から、空間的に均衡した密な境界ボリュームハイアラーキを作成して、元の部品および部品アセンブリに連続して近似するものとして用いるための方法であって、
ａ）  第１の部品を選択するステップと、
ｂ）  前記第１の部品の境界ボリュームを計算するステップと、
ｃ）  ルートボリュームが存在するかどうかを判断し、
ｉ）  もし存在しないならば、
１）  最新のボリュームをルートボリュームにし、
２）  新しいオブジェクトを選択してステップｂ）を続行するステップと、
ｄ）  前記ルートボリュームがサブボリュームを有するかどうかを判断し、
ｉ）  もし有さなければ、
１）  サブボリュームとして前記古いルートボリュームと新しい選択ボリュームとを備えた新しいルートボリュームを作成し、
２）  新しいオブジェクトを選択してステップｂ）を続行し、
ii）  もし有するならば、ステップｃ）を続行するステップと、
ｅ）  前記ルートボリュームを拡張して前記新しい選択ボリュームを含み、そのサブボリュームとして前記新しい選択ボリュームを加えるステップと、
ｆ）  第１の対のサブボリュームを選択するステップと、
ｇ）  予め定められた組合せアルゴリズムを介して前記選択サブボリュームを処理し、それにより、前記選択サブボリュームを組合せて、前記サブボリュームを表わす新しい境界ボリュームにすることができるかどうかを判断し、
ｉ）  もし組合せが不可能であれば、新しい対のサブボリュームを選択してステップｇ）に進み、
ii）  もし組合せが可能ならば、ステップｈ）に進むステップと、
ｈ）  前記選択サブボリュームのうちの第１のものがサブボリュームを有するかどうかを判断し、
ｉ）  もし有するならば、
１）  前記第１の選択サブボリュームを拡張して前記第２の選択サブボリュームを含み、
２）  もし有さないならば、ステップｆ）に進み、
ii）  もし有さないならば、ステップｉ）に進むステップと、
ｉ）  前記選択サブボリュームのうちの第２のものがサブボリュームを有するかどうかを判断し、
ｉ）  もし有するならば、
１）  前記第２の選択サブボリュームを拡張して前記第１の選択サブボリュームを含み、
２）  ステップｆ）に進み、
ii）  もし有さないならば、ステップｊ）に進むステップと、
ｊ）  そのサブボリュームとして前記選択サブボリュームを備えた新しいボリュームを作成し、かつ、新しい対のサブボリュームを選択してステップｇ）に進むステップとを含み、
それにより、前記ルートボリュームのサブボリュームをテストして、それらを組合せて新しい境界ボリュームにすることができるかどうかを判断し、それにより前記境界ボリュームハイアラーキを作成する、方法。
【請求項８】
予め定められた組合せアルゴリズムを介して前記選択サブボリュームを処理するステップは、
ａ）  前記選択サブボリュームの前記組合せボリュームを計算するステップと、
ｂ）  前記組合せボリュームが前記ルートボリュームの、予め定められたパーセンテージのボリュームよりも小さいかどうかを判断し、
ｉ）  もし小さくなければ、前記選択された対のサブボリュームを組合せることは不可能であると判断し、
ii）  もし小さければ、前記選択された対のサブボリュームを組合せることは可能であると判断するステップとを含む、請求項６または７に記載の方法。
【請求項９】
前記予め定められたパーセンテージは約８．３％として選択される、請求項８に記載の方法。
【請求項１０】
予め定められた態様で各前記ステップを繰返して、すべての部品および部品アセンブリに対して境界ボリュームハイアラーキを作成するよう、残りの部品のすべてを処理するステップをさらに含む、請求項６に記載の方法。
【請求項１１】
予め定められた態様で各前記ステップを繰返して、すべての部品および部品アセンブリに対して境界ボリュームハイアラーキを作成するよう、残りの部品のすべてを処理するステップをさらに含む、請求項７に記載の方法。
【請求項１２】
前記境界ボリュームを計算するステップは、
前記選択部品を境界づけるよう選択された、８つのコーナを有する境界ボックスを作成するステップを含む、請求項６から１１のいずれかに記載の方法。
【発明の詳細な説明】
発明の背景
この発明は複合構造のコンピュータ画像をモデル化するための方法に関し、特に、任意に分配した部品から、空間的に均衡した境界ボリュームのハイアラーキを作成して、その、連続して近似するものとしてグラフィックスディスプレイに用いるための方法に関する。
対話式コンピュータ生成ディスプレイは、現実のように見える、３次元モデルのビジュアリゼーションをもたらす。このようなモデルはユーザの制御の下で、たとえば機械的なコンピュータ化設計システムに見られ得るような、仮想環境における設計評価および訓練の両方のために役立つ。このようなコンピュータビジュアリゼーションシステムは、ユーザによる対話式制御の下でシミュレートされた観察者の観点から見えるような、３次元複合構造の画像をコンピュータワークステーションのスクリーン上に与える。コンピュータ生成ディスプレイが十分に円滑かつ迅速にされ得るならば、ユーザにはその構造中でのシミュレートされた観察者の移動の下で仮想環境をリアルタイムで探索しているような錯覚が与えられる。
複合構造の対話式コンピュータ生成ビジュアリゼーションシステムのための特定的な応用が航空機のような高度に複雑な構造のモデル化に見られる。ここで、ユーザにその構造中を対話式に移動させるシステムが製品の最終的な成功に関連する数多くの局面において役立ち得る。たとえば、複合航空機構造の対話式ディスプレイは構造上の干渉および適合問題を特定でき、製品の、物理的なモックアップでは通常隠れた区域、すなわち、込み入った区域でのダクトおよび配線の設計上の道筋を「見る」能力を与えることができ、「生きた」モデルを与えることによって統合した製造チームの作業を容易にでき、イラストレーションおよび訓練媒体の製造のサイクル時間およびコストを低減できる。コンピュータグラフィックに基づくシステムが円熟するにつれ、その方法が表示される３次元モデルデータベースも発達してきた。実世界の構造はコンピュータ記憶媒体上に無理なく記憶できるよりもはるかに複雑であるので、開発されるモデルの複雑さはそれを表示するために必要とされるハードウェアの能力を伝統的に凌いできた。この問題を扱うために、目に知覚される複雑さの変化をわずかなものにするように試みながらモデルの複雑さを低減するようにさまざまな方法が開発された。これらの方法は２つのカテゴリ、すなわち淘汰および細部の削除に分割できる。
淘汰は、現在の観察位置から不可視であるオブジェクトを表示しないやり方である。このようなオブジェクトはシーンから「淘汰」されるものと見なされる。オブジェクトが淘汰され得るのは、他のオブジェクトによってかまたは現在の観察領域の外部にあることによって隠されるためである。観察領域に対して淘汰することはしばしば簡単であるが、噛み合ったオブジェクトを淘汰することは、この問題を解決するために数多くのアルゴリズムが考え出されているのにかかわらず困難であり得る。淘汰のかぎは、シーンにおけるすべてのオブジェクトの可視性を判断するすばやい方法を有することである。
細部の削除は、シーンの知覚される複雑さに対するオブジェクトの重要性に依存して、可変の細部レベル（ＬＯＤ）でオブジェクトを表示するやり方である。この知覚される重要性は伝統的にスクリーンの画素（ピクセル）におけるオブジェクトの大きさによって測定されてきた。細部の削除を用いるかぎはシーンにおけるすべての複合オブジェクトに対して利用可能ないくつかの細部レベルを有することである。
境界ボリュームハイアラーキの使用はコンピュータグラフィックスにおいて新しく始まったことではない。最も一般的には、さまざまな交差部の問題、すなわち淘汰するための観察領域との交差部、衝突検出のための他のオブジェクトとの交差部、および光線トレースのための光線との交差部の問題を簡単にするために用いられる。
境界ボリュームハイアラーキの作成に関しては、技術分野において多くの公開されている方法が公知である。１つの簡単な方法は、境界ボリュームをモデル化ハイアラーキに整合させることである。公知のモデル化ハイアラーキに依存しない方法としては中央値分断機構(median-cut scheme)が含まれ、これはオブジェクトをｘ、ｙおよびｚ座標によって分類することに基づいて二進木を作成し、さらにオブジェクトが８分空間に密集することに基づいてオブジェクトをグループ化する。
技術分野における公知の方法のうち、均衡状態の良い密な境界ボリュームハイアラーキを、任意に順序づけられたオブジェクトから引き出すことができるものはない。順序づけは任意であるため、技術分野に公知のモデル化ハイアラーキのうち有用なものはない。中央値分断機構は一度につき１つの次元でしか働かないため、空間的に近似するオブジェクトは互いにツリー状に距離を置かれてもよい。８分機構は前途有望であるが、８分空間の境界において中央に位置づけられたオブジェクトに密な境界ボリュームをもたらさず、いずれの８分空間がともに選択されるかが特定されないままとなる。
発明の概要
したがって、この発明の目的は、任意に分配した部品から、空間的に均衡した密な境界ボリュームハイアラーキを作成して、元の部品および部品アセンブリに連続して近似するものとしてコンピュータ生成スクリーンディスプレイに用いるための方法を提供することである。
この発明の特定的な目的は、細部レベルのハイアラーキをもたらすために特に適合される上述の方法を提供して、複合構造によるコンピュータ生成アニメーションを容易にするために用いられるようにすることである。
簡単に言うと、この発明によると、１つの方法であって、そのコンピュータ生成画像によって表わされる任意に集められたオブジェクトを、すべてのオブジェクトに境界をつけるルートボリュームから、個々のオブジェクトまたはそのアセンブリに境界をつけるサブボリュームまでの、境界ボリュームのハイアラーキに処理して、コンピュータ生成ディスプレイにおいて、前記オブジェクトに連続して近似したものとして用いるためのものが提供される。この方法は、
ａ）  前記オブジェクトの各々に境界ボリュームを作成するステップと、
ｂ）  予め定められた組合せアルゴリズムによって、選択された境界ボリュームを処理し、その間の幾何学上の関係に基づいて、選択された境界ボリュームが組合せられて、前記選択されたボリュームを表わす新しいボリュームになり得るかどうか、および組合せられ得る境界ボリュームに対して組合せられ得るかどうかを判断するステップと、
ｃ）  サブボリュームを含む前記組合せボリュームを備えた新しい境界ボリュームを作成し、それにより新しい境界ボリュームがサブボリュームの画像に近似するステップとを含む。
発明のさらなる局面において、予め定められた組合せアルゴリズムによって選択された境界ボリュームを処理するステップは、
少なくとも２つの境界ボリュームを選択するステップと、
前記選択境界ボリュームの組合せボリュームを処理するステップと、
前記組合せボリュームがルートボリュームの、予め定められたパーセンテージのボリュームよりも小さいかどうかを判断し、
ａ）  もし小さくなければ、前記選択境界ボリュームは組合せられないと決定し、それを組合せようとせず、
ｂ）  もし小さければ前記選択境界ボリュームは組合せられ得ると決定するステップとを含む。
発明のさらなる局面において、予め定められた組合せアルゴリズムによって選択境界ボリュームを処理する上記のステップはさらに、
新しい境界ボリュームを、少なくとも２つのサブボリュームを含む親ボリュームと組合せようとするステップと、
新しい境界ボリュームを加えることによって親ボリュームが拡張するかどうかを判断して、もし拡張するならば先の親サブボリュームのうち組合せられ得るものはないと決定してそれを組合せようとしないステップとを含む。
発明のさらなる局面において、予め定められた組合せアルゴリズムによって選択境界ボリュームを処理する上記のステップはさらに、
親ボリューム内に含まれるサブボリュームを組合せようとするステップと、
最も小さなサブボリュームが、前記親ボリュームの、前記予め定められたパーセンテージのボリュームよりも大きいかどうかを判断し、もし大きければ親のサブボリュームのうち組合せられ得るものはないと決定し、それを組合せようとしないステップとを含む。
発明のさらなる局面において、予め定められた組合せアルゴリズムによって選択境界ボリュームを処理する上述のステップはさらに、
少なくとも２つのサブボリュームを含む親ボリュームに新しい境界ボリュームを組合せようとするステップと、
前記新しい境界ボリュームが前記サブボリュームのうち１つと組合せられ得るかどうかを判断し、もし組合せられ得るならば残りのサブボリュームが組合せになる可能性は低いと決定してそれを組合せようとしないステップとを含む。
【図面の簡単な説明】
図１は、任意の複合構造の等角図であって、この発明に従った構造が、コンピュータのモデル化およびディスプレイのために細部部品に分解されている態様を示す図である。
図２は、図１に示される複合構造のコンポーネント部品のうち１つの等角図であって、その部品の境界ボリュームが作成される態様を示す図である。
図３Ａから図３Ｃは、図１に示される複合構造の側方から見た等角図であって、コンピュータ生成境界ボリュームの作成をさらに示す図である。
図４Ａから図４Ｃは、極度に複雑な機械アセンブリを示す図であって、そのためのコンピュータモデル化境界ボリュームハイアラーキに与えられる細部レベルの変更を示す図である。
図５は、航空機であって、そのためにコンピュータモデルを作成するのにこの発明が特に精通する複合構造の型の特定的な一例であるものの断面図である。
図６Ａから図６Ｅは、空間的に均衡した境界ボリュームハイアラーキを作成するための、発明の試みを示すボックス図である。
図７Ａおよび図７Ｂは、空間的に均衡した境界ボリュームハイアラーキを作成するための好ましい方法を示す詳細な論理フロー図である。
図８Ａから図８Ｃは、計算時間を減らすために速度エンハンスメントを組込む、空間的に均衡した境界ボリュームハイアラーキを作成するための好ましい方法を示す詳細な論理フロー図である。
詳細な説明
この発明は、複合構造において見られるような任意に分配された部品から、空間的に均衡した密な境界ボリュームのハイアラーキを作成して、コンピュータ生成グラフィックディスプレイにおいて、元の部品と部品アセンブリとに連続して近似するものとして用いるようにするための方法に関する。したがって、ディジタルデータセットが複合構造のコンポーネントを表わすならば、この発明は複合構造ならびにそのコンポーネント部品およびサブアセンブリを表わすさまざまな細部レベルを生み出すことができる。この発明は典型的には、複合構造のコンピュータ生成スクリーンディスプレイに表示される細部レベルを制御するための方法と関連して用いられることができる。コンピュータ生成スクリーンディスプレイにおける細部レベルを制御するための好ましい方法は、エリック・エル・ブレックナー（Eric L. Brechner）によって発明され、かつこの発明と同じ譲渡人に譲渡されている、「複合構造のコンピュータ生成スクリーンディスプレイに表示される細部レベルを制御するための方法」（“METHOD FOR CONTROLLING THE LEVEL OF DETAIL DISPLAYED IN A COMPUTER GENERATED SCREEN DISPLAY OF A COMPLEX STRUCTURE”）と題された、 日付の同時係属中の特許出願連続番号第 号（出願人書類番号９４−００１と同日付で提出された）に記載されており、この方法は引用によって援用される。
この発明の方法によってとられる一般的な試みは、空のツリーから始め、一度に１つずつオブジェクトを挿入して、必要に応じてツリーを増大することである。第１のステップは、挿入されるオブジェクトの境界ボリュームを計算することである。その後ルートボリューム、すなわちすべての部品を含むボリュームが、新しいボリュームに密にはまるよう拡張され、ルートの子供に新しいボリュームが加えられる。次に、各子供がその兄弟の各々と比較されてそれらが組合せられ得るかどうかを判断する。それらを含む境界ボリュームが、親ボリュームの、ある固定パーセンテージよりも小さければ対は組合せられ得る。対は組合せになるときに、それらを含むボックスと置換えられ、それらの、結合した子供によってプロセスは続く。
図１は、複合構造のコンピュータ生成されたグラフィック表示がそのコンポーネント部品に分解でき、次いで、図２、図３、および図４に示されるように境界ボリュームとしてモデル化できる方法を示す。
ここで一般に１２で示される任意の複合構造の等角図が図１に示される。この全体構造１２は、いくつかの周知のＣＡＤ／ＣＡＭプログラムのいずれによっても発生できるデータの組としてデジタルフォーマットで存在し得る。（この発明の好ましい実施例では、データの組は、Ｄｅｓｓａｕｌｔからの許可の下で利用可能なＣＡＴＩＡで知られるＣＡＤ／ＣＡＭプログラムによって発生された。）モデル化は複合構造１２をそのすべてを包含するレベルまたはルートレベルから、円筒１４と、円筒端部コネクタ２０に接続されたシャフト１８を含む、一般に１６で示されるアセンブリとを含んだそのブランチレベルまで分解し続ける。アセンブリ１６は次にさらなるブランチによってシャフト１８および円筒端部コネクタ２０のコンポーネント部品に分解される。こうして、反転した木の構造が図１に示され、基本のルートが頂部で複合構造の全部品を含み、その頂部はサブアセンブリを含んださまざまなブランチへとさらに分解され、最終的にはそれ自体リーフとしての詳細な部品へと分解される。
複合構造のための細部レベルを与えるために、ルートレベル、ブランチレベルおよびリーフレベルは図２に示されるような境界ボリュームを用いてさらにモデル化される。ここで、円筒端部コネクタ２０が８つのコーナを有するボックス２２から成るその境界ボリュームによってモデル化される。８つのコーナを有するボックス２２は、端部コネクタ２０を完全に含む、最も小さな軸方向に整列する箱である。この８つのコーナを有するボックスは円筒端部コネクタ２０のための迅速なモデルとしてコンピュータによって記憶される。完全な円筒端部コネクタ２０の記憶のために必要とされるよりも少ないコンピュータメモリがボックス２２を記憶するために必要とされる。したがって、ユーザが複合構造中を対話式に移動でき、それによってコンピュータ速度およびメモリに高い要求を必要とする応用では、詳細な円筒端部コネクタ２０自体の代わりに境界ボックスボリューム２２を表示することが容認可能であり得る。
実際、図３Ａ−図３Ｃに示されるように、境界ボリュームは全体の複合構造１２に対して作成される。したがって、図３Ａを参照すると、円筒１４のためのボックス型境界ボリューム３４と、接続シャフト１８のためのボックス型境界ボリューム３８と、円筒端部コネクタ２０のための上述の境界ボリューム２２とが示される。
境界ボリュームに関するさらなる細部レベルが可能である。図１ではサブアセンブリ１６がシャフト１８に接続された円筒端部コネクタ２０からなることに注意されたい。したがって、図３Ｂでは、ブランチ境界ボリューム４２がサブアセンブリ１６のまわりに形成される。
最後に、図３Ｃでは、さらなる境界ボリューム４４が全体の構造１２のまわりに形成される。こうして、最低の細部レベルでは境界ボリューム４４が示され得るが、実際の部品１２自体を示す前の最高の細部レベルでは、境界ボリューム２２、３８、および４４が表示され得る。
高度に複雑なアセンブリに対する細部レベルディスプレイの描写は図４Ａ−図４Ｃに記載される。
図４Ａは数多くの個々の部品からなる高度に複雑なアセンブリ５０を示す。ここで、アセンブリは部品レベル（すなわち、最高の細部レベル）で示される。
この発明に従って、図４Ａの細部部品は空間的に均衡した密な境界ボリュームハイアラーキを作成するようモデル化することができ、それにより、所与の部品を表示するのに必要な計算時間およびコンピュータメモリを低減する。したがって、図４Ｂは低い細部レベルを示し、ここでは図４Ａの細部アセンブリ５０の、第１のレベルの境界ボリュームに依存する。複合構造５０は、ディスプレイ５２に示されるようなさまざまな境界ボリュームによってモデル化されていることに注目されたい。アセンブリ５０を含む構造全体を対話式に移動するユーザに対して、５２のディスプレイは細部部品を明確に示し、さらに、境界ボリュームを用いることによって、ディスプレイ５２のグラフィックスを描くために必要なコンピュータ速度および／またはコンピュータメモリはかなり低減される。
図４Ｃは、アセンブリ５０のコンピュータ生成ディスプレイ５４の、さらに低い細部レベルを示す。ここでは、アセンブリ５０の全体的な輪郭が示されているが、個々の構造は認識できない。したがってディスプレイ５４はコンピュータ速度およびメモリに関する要件がさほど厳しくない。
図５は一般に１００で示される商業用航空機の断面図であり、この発明の境界ボリュームハイアラーキにを用いるための実用的な応用を示す。航空機の構造１００は一般に円形外板１０２および内部側壁１０４からなる。構造の内部には、２つの側部座席対１０８、１１０と中央座席３つ組１１２とを支持するように示された水平フロア１０６がある。側部座席対１０８、１１０の頭上には収納ボックス１１４、１１６がそれぞれある。中央座席３つ組１１２の頭上には天井構造１２０、電気サイン１２２および収納ボックス１２４がある。
数多くの構造がフロア１０６の下に経路を定められる。例示の目的のために、これは送水管支持ブラケット１３２によって支持される飲料水の送水管１３０を含む。また、航空機中に電力を与える電気線１３４と廃物用ダクト１３６とが設けられる。
天井１２０および収納ボックス１２４上に経路を定められるのは、飛行制御線１５０を含むダクトと、一連の電気ワイヤ束１５２、１５４と、ギャレーオーバヘッドタイおよびブラケット１６０、１６２とである。無数の他の構造が典型的な航空機の断面に含まれるが、全体構造１００の高度に複雑な性質が明らかである。
この発明は航空機構造１００の対話式ビジュアリゼーションにおいて応用され、そこで、操作者はワークステーションに座って自分の視野を変化させ、航空機中を移動するように選択できる。航空機構造における多数の詳細な部品と上述された淘汰および細部削除の効果のため、観察フラスタム内の航空機の構造のすべてを示すための、コンピュータ速度およびメモリに対する要求は法外なものである。したがって、図１から図４に関して説明された細部レベルによって部品を減少またはモデル化してユーザに航空機中を本当に移動しているような感覚を得させ、それでもコンピュータ速度およびメモリの適度な制約内にあることが望ましい。
図６Ａから図６Ｅは、空間的に均衡した境界ボリュームハイアラーキを複合構造に作成するためにこの発明の方法によってとられる基礎的な試みを示す図である。図１から図４に示されるように、第１に、複合構造の各部品および部品アセンブリに境界ボリュームが作成される。図６Ａにおいて、第１の境界ボリュームボックス２００の境界ボリュームが選択される。
図６Ｂにおいて、幅の広い第２のボックス２０２が加えられ、それにより親境界ボリューム２０４が、そのサブボリューム２００および２０２の各々を含むよう拡張される。親ボリュームはサブボリューム２００および２０２に境界をつけることのできる最も小さなボックスであることに注目されたい。
次に、組合せアルゴリズムが用いられてサブボリューム２００および２０２が組合せられ得るかどうかを判断する。好ましい組合せアルゴリズムは組合せられた子供のボリューム（または図６の２次元の例における面積）の合計を決定して、このボリューム（または面積）と親のボリューム（面積）とを比較する。子供の組合せボリュームが、親のボリュームの、予め定められたパーセンテージのボリュームよりも小さければ、サブボリュームの対は組合せになることができる。さもなければそれらは組合せにならない。
図６Ｂに戻って、親２０４の子供２００および２０２は組合せになることができない。なぜなら、組合せられた子供のボリューム（面積）は親全体のボリュームと同じであるからである。
図６Ｃにおいて、別の小さな境界ボリュームボックス２０６が加えられ、親２１０をさらに拡張する。このとき、組合せアルゴリズムの、予め定められたパーセンテージが親の５０％に設定されていれば、第１の２つのサブボリューム２００および２０２は組合せになり得る。しかしこの例では、２５％の値であると仮定する。したがってサブボリューム２００、２０２または２０６は組合せになり得ない。
次に図６Ｄにおいて、大きな境界ボリュームボックス２１２が右下に挿入され、それにより親２１４を下に拡張する。ここで図６Ｅを参照して、組合せアルゴリズムが、２５％の基準パーセンテージを用いると仮定すると、第１の２つのサブボリューム２００および２０２は組合せられてサブボリューム２２０になってもよく、第３のサブボリューム２０６および第４のサブボリューム２１２は組合せられてサブボリューム２２２になることができる。この結果、各レベルにおいて３の高さおよび２の幅である境界ボリュームのハイアラーキが得られ、それによりすべてのオブジェクトに３つの細部レベルをもたらす。
２つの上ボックス２０２および２０６の組合せのように、対になり得る境界ボリュームボックスのさまざまな他の組合せがあるが、一度対になると、他の可能な対の組合せはこの方法のこの好ましい実施例においては考えられないことに注目されたい。
組合せアルゴリズムによって行なわれる、現在のボリュームのパーセンテージの比較は無限に行なわれ、幾分形状とは独立していることが重要である。事実上、表面面積または周囲の長さのような幾何学上の一定な測定値はいずれも組合せ基準においてうまく働くが、ボリュームの測定値は実際に、最も満足のいく結果をもたらす。パーセンテージが小さいほど、ツリーの幅は広く、パーセンテージが大きいほど、ツリーの高さは高い。この発明の好ましい実施例において、予め定められた限界パーセンテージは８．３％または１／１２に選択された。
図７Ａおよび図７Ｂは、空間的に均衡した境界ハイアラーキを作成して複合構造のコンピュータ生成ディスプレイに用いるための好ましい方法を示す詳細な論理フロー図である。
この方法はステップ３００で始まる。次にステップ３０２において、モデル化される多くのオブジェクトのうち第１のものが選択される。ステップ３０４において、選択オブジェクトの境界ボリュームが計算される。ここで先に述べたように、境界ボリュームは、選択オブジェクトを含む軸方向に整列する最も小さい、８つのコーナを有するボックスとして形成されてもよい。
次に方法はステップ３０６に入り、ここではルートまたは最も高いレベルのボリュームがこのとき存在するかどうかに関する判断が下される。これは第１の選択オブジェクトであるため、ルートボリュームは存在せず、ステップ３０８に入り、ここでは最新の選択ボリュームがルートボリュームとして規定される。
次にプロセスはステップ３１０に続き、ここでは新しいオブジェクトが選択される。ステップ３１２においてテストが行なわれてすべてのオブジェクトが選択されたかどうかを判断する。もしすべてのオブジェクトが選択されていれば、モデル化は終了ステップ３１４で終わる。もしすべてのオブジェクトが既に選択されていなければ、新たに選択されたオブジェクトはステップ３０４に送られてその境界ボリュームを作成する。このとき、ステップ３０６ではルートボリュームが存在し、方法はステップ３２０に入ってルートボリュームがサブボリュームを有するかどうかを判断する。もしルートボリュームがサブボリュームを有さなければ、ステップ３２２に入り、そのサブボリュームとして古いルートボリュームと新しい選択ボリュームとを含む新しいルートボリュームが作成される。その後方法はステップ３１０に戻って新しいオブジェクトを選択する。
ステップ３２０において、ルートボリュームがサブボリュームを有すると判断された場合は、ステップ３２４に入り、新しいボリュームを含み、かつそのサブボリュームとして新しいボリュームを加えるようルートボリュームが拡張される。
次のステップ３２４では方法はルーチンに入り、ステップ３２６に示されるようにルートボリュームのサブボリュームを組合せようとする。次にステップ３３０に入り、ルートボリューム内の第１の対のサブボリュームＡおよびＢが選択される。
方法はステップ３３２に続き、選択された対ＡおよびＢの組合せボリュームを計算する。
ステップ３３４において組合せアルゴリズムが入れられる。ここで、選択された対ＡおよびＢの組合せボリュームが親ボリュームの固定パーセンテージよりも小さいかどうかに関する判断が下される。もし小さくなければ、方法はステップ３３６に進んで、新しい対のサブボリュームＡおよびＢを選択する。
ステップ３３８におけるテストでは、すべての対のサブボリュームが先に選択されているかどうかを判断する。もしそうであればテストは「イエス」であり、システムはステップ３３９でテストを行なって、選択ボリュームがルートであるかどうかを判断する。もしルートボリュームでなければ、システムはステップ３３６に戻って新しいサブボリュームの対を選択する。もし選択ボリュームがルートボリュームであれば、システムはステップ３１０に戻って新しいオブジェクトを選択する。
もしテストステップ３３８を出るときにすべての対が先に選択されていなければ答えは「ノー」であり、新しく選択された対のサブボリュームがステップ３３２に送られて組合せボリュームを計算する。
その後ステップ３３２の後に３３４の組合せアルゴリズムが続く。ステップ３３４において、選択されたサブボリューム対の組合せボリュームが、親ボリュームの、予め定められた固定パーセンテージよりも小さいと判断された場合、テストの答えは「イエス」であり、ステップ３４０に入る。ここで、ボリュームＡがサブボリュームを有するかどうかを判断するテストが行なわれる。もしボリュームＡがサブボリュームを有するならば、テストの答えは「イエス」であり、ステップ３４２に入り、ここでボリュームＢを得るようボリュームＡが拡張される。
ステップ３４２の後、３４４においてボリュームＡのサブボリュームを組合せようとし、それによりシステムはステップ３３０に従って第１の対のサブボリュームＡおよびＢを選択するために戻る。
ステップ３４０に戻って、ボリュームＡがサブボリュームを有さないと判断されれば、ステップ３５０に入る。
ステップ３５０では、ボリュームＢがサブボリュームを有するかどうかに関する判断が下される。もし有するならば、方法はステップ３５２に進み、ボリュームＡを含むようボリュームＢが拡張される。
ステップ３５２の後、ステップ３５４において、第１の対のサブボリュームＡおよびＢを選択するステップ３３０に戻ることにより、ボリュームＢのサブボリュームを組合せようとする。
ステップ３５０のテストに戻って、ボリュームＢがサブボリュームを有さないと判断されれば、ステップ３６０に入り、それにより、そのサブボリュームとして含まれたボリュームＡおよびＢを備えた新しいボリュームが作成される。
その後方法はステップ３３６に戻って、新しい対のサブボリュームＡおよびＢを選択する。
このように、図７Ａおよび図７Ｂに示される詳細な論理フロー図に従って、複合構造のさまざまな部品の各々が組織的に境界ボリュームに変換され、その後、複合構造全体が境界ボリュームハイアラーキに変換されるまで、その元の部品およびサブアセンブリを連続的に表わす空間的に均衡した密な境界ボリュームハイアラーキを定めるよう処理される。
以上に述べたような境界ボリュームハイアラーキの作成はいくつかの速度増加エンハンスメントによってさらに改善することができる。
たとえば、新しく挿入されたボリュームと、親の他の子供とを比較することは常に必要であるが、他の兄弟を互いに比較する必要はないであろう。特に、新しいボリュームを挿入することによって親ボリュームが拡張しないならば、古い子供のうち組合せになり得るものはないと予想できる。
さらに、最も小さな子供が、親の、予め定められた固定パーセンテージよりも大きければ、子供を組合せにすることはそれらを大きくするだけであり、したがって古い子供のうち組合せられ得るものはない。
実際、親の、予め定められた固定パーセンテージの１／１０よりも大きな子供は一般的には結合せず、効率性のために無視してもよい。
さらに、新しいボリュームが古い子供と組合せになり得るならば、それはその子供の近くにあったに違いなく、したがって大きなマージン分、親を拡張していないに違いない。これは、他の古い兄弟が組合せになる可能性は低いことを意味する。
これらの上述のエンハンスメントは図８Ａから図８Ｃに関して理解されるように発明の方法の中に組込むことができる。
図８Ａを参照して、向上した境界ボリュームハイアラーキが開始ステップ４００に入れられる。複合構造の第１のオブジェクトはステップ４０２で選択される。ステップ４０４において、選択オブジェクトの境界ボリュームが計算される。ステップ４０６においてテストが行なわれてルートボリュームが存在するかどうかを判断する。もし存在しないならば、ステップ４０８において現在の選択ボリュームがルートボリュームにされる。
その後方法はステップ４１０へと続き、新しいオブジェクトを選択する。ステップ４１２において、すべてのオブジェクトが先に選択されていれば、４１４の最終ステップに到達する。しかしながら、ステップ４１２が、すべてのオブジェクトが先に選択されていないことを示せば、新しく選択されたオブジェクトがステップ４０４および４０６を通して送られる。ステップ４０６の後、４２０においてテストが行なわれてルートボリュームがサブボリュームを含むかどうかを判断する。もし含まないならば、ステップ４２２に入り、サブボリュームとして、古いルートボリュームと新しい選択ボリュームとを有する新しいルートボリュームが作成される。その後方法はステップ４１０に戻り、新しいオブジェクトを選択する。
ステップ４２０において、ルートボリュームがサブボリュームを有すると判断されれば、ステップ４２４に入り、ルートボリュームが、新しいボリュームＮを含み、かつそのサブボリュームとして新しいボリュームを加えるよう拡張される。
その後プロセスはステップ４２６に続き、ルートボリュームのサブボリュームを組合せようとする。
この組合せの試みは（図８Ｃの）ステップ４３０で開始し、ここでは、先に存在しているサブボリュームＭが第１に選択される。
次に、ステップ４３２において、選択されて新しく挿入されたサブボリュームＮの組合せボリュームが計算される。
ステップ４３２の後、ステップ４３４において、組合せサブボリュームが、親ボリュームの、予め定められた固定パーセンテージよりも小さいかどうかに関する判断が下される。もし小さくなければ、ステップ４３６に入り、先に存在している次のサブボリュームＭが選択される。この後ステップ４３８においてテストが行なわれて、先のサブボリュームすべてが選択されたかどうかを判断する。もし先のサブボリュームすべてが選択されていなければ、方法はステップ４３２に続き、選択されて新しく挿入されたサブボリュームＮの組合せボリュームを計算する。
前と同じように、ステップ４３２の後にはステップ４３４が続き、ここではステップ４３２からの組合せボリュームが、親ボリュームの、予め定められた固定パーセンテージよりも小さいかどうかを判断する。ここで、もし小さければステップ４５０に入り、サブボリュームＭがサブボリュームを有するかどうかを判断する。もしサブボリュームＭがサブボリュームを有すれば、ステップ４５２に入り、ボリュームＮを含むようボリュームＭが拡張される。その後方法はステップ４５４に進み、Ｍのサブボリュームを組合せようとし、スイッチ５２７は「Ｗ」の位置に設定される。このサブルーチンの後、テストステップ４６０に入り、Ｎが、先に存在していたサブボリュームと組合せになっているかどうかを判断する。ステップ４３８におけるテストによって、先のサブボリュームすべてが選択されていることが示されれば、テストステップ４６０にさらに入る。
ステップ４６０におけるテストにより、ボリュームＮが、先に存在していたサブボリュームと組合せになっていないことが示されれば、方法はスイッチ５２７まで進む。
しかし、テストステップ４６０において、Ｎが、先に存在していたサブボリュームと組合せになっていないと判断されれば、ステップ４６２におけるテストに入る。ここで、ボリュームＮの親ボリュームが、サブボリュームＮを含むことによって増加するかどうかを判断する。もし増加しないならば、方法はスイッチ５２７に戻る。
しかしながら、ステップ４６２において、Ｎの親が、サブボリュームＮを含むことによって増加すると判断されれば、ステップ４６４に入る。ステップ４６４では、親ボリュームの最も小さな子供が、親ボリュームの、予め定められた固定パーセンテージよりも小さいかどうかを判断する。もし小さくなければ、システムはスイッチ５２７に進む。しかしながら、もし予め定められた固定パーセンテージよりも小さければ、方法はステップ５００に進み、ここで第１の対のサブボリュームＡおよびＢが選択される。
ステップ４５０におけるテストに戻って、サブボリュームＮがサブボリュームを有さないと判断されれば、テストステップ５０２に入り、ここでボリュームＮがサブボリュームを有するかどうかを判断する。もしボリュームＮがサブボリュームを有するならば、ステップ５０４に入り、ボリュームＮはボリュームＭを含むよう拡張される。この後ステップ５０６が続き、ここでは、ボリュームＮのサブボリュームを組合せようとする。これはステップ４３０で始まるプロセスまで進み、スイッチ５２７は「Ｖ」位置に設定される。
５０２におけるテストにより、ボリュームＮがサブボリュームを有さないことが示されれば、ステップ５１０に入り、サブボリュームとしてＮおよびＭを備えた新しいボリュームが作成され、その後方法はステップ４６０に戻る。
ステップ５００に戻って、第１の対のサブボリュームＡおよびＢが選択されればプロセスはステップ５２０に入り、選択された対ＡおよびＢの組合せボリュームを計算する。
ステップ５２２において、ステップ５２０からの組合せボリュームが、親ボリュームの、予め定められた固定パーセンテージよりも小さいかどうかを判断する。もし小さくなければ、システムはステップ５２４に進み、ここで新しい対のサブボリュームＡおよびＢが選択される。
ステップ５２４の後、ステップ５２６におけるテストにより、すべての対が先に選択されているかどうかを判断する。もし選択されていれば、システムはスイッチ機能５２７に進む。スイッチ５２７はその入力からの論理フローを、４つの出力論理方向Ｘ、Ｗ、ＶおよびＡのうち１つに経路づける。ここでは「Ｘ」位置に示されるスイッチ５２７の位置は、ここに記載されたようなシステムコマンドによって定められる。ここで、スイッチ５２７は「Ｘ」位置にあり、プロセスはステップ４１０に戻って新しいオブジェクトを選択する。しかしながらもしすべての対が先に選択されていなければ、新しい選択対がステップ５２０に送られて、ここで選択対の組合せボリュームが計算される。
既に説明したように、ステップ５２０の後にはステップ５２２が続き、ここではステップ５２０で計算された組合せボリュームが、最新のボリュームの、予め定められた固定パーセンテージよりも小さいかどうかを判断する。もし小さくなければ、システムはステップ５２４に進み、新しい対のサブボリュームＡおよびＢを選択する。
しかしながら、もしステップ５２２において、組合せボリュームが、親ボリュームの、予め定められた固定パーセンテージよりも小さいと判断されれば、ステップ５３０に入る。ステップ５３０において、ボリュームＡがサブボリュームを有するかどうかに関する判断が下される。もしボリュームＡがサブボリュームを有するならば、プロセスはステップ５３２に進み、ここでボリュームＡはボリュームＢを含むよう拡張される。その後方法はステップ５３４へと続き、ボリュームＡのサブボリュームを組合せようとし、それによりステップ４３０に入り、先に存在していた第１のサブボリュームＭを選択する。さらに、スイッチ５２７は「Ａ」位置に設定される。
しかしながらステップ５３０において、ボリュームＡがサブボリュームを有さないと判断されれば、ステップ５４０に入る。ステップ５４０において、ボリュームＢがサブボリュームを有するかどうかに関する判断が下される。もしボリュームＢがサブボリュームを有すれば、システムはステップ５４２に進み、ここでボリュームＢはボリュームＡを含むよう拡張される。その後方法はステップ５４４に入り、ステップ４３０に進み、かつ先に存在していた第１のサブボリュームＭを選択することによってボリュームＢのサブボリュームを組合せようとする。さらに、スイッチ５２７が「Ａ」位置に認定される。
もしステップ５４０におけるテストにより、ボリュームＢがサブボリュームを有さないことが示されれば、ステップ５６０に入り、そのサブボリュームとしてボリュームＡおよびＢを有する新しいボリュームが作成される。その後方法はステップ５２４に戻り、新しい対のサブボリュームＡおよびＢを選択する。
したがって、図８Ａから図８Ｃに示される詳細な論理フロー図には、図７Ａおよび図７Ｂに関して記載された詳細なプロセスに優る多くの速度エンハンスメントが含まれることが理解されるだろう。
要約すると、空間的に均衡した密な境界ボリュームハイアラーキを作成して複合構造のコンピュータ生成ディスプレイに用いるための好ましい方法が詳細に説明された。
この発明の好ましい実施例が詳細に説明されたが、多くの変更および変形がこの発明の真の精神および範疇内で可能であることが明らかであるはずである。
たとえば、好ましい実施例は、境界ボックスとしてその個々の部品またはサブアセンブリをモデル化することによって個々のオブジェクトに境界ボリュームを作成するための特定的な方法論を示すが、ここに権利主張されて説明されたこの発明の方法はいかなる境界ボリュームの方法論と共に用いるように適合されることが明らかであるはずである。
【図１】
0003721419.tif 000002
【図２】
0003721419.tif 000003
【図３Ａ】
0003721419.tif 000004
【図３Ｂ】
0003721419.tif 000005
【図３Ｃ】
0003721419.tif 000006
【図４Ａ】
0003721419.tif 000007
【図４Ｂ】
0003721419.tif 000008
【図４Ｃ】
0003721419.tif 000009
【図５】
0003721419.tif 000010
【図６Ａ】
0003721419.tif 000011
【図６Ｂ】
0003721419.tif 000012
【図６Ｃ】
0003721419.tif 000013
【図６Ｄ】
0003721419.tif 000014
【図６Ｅ】
0003721419.tif 000015
【図７Ａ】
0003721419.tif 000016
【図７Ｂ】
0003721419.tif 000017
【図８Ａ】
0003721419.tif 000018
【図８Ｂ】
0003721419.tif 000019
【図８Ｃ】
0003721419.tif 000020