DirectX Graphics 프로그래밍 가이드 고도의 주제 정점 파이프라인 지오메트리 혼합 인덱스 첨부 정점 혼합 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
인덱스 첨부 정점 혼합은, Microsoft® Direct3D® 의 정점 혼합 지원을 확장해, 인덱스를 사용해 지정한 행렬을 혼합에 사용할 수 있도록(듯이) 한 것이다. 이러한 인덱스는, 정점 마다 제공되어 최대 256 개의 행렬의 팔레트를 참조한다. 각 인덱스는 8 비트로, 각 정점에는 최대 4 개까지의 인덱스를 갖게할 수가 있기 (위해)때문에, 1 개의 정점에 대해 4 개의 행렬을 블렌드 할 수가 있다. 인덱스는,DWORD 에 팩 된다. 인덱스는 정점 마다 지정되므로, 최대 12 개의 행렬이 단일의 삼각형에 영향을 줄 수가 있어 팔레트내의 임의의 행렬이 1 개의 드로잉(Drawing) 호출의 정점에 영향을 줄 수가 있다. 이 어프로치에는, 다음과 같은 장점이 있다.
이 방법의 결점은, 정점 처리전에 테설레이션을 하면 곡면 표면 기본도형를 처리하지 않는 것이다.
다음 그림은 정점이 4 개의 행렬에 의해 영향을 받는 모습을 나타내고 있다. 각 정점은 최대 4 개까지의 인덱스를 가질 수가 있으므로, 정점 마다 4 개의 행렬을 블렌드 할 수 있다. 다음의 그림에서는, 0, 2, 5, 6 으로 인덱스를 붙일 수 있었던 행렬을 사용한다.
다음 그림은 1 개의 삼각형이 최고 12 의 행렬에 의해 영향을 받는 모습을 나타내고 있다. 정점 마다 지정되는 인덱스를 사용해, 최대 12 개의 행렬이 단일의 삼각형에 영향을 줄 수가 있다.
다음 공식은, 행렬이 정점에게 주는 효과에 대한 일반적인 경우를 결정한다.
Vmodel 는, 입력 모델 공간에서의 정점의 위치 좌표이다. Index0..Index3 는,DWORD 에 팩 된 정점마다 행렬의 인덱스이다. M[] 는, 인덱스를 붙이는 월드 행렬의 배열로,b0..b2 는 블렌드의 중량감이다. Vworld 는, 출력 월드 공간에서의 정점의 위치 좌표이다.
더 자세한 정보는, 다음 주제를 참조할것.