다음을 통해 공유


D3DTEXTUREOP 열거형

단계별 텍스처 혼합 작업을 정의합니다.

Syntax

typedef enum D3DTEXTUREOP { 
  D3DTOP_DISABLE                    = 1,
  D3DTOP_SELECTARG1                 = 2,
  D3DTOP_SELECTARG2                 = 3,
  D3DTOP_MODULATE                   = 4,
  D3DTOP_MODULATE2X                 = 5,
  D3DTOP_MODULATE4X                 = 6,
  D3DTOP_ADD                        = 7,
  D3DTOP_ADDSIGNED                  = 8,
  D3DTOP_ADDSIGNED2X                = 9,
  D3DTOP_SUBTRACT                   = 10,
  D3DTOP_ADDSMOOTH                  = 11,
  D3DTOP_BLENDDIFFUSEALPHA          = 12,
  D3DTOP_BLENDTEXTUREALPHA          = 13,
  D3DTOP_BLENDFACTORALPHA           = 14,
  D3DTOP_BLENDTEXTUREALPHAPM        = 15,
  D3DTOP_BLENDCURRENTALPHA          = 16,
  D3DTOP_PREMODULATE                = 17,
  D3DTOP_MODULATEALPHA_ADDCOLOR     = 18,
  D3DTOP_MODULATECOLOR_ADDALPHA     = 19,
  D3DTOP_MODULATEINVALPHA_ADDCOLOR  = 20,
  D3DTOP_MODULATEINVCOLOR_ADDALPHA  = 21,
  D3DTOP_BUMPENVMAP                 = 22,
  D3DTOP_BUMPENVMAPLUMINANCE        = 23,
  D3DTOP_DOTPRODUCT3                = 24,
  D3DTOP_MULTIPLYADD                = 25,
  D3DTOP_LERP                       = 26,
  D3DTOP_FORCE_DWORD                = 0x7fffffff
} D3DTEXTUREOP, *LPD3DTEXTUREOP;

상수

D3DTOP_DISABLE

이 텍스처 스테이지 및 인덱스가 더 높은 모든 스테이지의 출력을 사용하지 않도록 설정합니다. 텍스처 매핑을 사용하지 않도록 설정하려면 첫 번째 텍스처 단계(0단계)에 대한 색 작업으로 설정합니다. 색 작업을 사용하도록 설정하면 알파 작업을 사용하지 않도록 설정할 수 없습니다. 색 혼합을 사용할 때 알파 연산을 D3DTOP_DISABLE 설정하면 정의되지 않은 동작이 발생합니다.

D3DTOP_SELECTARG1

수정되지 않은 이 텍스처 스테이지의 첫 번째 색 또는 알파 인수를 출력으로 사용합니다. 이 작업은 D3DTSS_COLOROP 텍스처 스테이지 상태와 함께 사용할 때의 색 인수와 D3DTSS_ALPHAOP 함께 사용할 때 알파 인수에 영향을 줍니다.

이 인수의 수식(s(rgba) = arg1)

D3DTOP_SELECTARG2

수정되지 않은 이 텍스처 스테이지의 두 번째 색 또는 알파 인수를 출력으로 사용합니다. 이 작업은 D3DTSS_COLOROP 텍스처 스테이지 상태와 함께 사용할 때의 색 인수와 D3DTSS_ALPHAOP 함께 사용할 때 알파 인수에 영향을 줍니다.

이 인수의 수식(s(rgba) = arg2)

D3DTOP_MODULATE

인수의 구성 요소를 곱합니다.

변조 연산의 수식(s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

인수의 구성 요소를 곱하고 밝기를 위해 제품을 왼쪽 1비트(효과적으로 2 곱)로 이동합니다.

modulate2x 연산의 수식(s(rgba) = (arg1 x arg 2) 다음 왼쪽 1로 이동)

D3DTOP_MODULATE4X

인수의 구성 요소를 곱하고 밝기를 위해 제품을 왼쪽 2비트(효과적으로 4를 곱)로 이동합니다.

변조4x 연산의 수식(s(rgba) = (arg1 x arg 2) 다음 왼쪽 2로 이동)

D3DTOP_ADD

인수의 구성 요소를 추가합니다.

add 연산의 수식(s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

인수의 구성 요소를 - 0.5 바이어스로 추가하여 0.5에서 0.5까지의 유효 값 범위를 만듭니다.

부호 있는 추가 작업의 수식(s(rgba) = arg1 + arg 2 – 0.5)

D3DTOP_ADDSIGNED2X

인수의 구성 요소를 - 0.5 바이어스로 추가하고 제품을 왼쪽 1비트로 이동합니다.

부호 있는 2x 추가 연산의 수식((s(rgba) = arg1 + arg 2 - 0.5) 다음 왼쪽 1로 이동)

D3DTOP_SUBTRACT

첫 번째 인수의 구성 요소에서 두 번째 인수의 구성 요소를 뺍니다.

빼기 연산의 수식(s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

첫 번째 및 두 번째 인수를 추가합니다. 그런 다음, 합계에서 제품을 뺍니다.

부드러운 연산 추가 수식(s(rgba) = arg1 + arg 2 x(1 - arg1))

D3DTOP_BLENDDIFFUSEALPHA

각 꼭짓점에서 보간된 알파를 사용하여 이 텍스처 단계를 선형적으로 혼합합니다.

혼합 확산 알파 연산의 수식(s(rgba) = arg1 x alpha + arg 2 x(1 - alpha))

D3DTOP_BLENDTEXTUREALPHA

이 스테이지의 텍스처에서 알파를 사용하여 이 텍스처 스테이지를 선형적으로 혼합합니다.

혼합 텍스처 알파 연산의 수식(s(rgba) = arg1 x alpha + arg 2 x(1 - alpha))

D3DTOP_BLENDFACTORALPHA

스칼라 알파 집합과 D3DRS_TEXTUREFACTOR 렌더링 상태를 사용하여 이 텍스처 단계를 선형적으로 혼합합니다.

혼합 계수 알파 연산의 수식(s(rgba) = arg1 x alpha + arg 2 x(1 - alpha))

D3DTOP_BLENDTEXTUREALPHAPM

미리 곱한 알파를 사용하는 텍스처 스테이지를 선형적으로 혼합합니다.

혼합 텍스처 알파 pm 연산의 수식(s(rgba) = arg1 + arg 2 x(1 - alpha))

D3DTOP_BLENDCURRENTALPHA

이전 텍스처 단계에서 가져온 알파를 사용하여 이 텍스처 스테이지를 선형적으로 혼합합니다.

혼합 현재 알파 연산의 수식(s(rgba) = arg1 x alpha + arg2 x(1 - alpha))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATE n단계에서 설정됩니다. n단계의 출력은 arg1입니다. 또한 n + 1 스테이지에 텍스처가 있는 경우 n + 1단계의 모든 D3DTA_CURRENT n + 1단계의 텍스처로 미리 곱합니다.

D3DTOP_MODULATEALPHA_ADDCOLOR

첫 번째 인수의 알파를 사용하여 두 번째 인수의 색을 변조합니다. 그런 다음 결과를 인수 1에 추가합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

색 변조 알파 추가 작업의 수식(s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

인수를 변조합니다. 그런 다음 첫 번째 인수의 알파를 추가합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

알파 변조 색 추가 작업의 수식(s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

D3DTOP_MODULATEALPHA_ADDCOLOR 유사하지만 첫 번째 인수의 알파 역을 사용합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

색 변조 역 알파 연산(s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))의 수식

D3DTOP_MODULATEINVCOLOR_ADDALPHA

D3DTOP_MODULATECOLOR_ADDALPHA 유사하지만 첫 번째 인수 색의 역방향을 사용합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

알파 변조 역 색 추가 연산의 수식(s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

광도 없이 다음 텍스처 단계에서 환경 맵을 사용하여 픽셀당 범프 매핑을 수행합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

D3DTOP_BUMPENVMAPLUMINANCE

다음 텍스처 단계의 환경 맵을 사용하여 광도를 사용하여 픽셀당 범프 매핑을 수행합니다. 이 작업은 색 작업(D3DTSS_COLOROP)에 대해서만 지원됩니다.

D3DTOP_DOTPRODUCT3

각 인수의 구성 요소를 서명된 구성 요소로 변조하고 제품을 추가합니다. 그런 다음 알파를 포함한 모든 색 채널에 합계를 복제합니다. 이 작업은 색 및 알파 작업에 지원됩니다.

dot product 3 연산의 수식(s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

DirectX 6 및 DirectX 7에서 위의 입력은 모두 부호 있는 데이터를 시뮬레이션하는 데 사용하기 전에 모두 절반(y = x - 0.5)으로 아래로 이동하고 스칼라 결과는 자동으로 양수 값으로 고정되고 세 개의 출력 채널 모두에 복제됩니다. 또한 색 작업으로 알파를 업데이트하지 않으므로 RGB 구성 요소만 업데이트합니다.

그러나 DirectX 8.1 셰이더에서 출력을 .rgb 또는 .a 구성 요소 또는 둘 다(기본값)로 라우팅하도록 지정할 수 있습니다. 알파 채널에서 별도의 스칼라 작업을 지정할 수도 있습니다.

D3DTOP_MULTIPLYADD

곱하기 누적 작업을 수행합니다. 마지막 두 인수를 가져와 함께 곱한 다음 나머지 입력/원본 인수에 추가하고 결과에 배치합니다.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

두 번째 인수와 세 번째 소스 인수 사이에 선형적으로 첫 번째 소스 인수에 지정된 비율로 보간합니다.

SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.

D3DTOP_FORCE_DWORD

이 열거형을 강제로 32비트 크기로 컴파일합니다. 이 값이 없으면 일부 컴파일러에서 이 열거형을 32비트 이외의 크기로 컴파일할 수 있습니다. 이 값은 사용되지 않습니다.

설명

이 형식의 멤버는 IDirect3DDevice9::SetTextureStageState 메서드와 함께 D3DTSS_COLOROP 또는 D3DTSS_ALPHAOP 값을 사용하여 색 또는 알파 작업을 설정할 때 사용됩니다.

위의 수식에서 SRGBA 는 텍스처 작업에 의해 생성된 RGBA 색이며 Arg1, Arg2 및 Arg3은 텍스처 인수의 전체 RGBA 색을 나타냅니다. 인수의 개별 구성 요소는 아래 첨자로 표시됩니다. 예를 들어 인수 1의 알파 구성 요소는 Arg1A로 표시됩니다.

요구 사항

요구 사항
헤더
D3D9Types.h

추가 정보

Direct3D 열거형

D3DTEXTURESTAGESTATETYPE