다음을 통해 공유


스폿 확산 조명 효과

스폿 확산 조명 효과를 사용하여 광원이 광원의 방향 원뿔로 제한되고 빛이 사방으로 흩어져있는 비 반사 표면으로 보이는 이미지를 만듭니다. 이 효과는 알파 채널을 높이 맵으로 사용하고 스폿 광원으로 이미지에 조명을 표시합니다.

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

이 효과에 대한 CLSID는 CLSID_D2D1SpotDiffuse.

예제 이미지

다음은 스폿 확산 조명 효과의 입력 및 출력 이미지를 보여 주는 예제입니다.

효과 예제 스크린샷으로 을 보여줌

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

출력 비트맵 계산

어디:

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

효과 속성

표시 이름 및 인덱스 열거 형식 및 기본값 묘사
조명위치
D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION (스팟 디퓨즈 조명 위치 속성)
D2D1_VECTOR_3F
{0.0f, 0.0f, 0.0f}
점 광원의 밝은 위치입니다. 속성은 (x, y, z)로 정의된 D2D1_VECTOR_3F. 단위는 디바이스 독립적 픽셀(DIP)이며 바인딩되지 않습니다.
PointsAt
D2D1_SPOTDIFFUSE_PROP_POINTS_AT
D2D1_VECTOR_3F
{0.0f, 0.0f, 0.0f}
스폿 조명이 집중되는 위치입니다. 속성은 (x, y, z)로 이루어진 D2D1_VECTOR_3F로 정의됩니다. 단위는 DIP에 있고 값은 바인딩되지 않습니다.
초점
D2D1_SPOTDIFFUSE_PROP_FOCUS
뜨다
1.0f
스폿 조명의 포커스입니다. 이 속성은 단위가 없으며 0에서 200 사이에 정의됩니다.
LimitingConeAngle
D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE
뜨다
90.0f
조명이 투영되는 영역을 제한하는 원뿔 각도입니다. 원뿔 바깥쪽에 빛이 투사되지 않습니다. 제한 원뿔 각도는 스폿 광원 축(LightPositionPointsAt 속성 사이의 축)과 스폿 조명 원뿔 사이의 각도입니다. 이 속성은 도 단위로 정의되며 0~90도 사이여야 합니다.
디퓨즈 컨스턴트
D2D1_SPOTDIFFUSE_PROP_확산_상수
떠다니다
1.0f
들어오는 빛의 양에 대한 확산 반사의 비율입니다. 이 속성은 0에서 10,000 사이여야 하며 단위가 없습니다.
SurfaceScale
D2D1_SPOTDIFFUSE_PROP_표면_스케일
뜨다
1.0f
Z 방향의 스케일 계수입니다. 표면 눈금은 단위가 없으며 0에서 10,000 사이여야 합니다.

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

크기 조정 모드

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

메모

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

요구 사항

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

ID2D1Effect