이를 위해 Generic Graphics Toolkit 에 정착 한 프로젝트가 꽤 있습니다 . GMTL은 훌륭합니다. 아주 작고 기능적이며 매우 신뢰할 수있을 정도로 널리 사용되었습니다. OpenSG, VRJuggler 및 기타 프로젝트는 모두 수동 롤터 / 매트릭스 수학 대신 이것을 사용하도록 전환했습니다.
템플릿을 통해 모든 작업을 수행하므로 매우 유연하고 빠릅니다.
편집하다:
의견 토론과 편집 후에 특정 구현의 이점과 단점, 상황에 따라 다른 것을 선택하는 이유에 대해 더 많은 정보를 버리겠다고 생각했습니다.
GMTL -
이점 : 그래픽 엔진을 위해 특별히 설계된 간단한 API입니다. 다른 패키지에없는 렌더링 (예 : 평면, AABB, 다중 보간이 포함 된 쿼터니언 등)에 맞춰진 많은 기본 유형을 포함합니다. 매우 낮은 메모리 오버 헤드, 매우 빠르고 사용하기 쉽습니다.
단점 : API는 특히 렌더링 및 그래픽에 중점을 둡니다. 일반용 (NxM) 매트릭스, 매트릭스 분해 및 해결 등은 포함되지 않습니다. 이들은 기존 그래픽 / 지오메트리 응용 프로그램의 영역을 벗어나기 때문입니다.
아이겐 -
장점 : 사용하기 쉬운 Clean API . 쿼터니언 및 기하 변환 기능이 있는 형상 모듈 을 포함합니다 . 메모리 오버 헤드가 적습니다. 큰 NxN 행렬 및 기타 범용 수학 루틴을 완벽 하게 수행 합니다.
단점 : 원하는 것보다 약간 더 큰 범위 일 수 있습니다 (?). GMTL과 비교할 때 기하학적 / 렌더링 특정 루틴이 줄어 듭니다 (예 : 오일러 각도 정의 등).
IMSL -
장점 : 매우 완벽한 숫자 라이브러리. 매우 빠릅니다 (아마도 가장 빠른 솔버). 지금까지 가장 크고 가장 완벽한 수학적 API. 상업적으로 지원되고 성숙하며 안정적입니다.
단점 : 비용-저렴한 것은 아닙니다. 기하 형 / 렌더링 관련 방법은 거의 없으므로 선형 대수 클래스 위에 롤링해야합니다.
NT2 -
장점 : MATLAB에 익숙한 경우 더 친숙한 구문을 제공합니다. 대형 행렬 등에 대한 전체 분해 및 해결 기능을 제공합니다.
단점 : 렌더링에 중점을 두지 않고 수학. 아마도 아이겐만큼 성능이 떨어질 것입니다.
LAPACK -
장점 : 매우 안정적이고 검증 된 알고리즘. 오랫동안 주변에 있었다. 완벽한 행렬 해결 등 모호한 수학을위한 많은 옵션.
단점 : 경우에 따라 성능이 좋지 않습니다. 사용을 위해 홀수 API와 함께 포트란에서 이식되었습니다.
개인적으로, 그것은 하나의 질문으로 귀결됩니다-어떻게 이것을 사용할 계획입니까? 렌더링과 그래픽에만 중점을 둔 경우 Generic Graphics Toolkit 이 좋습니다. 성능이 우수하고 자체적으로 구현하지 않아도 유용한 유용한 렌더링 작업을 즉시 지원하기 때문입니다. 범용 행렬 해석 (즉, 큰 행렬의 SVD 또는 LU 분해)이 필요한 경우 Eigen 을 처리하고 일부 기하학적 연산을 제공하며 큰 행렬 솔루션으로 성능이 우수하므로 Eigen을 사용 합니다. 매트릭스 / 벡터 위에 자체 그래픽 / 기하학적 연산을 더 작성해야 할 수도 있지만 끔찍한 것은 아닙니다.