私は以前にやったことがOpenGL
あり、現在いくつかを学んでいDirectX11
ます。新しい数学ライブラリの機能の 1 つは、ベクトルと行列の Load/Store メソッドが存在することです (たとえば、 http://msdn.microsoft.com/en-us/library/ee415635( v=vs.85 ).aspx など)。 )。
私にとって、これは私がそれらを使用したいときに各ベクトルと行列を保存/ロードしなければならないという多くの癖があります.
私は以前にやったことがOpenGL
あり、現在いくつかを学んでいDirectX11
ます。新しい数学ライブラリの機能の 1 つは、ベクトルと行列の Load/Store メソッドが存在することです (たとえば、 http://msdn.microsoft.com/en-us/library/ee415635( v=vs.85 ).aspx など)。 )。
私にとって、これは私がそれらを使用したいときに各ベクトルと行列を保存/ロードしなければならないという多くの癖があります.
それが役立つ場合は、 simplemathを見ることができます。現在はDirectXTKの一部です。
リンク先サイトより:
DirectXMath をラップする理由
DirectXMath は、高度に最適化されたベクトルおよび行列演算関数を提供します。これらは、x86/x64 用にコンパイルされた場合は SSE SIMD 組み込み関数を利用し、Windows RT や Windows Phone などの ARM プラットフォーム用にコンパイルされた場合は ARM NEON 命令セットを利用します。SIMD を効率的に使用するように設計されていることの欠点は、DirectXMath の操作がやや複雑になることです。開発者は、型の正しい使用法を認識し (XMVECTOR などの SIMD レジスタ型と XMFLOAT4 などのメモリ ストレージ型の違いを理解する必要があります)、SIMD ヒープ割り当ての正しいアライメントを維持するように注意し、アクセスを避けるためにコードを慎重に構築する必要があります。 SIMD レジスタからの個々のコンポーネント。この複雑さは SIMD のパフォーマンスを最適化するために必要ですが、それほど手間をかけずに機能させたい場合もあります。次の場合は、SimpleMath を使用する必要があります。
- C# XNA 型と同様の API を持つ C++ 数学ライブラリを探しています
- C# から C++ への既存の XNA コードの移植
- 実行時の効率を犠牲にして、プログラマーの効率 (単純さ、読みやすさ、開発速度) を最適化したい
次の場合は、基になる DirectXMath API に直接アクセスする必要があります。
- 最速のコードを作成したい
- 生の SIMD でアルゴリズムを表現するために必要な横方向の思考をお楽しみください