OpenGL ES 2.0 Oyununda kullanmak için tam Matematik Kütüphanesi? [kapalı]


14

OpenGL ES 2.0 oyunlarında kullanmak için eksiksiz (veya neredeyse tamamen) çapraz platform matematik kütüphanesinin farkında mısınız ?

Kütüphane şunları içermelidir:

  • Matrix2x2, Matrix 3x3, Matrix4x4 sınıfları
  • Kuaterniyonlar
  • Vector2, Vector3, Vector4 Sınıfları
  • Euler Açı Sınıfı
  • Yukarıda belirtilen sınıflar, dönüşümler vb. İşlemleri.
  • 3D grafiklerde standart olarak kullanılan matematik işlemleri (Dot Product, Cross Product, SLERP, vb.)

Bağımsız veya herhangi bir paketin parçası olarak bu tür Math API var mı ?

Programlama Dili: Visual C ++, ancak OS X ve Android OS'ye taşınması planlanmıştır.



Şimdilik mükemmel bir matematik kütüphanesi yok, sadece birkaç gereksinim yazmaya çalıştım ve sadece hiçbir kütüphane onlara sahip değil, gerçekte birisinin bir kütüphaneyi gölgelendiricilerle + Ogre matematik kütüphanesinin stili ile aynı işlevi yerine getirmesini istiyorum ve bazı işlevleri (GLM görünüm frustum, sınırlayıcı kutuları vb gibi missin olduğunu) Ayrıca GLM (gerçekte önemli değil) bu kadar hızlı olmadığını unutmayın, bu yüzden birisi raytracers veya yoğun şeyler kullanacağından şüphe ediyorum API ve tasarım stili nedeniyle kullanışlıdır
CoffeDeveloper

Yanıtlar:


14

+1 @Josh: İyi ipucun için teşekkürler. Şu anda GL Math ( glm.g-truc.net ) GL Math kütüphanesini düşünüyorum. İnsanların hangi kütüphaneleri denediğini ve kanıtlandığını görmek için bekleyeceğim.
Bunkai.Satori

3
GLM'yi şiddetle tavsiye ediyorum. Ben ve onun "harika" kullanın
brainydexter

+1, CML'yi çok seviyorum ve bunu bir cevap =) olarak yayınlardım. Bununla birlikte, genel ve şablon tabanlı olduğu için derleyicinin optimizasyonuna çok bağlıdır. Bir mobil cihazı (ES'den alıntıladığınız gibi) hedefliyorsanız, başka bir matematik kütüphanesi hedef için daha iyi optimize edilebilir.
Jari Komppa

Merhaba Brainy, Jari, yorumlarınız için teşekkürler. Hala kullanıcı geri bildirimi olan daha fazla seçenek varsa, bu soruyu bir süre açık tutmak istiyorum.
Bunkai.Satori

@Jari - OpenGL ES platformu için Matematik Kütüphanesi Optimizasyonu tartışılırken neler bulunur? Demek istediğim, formül ve veri türleri uygun şekilde tasarlanmışsa, ES platformu için kütüphaneyi optimize etmek için başka neler yapılabilir? (Bu temel bir soru olabilir, ama bunun cevabım yok.)
Bunkai.Satori

8

Eigen , SSE, AltiVec ve ARM Neon vektörleşmesini destekleyen bir C ++ başlık sadece matematik kütüphanesidir.


Harika bir ipucu için +1. Merhaba Simon, harika ipucun için teşekkürler. GLM (OpenGL Math Library) kullanmaya başladım ve oldukça şaşırtıcı. Vektör, matris, kuaterniyon matematiği, SLERP interpotations, vb. Her şeyi içerir.
Bunkai.Satori

6

İyi ipuçları için +1. Merhaba Maik, yorumlarınız için teşekkürler. Kanımca, ikincisi özellikle oyun Bullet Physics'i entegre ettiğinde yararlı olabilir. Oyunum Bullet Physics'i kullanacak, ama ne yazık ki, GLM kullanmaya başladım, bu yüzden GLM'ye bağlı kalmaya çalışacağım.
Bunkai.Satori

4

Bu teste Apple'ın GLKMath'ini eklemeye çalıştım (aslında bu çatalı çatalladım )

İşte 4 Nesil iPod Touch'ımın sonucu :

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.

İşte kodum

Bir Android Cihazım yok, ancak GLKMath'in Android'de nasıl performans göstereceğini merak ediyorum.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.