2

シミュレーションや 3D オブジェクトを作成した経験はありませんが、学習を開始して、3D でトポロジ オブジェクトをシミュレートする小さなアプリケーションを作成したいと考えています。「トポロジー オブジェクト」とは、トーラス、結び目、メビウスの帯などを意味する数学的トポロジー (代数的/一般的なトポロジー) です。したがって、ネットワーク トポロジーのようなものは意味しません。

それらに関するサンプルコードをインターネットで検索してきましたが、役に立つものは見つかりませんでした。もしよろしければ、資料を提供していただければ幸いです。一方で、どのプログラミング言語/パラダイム/拡張機能を使用すべきかについて、あなたの意見を聞きたいです。また、スピードアップを達成するために、プロジェクトで CUDA を使用する予定です。

4

4 に答える 4

1

CUDA が計算代数的/一般的なトポロジーに実際に役立つとは思いません。確かに、相同性群などをいじるのに使用できますが、それはトポロジーというよりはむしろ代数であり、トポロジー自体は抽象的/「動的」になりすぎて、SIMD から実際に恩恵を受けることができません。明確なアイデアがない場合は、最初にいくつかの CPU 実装を試し、後で最適化するために CUDA に移植するだけです。

とにかく、あなたの説明は、位相空間の視覚的表現の作成、つまり具体的な埋め込みT → ℝ³ の作成に主に関心があるように聞こえます。それはむしろ差分トポロジの領域にあり、gpgpu処理を十分に活用できると思います。ただし、最後の「視覚化ステップ」では、より具体的なものを使用する必要があります。openGL + GLUT は問題ありません。これは多くの言語で使用できます。私は Haskell をお勧めします (すべての数学に間違いなく優れています) が、C または C++ はもちろんライブラリに近く、より多くの例が見つかり、CUDA を簡単に取得できます。

于 2012-11-22T23:19:24.100 に答える
0

「例のCUDA」、素敵な本、CUDAを始めるのに適していることをお勧めします。3D ビジュアライゼーションには、OpenGL と GLUT (または freeglut) を使用します。だから、NeHe のチュートリアルを見てみましょう。

もう 1 つの良い方法は、利用可能な 3D グラフィック ソフトウェアをチェックして、3D 空間でのモデリングのアイデアを得るというものです。

幸運を!

于 2012-11-22T15:21:25.813 に答える
0

あなたは主題から始めているので、次の例を見ることをお勧めします。

チュートリアル

Dr Dobbs Journal シリーズのCUDA: Rob Farmer による大衆のためのスーパーコンピューティングは優れており、14 回の記事でほぼすべてをカバーしています。それはまたかなり穏やかに始まるので、かなり初心者に優しい.

その他:

最後の項目を見ると、CUDA を学ぶためのリンクがたくさんあります。

OpenCL も見たいので、次のようにします。

OpenCL: OpenCL チュートリアル | マックリサーチ

于 2012-11-22T16:31:36.467 に答える
0

CUDA の最適化の必要性を判断することは、プロファイリングの前に最適化を行うようです。私があなたなら、モデリング側の実装方法を理解するまでは、もっと単純なレンダリング環境を使用するでしょう。

好みの実装言語によっては、OpenTkを参照することをお勧めします。これにより、OpenGl に非常に使いやすい C# ラッパーが提供されます。その中で、必要に応じてシェーダー言語を使用できます。

トポロジー オブジェクトをどのように表現するかという点では、詳細は、埋め込みによって定義された記述または暗黙の定義を使用する計画によって異なります。後者は、構成要素であるオープン セットが破片に分割され、視覚化でポリゴンになる可能性があるという点で、非常に自然であると考えるべきです。

于 2012-11-23T03:30:00.363 に答える