Повна бібліотека математики для використання в OpenGL ES 2.0 грі? [зачинено]


14

Вам відома повна (або майже повна) бібліотека з математики на багато платформ для використання в іграх OpenGL ES 2.0?

Бібліотека повинна містити:

  • Matrix2x2, Matrix 3x3, Matrix4x4 класи
  • Кватерніони
  • Класи Vector2, Vector3, Vector4
  • Кут Ейлера
  • Операції між вищезазначеними класами, перетвореннями тощо.
  • Стандартно використовувані математичні операції в 3D-графіці (точковий продукт, крос-продукт, SLERP тощо)

Чи є такий API Math доступний як окремий, так і як частина будь-якого пакету ?

Мова програмування: Visual C ++, але планується перенести його на ОС X X та Android OS.


Пов'язаний з цим питання : gamedev.stackexchange.com/questions/12601/simd-c-library/12606
legends2k

Наразі немає ідеальної математичної бібліотеки, я просто спробував написати декілька вимог, і просто в ній немає бібліотеки. Ну, насправді я хотів би, щоб хтось зробив бібліотеку легкою як GLM з тією ж функцією, що і шейдери + стиль математики Ogre і деякі його функціональні можливості (що GLM є місін, як перегляд фрустуму, обмежувальних коробок тощо). Також зауважте, що GLM не такий швидкий (насправді це не має значення), тому я сумніваюся, хтось буде використовувати його у Raytracers або інтенсивних речах, більше корисний завдяки своєму API та стилю дизайну
GameDeveloper

Відповіді:


14

+1 @Josh: Дякую за добру пораду. В даний час я розглядаю бібліотеку GLM ( glm.g-truc.net ) GL Math. Я зачекаю, щоб побачити, які бібліотеки люди вже намагалися, і як вони були хорошими.
Bunkai.Satori

3
Я настійно рекомендую GLM. Я використовую його та його "приголомшливий"
brainydexter

+1, мені дуже подобається CML і написав би це як відповідь =). Це, однак, багато в чому залежить від оптимізацій компілятора, оскільки це загальна та на основі шаблонів. Якщо ви орієнтуєтесь на мобільний пристрій (можливо, як ви цитували ES), деякі інші математичні бібліотеки можуть бути краще оптимізовані для цілі.
Jari Komppa

Привіт Брейні, Ярі, дякую за коментарі. Я все ще хотів би побачити, чи є більше варіантів із відгуками користувачів, тому я хотів би залишити це питання відкритим на деякий час.
Bunkai.Satori

@Jari - коли обговорюється оптимізація бібліотеки математики для платформи OpenGL ES, що включено? Я маю на увазі, якщо формули та типи даних правильно розроблені, що ще можна зробити для оптимізації бібліотеки для платформи ES? (Це може бути елементарне питання, але у мене на це немає відповіді.)
Bunkai.Satori

8

Eigen - це математична бібліотека, що підтримує лише SSE, AltiVec та ARM Neon.


+1 за чудову пораду. Привіт Саймон, дякую за чудову пораду. Я почав використовувати GLM (OpenGL Math Library), і це досить дивовижно. У ньому є все, що стосується векторної, матричної, кватерніонної математики, інтерпотацій SLERP тощо. Поки що вона пропонує більше, ніж мені справді потрібно, тому я поки що задоволений цим.
Bunkai.Satori

6

+1 за гарні поради. Привіт Maik, дякую за ваші коментарі. На мою думку, друге може бути корисним, особливо коли гра інтегрує Bullet Physics. У моїй грі буде використовувати Bullet Physics, але, на жаль, я почав використовувати GLM, тому спробую дотримуватися GLM.
Bunkai.Satori

4

Я працював над тим, щоб до цього тесту додати GLKMath Apple (насправді роздрібнив цю вилку )

Ось результат на моєму iPod Touch 4 покоління :

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.

Ось мій код

У мене немає пристрою Android, але мені цікаво, як GLKMath буде працювати на Android.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.