(57)【特許請求の範囲】
【請求項１】
実世界のオブジェクトを表すコンピュータ支援型設計モデルをレンダリングするためのコンピュータ実施方法であって、
前記コンピュータ支援型設計モデルの境界表現データ構造を構成するステップであって、前記境界表現データ構造は、面を定義するデータから成るトポロジ・データを格納する、該ステップと、
前記面のパラメータ空間を表現するデータ構造を構成するステップと、
前記パラメータ空間を複数のセルに分解するステップと、
各セルについて、空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルのうち１つとして前記セルを指定することによって、前記セル内の前記面の存在を示すステップと、
前記複数のセルをテキスチャ構造のデータにエンコードするステップと、
前記テキスチャ構造のデータを、前記面をコンピュータのモニタ上にレンダリングするグラフィックス・プロセッシング・ユニットに送信するステップと、
を備えたことを特徴とするコンピュータ実施方法。
【請求項２】
前記稜線タイプのセルおよび前記頂点タイプのセルが１つまたは複数のトリム・サーフェスの表現を参照し、前記トリム・サーフェスが前記面の隣接面に対応することを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項３】
前記面の基礎サーフェス、前記面のｕｖパラメータ空間の境界ボックス、および前記面の３Ｄ境界ボックスを格納するステップと、
前記グラフィックス・プロセッシング・ユニットへ送信し前記グラフィックス・プロセッシング・ユニットによって処理するために、前記１つまたは複数のトリム・サーフェスを該トリム・サーフェスのテキスチャにてエンコードするステップと、
をさらに備えたことを特徴とする請求項２に記載のコンピュータ実施方法。
【請求項４】
前記トリム・サーフェスの各々が、平面、円筒、円錐、球、トーラス、ＮＵＲＢＳサーフェス、およびサポートされていないサーフェスに対する標準サーフェスのうち１つとして表現されることを特徴とする請求項２に記載のコンピュータ実施方法。
【請求項５】
前記テキスチャ構造を受け取ったときに、前記グラフィックス・プロセッシング・ユニットがレイ・キャスティングを行って前記面をレンダリングするステップであって、前記グラフィックス・プロセッシング・ユニットは、前記テキスチャ構造および１つまたは複数のトリム・サーフェス表現を使用し、前記１つまたは複数のトリム・サーフェス表現が前記テキスチャ構造にてエンコードされた前記複数のセルによって参照されることをさらに備えたことを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項６】
光線が前記面の基礎サーフェスと交差するか否かを判定することによって点分類プロセスを実行するステップと、
前記光線が前記基礎サーフェスと交差する場合には、対応する画素をレンダリングするステップと、
をさらに備えたことを特徴とする請求項５に記載のコンピュータ実施方法。
【請求項７】
中央演算装置が前記面の存在をセルのタイプとしてエンコードし、
（ｉ）前記空のタイプのセルは、前記空のタイプのセルに対応する前記パラメータ空間領域と交差する前記面の部分が存在しないことを示し、
（ｉｉ）前記完全タイプのセルは、前記完全タイプのセルの全領域が前記面の素材を含むことを示し、
（ｉｉｉ）稜線タイプのセルは、前記面の隣接面に対応するトリム・サーフェスへの参照を格納し、
（ｉｖ）頂点セルは、前記面の２つの隣接面に対応する２つのトリム・サーフェスへの参照を格納する、
ことを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項８】
前記複数のセルは、セル・データ構造に格納され、格子構造および木データ構造のうち１つとして実装されることを特徴とする請求項１に記載のコンピュータ実施方法。
【請求項９】
３次元モデルを格納するデータ記憶システムに動作可能に接続された中央処理装置（ＣＰＵ）と、
前記ＣＰＵに動作可能に接続され、グラフィックス・プロセッシング・ユニット（ＧＰＵ）にデータを送信して、テセレーションなく、前記３次元モデルを前記ＧＰＵにレンダリングさせるように前記ＣＰＵを構成するための命令を含む、データ記憶メモリであって、
前記ＣＰＵからトリム状態テキスチャを受け取るステップであって、
前記トリム状態テキスチャは複数のセルをテキスチャ構造のデータにエンコードすることにより構成され、
トポロジ面のパラメータ空間を分解することで前記複数のセルが作成され、
各セルは空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルとして指定される、該ステップと、
トリム・サーフェスのテキスチャを前記ＣＰＵから受け取るステップであって、
前記トリム・サーフェスが、前記トポロジ面の隣接面を表し、および、
前記ＣＰＵが、前記ＧＰＵに送信するために前記トリム・サーフェスを前記トリム・サーフェスの前記テキスチャでエンコードする、該ステップと、
光線と前記トポロジ面に対応するサーフェスとの交差によって判定されるように前記トリム状態テキスチャおよび前記トリム・サーフェスの前記テキスチャでエンコードしたデータを用いて、前記面をレンダリングするレイ・キャスティング・プロセスを実施するステップと、
によって、前記３次元モデルを前記ＧＰＵにレンダリングさせることを特徴とするコンピュータ支援型設計システム。
【請求項１０】
前記空のタイプのセルは、前記空のタイプのセルに対応するパラメータ空間領域と交差する前記トポロジ面の部分が存在しないことを示し、
前記完全タイプのセルは、前記完全タイプのセルの全領域が前記トポロジ面の素材を含むことを示し、
前記稜線タイプのセルおよび前記頂点タイプのセルは、前記トポロジ面の隣接面に対応する１つまたは複数のトリム・サーフェスの表現を参照する
ことを特徴とする請求項９に記載のコンピュータ支援型設計システム。
【請求項１１】
前記レイ・キャスティング・プロセスは断片シェーダを利用して、前記光線と前記トポロジ面に対応する前記サーフェスとの交点を計算することを特徴とする請求項９に記載のコンピュータ支援型設計システム。
【請求項１２】
前記トリム状態テキスチャは、前記トリム・サーフェスをエンコードする前記トリム・サーフェスの前記テキスチャを参照することを特徴とする請求項９に記載のコンピュータ支援型設計システム。
【請求項１３】
前記トリム・サーフェスが、平面、円筒、円錐、スプライン、トーラス、およびサポートされていないサーフェスに対する標準サーフェスのうち１つとして表現されることを特徴とする請求項１１に記載のコンピュータ支援型設計システム。
【請求項１４】
前記複数のセルは、セル・データ構造に格納され、格子構造および木データ構造のうち１つとして実装されることを特徴とする請求項９に記載のコンピュータ支援型設計システム。
【請求項１５】
コンピュータに、グラフィックス・プロセッシング・ユニット（ＧＰＵ）にデータを送信させ、テセレーションなく、３次元モデルを前記ＧＰＵにレンダリングさせるように中央処理装置（ＣＰＵ）を構成させる命令を含む、コンピュータ読取可能データ記憶媒体であって、
前記ＣＰＵからトリム状態テキスチャを受け取るステップであって、
前記トリム状態テキスチャは複数のセルをテキスチャ構造のデータにエンコードすることにより構成され、
トポロジ面のパラメータ空間を分解することで前記複数のセルが生成され、
各セルは空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルとして指定される、該ステップと、
トリム・サーフェスのテキスチャを前記ＣＰＵから受け取るステップであって、
前記トリム・サーフェスが、前記トポロジ面の隣接面を表し、および、
前記ＣＰＵが、前記ＧＰＵに送信するために前記トリム・サーフェスを前記トリム・サーフェスの前記テキスチャでエンコードする、該ステップと、
光線と前記トポロジ面に対応するサーフェスとの交差によって判定されるように前記トリム状態テキスチャおよび前記トリム・サーフェスの前記テキスチャでエンコードしたデータを用いて、前記トポロジ面をレンダリングするレイ・キャスティング・プロセスを実施するステップと、
によって、３次元モデルを前記ＧＰＵにレンダリングさせることを特徴とするコンピュータ読取可能データ記憶媒体。
【請求項１６】
前記ＣＰＵが前記面の存在をセルのタイプとしてエンコードし、
（ｉ）前記空のタイプのセルは、前記空のタイプのセルに対応するｕｖパラメータ空間領域と交差する前記トポロジ面の部分が存在しないことを示し、
（ｉｉ）前記完全タイプのセルは、前記完全タイプのセルの全領域が前記トポロジ面の素材を含むことを示し、
（ｉｉｉ）稜線タイプのセルは、前記トポロジ面の隣接面に対応するトリム・サーフェスへの参照を格納し、
（ｉｖ）頂点セルは、前記トポロジ面の少なくとも２つの隣接面に対応する少なくとも２つのトリム・サーフェスへの参照を格納することを特徴とする請求項１５に記載のコンピュータ読取可能データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）に関し、より詳細には、高品質なレンダリングに関する。
【背景技術】
【０００２】
本出願は、２０１１年１月１４日出願の特許文献１の利益を主張する。当該出願の教示事項全体は引用により本明細書に取り込まれる。
【０００３】
ＣＡＤ（Ｃｏｍｐｕｔｅｒ−ａｉｄｅｄ  ｄｅｓｉｇｎ；以下、ＣＡＤ）ソフトウェアにより、ユーザは複雑な三次元（３Ｄ）モデルを構築し操作することができる。幾つかの様々なモデリング技法を用いて３Ｄモデルを生成することができる。これらの技法には、ソリッド・モデリング、ワイヤフレーム・モデリング、およびサーフェス・モデリングがある。ソリッド・モデリング技法では、トポロジカルな３Ｄモデルが提供され、当該３Ｄモデルは、相互に接続されたトポロジカルなエンティティ（例えば、頂点、稜線、および面）の集合である。トポロジカルなエンティティは、対応する補助的な幾何エンティティ（例えば、点、トリム・カーブ、およびトリム・サーフェス）を有する。トリム・サーフェスは、稜線で画されるトポロジカルな面に対応する。他方、ワイヤフレーム・モデリング技法を用いてモデルを単純な３Ｄの直線の集合として表現することができ、サーフェス・モデリングを用いてモデルを外部のサーフェスの集合として表現することができる。ソリッド・モデリング技法を用いたＣＡＤモデリングは、高品質なレンダリングを必要とする産業デザインおよび他のアプリケーションに広く用いられている。
【０００４】
ソリッド・モデルは一般にＢ−ｒｅｐ（ｂｏｕｎｄａｒｙ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ、境界表現）により表される。Ｂ−ｒｅｐは、モデルのトポロジを維持する相互参照（ｉｎｔｅｒ−ｒｅｆｅｒｅｎｃｅ）を有するトリム・パラメトリック・サーフェス（ｔｒｉｍｍｅｄ  ｐａｒａｍｅｔｒｉｃ  ｓｕｒｆａｃｅ）から成る。例えば、隣接面で共有される稜線は、両方の面に対する参照（ハーフ・エッジまたはエッジ・ユース（ｅｄｇｅ−ｕｓｅ）と呼ばれることもある）を有する。
【０００５】
次に図１を参照すると、立方体１００のＢ−ｒｅｐトポロジ構造の例が示されている。ハーフ・エッジｅ１１は、典型的には、ｅ１１の関連する面ｆ１、ｅ１１の次のハーフ・エッジｅ１２、およびｅ１１の反対側のハーフ・エッジｅ２１への参照を格納する。図１は、ハーフ・エッジｅ１１が与えられると、ｅ１１の反対側のハーフ・エッジｅ２１を取ることによってｅ１１の隣接面ｆ２を特定できることを示す。
【０００６】
デザイン・エンジニアは３Ｄ  ＣＡＤシステムの典型的なユーザである。デザイン・エンジニアは、３Ｄモデルの物理的および美的な態様を設計し、３Ｄモデリング技法に熟練している。デザイン・エンジニアは部品を作成し、当該部品を１つまたは複数のサブアセンブリおよびアセンブリに組み立てることができる。デザインの過程においては、モデルを実世界のオブジェクトとして提供するために、３Ｄモデルの高品質なレンダリングがしばしば望まれる。
【０００７】
従来式のレンダリング方法では、モデルをＣＰＵ（ｃｏｍｐｕｔｅｒ−ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ；以下、ＣＰＵ）メモリに格納されたテセレーション（ｔｅｓｓｅｌｌａｔｉｏｎ）に前処理し、当該テセレーションをレンダリングに使用する。ＧＰＵ（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ；以下、ＧＰＵ）がＣＡＤシステムの共通の構成要素となったので、ソリッド・モデルを対話的にレンダリングするには、ＣＰＵを用いてモデルをテセレートし、次いでテセレーションをＧＰＵに送信してさらに処理することが必要であった。
【０００８】
サーフェスのパッチをトリミングすると、トリミング・ループに沿ったきめ細かいサンプリングのためテセレーションが複雑になる可能性がある。このサンプリングは、トリミング・ループに沿った受け入れ可能なテセレーションの品質を得るために必要である。このプロセスは、時間を消費するものであり、テセレーションは大量のメモリを必要とする。例えば、経験的な証拠によれば、テセレートされたモデル表現には一般に、境界表現よりも１桁多いメモリが必要であることが示されている。さらに、（例えば、クラウド・コンピューティングのコンテキストでの）クライアントのグラフィック・アプリケーションの出現により、インターネットで送信されるモデルのサイズを削減することが求められている。
【０００９】
送信されるモデルのサイズを削減したいという要求が、トリム・パラメトリック・サーフェスをオンザフライでテセレートするアプローチの動機付けとなった。非特許文献１では、ＣＰＵで実装されるアプローチが論じられている。一方、非特許文献２および非特許文献３には、ＧＰＵを利用するアプローチが記載されている。
【００１０】
非特許文献２には、パッチを加重バイキュービック・ベジエ・パッチに細分割することによりトリムＮＵＲＢＳ（ｎｏｎ−ｒａｔｉｏｎａｌ  ｂｓｐｌｉｎｅ；以下、ＮＵＲＢＳ）パッチをテセレートすることが記載されている。当該トリムＮＵＲＢＳパッチは、テキスチャとしてＧＰＵに渡され、直接評価される。トリミング・テキスチャを用いてトリミングが実施される。トリミング・テキスチャは、ＧＰＵ上で実装される方法を用いて生成される。トリム・テキスチャは、サーフェスのｕｖ領域において各トリム・ループの多項近似をレンダリングすることにより計算される。次に、トリム・テキスチャが、（外側ループの外またはホール内部の何れかにある）面境界の外部にある画素を特定するためのマスクとして使用される。
【００１１】
ＧＰＵ上のテセレーションでは制御メッシュを前処理しＣＰＵメモリに格納する必要はないかもしれず、通信ネットワークで送信されるデータ量は削減されるが、サーフェスは依然としてテセレーション技法により近似されている。さらに、一般には、ユーザがモデルを拡大するとき、より細かい近似に到達するにはテセレーションを更新しなければならない。
【００１２】
ＧＰＵ技術がより進化すると、モデルをＧＰＵで直接レンダリングすることが、高品質であるだけでなく、計算速度の点で優位となる。ソリッド・モデルを直接レンダリングし、そのトリム・サーフェスをテセレーション前処理なしにＧＰＵで直接描画し、一般に必要なときにモデルをレンダリングする方法が説明されている（例えば、後述の非特許文献３を参照）。
【００１３】
モデルをテセレートせずにソリッド・モデルを直接ＧＰＵでレンダリングすることには利点がある。当該利点には、非限定的な例として、画素レベルでのレンダリング品質、少ないメモリ要件、および少ない前処理要件がある。しかし、最初にテセレーションを生成せずにソリッド・モデルをＧＰＵで直接レンダリングする既存の解決法の主な課題の１つは、トリム・カーブの近似に起因して面の間にクラック／ギャップのアーチファクトが現れることである。これらの望ましくないアーチファクトにより、ＣＡＤシステムにおける直接的なＧＰＵレンダリングの利用が妨げられ、または、当該利用の効果が限定されてしまう。
【００１４】
ＧＰＵレイ・キャスティング法はサーフェスのレンダリングにも利用されている。かかる方法には、暗黙的代数サーフェス（ｉｍｐｌｉｃｉｔ  ａｌｇｅｂｒａｉｃ  ｓｕｒｆａｃｅ）（非特許文献４を参照）とＣＳＧ（ｃｏｎｓｔｒｕｃｔｉｖｅ  ｓｏｌｉｄ  ｇｅｏｍｅｔｒｙ）プリミティブ（非特許文献５を参照）のレンダリングが含まれる。これらの方法では、１組の近似三角形ではなくサーフェスの多項表現の観点から直接レンダリングする。その利点は、テセレーションのレンダリングと比較して結果が高品質であることと、メモリ利用が削減されることである。
【００１５】
非特許文献６、および非特許文献７のように、パラメトリック・サーフェス／トリム・サーフェスをＧＰＵで直接にレンダリングするための他のレイ・キャスティング技法が提案されている。これらの技法では、断片シェーダ（画素シェーダとも呼ばれる）を使用して、光線のトリム・パラメトリック・サーフェスとの交点またはその欠落を計算する。かかる技法では、画素レベルの解像度までトリム・サーフェスをシームレスにレンダリングすることができる。
【００１６】
しかし、トリム・パラメトリック・サーフェスのレイ・キャスティングにはさらなる難点がある。なぜならば、数値解の抽出を要する関与する多項式が高次になる可能性があり、サーフェスのトリミングのために、点分類アルゴリズムが必要となるからである。非特許文献６では、２変数のニュートン反復法を用いて光線パッチ交差（ｒａｙ  ｐａｔｃｈ  ｉｎｔｅｒｓｅｃｔｉｏｎ）問題を解くＧＰＵベースのＮＵＲＢＳ（ｎｏｎ−ｕｎｉｆｏｒｍ  ｒａｔｉｏｎａｌ  ｂ−ｓｐｌｉｎｅ）レイ・キャスティング実装が提案されている。解への収束を実現するために、非特許文献６では、サーフェスを前処理段階でサブパッチに細分割し、各サブパッチの凸包を計算する。次に当該凸包を、レンダリング用の境界ボリューム（ｂｏｕｎｄｉｎｇ  ｖｏｌｕｍｅ）として使用し、数値反復に対する良好な初期値を見つけるために利用する。
【００１７】
サーフェスのトリミングにより、テセレーションのアプローチとレイ・キャスティングのアプローチの両方に対して課題が生じうる。基本的な問題は、所与の点が所与の面の内部にあるかまたは所与の面の外部にあるかを分類することであり、内部にある場合は、当該点をレンダリングすべきであり、外部にある場合は、当該点を破棄すべきである。前に論じたように、トリミング・テキスチャを使用することができる。かかるテキスチャは、例えば、所与の面の外部に対しては黒の画素を、所与の面の内部に対しては白の画素を格納する単純なバイナリ・テキスチャである。断片シェーダは次に、画素に対応するテキスチャ値が黒かどうかをチェックし、黒である場合は当該画素を用いた動作はこれ以上行わない。この方法の問題は、当該方法により画素化アーチファクト（ｐｉｘｅｌｉｚａｔｉｏｎ  ａｒｔｉｆａｃｔ）が発生することである。
【００１８】
図２Ａおよび２Ｂは、アヒルの目の周囲にトリミング・ループによって、アヒルのモデルのトリミング・テキスチャ間引き（ｄｅｃｉｍａｔｉｏｎ）に起因する画素化アーチファクトを示す。図２Ａは、アヒルのモデルの全体図を示し、図２Ｂはアヒルの目に近寄った図を示す。このテキスチャは基本的にｕｖ領域を画素化したものであり、したがって、サーフェスのｕｖ領域を３Ｄ空間にマッピングすることで顕著な効果をもたらすことができる。トリミング・テキスチャをより高い解像度で再計算することには、アプリケーションが低速になりより多くのＧＰＵメモリが必要になるという欠点がある。
【００１９】
より正確な方法では、トリミング・テキスチャの画素化アーチファクトを克服し、直接的にトリム・カーブを点分類に対して使用する。非特許文献６は、断片シェーダにおいてトリミングを直接実施するベジエ・クリッピング・アルゴリズムを繰返し実行する。非特許文献７では、ｕｖ曲線を単色のセグメントに前処理し、加速化構造を二分法と組み合わせて用いて点がトリミング・ループ内部にあるか否かを迅速に特定することによって、当該方法を改良する。
【００２０】
これらのより正確なトリミング方法の結果として、より精度が高く滑らかなサーフェスの境界と交点が得られる。しかし、非特許文献７に記載されているように、依然として隣接面のトリム・カーブに沿ってギャップが残存する。この理由は、サーフェスのｕｖ領域内のトリム・カーブが近似であるからであり、非特許文献８で指摘されているように、トリム・カーブを正確に表現することは困難な作業である。したがって、同一のカーブの２つの近似の間の形状にギャップが内在する。非特許文献９は、サーフェス・パッチ間のギャップを埋める所謂「太境界線（ｆａｔ  ｂｏｒｄｅｒ）」を追加することによって、リアルタイムなテセレーション・レンダリングのコンテキストにおけるこの問題を克服しようとする。しかし、このようにギャップを埋めると、追加の形状が形成され、性能が低下し望ましくないアーチファクトが生ずるおそれがある。  
ソリッド・モデルをトリム・サーフェスとしてＧＰＵでレンダリングすることに関する既存の解決策の主な問題の１つは、トリム・カーブの近似に起因して、面の間にクラック／ギャップのアーチファクトが現れることである。トリム・カーブの表現を使用し、トリム・テキスチャを以前の技法と同様に使用せずにトリミングを実施したとしても、ギャップが依然としてソリッド・モデルの隣接面の間に存在する（非特許文献７を参照）。  
このように、現在の最新の技法の欠点には、最初にモデルをテセレートせずにモデルをＧＰＵで直接レンダリングするときのクラック／ギャップのアーチファクトの存在がある。これらの内在的なクラック／ギャップは、トリム・カーブを近似することにより生ずる。この欠点および他の欠点を解決するシステムまたは方法は、不要なクラック／ギャップのアーチファクトのない３Ｄモデルの高品質なレンダリングを可能とすることによって、現在の最新のコンピュータ化されたシステムを大幅に強化するはずである。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】米国仮特許出願第６１／４３３，００１号明細書
【非特許文献】
【００２２】
【非特許文献１】M. Guthe, J. Meseth, and R. Klein; Fast and memory efficient view-dependent trimmed NURBS rendering; Pacific Conference on Computer Graphics and Applications, p. 204 (2002)
【非特許文献２】M. Guthe, A. Balazs., and R. Klein; GPU-based trimming and tessellation of NURBS and T-Spline surfaces; ACM Trans. Graph. 24, 3, o. 1016 (2005)
【非特許文献３】A. Krishnamuthy, R. Khardekar, and S. McMains; Direct evaluation of NURBS curves and surfaces on the GPU; ACM Symposium on Solid and Physical Modeling, ACM, p. 329 (2007)
【非特許文献４】C. T. Loop, and J. Blinn; Real-time GPU rendering of piecewise algebraic surfaces; ACM Trans. Graph. 25, 3, 664 (2006)
【非特許文献５】F. Romeiro, L. Velho, L., and L. H. De Figueiredo; Scalable GPU rendering of csg models; Computers & Graphics 32, 5, p. 526 (2008)
【非特許文献６】H. F. Pabst, J. Springer, A. Schollmeyer, R. Lenhardt, C. Lessig, and B. Froehlich; Ray casting of trimmed NURBS surfaces on the GPU, Interactive Ray Tracing 2006, IEEE Symposium; p.151 (2006)
【非特許文献７】A. Schollmeyer and B. Frohlich; Direct trimming of NURBS surfaces on the GPU, ACM Trans. Graph. 28 (July), 47:1; (2009)
【非特許文献８】X. Song, T.W. Sederberg, J. Zheng, R.T. Farouki, and J. Hass; Linear perturbation methods for topologically consistent representations off ree-form surface intersections; Computer Aided Geometric Design 21, p. 303 (2004)
【非特許文献９】A Balazs. M. Guthe, and R. Klein writing in Fat borders: Gapfilling for efficient view-dependent LOD NURBS rendering; Computers and Graphics 28,1(Feb.), p.79 (2004)
【非特許文献１０】M. de Berg, O.Cheong, M.Van Kreveld, and M.Overmars; Computational Geometry, Algorithms and Applications, 3rd ed. Springer, New York; (2008)
【発明の概要】
【課題を解決するための手段】
【００２３】
本発明の例示的な実施形態を、ソリッドＣＡＤ（Ｃｏｍｐｕｔｅｒ−ａｉｄｅｄ  ｄｅｓｉｇｎ）モデルをＧＰＵで直接レンダリングするための方法、または、対応する製品、データ記憶媒体、または装置として実装してもよく、当該実施形態が、ＣＡＤモデルの境界表現データ構造を構築する実世界のオブジェクトを表現するＣＡＤモデルが与えられると、面のパラメータ空間を表すデータ構造を構築し、当該パラメータ空間を幾つかのセルに分解することを含んでもよい。当該データ構造は、面を定義するデータから成るトポロジ・データを格納する。
【００２４】
セルごとに、面が当該セルに存在することを、当該セルが空タイプのセル、完全タイプのセル、稜線タイプのセル、または頂点タイプのセルであることを示すことによって指定する。当該セルはテキスチャ構造にエンコードされ、当該テキスチャ構造がＧＰＵ（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）に送信され、ＧＰＵでさらなる処理により面をコンピュータのモニタ上にレンダリングする。
【００２５】
実装形態が、１つまたは複数のトリム・サーフェスの表現を参照する稜線タイプのセルおよび頂点タイプのセルを含んでもよく、上記トリム・サーフェスは面の隣接面に対応する。すなわち、面の基礎サーフェス、当該面のｕｖパラメータ空間境界ボックスを格納するステップと、トリム・サーフェスをトリム・サーフェス・テキスチャにおいてエンコードし、ＧＰＵに送信してＧＰＵにより処理するステップとを含んでもよい。さらに、トリム・サーフェスを解析のため平面、円筒、円錐、球、トーラス、ＮＵＲＢＳサーフェス、または汎用サーフェスとして表現してもよい。テキスチャ構造を受け取ると、ＧＰＵはレイ・キャスティング処理を実施して、テキスチャ構造および１つまたは複数のトリム・サーフェス表現を用いて面をレンダリングする。当該１つまたは複数のトリム・サーフェス表現はテキスチャ構造においてエンコードされたセルにより参照される。
【００２６】
他の実装形態には、光線が面の基礎サーフェス（ｕｎｄｅｒｌｙｉｎｇ  ｓｕｒｆａｃｅ）と交差するかどうかを判定し光線が交差する場合には対応する画素をレンダリングする、点分類プロセスを含めてもよい。さらに、ＣＰＵは、面の存在をセルのタイプとしてエンコードする。この場合、当該タイプは、（ｉ）面のどの部分も当該セルに対応するパラメータ空間領域と交差しない、（ｉｉ）当該セルの領域全体が面の素材を含む、（ｉｉｉ）隣接面に対応するトリム・サーフェスへの参照が格納されている、および（ｉｖ）隣接面に対応する２つのトリム・サーフェスへの参照が格納されていることを示す。さらに、当該セルはセル・データ構造に格納される。当該データ構造は、グリッド構造または木データ構造として実装してもよい。
【００２７】
本発明の１つまたは複数の実施形態の詳細を、添付図面および下記の発明を実施するための形態にて説明する。本発明の他の特徴、目的、および利点は、発明を実施するための形態、添付図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００２８】
【図１】立方体のＢ−ｒｅｐ構造を示す図である。
【図２Ａ】画素化アーチファクトを示す図である。
【図２Ｂ】画素化アーチファクトを示す図である。
【図３】面の表現を示す図である。
【図４Ａ】和頂点（ｕｎｉｏｎ  ｖｅｒｔｅｘ）を示す図である。
【図４Ｂ】積頂点（ｉｎｔｅｒｓｅｃｔｉｏｎ  ｖｅｒｔｅｘ）を示す図である。
【図５Ａ】セル・データ構造を示す図である。
【図５Ｂ】セル・データ構造を示す図である。
【図６Ａ】一実施形態における分類の問題を示す図である。
【図６Ｂ】一実施形態における分類の問題を示す図である。
【図７Ａ】一実施形態における画素単位の精度を示す図である。
【図７Ｂ】一実施形態における画素単位の精度を示す図である。
【図７Ｃ】一実施形態における画素単位の精度を示す図である。
【図８】本発明の諸実施形態が実装されるコンピュータ・システムの略図である。
【発明を実施するための形態】
【００２９】
以上のことは、添付図面で示すように、以下の本発明の例示的な実施形態のより具体的な説明から明らかになろう。添付図面では、同様な参照番号は様々な図面を通じて同じ部分を指す。図面は、本発明の諸実施形態の説明を重視して、必ずしも正しい縮尺で描かれてはいない。
【００３０】
本発明は、レンダリングにおいてクラックおよびギャップを生ずることのない、ＣＡＤ（Ｃｏｍｐｕｔｅｒ−ａｉｄｅｄ  ｄｅｓｉｇｎ）モデルの高品質なレンダリングを提供する。本発明は、トリム・カーブの形状を直接的に使用するのではなく、モデルの境界表現を介して利用できるトポロジ情報を利用する。
【００３１】
本発明は、ソリッド・モデルの面の一意な表現を組み合わせる。当該表現は、テキスチャとしてエンコードされてＧＰＵ（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）に渡される。（画素ごとに色属性および他の属性を計算し、ＧＰＵで並列に画素を処理できる）断片シェーダは、面の境界ボックスを、基礎サーフェスのパラメータおよびエンコードされたテキスチャとともに入力として受け取る。断片シェーダ法は、面の表現を利用して、レンダリングすべきサーフェス領域を特定する。本発明の実装を用いると、クラック／ギャップのアーチファクトのないモデルの高品質なレンダリングを、対話的な速度で実現することができる。
【００３２】
さらに、本発明では、レイ・キャスティング計算を行ってＣＡＤモデルをレンダリングする。レイ・キャスティング計算は、断片シェーダにより実行され、境界ボックスに当たる光線が基礎サーフェスに当たるかどうかをチェックする。当該光線が当該サーフェスと交差する場合は、点分類プロセスが、その点がサーフェス表現（複数可）により定義される領域内にあるかどうかをチェックする。非特許文献２および非特許文献７に記載の分類方法は、それぞれトリミング・テキスチャおよびトリミングｕｖ曲線を利用するが、これらの分類方法と異なり、本発明は、稜線に沿った隣接面を利用して、点が現在操作されている面の内部または外部にあるかどうかを特定する点分類方法を実装する。
【００３３】
本発明は、トリミング・ループの新たな表現を導入し、この新たな表現を点分類プロセスで使用する。一般に、トリム・カーブはパラメトリックな代数表現を有さず、したがって、ＣＡＤシステムにおいては一般に近似される。しかし、トリム・カーブを２つのサーフェス、即ち、一方が現在処理されている面に対応し他方が隣接面に対応する２つのサーフェスの交点として考えることもできる。さらに、隣接サーフェス（例えば、稜線に対する１つの隣接サーフェスと、３つの稜線が出会う頂点に対する２つの隣接サーフェス）、および現在操作されている面に対するその方向に、Ｂ−ｒｅｐ構造のトポロジを通じてアクセスすることができる。したがって、交差するサーフェスへの参照を格納することによって、トリミング・ループの近傍における点分類問題が、サーフェスのどちら側に点が存在しサーフェスのどちら側がｕｖ領域の２Ｄ分類から３Ｄ点分類へ変換されるかに関して分類を行うことにより、解決される。さらに、本発明の分類のクエリの多くが、分類が直接的である単純な分析サーフェスに対して行われる。
【００３４】
面のトリミング・ループは、本質的に正確でないトリム・カーブでエンコードされず、トリム・サーフェスでエンコードされる。さらに、本発明ではサーフェスの分析表現（例えば、平面、円筒、円錐、球、トーラス）を広く利用する。当該分析表現は、スプラインよりも計算やエンコードが容易である。サーフェスのこれらの分析表現は、大部分のサーフェス表現を、最新のＣＡＤシステムを用いて設計された典型的なモデルで構成する。
【００３５】
本発明の一実施形態では、２つの段階、即ち、ＣＰＵ前処理段階と断片シェーダから実行されるＧＰＵ段階が実装される。ＣＰＵ段階では、各面が当該面のループに対するデータ構造、当該面のｕｖ境界ボックスおよび３Ｄ境界ボックスを含む、当該面の基礎サーフェスおよび他のパラメータ、ならびに色のような視覚化に必要な他の属性とともに、ＣＰＵメモリに格納される。面パラメータ（ｕｖ）空間はセルに分解され、各セルは、空（面のどの部分も当該セルと交差しないことを意味する）、完全（セル全体が面の素材を含むことを意味する）であることができ、または、稜線もしくは頂点を含むことができる。稜線または頂点を含むセルに対しては、セル・データ構造が、ループの稜線または頂点の起点となる１つまたは２つの隣接面（１つ目は稜線のセルに対して、２つ目は頂点のセルに対して）に対応する１つまたは２つのトリム・サーフェスに対する参照を格納する。セル・データ構造を、パラメータ空間に対する規則的な格子として、または、空、完全、稜線および頂点のセルが木の葉である４分木を用いて、実装することができる。前処理段階では、面表現とセル・データ構造が構築され、セル・データ構造が面ごとにトリム状態テキスチャでエンコードされる。トリム・サーフェスはトリム・サーフェスのテキスチャでエンコードされ、当該テキスチャはトリム状態テキスチャにより参照される。トリム・サーフェスのエンコードにより、非限定的な例として、円筒の軸および半径、ならびに他の種類のサーフェスに対する各基本パラメータを格納することができる。
【００３６】
次に図３を参照すると、円筒を覆う平面に対する一実施形態の表現が示されている。図３では、円筒の平面３０２が、トリム状態テキスチャでエンコードされたセル・データ構造３０４（このケースでは、規則的な格子）に格納される。０のセルは空のセルであり、１のセルは内部のセルであり、２のセルはトリム円筒の表現に対する参照をトリム・サーフェステキスチャで保持する稜線のセルである。エンコードされたデータとその計算は後で論ずる。
【００３７】
ＧＰＵ段階は断片シェーダで実装される。断片シェーダでは、境界ボックスに当たる光線がサーフェスと交差する場合、交点とｕｖパラメータ、ならびに当該交点でのサーフェスの法線が計算される。次に、セル・データ構造がｕｖ点でセルに対して検索される。当該セルが空のセルである場合、当該画素は破棄される。そうでなければ、当該画素の色を、フォン・シェーディングまたはブリン・フォン・シェーディングのようなシェーディング法を用いて計算する。
【００３８】
次のステップで、セルが完全である場合には、色を返す。当該セルが稜線のセルである場合、光線の交点をトリム・サーフェスと比較する。当該トリム・サーフェスはトリム・サーフェス・テキスチャからデコードされる。当該点がサーフェスの方向の外部にある場合、当該画素は破棄される。当該セルが頂点のセルである場合、同様に、光線の交点を、当該頂点の起点となるトリム・サーフェスと比較する。頂点のセルは、和のセル（ｕｎｉｏｎ  ｃｅｌｌ）または積のセル（ｉｎｔｅｒｓｅｃｔｉｏｎ  ｃｅｌｌ）であることができる。和のセルでは、点が両方のサーフェスの方向の外部にある場合に当該画素は破棄される。積のセルでは、点がサーフェスの何れかの外部にある場合に当該画素は破棄される。
【００３９】
一実施形態では、レイ・キャスティングおよび点分類に対する幾つかのサーフェス・タイプを扱う。当該タイプには、ＣＡＤソリッド・モデリングで使用される共通のサーフェス・タイプ、即ち、平面、円筒、円錐、トーラス、球、およびＮＵＲＢＳサーフェスが含まれる。さらに、標準的なメッシュ・サーフェスが任意の非共通なサーフェス・タイプに使用される。
【００４０】
全てのサーフェスはパラメトリックであり、ｕｖ領域［ｕ０；ｖ０］×［ｕ１；ｖ１］で表される。当該分析サーフェスはまた、局所座標系｛Ｏ；ｘ；ｙ；ｚ｝を格納する（ここで、太字記法によりベクトル値を表す）。具体的には、下記でサーフェスの表現を説明する。
【００４１】
平面の式は、
Ｓ（ｕ，ｖ）＝ｕｘ＋ｖｙ＋Ｏ
により与えられる。したがって、ｕｖ領域および局所座標系によりサーフェスが完全に説明される。
【００４２】
円筒の式は、
Ｓ（ｕ，ｖ）＝Ｒ（（ｃｏｓ  ｕ）ｘ＋（ｓｉｎ  ｕ）ｙ）＋ｖｚ＋Ｏ
により与えられる。ここで、Ｒは円筒の半径であり０≦ｕ＜２πである。このように、追加の半径パラメータＲが断片シェーダに渡される。
【００４３】
円錐の式は、
Ｓ（ｕ，ｖ）＝（Ｒ＋ｖ（ｔａｎ  θ））（（（ｃｏｓ  ｕ）ｘ＋（ｓｉｎ  ｕ）ｙ））＋ｖｚ＋Ｏ
により与えられる。ここで、Ｒは円錐とｘｙ平面の交円の半径である。θは円錐の頂点の半角である。領域は、０≦ｕ＜２πおよび−Ｒ（ｃｏｔ  θ）≦ｖ＜∞を満たさなければならない。したがって、この円筒表現は追加の半径パラメータＲと角度パラメータθを有し、これらは断片シェーダに渡される。
【００４４】
球の式は、
Ｓ（ｕ，ｖ）＝Ｒ（ｃｏｓ  ｖ）（（ｃｏｓ  ｕ）ｘ＋（ｓｉｎ  ｕ）ｙ）＋Ｒ（ｓｉｎ  ｖ）ｚ＋Ｏ
により与えられる。ここで、Ｒは球の半径であり、領域は０≦ｕ＜２πおよび−π／２≦ｖ＜π／２を満たす。したがって、この球表現は追加の半径パラメータＲを有し、半径パラメータＲが断片シェーダに渡される。
【００４５】
トーラスの式は、
Ｓ（ｕ，ｖ）＝（Ｒ＋ｒ（ｃｏｓ  ｖ））（（ｃｏｓ  ｕ）ｘ＋（ｓｉｎ  ｕ）ｙ）＋ｒ（ｓｉｎ  ｖ）ｚ＋Ｏ
により与えられる。ここで、Ｒおよびｒはそれぞれトーラスの大径および小径であり、領域は０≦ｕ＜２πおよび−π≦ｖ＜πを満たす。
【００４６】
分析サーフェスと異なり、ＮＵＲＢＳサーフェスは局所座標系を有さず、サーフェスの次数およびｕおよびｖで表したサーフェスの節点ベクトルにより、および、グローバル座標系で表したサーフェスの制御メッシュにより表される。ＮＵＲＢＳ表現は、
【００４７】
【数１】
0005916758.tif 000002
【００４８】
である。ここで、ｍおよびｎはｕおよびｖで表したＮＵＲＢＳの次数であり、ｐｉｊは制御メッシュの制御点であり、Ｂｉｊ（ｕ，ｖ）はＮＵＲＢＳの基底関数である。
【００４９】
ＣＡＤシステムは、分析サーフェスおよびＮＵＲＢＳサーフェスの代わりに、または、分析サーフェスおよびＮＵＲＢＳサーフェスに加えて、他のサーフェス表現を使用してもよい。例えば、オフセット・サーフェスは手続型のサーフェス（ｐｒｏｃｅｄｕｒａｌ  ｓｕｒｆａｃｅ）であるが、このオフセット・サーフェスを表現するために、一部のシステムでは基底サーフェスへの参照とオフセット距離値を格納する。かかる表現を、ＮＵＲＢＳサーフェスを用いて正確に表現することはできない。したがって、例えば、オフセット・サーフェスの式が二乗根を含むこともある。オフセット・サーフェスの表現は、一般に、所与のｕｖパラメータでの点および導方程式（ｄｅｒｉｖａｔｉｖｅ  ｅｖａｌｕａｔｉｏｎ）に関する問いに答えるブラック・ボックスとして用いられる。あまり一般的でないサーフェス表現をサポートするために、かつ、サポートされていないサーフェスに対する標準的なサーフェスとして、一実施形態では、メッシュ頂点において正常値を有するメッシュから構成されるサーフェス表現を利用する。かかる正常値は、手続型のサーフェスを問い合わせることによって得られる。当該メッシュは、サーフェス領域全体に対する規則メッシュである。トリム領域は三角形ではない。ギャップのアーチファクトのないメッシュのトリミングは、他のサーフェスに対して行ったのと同様に（即ち、トリム・サーフェスを用いて）行われる。
【００５０】
分析サーフェスをレンダリングするときは、当該サーフェスを画する３Ｄボックスがレンダリングされる。視点から発する光源が、当該ボックスとの交点に関して計算される。サーフェスの局所座標系（即ち、オブジェクト空間）内の視点位置Ｏおよび光線方向ベクトルｄが与えられると、サーフェスの局所座標系内の光線がＲ（ｔ）＝Ｏ＋ｄｔによりパラメータ化される。次に断片シェーダが、ｔの多項式の解を求めることで交点を計算する。当該多項式は、Ｒ（ｔ）の線形方程式を分析サーフェスの陰方程式に当てはめることで構築される。結果は、円筒、円錐、および球に対しては２次方程式であり、トーラスに対しては４次方程式である（平面に対しては、この手続きは不要である。寧ろ、基礎平面は直接レンダリングされ、シェーダは点分類プロセスを行うのみである）。したがって、断片シェーダは交点（またはその欠如、この場合は画素が破棄される）を得るために２次方程式または４次方程式を解くだけでよい。交点が与えられると、当該交点におけるｕｖパラメータと法線が容易に計算され、これらのｕｖパラメータおよび法線から、シェーディングの色が計算される。
【００５１】
メッシュ・サーフェスに対しては、シェーダのレイ・キャスティングでは、ブリン・フォン・シェーディング法を実装する。当該シェーディング法は、頂点の正常値を補間する。ＮＵＲＢＳサーフェスに対しては、光線とサーフェスの交点を見つけるのはより複雑である。非特許文献６および非特許文献７に記載のものと同様な方法を用いる。一実施形態では、サーフェスをベジエ・パッチに分割し（ベジエ・パッチは、シェーダ内でＢスプライン・パッチより扱いが容易であるが、Ｂスプラインを用いてもよい）、さらに、当該パッチを十分に平坦なサブパッチに細分割する。次に、パッチの凸包の利用を記載している非特許文献６とは異なり、サブパッチの境界ボリュームを、有向境界ボックスを用いてレンダリングする。結果は、ニュートン・ラプソン反復法を用いて解くｕおよびｖの２変数多項式系となる（詳細は、非特許文献６を参照）。基礎サーフェスとの交点が分かると、当該交点は点分類プロセスに渡される。
【００５２】
点分類プロセスは、先ず、面上のｕｖ点をとってセル・データ構造内の対応するｕｖセルを求める。当該セルが空のセルである場合は、当該ｕｖ点を破棄し、プロセスはサーフェス領域内および面内部に存在しうる、基礎サーフェスとの別の光線交点を求めて光線サーフェス交差多項式の次のルートをチェックする。当該セルが完全なセルである場合は、画素の陰影を、厳密な正常値を用いて計算し、当該画素をレンダリングする。当該セルが完全でも空でもない場合は、セルは１つの稜線、２つの交差する稜線（即ち、頂点）、または（粗いセル構造から生じうる）交差しない２つの稜線を含み、プロセスは当該セルが参照するトリム・サーフェスに基づいて３Ｄ点分類を適用する。
【００５３】
一実施形態では、２つのセル・データ構造を実装する。第１のセル・データ構造を、正方格子として実装し、ＲＧＢテキスチャとして格納する。第１の値（Ｒ）はセルのタイプを格納し、他の２つの値（ＧＢ）はトリム・サーフェス・テキスチャ内のトリム・サーフェスを参照するために予約されている。セルのタイプは、空、完全、稜線、和頂点、または積頂点であってもよい。
【００５４】
空のタイプのセルは、面に含まれない、即ち、外側ループの外部にあるかまたは完全にホール内部にある、ｕｖ小領域を含む。空タイプのセル内のＧＢ値はヌルである。完全タイプのセルは、完全に面の内部にあるｕｖ小領域を含む。完全タイプのセル内のＧＢ値もヌルである。稜線タイプのセルは単一の稜線を含む。当該単一の稜線はトリム・カーブである。稜線タイプのセルのＧ値はトリム・サーフェス・テキスチャ内のインデックスを参照し、当該インデックスがトリム・サーフェスの表現を参照する。和頂点タイプのセルは、頂点に付随する２つの稜線を含む。和頂点タイプのセルのＧおよびＢの値はトリム・サーフェス・テキスチャ内のインデックスを参照し、当該インデックスはトリム・サーフェスの表現を参照する。
【００５５】
積頂点タイプのセルは和頂点タイプのセルと同様であるが、分類手続きは和頂点タイプのセルと積頂点タイプのセルを別々に扱う。なぜならば、和頂点タイプのセルは２つのサーフェス間におけるブール演算の和によるものである一方、積頂点タイプのセルは２つのサーフェスの間の積から生ずるからである。したがって、和頂点タイプのセルに対して、点が何れかのトリム・サーフェスの内側にあれば当該点をレンダリングする。一方、積頂点タイプのセルに対しては、点が両方のトリム・サーフェスの内側にある場合にのみ当該点をレンダリングする。和頂点タイプのセルと積頂点タイプのセルの相違は、図４Ａおよび図４Ｂを参照して説明するように、頂点周囲の稜線の方向に基づいて決定することができる。
【００５６】
次に図４Ａを参照すると、ｖａは和頂点４００ａである。図４Ａの稜線ｅ１およびｅ２は右に曲がっており、したがって、サーフェス４０２ａには、稜線が直線を形成する場合と比較して素材が追加されている。図４Ｂは、ｖｂで示す積頂点４００ｂを示す。図４Ｂの稜線ｅ１およびｅ２は左に曲がっており、したがって、サーフェス４０２ｂは、稜線が直線を形成する場合と比較して素材が減っている。
【００５７】
セル・データ構造の第２の実装形態は、非特許文献１０に記載の４分木表現であり、これもＲＧＢテキスチャに格納される。当該４分木構造の葉ノードは前述の格子セル構造と同じタイプのセルを格納する。しかし、当該４分木の内部ノードは、ノードを内部ノードとして示すＲ値を有し、当該内部ノードの子である４つのセル・ブロックのうち最初のものを指す。
【００５８】
断片シェーダでは、計算したｕｖ値が与えられると、探索手続きが、当該与えられたｕｖ点を含むセルに対するセル・データ構造を探索する。当該探索手続きのステップは、セル・データ構造のタイプに依存する。当該セルが空でも完全でもない場合は、ｕｖ点に対応するサーフェス上の３Ｄ点が評価される。次に、当該３Ｄ点を、当該セルが参照する１つまたは複数のサーフェスと比較する。
【００５９】
上で論じたように、面の稜線ごと（即ち、トリム・カーブごと）に、セル・データ構造内のセルから参照される対応するトリム・サーフェスが存在する。トリム・サーフェスは、サーフェスの各パラメータを格納する浮動点トリム・サーフェス・テキスチャでエンコードされる。第１のセルは、サーフェスのタイプを保持し、断片シェーダは、当該サーフェスのタイプに基づいてテキスチャからサーフェスを読み出す機能を起動する。
【００６０】
分析サーフェスに対しては、サーフェスの表現の議論で前述したパラメータに基づき、表現はコンパクトである。ＮＵＲＢＳサーフェスの表現はあまりコンパクトでなく、したがって、面と実際に交差する関連するベジエ・サブパッチのみがトリム・サーフェス・テキスチャに格納される。同様に、メッシュ・サーフェスに対しては、面と実際に交差する関連する三角形のみが前処理ステップ中に格納される。
【００６１】
セル・データ構造を構築するとき、前処理手続きにより全てのセルに対して、面の点がサーフェスの正の側にあるか負の側にあるかを特定する。この情報はまた、トリム・サーフェス・テキスチャに格納される。前述の全てのサーフェス表現は正のサーフェス法線を有し、当該法線は所与のｕｖ値で直積Ｓｕ（ｕ，ｖ）×Ｓｖ（ｕ，ｖ）の方向として定義されることに留意されたい。したがって、十分に近いサーフェス近傍においては、点ｐはサーフェスの正の側か負の側の何れかにある。これを、３Ｄ点を分類するときに、ｐをサーフェスに投影し当該サーフェス上の最近傍の点Ｓｐを発見し、ベクトルｐ−ＳｐをＳｐでの法線と比較することにより、決定することができる。
【００６２】
セル・データ構造の構築はＣＰＵで実施される。当該ＣＰＵは次いで当該データ構造をトリム状態テキスチャにエンコードする。当該トリム状態テキスチャは前述のようにシェーダで問い合わされる。当該構築手続きでは、トリム・ループを入力として受け取り、サーフェスのｕｖ領域を、ｕｖ小領域を含むセルに分割する。
【００６３】
次に図５Ａおよび５Ｂを参照すると、セル構造の図解が示されている。図５Ａは、６４×６４の格子を有する格子セル構造を示す。当該格子の正方形は、セル間を区別するために２つの陰影で塗られている。図５Ｂは４分木セル構造を示し、当該４分木における最小のセルは領域幅が０．０１である。当該４分木のセルは異なる陰影で塗られ、ルートのセルから遠くのリーフセルほど、薄い陰影が塗られている。
【００６４】
格子セル構造は、ｕｖ領域に置かれた均一な格子である。トリム・ループは当該格子と交差し、全ての格子セルは、各格子セルと交差する１つまたは複数のトリム・カーブへの参照を格納する。末端退化（ｄｅｇｅｎｅｒａｔｅ  ｅｎｄ）のケースを除いては、十分な格子の解像度のため、セルには高々２つの稜線しかない。稜線がセルを貫く場合は１つであり、セルが頂点を含む場合は２つである。稀なケースでは、セルが３つ以上の稜線を含むか、または、頂点で出会わない２つの稜線を含むことがある。これは、例えば、ほぼ接しているトリム・ループで生じうる。かかる稀なケースでは、格子をより細かな解像度で再構築してもよい。全ての稜線と頂点のセルが特定されると、稜線を保持しないセルが訪問され、多角形点包含テスト（ｐｏｌｙｇｏｎ  ｐｏｉｎｔ  ｃｏｎｔａｉｎｍｅｎｔ  ｔｅｓｔ）を用いて完全かまたは空として分類される。
【００６５】
和頂点と積頂点の区別には、さらなる計算を要する。先ず、面の素材が各稜線の左側にあるように、稜線が有向であると仮定する。これはＣＡＤシステムにおいては一般的なしきたりである。しかし、一実施形態では、素材が各稜線の右側にあって同様な結果を有するように、稜線が有向であると仮定してもよい。頂点セルが与えられたとき、流入する稜線をｅｉで示し流出する稜線をｅｏで示す。稜線｛ｅｉ；ｅｏ｝が左に曲がると、頂点は積頂点となる（即ち、図４Ｂに示すように、ｅｏのサーフェスとの交差により素材が減少する）。そうでなければ、頂点は和頂点である（即ち、図４Ａに示すように、ｅ１のサーフェスが素材を追加する）。｛ｅｉ；ｅｏ｝の方向は、端点でのトリム・カーブの接線をとりそれらの直積を計算することで決まる。
【００６６】
４分木セル・データ構造は、終了基準（例えば、小領域のサイズまたは全体数）が満たされるまでｕｖ領域を小領域に再帰的に細分割する。各内部セルは、当該内部セルの４つの子の小領域への参照を保持し、各内部セルと交差する全ての稜線への参照を有するリストも保持する。セルの小領域が稜線を含まない場合は、当該セルは４分木の葉であり、格子セル・データ構造で行ったのと同じように空の葉のセルまたは完全な葉のセルの何れかとして分類される。そうでなければ、細分割を、１つまたは２つの稜線のみがセルと交差するか、または、セルのサイズが何らかの小さな許容値に達するまで行う。これは、退化のケースで生じうる。
【００６７】
セルが稜線を１つしか含まないときは、当該セルは葉のセルの候補であるが、１つの稜線しか有さないからといって当該セルが葉であるとは保証されない。当該セルがトリム・サーフェスと１つの構成要素（分岐）でしか交差しないことを検証する必要がある。交差しない場合は、サーフェスの他の分岐外部にあるセルの内部の点は誤って処理される。例えば、当該点は、破棄すべきときにレンダリングされ、逆も成り立つ。例えば、図６Ａおよび６Ｂの構成を考える。
【００６８】
図６Ａおよび６Ｂは、サーフェス６００内の鍵穴形のホールを示す。当該鍵穴形のホールの上端６０２は、平面上の楕円の細長い弧である。これは、例えば、円筒の一部が当該平面と交差した結果であることができる。図６Ａに示すように、当該楕円の上の弧より上方にある点のみをレンダリングすべきである。しかし、図６Ａおよび６Ｂのように、セル６０４が楕円と２回以上交差する場合は、本明細書に記載の点分類手続きが、当該楕円の他の分岐の外部にある点（即ち、図６Ｂにおいて陰影領域で示した当該楕円の下にある点）もレンダリングする。したがって、手続きでは、セルがトリム・サーフェスと１つの接続された構成要素のみと交差することをチェックしなければならない。
【００６９】
図６Ａおよび６Ｂは、楕円がリーフセルと２回交差するときに生じうる、回避する必要がある分類の問題を示す。鍵穴形を縁取る太線は、面内のホールのループである。点線の長方形は、４分木内のリーフセルの領域である。完全な楕円形はセル内に２つの分岐を有し、点線で他方の分岐を示してある。図６Ａは、楕円上方の領域のみをレンダリングした、望ましい結果を示す。一方、図６Ｂは、下部分岐がセルと交差し当該下部領域も同様にレンダリングさせる、望ましくない結果を示す。
【００７０】
稜線が接平面の間に存在する場合、手続きは終了せず、最小のセル・サイズに到達するまで細分割を継続する。細分割を継続することで、接平面が点分類手続きにおいてもたらす難点に対処する。同様に、セルが頂点で接続された２つの稜線を含む場合、当該稜線は前述したのと同じ条件を満たさなければならない。さらに、接する稜線の間の頂点も分類において難点を示し、したがって、かかる場合、最小セル・サイズに到達するまで細分割を継続する。
【００７１】
図７Ａ乃至７Ｃを参照すると、実施形態の画素単位の精度が示されている。図７Ａは３Ｄモデルを示す。図７Ｂおよび７Ｃは、図７Ａの３Ｄモデルを拡大した図である。さらに、図７Ｂは共通のテセレーション法を用いた拡大図を示し、図７Ｃは本発明の一実施形態におけるレイ・キャスティングのアプローチを示す。具体的には、図７Ｃに示す縁７０２の曲率は、図７Ｂに示す縁７０２の曲率またはその欠陥よりもかなり平滑である。
【００７２】
次に図８を参照すると、コンピュータ化されたモデリング・システム８００が示されている。当該システム８００は、ＣＰＵ８０２、コンピュータ・モニタ８０４、キーボード入力装置８０６、マウス入力装置８０８、および記憶装置８１０を備える。ＣＰＵ８０２、コンピュータ・モニタ８０４、キーボード８０６、マウス８０８、および記憶装置８１０は、共通に利用可能なコンピュータ・ハードウェア装置を備えることができる。例えば、ＣＰＵ８０２はペンティアム（登録商標）・ベースのプロセッサを備えることができる。マウス８０８は、ユーザが押下してコマンドをＣＰＵ８０２により実行されているソフトウェア・プログラムに発行できる、従来式の左ボタンおよび右ボタンを有してもよい。マウス８０８の代替または追加として、コンピュータ化されたモデリング・システム８００は、トラックボールのようなポインティング装置、タッチ・センシティブ・パッド、またはキーボード８０６に組み込まれたポインティング装置およびボタンを備えることができる。マウス装置を参照して本明細書で説明したのと同じ結果を、別の利用可能なポインティング装置を用いて実現できることは当業者には理解されよう。以下の議論から明らかなように、他の適切なコンピュータ・ハードウェア・プラットフォームも適している。かかるコンピュータ・ハードウェア・プラットフォームは、マイクロソフト「登録商標」のＷｉｎｄｏｗｓ「登録商標」２０００、Ｗｉｎｄｏｗｓ  ＸＰ、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ「登録商標」、Ｗｉｎｄｏｗｓ  ７、ＵＮＩＸ「登録商標」、Ｌｉｎｕｘ（登録商標）、またはＭａｃＯＳ「登録商標」オペレーティング・システムを実行できることが好ましい。
【００７３】
追加のコンピュータ処理ユニットおよびハードウェア装置（例えば、ＧＰＵ（ｇｒａｐｈｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、高速プロトタイピング、ビデオ、およびプリンタ装置）をコンピュータ化されたモデリング・システム８００に含めてもよい。さらに、コンピュータ化されたモデリング・システム８００がネットワーク・ハードウェアおよびソフトウェアを備えてもよく、それらにより、ハードウェア・プラットフォーム８１２に対する有線または無線の通信が可能となり、他のコンピュータ・コンポーネントのうちＣＰＵおよび記憶システムを含みうる多数のコンピュータ・システムの間の通信が容易になる。
【００７４】
コンピュータ支援型のモデリング・ソフトウェアを記憶装置８１０に格納して、ＣＰＵ８０２にロードしＣＰＵ８０２により実行してもよい。当該モデリング・ソフトウェアにより、ユーザは３Ｄモデルを作成し修正することができ、本明細書に記載の本発明の諸態様を実装する。ＣＰＵ８０２はコンピュータ・モニタ８０４を使用して、説明した３Ｄモデルおよびその他の態様を表示する。キーボード８０６およびマウス８０８を用いて、ユーザは３Ｄモデルに関連するデータを入力し修正することができる。ＣＰＵ８０２はキーボード８０６およびマウス８０８から入力を受け付け、処理する。ＣＰＵ８０２は、３Ｄモデルに関連するデータとともに当該入力を処理し、モデリング・ソフトウェアにより指示されたようにコンピュータ・モニタ８０４に表示されたものに対して、対応する適切な変更を加える。一実施形態では、モデリング・ソフトウェアは、１つまたは複数のソリッド・ボディおよびサーフェス・ボディから成る３Ｄモデルを構築するために使用できる、ソリッド・モデリング・システムに基づく。
【００７５】
本発明を、デジタル電子回路で、またはコンピュータ・ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組合せで、実装してもよい。本発明の装置を、プログラム可能プロセッサにより実行するための機械読取可能記憶装置で有形的に具体化したコンピュータ・プログラム製品で実装してもよく、本発明の方法ステップを、入力データに作用して出力を生成することで本発明の機能を実施するための命令からなるプログラムを実行するプログラム可能プロセッサにより実施してもよい。本発明を、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置に対してデータおよび命令を送受信し、データおよび命令を送信するように接続された少なくとも１つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能な、１つまたは複数のコンピュータ・プログラムで有利に実装してもよい。各コンピュータ・プログラムを、高レベルの手続型またはオブジェクト指向型のプログラミング言語で実装してもよく、または、必要ならばアセンブリ言語もしくは機械語で実装してもよい。いずれのケースでも、当該言語はコンパイル型の言語またはインタプリタ型の言語であってもよい一実施形態では、本発明は、ＯｐｅｎＧＬおよびＧＬＳＬシェーディング言語を用いて実装される。適切なプロセッサには、限定ではなく例として、汎用目的および特殊目的のマイクロプロセッサが含まれる。一般に、プロセッサは命令およびデータを読取可能メモリおよび／またはランダム・アクセス・メモリから受け取る。コンピュータ・プログラム命令およびデータを有形的に具体化するのに適した記憶装置には、あらゆる形態の不揮発性メモリが含まれる。当該不揮発性メモリには、限定ではなく例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュ・メモリ装置のような半導体メモリ装置、内部ハードディスクおよび取外し可能ディスクのような磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクが含まれる。上述の何れも、特別に設計されたＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）で補完し、または、当該ＡＳＩＣに組み込んでもよい。
【００７６】
本明細書で説明したような高品質のレンダリングにより、時間節約の利点だけが実現されるわけではない。例えば、レンダリングの前提条件としてモデルのテセレーションを作成する必要なしに、３Ｄモデルをモデルの定義（例えば、分析サーフェスの定義）から直接レンダリングすることができる。他の利点には、ギャップ／クラックのアーチファクトの軽減、ならびに、大規模なモデルのテセレーションを格納し当該テセレーションを或る演算ユニット（例えば、ＣＰＵ）から別の演算ユニット（例えば、ＧＰＵ）へ送信する必要性の軽減がある。一般に、本発明は、本明細書で論じたコンパクトなサーフェス表現のため、帯域幅によっては限定されず、したがって、クライアントのグラフィック・アプリケーションならびに他のアプリケーションに良く適している。さらに、ＧＰＵ技術が進歩すると、本明細書で説明したフィルレートが制限された技法（ｆｉｌｌｒａｔｅ−ｌｉｍｉｔｅｄ  ｔｅｃｈｎｉｑｕｅ）が性能に及ぼす影響は少なくなる。ソリッド・モデリング技法を用いたＣＡＤモデリングは、工学、産業デザイン、およびエンターテイメントの分野で広く用いられており、それらの全てが本発明の実装形態から利益を得ることができる。
【００７７】
本発明を、その例示的な実施形態を参照して具体的に示し説明した。しかし、添付の特許請求の範囲で包含される本発明の範囲から逸脱しない様々な修正を形態および細部において行いうることは当業者には理解されよう。例えば、諸実装形態では動作の実施順序を変更してもよい。さらに、実装形態のニーズに応じて、本明細書で説明した特定の動作を、組合せ動作として実装し、削除し、追加し、または再配置してもよい。非限定的な例として、一実施形態では、セル・データ構造をパラメトリックな領域での別の構造（例えば、ｋ次元の木）として実装してもよい。
【図２Ａ】
0005916758.tif 000003
【図２Ｂ】
0005916758.tif 000004
【図４Ａ】
0005916758.tif 000005
【図４Ｂ】
0005916758.tif 000006
【図６Ａ】
0005916758.tif 000007
【図６Ｂ】
0005916758.tif 000008
【図８】
0005916758.tif 000009
【図１】
0005916758.tif 000010
【図３】
0005916758.tif 000011
【図５Ａ】
0005916758.tif 000012
【図５Ｂ】
0005916758.tif 000013
【図７Ａ】
0005916758.tif 000014
【図７Ｂ】
0005916758.tif 000015
【図７Ｃ】
0005916758.tif 000016