¿Biblioteca matemática completa para usar en el juego OpenGL ES 2.0? [cerrado]

14

¿Conoces una biblioteca matemática multiplataforma completa (o casi completa) para usar en juegos OpenGL ES 2.0?

La biblioteca debe contener:

  • Clases Matrix2x2, Matrix 3x3, Matrix4x4
  • Cuaterniones
  • Vector2, Vector3, Vector4 Clases
  • Clase de ángulo de Euler
  • Operaciones entre las clases mencionadas anteriormente, conversiones, etc.
  • Operaciones matemáticas de uso estándar en gráficos 3D (Producto de puntos, Producto cruzado, SLERP, etc.)

¿Existe tal API matemática disponible de forma independiente o como parte de algún paquete ?

Lenguaje de programación: Visual C ++ pero planeado para ser portado a OS X y Android OS.

Bunkai.Satori
fuente
No hay una biblioteca matemática perfecta por ahora, solo intenté escribir algunos requisitos y simplemente ninguna biblioteca los tiene, bueno, en realidad me gustaría que alguien haga una biblioteca fácil como GLM con la misma función que los sombreadores + el estilo de la biblioteca matemática Ogre y algunas de sus funcionalidades (que GLM no se puede ver como ver frustum, cuadros delimitadores, etc.) También tenga en cuenta que GLM no es tan rápido (en realidad eso no importa), así que dudo que alguien lo use en raytracers o cosas intensivas, es más útil por su API y estilo de diseño
GameDeveloper

Respuestas:

14

¿Has considerado la Biblioteca de Matemáticas Configurable ?

usuario1430
fuente
+1 @ Josh: Gracias por tu buen consejo. Actualmente estoy considerando la biblioteca GL Math ( glm.g-truc.net ) GL Math. Esperaré para ver qué bibliotecas las personas ya han probado y han demostrado ser buenas.
Bunkai.Satori
3
Yo recomendaría encarecidamente GLM. Lo uso y es "increíble"
brainydexter
+1, me gusta mucho CML y lo habría publicado como respuesta =). Sin embargo, depende mucho de las optimizaciones del compilador, ya que es genérico y está basado en plantillas. Si está apuntando a un dispositivo móvil (probablemente como citó ES), alguna otra biblioteca matemática puede estar mejor optimizada para el objetivo.
Jari Komppa
Hola Brainy, Jari, gracias por tus comentarios. Todavía me gustaría ver, si hay más opciones con comentarios de los usuarios disponibles, por lo tanto, deseo mantener esta pregunta abierta por un tiempo.
Bunkai.Satori
@Jari: cuando se trata de Optimización de la biblioteca matemática para la plataforma OpenGL ES, ¿qué incluye? Quiero decir, si los tipos de fórmula y datos están diseñados adecuadamente, ¿qué más se puede hacer para optimizar la biblioteca para la plataforma ES? (Puede ser una pregunta elemental, pero no tengo respuesta para eso.)
Bunkai.Satori
8

Eigen es una biblioteca matemática de encabezado C ++ que admite SSE, AltiVec y vectorización ARM Neon.

Simon Lacey
fuente
+1 para un buen consejo. Hola Simon, gracias por tu gran consejo. Empecé a usar GLM (OpenGL Math Library), y es bastante sorprendente. Contiene todo, desde vectores, matrices, matemáticas de cuaterniones, interpolaciones SLERP, etc. hasta ahora, ofrece más de lo que realmente necesito, así que estoy contento con esto por ahora.
Bunkai.Satori
6

Aquí hay 2:

  1. Matemáticas vectoriales de Sony
  2. Matemática lineal de bala
Maik Semder
fuente
+1 para buenos consejos. Hola Maik, gracias por tus comentarios. En mi opinión, el segundo podría ser útil, especialmente cuando el juego integra Bullet Physics. Mi juego va a usar Bullet Physics, pero desafortunadamente, he comenzado a usar GLM, así que intentaré mantenerme en GLM.
Bunkai.Satori
4

Trabajé en agregar GLKMath de Apple a esta prueba (en realidad bifurqué este tenedor )

Aquí está el resultado en mi iPod Touch 4 Generación :

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.

Aquí está mi código

No tengo un dispositivo Android, pero tengo curiosidad por saber cómo GLKMath funcionará en Android.

chunkyguy
fuente