ゲームエンジンに最適なC ++数学ライブラリですか?[閉まっている]


18

次の機能を備えたゲームエンジン用の高速なオープンソースC ++数学ライブラリを探しています。

  • 高速(sse?)
  • ベクトル
  • 行列
  • 四元数

openglとdirectxの両方に適しています


1
とにかく、数学ライブラリがグラフィックスAPIに依存する理由はわかりません。:P
共産主義者ダック

3
afaik openglは列メジャー行列とdirectx行メジャーを使用します。そのため、ライブラリが両方をサポートしていればいいと
思います。プラグマスクリプト

1
GLでは、常に転置行列を設定でき、DXでは、シェーダーでレイアウトを指定できます。手動調整も大したことではありません。
アンテル

1
ここではプラットフォームが重要です。なぜなら、PC上ではうまく機能するがコンソール上ではひどい数学ライブラリーを作成するのは非常に簡単だからです。
キロタン

回答:


11

XNA Mathが最適かもしれません。最新のDirectX SDKで配布され、SSE組み込み関数を使用するヘッダーのみのC ++数学ライブラリです。私はそのパフォーマンスについてあまり語ることはできませんが、私がそれについて読んだことから、それはかなりまともなようです。

XNA Mathリファレンス

XNA Mathプログラミングガイド

DX SDKダウンロード

編集:ライセンス条件についてもわかりません。DX SDK Eulaは、「Distributable Code」が

「Windows、Xbox、およびWindows Mobileプラットフォーム以外のプラットフォームで実行します。」

サンプルコードとユーティリティコードのみが「Distributable Code」として明示的にマークされているため、これがxna数学に当てはまるかどうかは完全にはわかりません。


XNAのライセンス条件についてはまったくわかりません。たとえば、Microsoft以外のオペレーティングシステムなどで使用しても大丈夫でしょうか。とは言っても、ある時点でソフトウェアレンダリングプロジェクトでd3dx数学ライブラリ(ほぼ同じもの)を使用しているので、何らかの方法でdirectxに依存することはありません。
ヤリコンパ

1
明確化:d3dxの数学は、ライセンスの観点ではおそらくほぼ同じものです-実装面では異なりますが。SDKドキュメントによると、d3dx数学はインライン化とポインターによる受け渡しに大きく依存していますが、xnamathはSIMDと組み込み関数に依存しています。
-Koarl

14

OpenGL数学を使用します

名前からわかるように、OpenGL専用であることがわかりますが、DirectXで機能しない理由はありません。これはヘッダーのみのライブラリであり、使いやすく、非常に積極的に更新されます。

見てみな。


2
用途MITライセンス
ヤリKomppa



1

Bullet Physicsの一部として使用されているSonyのvectormathライブラリは、すべての要件を満たしています。Bulletからそれを分離するためにいくつかの作業が含まれますが、深刻なことはありません-それは弾丸に依存していません。

現在箇条書きツリーにあるバージョンは、SSE最適化をサポートし、C ++インターフェイスを備えています。

古いバージョン(おそらく現在サポートされていない)もSOA形式と純粋なCインターフェイスをサポートしています。


1
zlib / libpngライセンスのようです。
ジャリコンパ

私はこれに興味があります。いくつかの仕事は分離に関係しているとおっしゃいましたが、どのような仕事を伴うかについてのリンクやその他の情報はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.