JP5916758B2 - Gpu上でのcadモデルの直接的なレンダリング - Google Patents

Gpu上でのcadモデルの直接的なレンダリング Download PDF

Info

Publication number
JP5916758B2
JP5916758B2 JP2013549548A JP2013549548A JP5916758B2 JP 5916758 B2 JP5916758 B2 JP 5916758B2 JP 2013549548 A JP2013549548 A JP 2013549548A JP 2013549548 A JP2013549548 A JP 2013549548A JP 5916758 B2 JP5916758 B2 JP 5916758B2
Authority
JP
Japan
Prior art keywords
cell
trim
type cell
texture
computer
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.)
Active
Application number
JP2013549548A
Other languages
English (en)
Other versions
JP2014507027A5 (ja
JP2014507027A (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.)
Dassault Systemes SolidWorks Corp
Original Assignee
SolidWorks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SolidWorks Corp filed Critical SolidWorks Corp
Publication of JP2014507027A publication Critical patent/JP2014507027A/ja
Publication of JP2014507027A5 publication Critical patent/JP2014507027A5/ja
Application granted granted Critical
Publication of JP5916758B2 publication Critical patent/JP5916758B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Description

本出願は、CAD(Computer−Aided Design)に関し、より詳細には、高品質なレンダリングに関する。
本出願は、2011年1月14日出願の特許文献1の利益を主張する。当該出願の教示事項全体は引用により本明細書に取り込まれる。
CAD(Computer−aided design;以下、CAD)ソフトウェアにより、ユーザは複雑な三次元(3D)モデルを構築し操作することができる。幾つかの様々なモデリング技法を用いて3Dモデルを生成することができる。これらの技法には、ソリッド・モデリング、ワイヤフレーム・モデリング、およびサーフェス・モデリングがある。ソリッド・モデリング技法では、トポロジカルな3Dモデルが提供され、当該3Dモデルは、相互に接続されたトポロジカルなエンティティ(例えば、頂点、稜線、および面)の集合である。トポロジカルなエンティティは、対応する補助的な幾何エンティティ(例えば、点、トリム・カーブ、およびトリム・サーフェス)を有する。トリム・サーフェスは、稜線で画されるトポロジカルな面に対応する。他方、ワイヤフレーム・モデリング技法を用いてモデルを単純な3Dの直線の集合として表現することができ、サーフェス・モデリングを用いてモデルを外部のサーフェスの集合として表現することができる。ソリッド・モデリング技法を用いたCADモデリングは、高品質なレンダリングを必要とする産業デザインおよび他のアプリケーションに広く用いられている。
ソリッド・モデルは一般にB−rep(boundary representation、境界表現)により表される。B−repは、モデルのトポロジを維持する相互参照(inter−reference)を有するトリム・パラメトリック・サーフェス(trimmed parametric surface)から成る。例えば、隣接面で共有される稜線は、両方の面に対する参照(ハーフ・エッジまたはエッジ・ユース(edge−use)と呼ばれることもある)を有する。
次に図1を参照すると、立方体100のB−repトポロジ構造の例が示されている。ハーフ・エッジe11は、典型的には、e11の関連する面f1、e11の次のハーフ・エッジe12、およびe11の反対側のハーフ・エッジe21への参照を格納する。図1は、ハーフ・エッジe11が与えられると、e11の反対側のハーフ・エッジe21を取ることによってe11の隣接面f2を特定できることを示す。
デザイン・エンジニアは3D CADシステムの典型的なユーザである。デザイン・エンジニアは、3Dモデルの物理的および美的な態様を設計し、3Dモデリング技法に熟練している。デザイン・エンジニアは部品を作成し、当該部品を1つまたは複数のサブアセンブリおよびアセンブリに組み立てることができる。デザインの過程においては、モデルを実世界のオブジェクトとして提供するために、3Dモデルの高品質なレンダリングがしばしば望まれる。
従来式のレンダリング方法では、モデルをCPU(computer−processing unit;以下、CPU)メモリに格納されたテセレーション(tessellation)に前処理し、当該テセレーションをレンダリングに使用する。GPU(graphics processing unit;以下、GPU)がCADシステムの共通の構成要素となったので、ソリッド・モデルを対話的にレンダリングするには、CPUを用いてモデルをテセレートし、次いでテセレーションをGPUに送信してさらに処理することが必要であった。
サーフェスのパッチをトリミングすると、トリミング・ループに沿ったきめ細かいサンプリングのためテセレーションが複雑になる可能性がある。このサンプリングは、トリミング・ループに沿った受け入れ可能なテセレーションの品質を得るために必要である。このプロセスは、時間を消費するものであり、テセレーションは大量のメモリを必要とする。例えば、経験的な証拠によれば、テセレートされたモデル表現には一般に、境界表現よりも1桁多いメモリが必要であることが示されている。さらに、(例えば、クラウド・コンピューティングのコンテキストでの)クライアントのグラフィック・アプリケーションの出現により、インターネットで送信されるモデルのサイズを削減することが求められている。
送信されるモデルのサイズを削減したいという要求が、トリム・パラメトリック・サーフェスをオンザフライでテセレートするアプローチの動機付けとなった。非特許文献1では、CPUで実装されるアプローチが論じられている。一方、非特許文献2および非特許文献3には、GPUを利用するアプローチが記載されている。
非特許文献2には、パッチを加重バイキュービック・ベジエ・パッチに細分割することによりトリムNURBS(non−rational bspline;以下、NURBS)パッチをテセレートすることが記載されている。当該トリムNURBSパッチは、テキスチャとしてGPUに渡され、直接評価される。トリミング・テキスチャを用いてトリミングが実施される。トリミング・テキスチャは、GPU上で実装される方法を用いて生成される。トリム・テキスチャは、サーフェスのuv領域において各トリム・ループの多項近似をレンダリングすることにより計算される。次に、トリム・テキスチャが、(外側ループの外またはホール内部の何れかにある)面境界の外部にある画素を特定するためのマスクとして使用される。
GPU上のテセレーションでは制御メッシュを前処理しCPUメモリに格納する必要はないかもしれず、通信ネットワークで送信されるデータ量は削減されるが、サーフェスは依然としてテセレーション技法により近似されている。さらに、一般には、ユーザがモデルを拡大するとき、より細かい近似に到達するにはテセレーションを更新しなければならない。
GPU技術がより進化すると、モデルをGPUで直接レンダリングすることが、高品質であるだけでなく、計算速度の点で優位となる。ソリッド・モデルを直接レンダリングし、そのトリム・サーフェスをテセレーション前処理なしにGPUで直接描画し、一般に必要なときにモデルをレンダリングする方法が説明されている(例えば、後述の非特許文献3を参照)。
モデルをテセレートせずにソリッド・モデルを直接GPUでレンダリングすることには利点がある。当該利点には、非限定的な例として、画素レベルでのレンダリング品質、少ないメモリ要件、および少ない前処理要件がある。しかし、最初にテセレーションを生成せずにソリッド・モデルをGPUで直接レンダリングする既存の解決法の主な課題の1つは、トリム・カーブの近似に起因して面の間にクラック/ギャップのアーチファクトが現れることである。これらの望ましくないアーチファクトにより、CADシステムにおける直接的なGPUレンダリングの利用が妨げられ、または、当該利用の効果が限定されてしまう。
GPUレイ・キャスティング法はサーフェスのレンダリングにも利用されている。かかる方法には、暗黙的代数サーフェス(implicit algebraic surface)(非特許文献4を参照)とCSG(constructive solid geometry)プリミティブ(非特許文献5を参照)のレンダリングが含まれる。これらの方法では、1組の近似三角形ではなくサーフェスの多項表現の観点から直接レンダリングする。その利点は、テセレーションのレンダリングと比較して結果が高品質であることと、メモリ利用が削減されることである。
非特許文献6、および非特許文献7のように、パラメトリック・サーフェス/トリム・サーフェスをGPUで直接にレンダリングするための他のレイ・キャスティング技法が提案されている。これらの技法では、断片シェーダ(画素シェーダとも呼ばれる)を使用して、光線のトリム・パラメトリック・サーフェスとの交点またはその欠落を計算する。かかる技法では、画素レベルの解像度までトリム・サーフェスをシームレスにレンダリングすることができる。
しかし、トリム・パラメトリック・サーフェスのレイ・キャスティングにはさらなる難点がある。なぜならば、数値解の抽出を要する関与する多項式が高次になる可能性があり、サーフェスのトリミングのために、点分類アルゴリズムが必要となるからである。非特許文献6では、2変数のニュートン反復法を用いて光線パッチ交差(ray patch intersection)問題を解くGPUベースのNURBS(non−uniform rational b−spline)レイ・キャスティング実装が提案されている。解への収束を実現するために、非特許文献6では、サーフェスを前処理段階でサブパッチに細分割し、各サブパッチの凸包を計算する。次に当該凸包を、レンダリング用の境界ボリューム(bounding volume)として使用し、数値反復に対する良好な初期値を見つけるために利用する。
サーフェスのトリミングにより、テセレーションのアプローチとレイ・キャスティングのアプローチの両方に対して課題が生じうる。基本的な問題は、所与の点が所与の面の内部にあるかまたは所与の面の外部にあるかを分類することであり、内部にある場合は、当該点をレンダリングすべきであり、外部にある場合は、当該点を破棄すべきである。前に論じたように、トリミング・テキスチャを使用することができる。かかるテキスチャは、例えば、所与の面の外部に対しては黒の画素を、所与の面の内部に対しては白の画素を格納する単純なバイナリ・テキスチャである。断片シェーダは次に、画素に対応するテキスチャ値が黒かどうかをチェックし、黒である場合は当該画素を用いた動作はこれ以上行わない。この方法の問題は、当該方法により画素化アーチファクト(pixelization artifact)が発生することである。
図2Aおよび2Bは、アヒルの目の周囲にトリミング・ループによって、アヒルのモデルのトリミング・テキスチャ間引き(decimation)に起因する画素化アーチファクトを示す。図2Aは、アヒルのモデルの全体図を示し、図2Bはアヒルの目に近寄った図を示す。このテキスチャは基本的にuv領域を画素化したものであり、したがって、サーフェスのuv領域を3D空間にマッピングすることで顕著な効果をもたらすことができる。トリミング・テキスチャをより高い解像度で再計算することには、アプリケーションが低速になりより多くのGPUメモリが必要になるという欠点がある。
より正確な方法では、トリミング・テキスチャの画素化アーチファクトを克服し、直接的にトリム・カーブを点分類に対して使用する。非特許文献6は、断片シェーダにおいてトリミングを直接実施するベジエ・クリッピング・アルゴリズムを繰返し実行する。非特許文献7では、uv曲線を単色のセグメントに前処理し、加速化構造を二分法と組み合わせて用いて点がトリミング・ループ内部にあるか否かを迅速に特定することによって、当該方法を改良する。
これらのより正確なトリミング方法の結果として、より精度が高く滑らかなサーフェスの境界と交点が得られる。しかし、非特許文献7に記載されているように、依然として隣接面のトリム・カーブに沿ってギャップが残存する。この理由は、サーフェスのuv領域内のトリム・カーブが近似であるからであり、非特許文献8で指摘されているように、トリム・カーブを正確に表現することは困難な作業である。したがって、同一のカーブの2つの近似の間の形状にギャップが内在する。非特許文献9は、サーフェス・パッチ間のギャップを埋める所謂「太境界線(fat border)」を追加することによって、リアルタイムなテセレーション・レンダリングのコンテキストにおけるこの問題を克服しようとする。しかし、このようにギャップを埋めると、追加の形状が形成され、性能が低下し望ましくないアーチファクトが生ずるおそれがある。
ソリッド・モデルをトリム・サーフェスとしてGPUでレンダリングすることに関する既存の解決策の主な問題の1つは、トリム・カーブの近似に起因して、面の間にクラック/ギャップのアーチファクトが現れることである。トリム・カーブの表現を使用し、トリム・テキスチャを以前の技法と同様に使用せずにトリミングを実施したとしても、ギャップが依然としてソリッド・モデルの隣接面の間に存在する(非特許文献7を参照)。
このように、現在の最新の技法の欠点には、最初にモデルをテセレートせずにモデルをGPUで直接レンダリングするときのクラック/ギャップのアーチファクトの存在がある。これらの内在的なクラック/ギャップは、トリム・カーブを近似することにより生ずる。この欠点および他の欠点を解決するシステムまたは方法は、不要なクラック/ギャップのアーチファクトのない3Dモデルの高品質なレンダリングを可能とすることによって、現在の最新のコンピュータ化されたシステムを大幅に強化するはずである。
米国仮特許出願第61/433,001号明細書
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)
本発明の例示的な実施形態を、ソリッドCAD(Computer−aided design)モデルをGPUで直接レンダリングするための方法、または、対応する製品、データ記憶媒体、または装置として実装してもよく、当該実施形態が、CADモデルの境界表現データ構造を構築する実世界のオブジェクトを表現するCADモデルが与えられると、面のパラメータ空間を表すデータ構造を構築し、当該パラメータ空間を幾つかのセルに分解することを含んでもよい。当該データ構造は、面を定義するデータから成るトポロジ・データを格納する。
セルごとに、面が当該セルに存在することを、当該セルが空タイプのセル、完全タイプのセル、稜線タイプのセル、または頂点タイプのセルであることを示すことによって指定する。当該セルはテキスチャ構造にエンコードされ、当該テキスチャ構造がGPU(graphics processing unit)に送信され、GPUでさらなる処理により面をコンピュータのモニタ上にレンダリングする。
実装形態が、1つまたは複数のトリム・サーフェスの表現を参照する稜線タイプのセルおよび頂点タイプのセルを含んでもよく、上記トリム・サーフェスは面の隣接面に対応する。すなわち、面の基礎サーフェス、当該面のuvパラメータ空間境界ボックスを格納するステップと、トリム・サーフェスをトリム・サーフェス・テキスチャにおいてエンコードし、GPUに送信してGPUにより処理するステップとを含んでもよい。さらに、トリム・サーフェスを解析のため平面、円筒、円錐、球、トーラス、NURBSサーフェス、または汎用サーフェスとして表現してもよい。テキスチャ構造を受け取ると、GPUはレイ・キャスティング処理を実施して、テキスチャ構造および1つまたは複数のトリム・サーフェス表現を用いて面をレンダリングする。当該1つまたは複数のトリム・サーフェス表現はテキスチャ構造においてエンコードされたセルにより参照される。
他の実装形態には、光線が面の基礎サーフェス(underlying surface)と交差するかどうかを判定し光線が交差する場合には対応する画素をレンダリングする、点分類プロセスを含めてもよい。さらに、CPUは、面の存在をセルのタイプとしてエンコードする。この場合、当該タイプは、(i)面のどの部分も当該セルに対応するパラメータ空間領域と交差しない、(ii)当該セルの領域全体が面の素材を含む、(iii)隣接面に対応するトリム・サーフェスへの参照が格納されている、および(iv)隣接面に対応する2つのトリム・サーフェスへの参照が格納されていることを示す。さらに、当該セルはセル・データ構造に格納される。当該データ構造は、グリッド構造または木データ構造として実装してもよい。
本発明の1つまたは複数の実施形態の詳細を、添付図面および下記の発明を実施するための形態にて説明する。本発明の他の特徴、目的、および利点は、発明を実施するための形態、添付図面、および特許請求の範囲から明らかになろう。
立方体のB−rep構造を示す図である。 画素化アーチファクトを示す図である。 画素化アーチファクトを示す図である。 面の表現を示す図である。 和頂点(union vertex)を示す図である。 積頂点(intersection vertex)を示す図である。 セル・データ構造を示す図である。 セル・データ構造を示す図である。 一実施形態における分類の問題を示す図である。 一実施形態における分類の問題を示す図である。 一実施形態における画素単位の精度を示す図である。 一実施形態における画素単位の精度を示す図である。 一実施形態における画素単位の精度を示す図である。 本発明の諸実施形態が実装されるコンピュータ・システムの略図である。
以上のことは、添付図面で示すように、以下の本発明の例示的な実施形態のより具体的な説明から明らかになろう。添付図面では、同様な参照番号は様々な図面を通じて同じ部分を指す。図面は、本発明の諸実施形態の説明を重視して、必ずしも正しい縮尺で描かれてはいない。
本発明は、レンダリングにおいてクラックおよびギャップを生ずることのない、CAD(Computer−aided design)モデルの高品質なレンダリングを提供する。本発明は、トリム・カーブの形状を直接的に使用するのではなく、モデルの境界表現を介して利用できるトポロジ情報を利用する。
本発明は、ソリッド・モデルの面の一意な表現を組み合わせる。当該表現は、テキスチャとしてエンコードされてGPU(graphics processing unit)に渡される。(画素ごとに色属性および他の属性を計算し、GPUで並列に画素を処理できる)断片シェーダは、面の境界ボックスを、基礎サーフェスのパラメータおよびエンコードされたテキスチャとともに入力として受け取る。断片シェーダ法は、面の表現を利用して、レンダリングすべきサーフェス領域を特定する。本発明の実装を用いると、クラック/ギャップのアーチファクトのないモデルの高品質なレンダリングを、対話的な速度で実現することができる。
さらに、本発明では、レイ・キャスティング計算を行ってCADモデルをレンダリングする。レイ・キャスティング計算は、断片シェーダにより実行され、境界ボックスに当たる光線が基礎サーフェスに当たるかどうかをチェックする。当該光線が当該サーフェスと交差する場合は、点分類プロセスが、その点がサーフェス表現(複数可)により定義される領域内にあるかどうかをチェックする。非特許文献2および非特許文献7に記載の分類方法は、それぞれトリミング・テキスチャおよびトリミングuv曲線を利用するが、これらの分類方法と異なり、本発明は、稜線に沿った隣接面を利用して、点が現在操作されている面の内部または外部にあるかどうかを特定する点分類方法を実装する。
本発明は、トリミング・ループの新たな表現を導入し、この新たな表現を点分類プロセスで使用する。一般に、トリム・カーブはパラメトリックな代数表現を有さず、したがって、CADシステムにおいては一般に近似される。しかし、トリム・カーブを2つのサーフェス、即ち、一方が現在処理されている面に対応し他方が隣接面に対応する2つのサーフェスの交点として考えることもできる。さらに、隣接サーフェス(例えば、稜線に対する1つの隣接サーフェスと、3つの稜線が出会う頂点に対する2つの隣接サーフェス)、および現在操作されている面に対するその方向に、B−rep構造のトポロジを通じてアクセスすることができる。したがって、交差するサーフェスへの参照を格納することによって、トリミング・ループの近傍における点分類問題が、サーフェスのどちら側に点が存在しサーフェスのどちら側がuv領域の2D分類から3D点分類へ変換されるかに関して分類を行うことにより、解決される。さらに、本発明の分類のクエリの多くが、分類が直接的である単純な分析サーフェスに対して行われる。
面のトリミング・ループは、本質的に正確でないトリム・カーブでエンコードされず、トリム・サーフェスでエンコードされる。さらに、本発明ではサーフェスの分析表現(例えば、平面、円筒、円錐、球、トーラス)を広く利用する。当該分析表現は、スプラインよりも計算やエンコードが容易である。サーフェスのこれらの分析表現は、大部分のサーフェス表現を、最新のCADシステムを用いて設計された典型的なモデルで構成する。
本発明の一実施形態では、2つの段階、即ち、CPU前処理段階と断片シェーダから実行されるGPU段階が実装される。CPU段階では、各面が当該面のループに対するデータ構造、当該面のuv境界ボックスおよび3D境界ボックスを含む、当該面の基礎サーフェスおよび他のパラメータ、ならびに色のような視覚化に必要な他の属性とともに、CPUメモリに格納される。面パラメータ(uv)空間はセルに分解され、各セルは、空(面のどの部分も当該セルと交差しないことを意味する)、完全(セル全体が面の素材を含むことを意味する)であることができ、または、稜線もしくは頂点を含むことができる。稜線または頂点を含むセルに対しては、セル・データ構造が、ループの稜線または頂点の起点となる1つまたは2つの隣接面(1つ目は稜線のセルに対して、2つ目は頂点のセルに対して)に対応する1つまたは2つのトリム・サーフェスに対する参照を格納する。セル・データ構造を、パラメータ空間に対する規則的な格子として、または、空、完全、稜線および頂点のセルが木の葉である4分木を用いて、実装することができる。前処理段階では、面表現とセル・データ構造が構築され、セル・データ構造が面ごとにトリム状態テキスチャでエンコードされる。トリム・サーフェスはトリム・サーフェスのテキスチャでエンコードされ、当該テキスチャはトリム状態テキスチャにより参照される。トリム・サーフェスのエンコードにより、非限定的な例として、円筒の軸および半径、ならびに他の種類のサーフェスに対する各基本パラメータを格納することができる。
次に図3を参照すると、円筒を覆う平面に対する一実施形態の表現が示されている。図3では、円筒の平面302が、トリム状態テキスチャでエンコードされたセル・データ構造304(このケースでは、規則的な格子)に格納される。0のセルは空のセルであり、1のセルは内部のセルであり、2のセルはトリム円筒の表現に対する参照をトリム・サーフェステキスチャで保持する稜線のセルである。エンコードされたデータとその計算は後で論ずる。
GPU段階は断片シェーダで実装される。断片シェーダでは、境界ボックスに当たる光線がサーフェスと交差する場合、交点とuvパラメータ、ならびに当該交点でのサーフェスの法線が計算される。次に、セル・データ構造がuv点でセルに対して検索される。当該セルが空のセルである場合、当該画素は破棄される。そうでなければ、当該画素の色を、フォン・シェーディングまたはブリン・フォン・シェーディングのようなシェーディング法を用いて計算する。
次のステップで、セルが完全である場合には、色を返す。当該セルが稜線のセルである場合、光線の交点をトリム・サーフェスと比較する。当該トリム・サーフェスはトリム・サーフェス・テキスチャからデコードされる。当該点がサーフェスの方向の外部にある場合、当該画素は破棄される。当該セルが頂点のセルである場合、同様に、光線の交点を、当該頂点の起点となるトリム・サーフェスと比較する。頂点のセルは、和のセル(union cell)または積のセル(intersection cell)であることができる。和のセルでは、点が両方のサーフェスの方向の外部にある場合に当該画素は破棄される。積のセルでは、点がサーフェスの何れかの外部にある場合に当該画素は破棄される。
一実施形態では、レイ・キャスティングおよび点分類に対する幾つかのサーフェス・タイプを扱う。当該タイプには、CADソリッド・モデリングで使用される共通のサーフェス・タイプ、即ち、平面、円筒、円錐、トーラス、球、およびNURBSサーフェスが含まれる。さらに、標準的なメッシュ・サーフェスが任意の非共通なサーフェス・タイプに使用される。
全てのサーフェスはパラメトリックであり、uv領域[u0;v0]×[u1;v1]で表される。当該分析サーフェスはまた、局所座標系{O;x;y;z}を格納する(ここで、太字記法によりベクトル値を表す)。具体的には、下記でサーフェスの表現を説明する。
平面の式は、
S(u,v)=ux+vy+O
により与えられる。したがって、uv領域および局所座標系によりサーフェスが完全に説明される。
円筒の式は、
S(u,v)=R((cos u)x+(sin u)y)+vz+O
により与えられる。ここで、Rは円筒の半径であり0≦u<2πである。このように、追加の半径パラメータRが断片シェーダに渡される。
円錐の式は、
S(u,v)=(R+v(tan θ))(((cos u)x+(sin u)y))+vz+O
により与えられる。ここで、Rは円錐とxy平面の交円の半径である。θは円錐の頂点の半角である。領域は、0≦u<2πおよび−R(cot θ)≦v<∞を満たさなければならない。したがって、この円筒表現は追加の半径パラメータRと角度パラメータθを有し、これらは断片シェーダに渡される。
球の式は、
S(u,v)=R(cos v)((cos u)x+(sin u)y)+R(sin v)z+O
により与えられる。ここで、Rは球の半径であり、領域は0≦u<2πおよび−π/2≦v<π/2を満たす。したがって、この球表現は追加の半径パラメータRを有し、半径パラメータRが断片シェーダに渡される。
トーラスの式は、
S(u,v)=(R+r(cos v))((cos u)x+(sin u)y)+r(sin v)z+O
により与えられる。ここで、Rおよびrはそれぞれトーラスの大径および小径であり、領域は0≦u<2πおよび−π≦v<πを満たす。
分析サーフェスと異なり、NURBSサーフェスは局所座標系を有さず、サーフェスの次数およびuおよびvで表したサーフェスの節点ベクトルにより、および、グローバル座標系で表したサーフェスの制御メッシュにより表される。NURBS表現は、
である。ここで、mおよびnはuおよびvで表したNURBSの次数であり、pijは制御メッシュの制御点であり、Bij(u,v)はNURBSの基底関数である。
CADシステムは、分析サーフェスおよびNURBSサーフェスの代わりに、または、分析サーフェスおよびNURBSサーフェスに加えて、他のサーフェス表現を使用してもよい。例えば、オフセット・サーフェスは手続型のサーフェス(procedural surface)であるが、このオフセット・サーフェスを表現するために、一部のシステムでは基底サーフェスへの参照とオフセット距離値を格納する。かかる表現を、NURBSサーフェスを用いて正確に表現することはできない。したがって、例えば、オフセット・サーフェスの式が二乗根を含むこともある。オフセット・サーフェスの表現は、一般に、所与のuvパラメータでの点および導方程式(derivative evaluation)に関する問いに答えるブラック・ボックスとして用いられる。あまり一般的でないサーフェス表現をサポートするために、かつ、サポートされていないサーフェスに対する標準的なサーフェスとして、一実施形態では、メッシュ頂点において正常値を有するメッシュから構成されるサーフェス表現を利用する。かかる正常値は、手続型のサーフェスを問い合わせることによって得られる。当該メッシュは、サーフェス領域全体に対する規則メッシュである。トリム領域は三角形ではない。ギャップのアーチファクトのないメッシュのトリミングは、他のサーフェスに対して行ったのと同様に(即ち、トリム・サーフェスを用いて)行われる。
分析サーフェスをレンダリングするときは、当該サーフェスを画する3Dボックスがレンダリングされる。視点から発する光源が、当該ボックスとの交点に関して計算される。サーフェスの局所座標系(即ち、オブジェクト空間)内の視点位置Oおよび光線方向ベクトルdが与えられると、サーフェスの局所座標系内の光線がR(t)=O+dtによりパラメータ化される。次に断片シェーダが、tの多項式の解を求めることで交点を計算する。当該多項式は、R(t)の線形方程式を分析サーフェスの陰方程式に当てはめることで構築される。結果は、円筒、円錐、および球に対しては2次方程式であり、トーラスに対しては4次方程式である(平面に対しては、この手続きは不要である。寧ろ、基礎平面は直接レンダリングされ、シェーダは点分類プロセスを行うのみである)。したがって、断片シェーダは交点(またはその欠如、この場合は画素が破棄される)を得るために2次方程式または4次方程式を解くだけでよい。交点が与えられると、当該交点におけるuvパラメータと法線が容易に計算され、これらのuvパラメータおよび法線から、シェーディングの色が計算される。
メッシュ・サーフェスに対しては、シェーダのレイ・キャスティングでは、ブリン・フォン・シェーディング法を実装する。当該シェーディング法は、頂点の正常値を補間する。NURBSサーフェスに対しては、光線とサーフェスの交点を見つけるのはより複雑である。非特許文献6および非特許文献7に記載のものと同様な方法を用いる。一実施形態では、サーフェスをベジエ・パッチに分割し(ベジエ・パッチは、シェーダ内でBスプライン・パッチより扱いが容易であるが、Bスプラインを用いてもよい)、さらに、当該パッチを十分に平坦なサブパッチに細分割する。次に、パッチの凸包の利用を記載している非特許文献6とは異なり、サブパッチの境界ボリュームを、有向境界ボックスを用いてレンダリングする。結果は、ニュートン・ラプソン反復法を用いて解くuおよびvの2変数多項式系となる(詳細は、非特許文献6を参照)。基礎サーフェスとの交点が分かると、当該交点は点分類プロセスに渡される。
点分類プロセスは、先ず、面上のuv点をとってセル・データ構造内の対応するuvセルを求める。当該セルが空のセルである場合は、当該uv点を破棄し、プロセスはサーフェス領域内および面内部に存在しうる、基礎サーフェスとの別の光線交点を求めて光線サーフェス交差多項式の次のルートをチェックする。当該セルが完全なセルである場合は、画素の陰影を、厳密な正常値を用いて計算し、当該画素をレンダリングする。当該セルが完全でも空でもない場合は、セルは1つの稜線、2つの交差する稜線(即ち、頂点)、または(粗いセル構造から生じうる)交差しない2つの稜線を含み、プロセスは当該セルが参照するトリム・サーフェスに基づいて3D点分類を適用する。
一実施形態では、2つのセル・データ構造を実装する。第1のセル・データ構造を、正方格子として実装し、RGBテキスチャとして格納する。第1の値(R)はセルのタイプを格納し、他の2つの値(GB)はトリム・サーフェス・テキスチャ内のトリム・サーフェスを参照するために予約されている。セルのタイプは、空、完全、稜線、和頂点、または積頂点であってもよい。
空のタイプのセルは、面に含まれない、即ち、外側ループの外部にあるかまたは完全にホール内部にある、uv小領域を含む。空タイプのセル内のGB値はヌルである。完全タイプのセルは、完全に面の内部にあるuv小領域を含む。完全タイプのセル内のGB値もヌルである。稜線タイプのセルは単一の稜線を含む。当該単一の稜線はトリム・カーブである。稜線タイプのセルのG値はトリム・サーフェス・テキスチャ内のインデックスを参照し、当該インデックスがトリム・サーフェスの表現を参照する。和頂点タイプのセルは、頂点に付随する2つの稜線を含む。和頂点タイプのセルのGおよびBの値はトリム・サーフェス・テキスチャ内のインデックスを参照し、当該インデックスはトリム・サーフェスの表現を参照する。
積頂点タイプのセルは和頂点タイプのセルと同様であるが、分類手続きは和頂点タイプのセルと積頂点タイプのセルを別々に扱う。なぜならば、和頂点タイプのセルは2つのサーフェス間におけるブール演算の和によるものである一方、積頂点タイプのセルは2つのサーフェスの間の積から生ずるからである。したがって、和頂点タイプのセルに対して、点が何れかのトリム・サーフェスの内側にあれば当該点をレンダリングする。一方、積頂点タイプのセルに対しては、点が両方のトリム・サーフェスの内側にある場合にのみ当該点をレンダリングする。和頂点タイプのセルと積頂点タイプのセルの相違は、図4Aおよび図4Bを参照して説明するように、頂点周囲の稜線の方向に基づいて決定することができる。
次に図4Aを参照すると、vは和頂点400aである。図4Aの稜線e1およびe2は右に曲がっており、したがって、サーフェス402aには、稜線が直線を形成する場合と比較して素材が追加されている。図4Bは、vで示す積頂点400bを示す。図4Bの稜線e1およびe2は左に曲がっており、したがって、サーフェス402bは、稜線が直線を形成する場合と比較して素材が減っている。
セル・データ構造の第2の実装形態は、非特許文献10に記載の4分木表現であり、これもRGBテキスチャに格納される。当該4分木構造の葉ノードは前述の格子セル構造と同じタイプのセルを格納する。しかし、当該4分木の内部ノードは、ノードを内部ノードとして示すR値を有し、当該内部ノードの子である4つのセル・ブロックのうち最初のものを指す。
断片シェーダでは、計算したuv値が与えられると、探索手続きが、当該与えられたuv点を含むセルに対するセル・データ構造を探索する。当該探索手続きのステップは、セル・データ構造のタイプに依存する。当該セルが空でも完全でもない場合は、uv点に対応するサーフェス上の3D点が評価される。次に、当該3D点を、当該セルが参照する1つまたは複数のサーフェスと比較する。
上で論じたように、面の稜線ごと(即ち、トリム・カーブごと)に、セル・データ構造内のセルから参照される対応するトリム・サーフェスが存在する。トリム・サーフェスは、サーフェスの各パラメータを格納する浮動点トリム・サーフェス・テキスチャでエンコードされる。第1のセルは、サーフェスのタイプを保持し、断片シェーダは、当該サーフェスのタイプに基づいてテキスチャからサーフェスを読み出す機能を起動する。
分析サーフェスに対しては、サーフェスの表現の議論で前述したパラメータに基づき、表現はコンパクトである。NURBSサーフェスの表現はあまりコンパクトでなく、したがって、面と実際に交差する関連するベジエ・サブパッチのみがトリム・サーフェス・テキスチャに格納される。同様に、メッシュ・サーフェスに対しては、面と実際に交差する関連する三角形のみが前処理ステップ中に格納される。
セル・データ構造を構築するとき、前処理手続きにより全てのセルに対して、面の点がサーフェスの正の側にあるか負の側にあるかを特定する。この情報はまた、トリム・サーフェス・テキスチャに格納される。前述の全てのサーフェス表現は正のサーフェス法線を有し、当該法線は所与のuv値で直積S(u,v)×S(u,v)の方向として定義されることに留意されたい。したがって、十分に近いサーフェス近傍においては、点pはサーフェスの正の側か負の側の何れかにある。これを、3D点を分類するときに、pをサーフェスに投影し当該サーフェス上の最近傍の点Spを発見し、ベクトルp−SpをSpでの法線と比較することにより、決定することができる。
セル・データ構造の構築はCPUで実施される。当該CPUは次いで当該データ構造をトリム状態テキスチャにエンコードする。当該トリム状態テキスチャは前述のようにシェーダで問い合わされる。当該構築手続きでは、トリム・ループを入力として受け取り、サーフェスのuv領域を、uv小領域を含むセルに分割する。
次に図5Aおよび5Bを参照すると、セル構造の図解が示されている。図5Aは、64×64の格子を有する格子セル構造を示す。当該格子の正方形は、セル間を区別するために2つの陰影で塗られている。図5Bは4分木セル構造を示し、当該4分木における最小のセルは領域幅が0.01である。当該4分木のセルは異なる陰影で塗られ、ルートのセルから遠くのリーフセルほど、薄い陰影が塗られている。
格子セル構造は、uv領域に置かれた均一な格子である。トリム・ループは当該格子と交差し、全ての格子セルは、各格子セルと交差する1つまたは複数のトリム・カーブへの参照を格納する。末端退化(degenerate end)のケースを除いては、十分な格子の解像度のため、セルには高々2つの稜線しかない。稜線がセルを貫く場合は1つであり、セルが頂点を含む場合は2つである。稀なケースでは、セルが3つ以上の稜線を含むか、または、頂点で出会わない2つの稜線を含むことがある。これは、例えば、ほぼ接しているトリム・ループで生じうる。かかる稀なケースでは、格子をより細かな解像度で再構築してもよい。全ての稜線と頂点のセルが特定されると、稜線を保持しないセルが訪問され、多角形点包含テスト(polygon point containment test)を用いて完全かまたは空として分類される。
和頂点と積頂点の区別には、さらなる計算を要する。先ず、面の素材が各稜線の左側にあるように、稜線が有向であると仮定する。これはCADシステムにおいては一般的なしきたりである。しかし、一実施形態では、素材が各稜線の右側にあって同様な結果を有するように、稜線が有向であると仮定してもよい。頂点セルが与えられたとき、流入する稜線をeiで示し流出する稜線をeoで示す。稜線{ei;eo}が左に曲がると、頂点は積頂点となる(即ち、図4Bに示すように、eoのサーフェスとの交差により素材が減少する)。そうでなければ、頂点は和頂点である(即ち、図4Aに示すように、e1のサーフェスが素材を追加する)。{ei;eo}の方向は、端点でのトリム・カーブの接線をとりそれらの直積を計算することで決まる。
4分木セル・データ構造は、終了基準(例えば、小領域のサイズまたは全体数)が満たされるまでuv領域を小領域に再帰的に細分割する。各内部セルは、当該内部セルの4つの子の小領域への参照を保持し、各内部セルと交差する全ての稜線への参照を有するリストも保持する。セルの小領域が稜線を含まない場合は、当該セルは4分木の葉であり、格子セル・データ構造で行ったのと同じように空の葉のセルまたは完全な葉のセルの何れかとして分類される。そうでなければ、細分割を、1つまたは2つの稜線のみがセルと交差するか、または、セルのサイズが何らかの小さな許容値に達するまで行う。これは、退化のケースで生じうる。
セルが稜線を1つしか含まないときは、当該セルは葉のセルの候補であるが、1つの稜線しか有さないからといって当該セルが葉であるとは保証されない。当該セルがトリム・サーフェスと1つの構成要素(分岐)でしか交差しないことを検証する必要がある。交差しない場合は、サーフェスの他の分岐外部にあるセルの内部の点は誤って処理される。例えば、当該点は、破棄すべきときにレンダリングされ、逆も成り立つ。例えば、図6Aおよび6Bの構成を考える。
図6Aおよび6Bは、サーフェス600内の鍵穴形のホールを示す。当該鍵穴形のホールの上端602は、平面上の楕円の細長い弧である。これは、例えば、円筒の一部が当該平面と交差した結果であることができる。図6Aに示すように、当該楕円の上の弧より上方にある点のみをレンダリングすべきである。しかし、図6Aおよび6Bのように、セル604が楕円と2回以上交差する場合は、本明細書に記載の点分類手続きが、当該楕円の他の分岐の外部にある点(即ち、図6Bにおいて陰影領域で示した当該楕円の下にある点)もレンダリングする。したがって、手続きでは、セルがトリム・サーフェスと1つの接続された構成要素のみと交差することをチェックしなければならない。
図6Aおよび6Bは、楕円がリーフセルと2回交差するときに生じうる、回避する必要がある分類の問題を示す。鍵穴形を縁取る太線は、面内のホールのループである。点線の長方形は、4分木内のリーフセルの領域である。完全な楕円形はセル内に2つの分岐を有し、点線で他方の分岐を示してある。図6Aは、楕円上方の領域のみをレンダリングした、望ましい結果を示す。一方、図6Bは、下部分岐がセルと交差し当該下部領域も同様にレンダリングさせる、望ましくない結果を示す。
稜線が接平面の間に存在する場合、手続きは終了せず、最小のセル・サイズに到達するまで細分割を継続する。細分割を継続することで、接平面が点分類手続きにおいてもたらす難点に対処する。同様に、セルが頂点で接続された2つの稜線を含む場合、当該稜線は前述したのと同じ条件を満たさなければならない。さらに、接する稜線の間の頂点も分類において難点を示し、したがって、かかる場合、最小セル・サイズに到達するまで細分割を継続する。
図7A乃至7Cを参照すると、実施形態の画素単位の精度が示されている。図7Aは3Dモデルを示す。図7Bおよび7Cは、図7Aの3Dモデルを拡大した図である。さらに、図7Bは共通のテセレーション法を用いた拡大図を示し、図7Cは本発明の一実施形態におけるレイ・キャスティングのアプローチを示す。具体的には、図7Cに示す縁702の曲率は、図7Bに示す縁702の曲率またはその欠陥よりもかなり平滑である。
次に図8を参照すると、コンピュータ化されたモデリング・システム800が示されている。当該システム800は、CPU802、コンピュータ・モニタ804、キーボード入力装置806、マウス入力装置808、および記憶装置810を備える。CPU802、コンピュータ・モニタ804、キーボード806、マウス808、および記憶装置810は、共通に利用可能なコンピュータ・ハードウェア装置を備えることができる。例えば、CPU802はペンティアム(登録商標)・ベースのプロセッサを備えることができる。マウス808は、ユーザが押下してコマンドをCPU802により実行されているソフトウェア・プログラムに発行できる、従来式の左ボタンおよび右ボタンを有してもよい。マウス808の代替または追加として、コンピュータ化されたモデリング・システム800は、トラックボールのようなポインティング装置、タッチ・センシティブ・パッド、またはキーボード806に組み込まれたポインティング装置およびボタンを備えることができる。マウス装置を参照して本明細書で説明したのと同じ結果を、別の利用可能なポインティング装置を用いて実現できることは当業者には理解されよう。以下の議論から明らかなように、他の適切なコンピュータ・ハードウェア・プラットフォームも適している。かかるコンピュータ・ハードウェア・プラットフォームは、マイクロソフト「登録商標」のWindows「登録商標」2000、Windows XP、Windows Vista「登録商標」、Windows 7、UNIX「登録商標」、Linux(登録商標)、またはMacOS「登録商標」オペレーティング・システムを実行できることが好ましい。
追加のコンピュータ処理ユニットおよびハードウェア装置(例えば、GPU(graphic processing unit)、高速プロトタイピング、ビデオ、およびプリンタ装置)をコンピュータ化されたモデリング・システム800に含めてもよい。さらに、コンピュータ化されたモデリング・システム800がネットワーク・ハードウェアおよびソフトウェアを備えてもよく、それらにより、ハードウェア・プラットフォーム812に対する有線または無線の通信が可能となり、他のコンピュータ・コンポーネントのうちCPUおよび記憶システムを含みうる多数のコンピュータ・システムの間の通信が容易になる。
コンピュータ支援型のモデリング・ソフトウェアを記憶装置810に格納して、CPU802にロードしCPU802により実行してもよい。当該モデリング・ソフトウェアにより、ユーザは3Dモデルを作成し修正することができ、本明細書に記載の本発明の諸態様を実装する。CPU802はコンピュータ・モニタ804を使用して、説明した3Dモデルおよびその他の態様を表示する。キーボード806およびマウス808を用いて、ユーザは3Dモデルに関連するデータを入力し修正することができる。CPU802はキーボード806およびマウス808から入力を受け付け、処理する。CPU802は、3Dモデルに関連するデータとともに当該入力を処理し、モデリング・ソフトウェアにより指示されたようにコンピュータ・モニタ804に表示されたものに対して、対応する適切な変更を加える。一実施形態では、モデリング・ソフトウェアは、1つまたは複数のソリッド・ボディおよびサーフェス・ボディから成る3Dモデルを構築するために使用できる、ソリッド・モデリング・システムに基づく。
本発明を、デジタル電子回路で、またはコンピュータ・ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組合せで、実装してもよい。本発明の装置を、プログラム可能プロセッサにより実行するための機械読取可能記憶装置で有形的に具体化したコンピュータ・プログラム製品で実装してもよく、本発明の方法ステップを、入力データに作用して出力を生成することで本発明の機能を実施するための命令からなるプログラムを実行するプログラム可能プロセッサにより実施してもよい。本発明を、データ記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置に対してデータおよび命令を送受信し、データおよび命令を送信するように接続された少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能な、1つまたは複数のコンピュータ・プログラムで有利に実装してもよい。各コンピュータ・プログラムを、高レベルの手続型またはオブジェクト指向型のプログラミング言語で実装してもよく、または、必要ならばアセンブリ言語もしくは機械語で実装してもよい。いずれのケースでも、当該言語はコンパイル型の言語またはインタプリタ型の言語であってもよい一実施形態では、本発明は、OpenGLおよびGLSLシェーディング言語を用いて実装される。適切なプロセッサには、限定ではなく例として、汎用目的および特殊目的のマイクロプロセッサが含まれる。一般に、プロセッサは命令およびデータを読取可能メモリおよび/またはランダム・アクセス・メモリから受け取る。コンピュータ・プログラム命令およびデータを有形的に具体化するのに適した記憶装置には、あらゆる形態の不揮発性メモリが含まれる。当該不揮発性メモリには、限定ではなく例として、EPROM、EEPROM、およびフラッシュ・メモリ装置のような半導体メモリ装置、内部ハードディスクおよび取外し可能ディスクのような磁気ディスク、光磁気ディスク、およびCD−ROMディスクが含まれる。上述の何れも、特別に設計されたASIC(application−specific integrated circuit)で補完し、または、当該ASICに組み込んでもよい。
本明細書で説明したような高品質のレンダリングにより、時間節約の利点だけが実現されるわけではない。例えば、レンダリングの前提条件としてモデルのテセレーションを作成する必要なしに、3Dモデルをモデルの定義(例えば、分析サーフェスの定義)から直接レンダリングすることができる。他の利点には、ギャップ/クラックのアーチファクトの軽減、ならびに、大規模なモデルのテセレーションを格納し当該テセレーションを或る演算ユニット(例えば、CPU)から別の演算ユニット(例えば、GPU)へ送信する必要性の軽減がある。一般に、本発明は、本明細書で論じたコンパクトなサーフェス表現のため、帯域幅によっては限定されず、したがって、クライアントのグラフィック・アプリケーションならびに他のアプリケーションに良く適している。さらに、GPU技術が進歩すると、本明細書で説明したフィルレートが制限された技法(fillrate−limited technique)が性能に及ぼす影響は少なくなる。ソリッド・モデリング技法を用いたCADモデリングは、工学、産業デザイン、およびエンターテイメントの分野で広く用いられており、それらの全てが本発明の実装形態から利益を得ることができる。
本発明を、その例示的な実施形態を参照して具体的に示し説明した。しかし、添付の特許請求の範囲で包含される本発明の範囲から逸脱しない様々な修正を形態および細部において行いうることは当業者には理解されよう。例えば、諸実装形態では動作の実施順序を変更してもよい。さらに、実装形態のニーズに応じて、本明細書で説明した特定の動作を、組合せ動作として実装し、削除し、追加し、または再配置してもよい。非限定的な例として、一実施形態では、セル・データ構造をパラメトリックな領域での別の構造(例えば、k次元の木)として実装してもよい。

Claims (16)

  1. 実世界のオブジェクトを表すコンピュータ支援型設計モデルをレンダリングするためのコンピュータ実施方法であって、
    前記コンピュータ支援型設計モデルの境界表現データ構造を構成するステップであって、前記境界表現データ構造は、面を定義するデータから成るトポロジ・データを格納する、該ステップと、
    前記面のパラメータ空間を表現するデータ構造を構成するステップと、
    前記パラメータ空間を複数のセルに分解するステップと、
    各セルについて、空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルのうち1つとして前記セルを指定することによって、前記セル内の前記面の存在を示すステップと、
    前記複数のセルをテキスチャ構造のデータにエンコードするステップと、
    前記テキスチャ構造のデータ、前記面をコンピュータのモニタ上にレンダリングするグラフィックス・プロセッシング・ユニットに送信するステップと、
    を備えたことを特徴とするコンピュータ実施方法。
  2. 前記稜線タイプのセルおよび前記頂点タイプのセルが1つまたは複数のトリム・サーフェスの表現を参照し、前記トリム・サーフェスが前記面の隣接面に対応することを特徴とする請求項1に記載のコンピュータ実施方法。
  3. 前記面の基礎サーフェス、前記面のuvパラメータ空間の境界ボックス、および前記面の3D境界ボックスを格納するステップと、
    前記グラフィックス・プロセッシング・ユニットへ送信し前記グラフィックス・プロセッシング・ユニットによって処理するために、前記1つまたは複数のトリム・サーフェスを該トリム・サーフェスのテキスチャにてエンコードするステップと、
    をさらに備えたことを特徴とする請求項2に記載のコンピュータ実施方法。
  4. 前記トリム・サーフェスの各々が、平面、円筒、円錐、球、トーラス、NURBSサーフェス、およびサポートされていないサーフェスに対する標準サーフェスのうち1つとして表現されることを特徴とする請求項2に記載のコンピュータ実施方法。
  5. 前記テキスチャ構造を受け取ったときに、前記グラフィックス・プロセッシング・ユニットがレイ・キャスティングを行って前記面をレンダリングするステップであって、前記グラフィックス・プロセッシング・ユニットは、前記テキスチャ構造および1つまたは複数のトリム・サーフェス表現を使用し、前記1つまたは複数のトリム・サーフェス表現が前記テキスチャ構造にてエンコードされた前記複数のセルによって参照されることをさらに備えたことを特徴とする請求項1に記載のコンピュータ実施方法。
  6. 光線が前記面の基礎サーフェスと交差するか否かを判定することによって点分類プロセスを実行するステップと、
    前記光線が前記基礎サーフェスと交差する場合には、対応する画素をレンダリングするステップと、
    をさらに備えたことを特徴とする請求項5に記載のコンピュータ実施方法。
  7. 中央演算装置が前記面の存在をセルのタイプとしてエンコードし、
    (i)前記空のタイプのセルは、前記空のタイプのセルに対応する前記パラメータ空間領域と交差する前記面の部分が存在しないことを示し、
    (ii)前記完全タイプのセルは、前記完全タイプのセルの全領域が前記面の素材を含むことを示し、
    (iii)稜線タイプのセルは、前記面の隣接面に対応するトリム・サーフェスへの参照を格納し、
    (iv)頂点セルは、前記面の2つの隣接面に対応する2つのトリム・サーフェスへの参照を格納する、
    ことを特徴とする請求項1に記載のコンピュータ実施方法。
  8. 前記複数のセルは、セル・データ構造に格納され、格子構造および木データ構造のうち1つとして実装されることを特徴とする請求項1に記載のコンピュータ実施方法。
  9. 3次元モデルを格納するデータ記憶システムに動作可能に接続された中央処理装置(CPU)と、
    前記CPUに動作可能に接続され、グラフィックス・プロセッシング・ユニット(GPU)にデータを送信して、テセレーションなく、前記3次元モデルを前記GPUにレンダリングさせるように前記CPUを構成するための命令を含む、データ記憶メモリであって、
    前記CPUからトリム状態テキスチャを受け取るステップであって、
    前記トリム状態テキスチャは複数のセルをテキスチャ構造のデータにエンコードすることにより構成され、
    トポロジ面のパラメータ空間を分解することで前記複数のセルが作成され、
    各セルは空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルとして指定される、該ステップと、
    トリム・サーフェスのテキスチャを前記CPUから受け取るステップであって、
    前記トリム・サーフェスが、前記トポロジ面の隣接面を表し、および、
    前記CPUが、前記GPUに送信するために前記トリム・サーフェスを前記トリム・サーフェスの前記テキスチャでエンコードする、該ステップと、
    光線と前記トポロジ面に対応するサーフェスとの交差によって判定されるように前記トリム状態テキスチャおよび前記トリム・サーフェスの前記テキスチャでエンコードしたデータを用いて、前記面をレンダリングするレイ・キャスティング・プロセスを実施するステップと、
    によって、前記3次元モデルを前記GPUにレンダリングさせることを特徴とするコンピュータ支援型設計システム。
  10. 前記空のタイプのセルは、前記空のタイプのセルに対応するパラメータ空間領域と交差する前記トポロジ面の部分が存在しないことを示し、
    前記完全タイプのセルは、前記完全タイプのセルの全領域が前記トポロジ面の素材を含むことを示し、
    前記稜線タイプのセルおよび前記頂点タイプのセルは、前記トポロジ面の隣接面に対応する1つまたは複数のトリム・サーフェスの表現を参照する
    ことを特徴とする請求項9に記載のコンピュータ支援型設計システム。
  11. 前記レイ・キャスティング・プロセスは断片シェーダを利用して、前記光線と前記トポロジ面に対応する前記サーフェスとの交点を計算することを特徴とする請求項9に記載のコンピュータ支援型設計システム。
  12. 前記トリム状態テキスチャは、前記トリム・サーフェスをエンコードする前記トリム・サーフェスの前記テキスチャを参照することを特徴とする請求項9に記載のコンピュータ支援型設計システム。
  13. 前記トリム・サーフェスが、平面、円筒、円錐、スプライン、トーラス、およびサポートされていないサーフェスに対する標準サーフェスのうち1つとして表現されることを特徴とする請求項11に記載のコンピュータ支援型設計システム。
  14. 前記複数のセルは、セル・データ構造に格納され、格子構造および木データ構造のうち1つとして実装されることを特徴とする請求項9に記載のコンピュータ支援型設計システム。
  15. コンピュータに、グラフィックス・プロセッシング・ユニット(GPU)にデータを送信させ、テセレーションなく、3次元モデルを前記GPUにレンダリングさせるように中央処理装置(CPU)を構成させる命令を含む、コンピュータ読取可能データ記憶媒体であって、
    前記CPUからトリム状態テキスチャを受け取るステップであって、
    前記トリム状態テキスチャは複数のセルをテキスチャ構造のデータにエンコードすることにより構成され、
    トポロジ面のパラメータ空間を分解することで前記複数のセルが生成され、
    各セルは空タイプのセル、完全タイプのセル、稜線タイプのセル、および頂点タイプのセルとして指定される、該ステップと、
    トリム・サーフェスのテキスチャを前記CPUから受け取るステップであって、
    前記トリム・サーフェスが、前記トポロジ面の隣接面を表し、および、
    前記CPUが、前記GPUに送信するために前記トリム・サーフェスを前記トリム・サーフェスの前記テキスチャでエンコードする、該ステップと、
    光線と前記トポロジ面に対応するサーフェスとの交差によって判定されるように前記トリム状態テキスチャおよび前記トリム・サーフェスの前記テキスチャでエンコードしたデータを用いて、前記トポロジ面をレンダリングするレイ・キャスティング・プロセスを実施するステップと、
    によって、3次元モデルを前記GPUにレンダリングさせることを特徴とするコンピュータ読取可能データ記憶媒体。
  16. 前記CPUが前記面の存在をセルのタイプとしてエンコードし、
    (i)前記空のタイプのセルは、前記空のタイプのセルに対応するuvパラメータ空間領域と交差する前記トポロジ面の部分が存在しないことを示し、
    (ii)前記完全タイプのセルは、前記完全タイプのセルの全領域が前記トポロジ面の素材を含むことを示し、
    (iii)稜線タイプのセルは、前記トポロジ面の隣接面に対応するトリム・サーフェスへの参照を格納し、
    (iv)頂点セルは、前記トポロジ面の少なくとも2つの隣接面に対応する少なくとも2つのトリム・サーフェスへの参照を格納することを特徴とする請求項15に記載のコンピュータ読取可能データ記憶媒体。
JP2013549548A 2011-01-14 2012-01-12 Gpu上でのcadモデルの直接的なレンダリング Active JP5916758B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161433001P 2011-01-14 2011-01-14
US61/433,001 2011-01-14
PCT/US2012/021112 WO2012097175A1 (en) 2011-01-14 2012-01-12 Direct rendering of cad models on the gpu

Publications (3)

Publication Number Publication Date
JP2014507027A JP2014507027A (ja) 2014-03-20
JP2014507027A5 JP2014507027A5 (ja) 2015-03-05
JP5916758B2 true JP5916758B2 (ja) 2016-05-11

Family

ID=45582027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549548A Active JP5916758B2 (ja) 2011-01-14 2012-01-12 Gpu上でのcadモデルの直接的なレンダリング

Country Status (4)

Country Link
US (1) US8982121B2 (ja)
EP (1) EP2663965B1 (ja)
JP (1) JP5916758B2 (ja)
WO (1) WO2012097175A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8957895B2 (en) * 2011-09-08 2015-02-17 Landmark Graphics Corporation Systems and methods for rendering 2D grid data
US9305370B2 (en) 2013-07-31 2016-04-05 Qualcomm Incorporated Graphical rendering with implicit surfaces
US9449424B2 (en) * 2013-09-12 2016-09-20 Analytical Graphics Inc. Visualization of field of view obstruction by an ellipsoid
US9984496B1 (en) 2016-08-23 2018-05-29 Bentley Systems, Incorporated Technique for compact and accurate encoding trim geometry for application in a graphical processing unit
US11238649B2 (en) * 2019-11-26 2022-02-01 Nature Simulation Systems Inc. Method and system for hybrid modeling using geometric facets
CN112948518B (zh) * 2021-03-05 2024-05-14 苍穹数码技术股份有限公司 对象处理方法、装置、电子设备和计算机存储介质
CN115795939B (zh) * 2022-11-03 2023-06-13 天津大学 一种基于非结构网格的二维洪水过程多gpu模拟方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079990B2 (en) * 2001-02-08 2006-07-18 Solidworks Corporation Automated connections of computer-aided design components
US20070018988A1 (en) * 2005-07-20 2007-01-25 Michael Guthe Method and applications for rasterization of non-simple polygons and curved boundary representations
JP4783100B2 (ja) * 2005-09-12 2011-09-28 独立行政法人理化学研究所 境界データのセル内形状データへの変換方法とその変換プログラム
US8446410B2 (en) * 2006-05-11 2013-05-21 Anatomage Inc. Apparatus for generating volumetric image and matching color textured external surface
US7688318B2 (en) * 2007-02-02 2010-03-30 Dassault Systemes Solidworks Corporation Reusable data constructs for a modeling system

Also Published As

Publication number Publication date
WO2012097175A1 (en) 2012-07-19
JP2014507027A (ja) 2014-03-20
EP2663965A1 (en) 2013-11-20
US20120182297A1 (en) 2012-07-19
EP2663965B1 (en) 2015-03-18
US8982121B2 (en) 2015-03-17

Similar Documents

Publication Publication Date Title
JP5916758B2 (ja) Gpu上でのcadモデルの直接的なレンダリング
Jakob et al. Instant field-aligned meshes.
US11361503B2 (en) Systems and methods for generating volumetric models
Guo et al. Automatic and high-quality surface mesh generation for CAD models
Di Angelo et al. A new mesh-growing algorithm for fast surface reconstruction
Michikawa et al. Multiresolution interpolation meshes
Wang et al. GPU-based offset surface computation using point samples
Xian et al. Automatic cage generation by improved obbs for mesh deformation
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
US8717356B2 (en) Display processing method and apparatus
Schollmeyer et al. Direct trimming of NURBS surfaces on the GPU
CN109983509B (zh) 一种使用几何面的即时布尔运算方法
Li et al. A sweep and translate algorithm for computing voxelized 3D Minkowski sums on the GPU
Hanniel et al. Direct rendering of solid CAD models on the GPU
Trettner et al. Sampling from Quadric‐Based CSG Surfaces
Flórez Díaz Improvements in the ray tracing of implicit surfaces based on interval arithmetic
Lin et al. A feature-adaptive subdivision method for real-time 3D reconstruction of repeated topology surfaces
Ivo et al. Improved silhouette rendering and detection of splat-based models
Liao et al. Subdivision Surface Modeling Technology
Peters Changing variables
Keller et al. Reverse engineering with subdivision surfaces
Mulder Automatic repair of geometrically invalid 3D city building models using a voxel-based repair method
Morgan et al. A hybrid hierarchical procedure for composing trivariate NURBS solids
Obermaier et al. Generation of adaptive streak surfaces using moving least squares
Safko Tessellation of trimmed NURBS surfaces.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160216

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: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160405

R150 Certificate of patent or registration of utility model

Ref document number: 5916758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250