3D 큐브 뷰 변환 효과
3D 원근 변환 효과를 사용하여 멀리서 보는 것처럼 이미지를 3차원으로 회전합니다.
3D 원근 변환은 3D 변환 효과보다 더 편리하지만 기능의 하위 집합만 노출합니다. 전체 3D 변환 매트릭스를 계산하고 3D 변환 효과를 사용하여 이미지에 더 임의의 변환 매트릭스를 적용할 수 있습니다.
이 효과에 대한 CLSID는 CLSID_D2D13DPerspectiveTransform.
예제 이미지
이전 |
---|
After |
ComPtr<ID2D1Effect> perspectiveTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D13DPerspectiveTransform, &perspectiveTransformEffect);
perspectiveTransformEffect->SetInput(0, bitmap);
perspectiveTransformEffect->SetValue(D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN, D2D1::Vector3F(0.0f, 192.0f, 0.0f));
perspectiveTransformEffect->SetValue(D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION, D2D1::Vector3F(0.0f, 30.0f, 0.0f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(perspectiveTransformEffect.Get());
m_d2dContext->EndDraw();
효과 속성
표시 이름 및 인덱스 열거형 | Description |
---|---|
보간Mode D2D1_3DPERSPECTIVETRANSFORM_PROP_INTERPOLATION_MODE |
효과가 이미지에 사용하는 보간 모드입니다. 품질과 속도의 범위는 5가지 배율 모드입니다. 형식이 D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE. 기본값은 D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR. |
BorderMode D2D1_3DPERSPECTIVETRANSFORM_PROP_BORDER_MODE |
소프트 또는 하드 이미지의 테두리를 계산하는 데 사용되는 모드입니다. 자세한 내용은 테두리 모드를 참조하세요. 형식이 D2D1_BORDER_MODE. 기본값은 D2D1_BORDER_MODE_SOFT. |
깊이 D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH |
PerspectiveOrigin에서 프로젝션 평면까지의 거리입니다. DIP에 지정된 값이며 0보다 커야 합니다. FLOAT 형식입니다. 기본값은 1000.0f입니다. |
PerspectiveOrigin D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN |
3D 장면에서 뷰어의 X 및 Y 위치입니다. 이 속성은 (점 X, 점 Y)로 정의된 D2D1_VECTOR_2F. 단위는 DIP에 있습니다. Depth 속성을 사용하여 Z 값을 설정합니다. 형식이 D2D1_VECTOR_2F. 기본값은 {0.0f, 0.0f}입니다. |
LocalOffset D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET |
효과가 프로젝션 평면을 회전하기 전에 수행하는 변환입니다. 이 속성은 (X, Y, Z)로 정의된 D2D1_VECTOR_3F. 단위는 DIP에 있습니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
GlobalOffset D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET |
프로젝션 평면을 회전한 후 효과가 수행하는 변환입니다. 이 속성은 (X, Y, Z)로 정의된 D2D1_VECTOR_3F. 단위는 DIP에 있습니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
RotationOrigin D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN |
효과가 수행하는 회전의 중심점입니다. 이 속성은 (X, Y, Z)로 정의된 D2D1_VECTOR_3F. 단위는 DIP에 있습니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
회전 D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION |
각 축의 회전 각도입니다. 이 속성은 (X, Y, Z)로 정의된 D2D1_VECTOR_3F. 단위는 도 단위입니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
보간 모드
열거형 | 설명 |
---|---|
D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR | 가장 가까운 단일 지점을 샘플하고 사용합니다. 이 모드는 처리 시간을 줄이지만 가장 낮은 품질의 이미지를 출력합니다. |
D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR | 4포인트 샘플 및 선형 보간을 사용합니다. 이 모드는 가장 가까운 인접 모드보다 더 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다. |
D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_CUBIC | 보간을 위해 16 샘플 입방 커널을 사용합니다. 이 모드는 가장 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다. |
D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR | 좋은 에지 앤티앨리어싱을 위해 단일 픽셀 내에 4개의 선형 샘플을 사용합니다. 이 모드는 픽셀이 적은 이미지에서 소량으로 축소하는 데 적합합니다. |
D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC | 이방성 필터링을 사용하여 비트맵의 변형된 모양에 따라 패턴을 샘플링합니다. |
참고
모드를 선택하지 않으면 효과가 기본적으로 D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR.
참고
이방성 모드는 크기 조정 시 mipmap을 생성합니다. 그러나 이 효과에 입력되는 효과에 대해 Cached 속성을 true로 설정하면 밉맵이 충분히 작은 이미지에 대해 매번 생성되지 않습니다.
테두리 모드
속성 | 설명 |
---|---|
D2D1_BORDER_MODE_SOFT | 효과는 보간할 때 투명한 검은색 픽셀로 이미지를 채움하여 부드러운 가장자리를 만듭니다. |
D2D1_BORDER_MODE_HARD | 효과는 출력을 입력 이미지의 크기로 고정합니다. |
출력 비트맵
출력 비트맵의 크기는 이미지에 적용되는 변환 매트릭스에 따라 달라집니다.
효과는 변환 작업을 수행한 다음 결과 주위에 경계 상자를 적용합니다. 출력 비트맵은 경계 상자의 크기입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |