Perpustakaan Matematika Lengkap untuk digunakan dalam Game OpenGL ES 2.0? [Tutup]

14

Apakah Anda mengetahui perpustakaan matematika lintas platform lengkap (atau hampir lengkap) untuk digunakan dalam permainan OpenGL ES 2.0?

Perpustakaan harus berisi:

  • Kelas Matrix2x2, Matrix 3x3, Matrix4x4
  • Pertanyaan
  • Kelas Vector2, Vector3, Vector4
  • Kelas Angle Euler
  • Operasi di antara kelas, konversi, dll yang disebutkan di atas.
  • Operasi matematika yang digunakan secara standar dalam grafik 3D (Dot Product, Cross Product, SLERP, dll ...)

Apakah ada API Matematika yang tersedia baik mandiri atau sebagai bagian dari paket apa pun ?

Bahasa Pemrograman: Visual C ++ tetapi direncanakan akan porting ke OS X dan Android OS.

Bunkai.Satori
sumber
Tidak ada perpustakaan matematika yang sempurna untuk saat ini, saya hanya mencoba menulis beberapa persyaratan dan tidak ada perpustakaan yang memilikinya, nah pada kenyataannya saya ingin seseorang membuat perpustakaan semudah GLM dengan fungsi yang sama dengan shader + gaya perpustakaan matematika Ogre dan beberapa fungsi-fungsinya (bahwa GLM adalah missin seperti view frustum, bounding box, dll.) Juga perhatikan bahwa GLM tidak secepat itu (pada kenyataannya itu tidak masalah) jadi saya ragu seseorang akan menggunakannya dalam raytracer atau hal-hal yang intensif, lebih berguna karena API dan gaya desainnya
GameDeveloper

Jawaban:

14

Sudahkah Anda mempertimbangkan Perpustakaan Matematika yang Dapat Dikonfigurasi ?

pengguna1430
sumber
+1 @Josh: Terima kasih atas tip baik Anda. Saat ini saya sedang mempertimbangkan perpustakaan GL GL ( glm.g-truc.net ). Saya akan menunggu untuk melihat perpustakaan apa yang sudah dicoba dan terbukti bagus oleh perpustakaan.
Bunkai.Satori
3
Id sangat merekomendasikan GLM. Saya menggunakannya dan itu "luar biasa"
brainydexter
+1, saya sangat suka CML dan akan mempostingnya sebagai jawaban =). Namun, hal itu sangat bergantung pada optimisasi kompiler, karena berbasis generik dan templat. Jika Anda menargetkan perangkat seluler (mungkin seperti yang Anda kutip dari ES), beberapa perpustakaan matematika lain mungkin lebih optimal untuk target tersebut.
Jari Komppa
Hai Brainy, Jari, terima kasih atas komentar Anda. Saya masih ingin melihat, jika ada lebih banyak opsi dengan umpan balik pengguna tersedia, oleh karena itu, saya ingin menjaga pertanyaan ini terbuka untuk sementara waktu.
Bunkai.Satori
@Jari - ketika mendiskusikan Optimalisasi Perpustakaan Matematika untuk platform OpenGL ES, apa yang disertakan? Maksud saya, jika rumus dan tipe data dirancang dengan baik, apa lagi yang bisa dilakukan untuk mengoptimalkan pustaka untuk platform ES? (Mungkin ini pertanyaan mendasar, tetapi saya tidak punya jawaban untuk itu.)
Bunkai.Satori
8

Eigen adalah perpustakaan matematika hanya header C ++ yang mendukung vektorisasi SSE, AltiVec dan ARM Neon.

Simon Lacey
sumber
+1 untuk tip yang bagus. Hai Simon, terima kasih atas tip Anda yang luar biasa. Saya mulai menggunakan GLM (OpenGL Math Library), dan itu sangat menakjubkan. Ini berisi segala sesuatu mulai dari vektor, matriks, matematika angka empat, interpelasi SLERP, dll ... sejauh ini, ia menawarkan lebih dari yang saya butuhkan, jadi saya senang dengan itu untuk saat ini.
Bunkai.Satori
6

Inilah 2:

  1. Vectormath Sony
  2. Linearmath Peluru
Maik Semder
sumber
+1 untuk kiat yang bagus. Hai Maik, terima kasih atas komentar Anda. Menurut saya, yang kedua mungkin berguna terutama ketika game mengintegrasikan Bullet Physics. Game saya akan menggunakan Bullet Physics, tetapi sayangnya, saya sudah mulai menggunakan GLM, jadi saya akan mencoba untuk tetap menggunakan GLM.
Bunkai.Satori
4

Saya berupaya menambahkan GLKMath dari Apple ke tes ini (sebenarnya bercabang dengan garpu ini )

Inilah hasilnya di iPod Touch 4 Generation saya :

Eigen:
Additions: 77624 milliseconds.
Multiplications: 227179 milliseconds.

GLM:
Additions: 23935 milliseconds.
Multiplications: 80599 milliseconds.

CML:
Additions: 102390 milliseconds.
Multiplications: 161059 milliseconds.

GLKMath:
Additions: 8526 milliseconds.
Multiplications: 21775 milliseconds.

Ini kode saya

Saya tidak memiliki Perangkat Android, tetapi saya ingin tahu bagaimana kinerja GLKMath di Android.

chunkyguy
sumber