DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 텍스처 텍스처 혼합 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
Microsoft® Direct3D® 에서는, 단일의 패스로, 최대 8 개의 텍스처를 원시적으로 블렌드 할 수 있다. 멀티 텍스처 혼합을 사용하면, Direct3D 애플리케이션의 frame rate를 큰폭으로 올릴 수가 있다. 애플리케이션은, 멀티 텍스처 혼합을 채용해, 텍스처, 그림자, 스펙큐러 라이트, 디퓨즈 라이트등의 특수 효과를 단일 패스로 적용할 수 있다.
텍스처 혼합을 사용하는 경우, 사용자의 하드웨어가 텍스처 혼합을 지원 하고 있을지 어떨지를 최초로 조사할 필요가 있다. 이러한 정보는,D3DCAPS9 구조체의 TextureCaps 멤버에 보관 유지되고 있다. 텍스처 혼합 기능에 대해 사용자의 하드웨어에 문의하는 방법의 더 자세한 정보는, 「IDirect3DDevice9::GetDeviceCaps 」를 참조할것.
Direct3D 는, 텍스처 스테이지를 사용해, 싱글 패스의 멀티 텍스처 혼합을 지원 하고 있다. 텍스처 스테이지에는 2 개의 인수를 받아, 혼합 처리를 실시해, 후속의 처리 또는 래스터화에 결과를 건네준다. 텍스처 스테이지는, 다음의 그림과 같이 도식화할 수 있다.
위의 그림에 나타나듯이 텍스처 스테이지는 지정의 오퍼레이터를 사용해 2 개의 인수를 블렌드 한다. 일반적인 조작에는, 인수의 색 또는 알파 성분의 단순 곱셈이나 덧셈이 있지만, 24 이상의 조작이 지원 되고 있다. 스테이지의 인수는, 관련지을 수 있었던 텍스처, 보간색 또는 보간 알파 (gouraud shading중의 보간), 임의의 색과 알파, 또는 이전의 텍스처 스테이지로부터의 결과이다. 더 자세한 정보는, 「텍스처 혼합 처리와 인수」를 참조할것.
멀티 혼합 스테이지에서 사용되는 인수와 처리의 편성은, 단순한 플로우를 기본으로 하는 혼합 언어를 정의한다. 1 개의 스테이지의 결과는 다른 스테이지에 흘러 다음에 그 스테이지의 결과가 다음의 스테이지에 흘러 이하와 같이 계속된다. 스테이지에서 스테이지에의 흐름이 최종적으로 다각형상에서 래스터화 되는 개념을, 보통,텍스처 혼합 cascade라고 부른다. 다음 그림은 개별의 텍스처 스테이지가 어떻게 텍스처 혼합 cascade를 구성하는지를 나타내고 있다.
장치내의 각 스테이지는, 0 으로부터 시작되는 인덱스를 갖는다. Direct3D 에서는, 최대 8 개의 혼합 스테이지를 이용할 수 있다. 다만, 현재의 하드웨어로 지원 되는 스테이지수를 판단하기 위해서(때문에), 장치 기능을 조사할 필요가 있다. 제 1 혼합 스테이지는 인덱스 0 에 있어, 제 2 스테이지는 인덱스 1 에 있어, 이하 인덱스 7 까지 같이이다. 시스템은, 인덱스의 승순에 스테이지를 블렌드 한다.
필요한 수만의 스테이지를 사용한다. 사용하지 않는 혼합 스테이지는 디폴트로 무효가 된다. 애플리케이션이 최초의 2 개의 스테이지만을 사용하는 경우는, 스테이지 0 으로 1 에 관해서만 설정 조작과 인수가 필요하다. 시스템은 2 개의 스테이지를 블렌드 해, 무효인 스테이지를 무시한다.
더 자세한 정보는, 다음 주제를 참조할것.