다음을 통해 공유


점 확산 조명 효과

점 확산 조명 효과를 사용하여 모든 방향에 빛이 흩어져 있는 반사가 아닌 표면으로 보이는 이미지를 만듭니다. 이 효과는 알파 채널을 높이 맵으로 사용하고 점 광원을 사용하여 이미지를 비추습니다.

출력 비트맵의 색은 밝은 색, 밝은 위치 및 표면 기하 도형의 결과입니다. 확산 조명이 있는 각 픽셀의 알파 채널 출력은 항상 1.0입니다.

이 효과에 대한 CLSID는 CLSID_D2D1PointDiffuse. 이 효과를 사용하려면 링커 종속성에 dxguid.lib를 추가합니다.

예제 이미지

이 예제에서는 점 확산 조명 효과의 입력 및 출력 이미지를 보여 줍니다.

효과 예제 스크린샷은 점 확산 조명 효과의 입력 및 출력 이미지를 보여 줍니다.

확산 조명은 여기에서 볼 수 있듯이 여러 방향으로 반사되는 빛을 나타냅니다.

확산 조명은 모든 방향으로 흩어져 있습니다.

효과는 다음 수식을 사용하여 최종 출력 픽셀 값을 계산합니다.

비트맵 계산 출력, .

어디:

kd = 확산 조명 상수. 사용자가 지정합니다.
표면 일반 벡터 기호입니다. = 표면 정규 단위 벡터, x 및 y의 함수입니다.
단위 벡터 기호입니다. = 표면에서 빛으로 가리키는 단위 벡터입니다.
Lr, Lg, Lb = RGB 구성 요소의 밝은 색입니다.

효과 속성

표시 이름 및 인덱스 열거형 묘사
조명위치
D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION
점 광원의 밝은 위치입니다. 속성은 (x, y, z)로 정의된 D2D1_VECTOR_3F. 단위는 디바이스 독립적 픽셀(DIP)이며 바인딩되지 않습니다.
형식이 D2D1_VECTOR_3F.
기본값은 {0.0f, 0.0f, 0.0f}입니다.
DiffuseConstant
D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT
들어오는 빛의 양에 대한 확산 반사의 비율입니다. 이 속성은 0에서 10,000 사이여야 하며 단위가 없습니다.
FLOAT 형식입니다.
기본값은 1.0f입니다.
SurfaceScale
D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE
Z 방향의 배율 값입니다. 표면 눈금은 단위가 없으며 0에서 10,000 사이여야 합니다.
FLOAT 형식입니다.
기본값은 1.0f입니다.

D2D1_POINTDIFFUSE_PROP_COLOR
들어오는 조명의 색입니다. 이 속성은 벡터 3(R, G, B)로 노출되며 LR, LG, LB계산하는 데 사용됩니다.
형식이 D2D1_VECTOR_3F.
기본값은 {1.0f, 1.0f, 1.0f}입니다.
커널단위길이
D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH (커널 단위 길이)
X 및 Y 방향으로 표면 보통을 생성하는 데 사용되는 Sobel 커널의 요소 크기입니다. 이 속성은 Sobel 그라데이션의 dx 및 dy 값에 매핑됩니다. 이 속성은 D2D1_VECTOR_2F(커널 단위 길이 X, 커널 단위 길이 Y)이며(DIP/커널 단위)에 정의되어 있습니다. 이 효과는 쌍선형 보간을 사용하여 커널 요소의 크기와 일치하도록 비트맵의 크기를 조정합니다.
형식이 D2D1_VECTOR_2F.
기본값은 {1.0f, 1.0f}입니다.
스케일 모드
D2D1_POINTDIFFUSE_PROP_SCALE_MODE
이는 효과에서 이미지를 해당 커널 단위 길이로 조정할 때 사용하는 보간 모드입니다. 품질과 속도에 따라 6가지 배율 모드가 있습니다. 자세한 내용은 크기 조정 모드 참조하세요.
형식은 D2D1_POINTDIFFUSE_SCALE_MODE입니다.
기본값은 D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR.

크기 조정 모드

열거 묘사
D2D1_점확산_스케일_모드_가장가까운_이웃 가장 가까운 단일 지점을 샘플링하고 사용합니다. 이 모드는 처리 시간을 줄이지만 가장 낮은 품질의 이미지를 출력합니다.
D2D1_POINTDIFFUSE_스케일_모드_선형 4포인트 샘플 및 선형 보간을 사용합니다. 이 모드는 가장 가까운 인접 항목보다 더 높은 품질의 이미지를 출력합니다.
D2D1_POINTDIFFUSE_SCALE_MODE_CUBIC 보간을 위해 16 샘플 큐빅 커널을 사용합니다. 이 모드는 가장 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다.
D2D1_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR 좋은 에지 앤티앨리어싱을 위해 단일 픽셀 내에 4개의 선형 샘플을 사용합니다. 이 모드는 픽셀이 적은 이미지에서 소량으로 축소하는 데 적합합니다.
D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC 이방성 필터링을 사용하여 비트맵의 변형된 모양에 따라 패턴을 샘플링합니다.
D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC 변형 매트릭스에 다운스케일링이 관련된 경우 가변 크기의 고품질 입방 커널을 사용하여 이미지의 미리 다운스케일을 수행합니다. 그런 다음 최종 출력에 입방선 보간법을 사용합니다.

메모

모드를 선택하지 않으면 효과가 기본적으로 D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR로 설정됩니다.

요구 사항

요건
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
지원되는 최소 서버 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
머리글 d2d1effects.h
도서관 d2d1.lib, dxguid.lib

ID2D1Effect