OpenGL ES 2.0 게임에서 사용할 수있는 완벽한 수학 라이브러리? [닫은]


14

당신은 알고 있습니까 전체 (또는 거의 완료) 크로스 플랫폼 수학 라이브러리 는 OpenGL ES 2.0 게임에 사용?

라이브러리에는 다음이 포함되어야합니다.

  • Matrix2x2, Matrix 3x3, Matrix4x4 클래스
  • 쿼터니언
  • Vector2, Vector3, Vector4 클래스
  • 오일러 앵글 클래스
  • 위에서 언급 한 클래스, 변환 등의 작업
  • 3D 그래픽 (Dot Product, Cross Product, SLERP 등)에서 일반적으로 사용되는 수학 연산

이러한 Math API가 독립형 또는 패키지일부로 제공 됩니까?

프로그래밍 언어 : Visual C ++이지만 OS X 및 Android OS로 이식 될 계획입니다.



지금은 완벽한 수학 라이브러리가 없으며, 요구 사항을 거의 쓰지 않고 라이브러리를 요구하지 않았습니다. 사실 실제로 누군가가 쉐이더 + Ogre 수학 라이브러리의 스타일과 동일한 기능을 가진 GLM처럼 라이브러리를 쉽게 만들고 싶습니다. 그리고 그 기능 중 일부 (GLM이 뷰 절두체, 경계 상자와 같이 누락되어 있음) 또한 GLM이 그렇게 빠르지는 않습니다 (실제로 중요하지 않음). API 및 디자인 스타일로 인해 유용
GameDeveloper

답변:


14

구성 가능한 수학 라이브러리 를 고려 했습니까 ?


+1 @Josh : 좋은 팁 감사합니다. 현재 GLM ( glm.g-truc.net ) GL 수학 라이브러리를 고려하고 있습니다. 나는 사람들이 어떤 도서관에서 시도하고 좋은 것으로 입증되었는지 기다릴 것입니다.
Bunkai.Satori

3
GLM을 강력히 권장합니다. 나는 그것과 "굉장한"
brainydexter를 사용한다

+1, 나는 CML을 많이 좋아하며 그것을 대답으로 게시했을 것입니다 =). 그러나 컴파일러는 일반 및 템플릿 기반이기 때문에 컴파일러의 최적화에 크게 의존합니다. ES를 인용 한 것처럼 모바일 장치를 대상으로하는 경우 일부 다른 수학 라이브러리가 대상에 더 잘 최적화 될 수 있습니다.
Jari Komppa

의견을 보내 주셔서 감사합니다. 사용 가능한 사용자 피드백이 더 많은 옵션이 있는지 여전히 확인하고 싶습니다. 따라서이 질문을 잠시 동안 열어두고 싶습니다.
Bunkai.Satori

@Jari-OpenGL ES 플랫폼을위한 수학 라이브러리 최적화를 논의 할 때 무엇이 ​​포함됩니까? 수식과 데이터 유형이 올바르게 설계 되었다면 ES 플랫폼에 맞게 라이브러리를 최적화하기 위해 수행 할 수있는 다른 작업은 무엇입니까? (초등 질문 일 수도 있지만 이에 대한 답은 없습니다.)
Bunkai.Satori

8

Eigen 은 SSE, AltiVec 및 ARM Neon 벡터화를 지원하는 C ++ 헤더 전용 수학 라이브러리입니다.


유용한 팁은 +1입니다. 안녕하세요 Simon, 좋은 팁 주셔서 감사합니다. GLM (OpenGL Math Library)을 사용하기 시작했는데 정말 놀랍습니다. 여기에는 벡터, 행렬, 쿼터니언 수학, SLERP 인터 포 테이션 등 모든 것이 포함되어 있습니다.
Bunkai.Satori

6

좋은 팁은 +1입니다. 안녕 Maik, 귀하의 의견에 감사드립니다. 제 생각에 두 번째는 특히 게임이 Bullet Physics를 통합 할 때 유용 할 수 있습니다. 내 게임은 Bullet Physics를 사용하지만 불행히도 GLM을 사용하기 시작했기 때문에 GLM을 고수하려고 노력할 것입니다.
Bunkai.Satori

4

이 테스트에 Apple의 GLKMath를 추가하는 작업을했습니다 (실제로이 포크를 포크했습니다 )

4 세대 iPod Touch 의 결과는 다음과 같습니다 .

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에서 어떻게 작동하는지 궁금합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.