변위 맵 효과
변위 맵 효과를 사용하여 입력 이미지의 픽셀을 두 번째 입력 이미지의 강도 값으로 대체합니다.
이 효과에 대한 CLSID는 CLSID_D2D1DisplacementMap.
예제 이미지
이전 |
---|
After |
ComPtr<ID2D1Effect> displacementMapEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DisplacementMap, &displacementMapEffect);
displacementMapEffect->SetInput(0, bitmap);
displacementMapEffect->SetValue(D2D1_DISPLACEMENTMAP_PROP_SCALE, 100.0f);
// The second input of the displacement effect determines how the input image is transformed.
// For this example, we will use a turbulence effect as the second input to randomly distort the image.
ComPtr<ID2D1Effect> turbulenceEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Turbulence, &turbulenceEffect);
displacementMapEffect->SetInputEffect(1, turbulenceEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(displacementMapEffect.Get());
m_d2dContext->EndDraw();
출력의 픽셀 위치는 다음 수식을 사용하여 결정됩니다.
C'(x,y)=C(x+ scale*(XChannelSelector(Displacement Bitmap (x,y))-0.5),y+ scale*(YChannelSelector(Displacement Bitmap (x,y))-0.5))
위치:
-
C(x, y) 는 (x, y)의 출력 픽셀입니다.
C(x, y) 는 (x, y)의 입력 픽셀입니다.
변위 비트맵(x, y) 은 지정된 좌표의 변위 픽셀 강도입니다.
XChannelSelector 입력 이미지를 X 방향으로 대체하는 변위 비트맵에서 선택한 RGBA 채널의 강도입니다.
YChannelSelector 입력 이미지를 Y 방향으로 대체하는 변위 비트맵에서 선택한 RGBA 채널의 강도입니다.
효과는 배율 속성 및 변위 이미지의 강도에 따라 입력 이미지를 다시 샘플링합니다. 입력 이미지의 픽셀 간에 샘플링하는 경우 쌍선형 보간을 사용합니다.
이 효과는 직선 및 미리 곱한 알파 이미지에서 작동합니다. 출력 알파 형식은 입력 형식과 동일합니다.
효과 속성
표시 이름 및 인덱스 열거형 | 형식 및 기본값 | 설명 |
---|---|---|
확장 D2D1_DISPLACEMENTMAP_PROP_SCALE |
FLOAT 0.0f |
변위 이미지에서 선택한 채널의 강도를 곱합니다. 이 속성을 설정할수록 더 많은 효과가 픽셀을 대체합니다. |
XChannelSelect D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
이 효과는 이 색 채널에서 강도를 추출하고 이를 사용하여 이미지를 X 방향으로 공간적으로 대체합니다. 자세한 내용은 색 채널을 참조하세요. |
YChannelSelect D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
이 효과는 이 색 채널에서 강도를 추출하고 이를 사용하여 이미지를 Y 방향으로 공간적으로 대체합니다. 자세한 내용은 색 채널을 참조하세요. |
색 채널
열거형 | 설명 |
---|---|
D2D1_CHANNEL_SELECTOR_R | 효과는 빨간색 채널에서 강도 출력을 추출합니다. |
D2D1_CHANNEL_SELECTOR_G | 효과는 녹색 채널에서 강도 출력을 추출합니다. |
D2D1_CHANNEL_SELECTOR_B | 효과는 파란색 채널에서 강도 출력을 추출합니다. |
D2D1_CHANNEL_SELECTOR_A | 이 효과는 알파 채널에서 강도 출력을 추출합니다. |
출력 비트맵
다음 수식을 사용하여 출력 비트맵의 최대 크기를 확인할 수 있습니다.
출력 비트맵? Pixels=(입력 비트맵 크기?( DIP)+Scale)*(User DPI/96)
출력 비트맵y Pixels=(입력 비트맵 크기y(DIP) + Scale)*(User DPI/96)
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |