다음을 통해 공유


텍스처 혼합(Direct3D 9)

Direct3D는 싱글패스에 최대 8개까지 텍스처를 기본 객체로 혼합할 수 있습니다. 다중 텍스처 혼합을 사용하면 Direct3D 애플리케이션의 프레임 속도를 크게 높일 수 있습니다. 애플리케이션은 다중 텍스처 혼합을 사용하여 싱글패스에 텍스처, 섀도, 정반사 조명, 확산 조명 및 기타 특수 효과를 적용합니다.

텍스처 혼합을 사용하려면 먼저 애플리케이션이 사용자의 하드웨어가 지원하는지 확인해야 합니다. 이 정보는 D3DCAPS9 구조체의 TextureCaps 멤버에서 찾을 수 있습니다. 사용자의 하드웨어에서 텍스처 혼합 기능을 쿼리하는 방법에 대한 자세한 내용은 IDirect3DDevice9::GetDeviceCaps를 참조하세요.

텍스처 스테이지 및 텍스처 혼합 계단식

Direct3D는 텍스처 스테이지를 사용하여 싱글패스 방식의 다중 텍스처 혼합을 지원합니다. 텍스처 스테이지는 2개의 인수를 사용하여 혼합 연산을 실행한 다음, 그 결과를 나중에 처리하거나 래스터화할 수 있도록 전달합니다. 텍스처 스테이지는 다음 다이어그램과 같이 시각화할 수 있습니다.

텍스처 단계 다이어그램

위 다이어그램에서도 알 수 있듯이 텍스처 스테이지는 지정 연산자를 사용하여 2개의 인수를 혼합합니다. 공통 연산으로는 인수의 색상 또는 알파 성분을 단순히 곱하거나(modulation) 더하는(addition) 것도 포함되지만 지원되는 연산 수는 24개가 넘습니다. 스테이지 인수는 관련 텍스처, 반복되는 색상 또는 알파(Gouraud 셰이딩 단계에서 반복), 임의 색상 및 알파, 또는 이전 텍스처 스테이지의 결과가 될 수도 있습니다. 자세한 내용은 텍스처 혼합 작업 및 인수(Direct3D 9)를 참조하세요.

참고

Direct3D는 색 혼합과 알파 혼합을 구분합니다. 애플리케이션은 색상 및 알파에 대한 혼합 연산과 인수를 개별적으로 설정하며, 이러한 설정 결과는 서로 독립적입니다.

 

다중 혼합 스테이지에서 사용되는 인수와 연산의 조합은 간단한 흐름 기반 혼합 언어를 정의합니다. 한 스테이지의 결과가 다른 스테이지로, 그리고 또 다른 스테이지로 흘러가는 방식입니다. 결과가 이렇게 스테이지에서 스테이지로 흐르면서 결국 폴리곤에서 래스터화되는 개념을 텍스트 혼합 전파라고 합니다. 다음 다이어그램은 각 텍스처 스테이지가 텍스처 혼합 전파를 구성하는 방식을 나타낸 것입니다.

텍스처 혼합 계단식의 텍스처 단계 다이어그램

장치의 각 스테이지는 0 기반 인덱스를 갖습니다. 항상 장치 기능을 살펴보면서 현재 하드웨어가 스테이지를 몇 개까지 지원하는지 확인해야겠지만 Direct3D는 혼합 스테이지를 최대 8개까지 지원합니다. 첫 번째 혼합 스테이지는 인덱스 0에, 두 번째는 1에 위치하는 식으로 인덱스 7까지 이어집니다. 시스템은 인덱스 오름차순으로 스테이지를 혼합합니다.

스테이지 번호는 필요한 만큼만 사용합니다. 사용하지 않는 혼합 스테이지는 기본적으로 사용 안 함 상태로 설정됩니다. 따라서 애플리케이션이 첫 번째 스테이지 2개만 사용하는 경우에는 0번과 1번 스테이지의 연산 및 인수만 설정해야 합니다. 시스템은 이 스테이지 2개만 사용하고 사용 안 함으로 설정되는 스테이지는 모두 무시합니다.

참고

애플리케이션이 상황에 따라 사용하는 스테이지 번호가 다르다고 해서(예: 일부 객체에 4개 스테이지를, 그리고 다른 객체에 2개 스테이지 사용) 이전에 사용했던 스테이지를 모두 명시적으로 사용 안 함으로 설정할 필요는 없습니다. 한 가지 옵션으로 첫 번째 사용하지 않는 스테이지의 색상 연산을 사용 안 함으로 설정하는 방법 있습니다. 그러면 인덱스가 더 높은 스테이지는 적용되지 않습니다. 또 다른 옵션은 첫 번째 텍스처 스테이지(0단계)에 대한 색 연산을 D3DTOP_DISABLE 설정하여 텍스처 매핑을 모두 사용하지 않도록 설정하는 것입니다. 세 번째 옵션은 텍스처 스테이지가 D3DTA_TEXTURE 동일한 D3DTSS_COLORARG1 스테이지의 텍스처 포인터가 NULL인 경우, 이 스테이지 및 처리되지 않은 후의 모든 스테이지입니다.

 

추가 정보는 다음 topics 포함되어 있습니다.

Direct3D 텍스처