2009-03-03 1 views
15

저는 3D 데이터를 처리하고, 오브젝트를 회전시키고, 변환하고, 스케일링하고, 모든 좋은 것들을 처리하는 데 사용될 툴을 작성하고 있습니다. 누구든지 이미이 일반적인 3D 콘텐츠 중 일부를 수행하는 훌륭한 라이브러리를 알고 있습니까?C#의 3D 수학에 적합한 라이브러리입니까?

저는 현재 데이터를 시각화하는 데 관심이 없으며 주로 작업 수행에 관심이 있습니다. (... 등 내적, 외적을 뺀 추가)

  • 2D/3D/4D는
    • 이 벡터 :

      상황이 나는이 시점에서해야합니다 알고

    • 회전/번역/확장하여 행렬
    • 쿼터니온

    Sharp3D 라이브러리를 찾을 수 있었지만 원하는대로 할 수 있지만 오랫동안 업데이트되지 않은 것 같습니다. 이전에 이것을 사용한 사람이 있습니까? 다른 (더 좋은) 제안?

답변

12

Microsoft.Xna.Framework (우주선이 XNA) 작업을 수행 할 수 있습니다.

XNA Framework 수학 라이브러리에는 2D 또는 3D 공간에서 개체를 조작하는 데 사용할 수있는 여러 가지 기본 기하학적 형식이 있습니다. 이 라이브러리의 기본 객체는 기하 객체 또는 해당 객체에 대한 연산을 나타내는 데 필요한 데이터를 나타냅니다. 각 기하학 유형에는 유형에 지원되는 많은 수학 연산이 있습니다.

벡터 XNA Framework에서이 대표와 벡터를 조작하기위한 Vector2, Vector3 및 Vector4 클래스를 제공

. 벡터는 일반적으로 방향과 크기를 나타내는 데 사용됩니다. 그러나 XNA 프레임 워크에서 동일한 저장 영역 요구 사항을 가진 좌표 또는 다른 데이터 유형을 저장하는 데 사용될 수도 있습니다.

각 벡터 클래스와 같은 표준 벡터 연산을 수행하기위한 방법을 가지고

  • 내적
  • 외적
  • 정규화
  • 변환
  • 선형, 큐빅, Catmull의-ROM, 또는 Hermite 스플라인 보간법.

행렬

XNA Framework에서 기하 변환 용 매트릭스 클래스를 제공한다. Matrix 클래스는 행 주 순서를 사용하여 행렬을 처리합니다. 즉, 행이 2 차원 행렬의 요소를 설명 할 때 열 앞에 지정됩니다. Matrix 클래스는 행렬의 확률 또는 역수 계산, 축척, 변환 및 회전 행렬을 만드는 도우미 메서드와 같은 표준 행렬 작업을 수행하기위한 메서드를 제공합니다.

쿼터니온

XNA Framework에서 진술하고 소정 각도 주위 벡터에 대해 효율적인 회전을 계산하기 쿼터니언 구조를 제공한다.

+0

, [XNA도 죽었] (http://gamasutra.com/view/news/185894/Its_official_XNA_is_dead. php # .UREwnResyF) 2014 년 4 월에 공식적으로 발표 될 예정입니다. – cod3monk3y

0

www.obacs.com에서 Scinet Linea를 시도해보십시오. 무료 라이브러리는 아니지만 대안과 비교하면 매우 비싸지 않습니다. ww

0

Scinet Linea는 www.obacs.com에서 더 이상 제공되지 않습니다. Scinet Math는 더 많은 기능을 제공합니다. 한 달 전에 내 연구 사본을 구입했습니다. 나는 지금까지 그것을 좋아한다.

2

이전에는 사용 해본 적이 없지만 Sharp3D를 사용했는데 제대로 작동하는 것처럼 보입니다. (몇 분 정도 걸리던 강력한 이름에 관한 문제는 제외하고) 잘 작동하는 것 같습니다. 제 인상은 정확하게 가벼운 무게는 아니지만 무거운면에있는 것과는 거리가 멀다는 것입니다.

없이 최신 업데이트에 관해서는, 수학 변경 또는 아무것도되는 것 아니에요을 ... 후손을 위해