벡터, 꼭짓점 및 쿼터니언(Direct3D 9)
Direct3D 전체에서 꼭짓점은 위치 및 방향을 설명합니다. 기본 형식의 각 꼭짓점은 위치, 색, 텍스처 좌표 및 방향을 제공하는 일반적인 벡터로 설명됩니다.
사원주는 three-component-vector를 정의하는 [x, y, z] 값에 네 번째 요소를 추가합니다. 사원수는 3D 회전에 일반적으로 사용되는 매트릭스 메서드의 대체 옵션입니다. 사원수는 3D 공간의 축 그리고 해당 축을 기준으로 하는 회전을 나타냅니다. 예를 들어 사원수는 (1,1,2) 축과 1 라디안의 회전을 나타낼 수 있습니다. 사원수는 중요한 정보를 제공하지만 정말로 중요한 점은 사원수에서 수행할 수 있는 구성과 보간이라는 두 가지 작업입니다.
사원수 구성 작업은 사원수 결합 작업과 비슷합니다. 두 사원수의 구성은 다음 그림과 같이 표기합니다.
기하 도형에 적용되는 두 개의 사원수를 구성하는 것은 "축₂를 중심으로 기하 도형을 회전₂만큼 회전시킨 다음, 회전₁만큼 축₁을 중심으로 회전"을 의미합니다. 이 경우 Q는 기하 도형에 q₂를 적용한 다음, q₁을 적용한 결과인 단일 축을 중심으로 한 회전을 나타냅니다.
사원수 보간을 사용하면 애플리케이션이 한 축과 방향에서 다른 축과 방향으로 원활하고 합리적으로 이동하는 경로를 계산할 수 있습니다. 따라서 q₁과 q₂ 사이의 보간은 한 방향에서 다른 방향으로 애니메이션하는 간단한 방법을 제공합니다.
컴퍼지션과 보간을 함께 사용하면 복잡하게 표시되는 방식으로 기하 도형을 조작할 수 있는 간단한 방법을 제공합니다. 예를 들어 특정 방향으로 회전하려는 기하 도형이 있다고 가정해 봅니다. 여러분은 이 기하 도형을 axis₂ 기준으로 r₂도 회전한 다음, axis₁ 기준으로 r₁도 회전하려 한다는 사실은 알고 있지만 최종 사원수는 모릅니다. 컴퍼지션을 사용하여 기하 도형의 두 회전을 결합하면 그 결과물인 단일 사원수를 얻을 수 있습니다. 그런 다음, 원점에서 구성된 사원수까지 보간하여 원활하게 변환할 수 있습니다.
D3DX 유틸리티 라이브러리에는 쿼터니언을 사용하는 데 도움이 되는 함수가 포함되어 있습니다. 예를 들어 D3DXQuaternionRotationAxis 함수는 회전 축을 정의하는 회전 값을 벡터에 추가하고 D3DXQUATERNION 구조체로 정의된 쿼터니언의 결과를 반환합니다. 또한 D3DXQuaternionMultiply 함수는 쿼터니언을 구성하고 D3DXQuaternionSlerp 는 두 쿼터니언 간에 구형 선형 보간을 수행합니다.
Direct3D 애플리케이션은 다음 함수를 사용하여 쿼터니언 작업 작업을 간소화할 수 있습니다.
- D3DXQuaternionBaryCentric
- D3DXQuaternionConjugate
- D3DXQuaternionDot
- D3DXQuaternionExp
- D3DXQuaternionIdentity
- D3DXQuaternionInverse
- D3DXQuaternionIsIdentity
- D3DXQuaternionLength
- D3DXQuaternionLengthSq
- D3DXQuaternionLn
- D3DXQuaternionMultiply
- D3DXQuaternionNormalize
- D3DXQuaternionRotationAxis
- D3DXQuaternionRotationMatrix
- D3DXQuaternionRotationYawPitchRoll
- D3DXQuaternionSlerp
- D3DXQuaternionSquad
- D3DXQuaternionToAxisAngle
Direct3D 애플리케이션은 다음 함수를 사용하여 3개 구성 요소 벡터로 작업하는 작업을 간소화할 수 있습니다.
- D3DXVec3추가
- D3DXVec3BaryCentric
- D3DXVec3CatmullRom
- D3DXVec3Cross
- D3DXVec3Dot
- D3DXVec3Hermite
- D3DXVec3Length
- D3DXVec3LengthSq
- D3DXVec3Lerp
- D3DXVec3Maximize
- D3DXVec3Minimize
- D3DXVec3Normalize
- D3DXVec3Project
- D3DXVec3Scale
- D3DXVec3Subtract
- D3DXVec3Transform
- D3DXVec3TransformCoord
- D3DXVec3TransformNormal
- D3DXVec3Unproject
2개 및 4개 구성 요소 벡터를 사용하여 작업을 간소화하는 많은 추가 함수가 D3DX 유틸리티 라이브러리에서 제공하는 수학 함수 에 포함됩니다.
관련 항목