스폿 확산 조명 효과
스폿 확산 조명 효과를 사용하여 광원이 광원의 방향 원뿔로 제한되고 빛이 사방으로 분산되는 비 반사 표면으로 보이는 이미지를 만듭니다. 이 효과는 알파 채널을 높이 맵으로 사용하고 스폿 광원으로 이미지를 표시합니다.
출력 비트맵의 색은 밝은 색, 조명 위치 및 표면 기하 도형의 결과입니다. 확산 조명이 있는 각 픽셀의 알파 채널 출력은 항상 1.0입니다.
이 효과에 대한 CLSID는 CLSID_D2D1SpotDiffuse.
예제 이미지
다음은 스폿 확산 조명 효과의 입력 및 출력 이미지를 보여 주는 예제입니다.
효과는 다음 수식을 사용하여 계산되는 최종 출력 픽셀 값을 계산합니다.
위치:
- kd = 확산 조명 상수입니다. 사용자가 지정합니다.
= 표면 정규 단위 벡터, x 및 y의 함수입니다.
= 표면에서 조명으로 가리키는 단위 벡터입니다.
Lr, Lg, Lb = RGB 구성 요소의 밝은 색입니다.
효과 속성
표시 이름 및 인덱스 열거형 | 형식 및 기본값 | Description |
---|---|---|
LightPosition 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 |
FLOAT 1.0f |
스폿 조명의 포커스입니다. 이 속성은 유니티리스이며 0에서 200 사이에 정의됩니다. |
LimitingConeAngle D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE |
FLOAT 90.0f |
조명이 프로젝트되는 영역을 제한하는 원뿔 각도입니다. 원뿔 바깥쪽에는 빛이 투사되지 않습니다. 제한 원뿔 각도는 스폿 광원 축( LightPosition 과 PointsAt 속성 사이의 축)과 스폿 광원 원뿔 사이의 각도입니다. 이 속성은 도로 정의되며 0~90도 사이여야 합니다. |
DiffuseConstant D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT |
FLOAT 1.0f |
들어오는 광원의 양에 대한 확산 반사의 비율입니다. 이 속성은 0에서 10,000 사이여야 하며 단위가 없습니다. |
SurfaceScale D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE |
FLOAT 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를 계산하는 데 사용됩니다. |
KernelUnitLength 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/커널 단위)에 정의되어 있습니다. 이 효과는 쌍선형 보간을 사용하여 커널 요소의 크기와 일치하도록 비트맵의 크기를 조정합니다. |
Scalemode D2D1_SPOTDIFFUSE_PROP_SCALE_MODE |
D2D1_SPOTDIFFUSE_SCALE_MODE D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR |
효과가 이미지를 해당 커널 단위 길이로 스케일링하는 데 사용하는 보간 모드입니다. 품질과 속도의 범위는 여섯 배율 모드가 있습니다. 자세한 내용은 크기 조정 모드 를 참조하세요. |
크기 조정 모드
열거형 | 설명 |
---|---|
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 |