스폿 반사 조명 효과
스폿 반사 조명 효과를 사용하여 광원이 광원을 광원의 지시된 원뿔로 제한되는 반사 표면으로 보이는 이미지를 만듭니다. 이 효과는 알파 채널을 높이 맵으로 사용하고 점 광원으로 이미지를 비추고 있습니다.
출력 비트맵의 색은 퐁 조명 모델의 반사 부분에 따른 밝은 색, 조명 위치, 원뿔 방향 및 표면 기하 도형의 결과입니다. 반사 조명이 있는 각 픽셀에 대한 알파 채널 출력은 해당 픽셀에 대한 빨간색, 녹색 및 파란색 채널 출력의 최대값입니다.
이 효과에 대한 CLSID는 CLSID_D2D1SpotSpecular.
예제 이미지
이 예제에서는 스폿 반사 조명 효과의 입력 및 출력 이미지를 보여 줍니다.
반사 광원은 특정 방향으로 반사되는 빛을 나타냅니다.
효과는 다음 수식을 사용하여 계산되는 최종 출력 픽셀 값을 계산합니다.
where
스폿 광원
스폿 광원은 원뿔의 빛을 특정 방향으로 내보내고 원뿔 바깥쪽에서 빛을 내보내지 않습니다.
스폿 광원은 점 반사 효과와 동일한 방식으로 광원 벡터 L 및 중간 벡터 H를 계산합니다.
이 효과는 다음과 같은 수식과 같이 광원 위치의 함수로 밝은 색 Lr, Lg, Lb를 계산합니다.
벡터 는 다음 수식으로 정의됩니다.
벡터 는 다음 수식으로 정의됩니다.
효과 속성
표시 이름 및 인덱스 열거형 | 설명 |
---|---|
LightPosition D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
점 광원의 광원 위치입니다. 속성은 (x, y, z)로 정의된 D2D1_VECTOR_3F. 단위는 디바이스 독립적 픽셀(DIP)에 있으며 바인딩되지 않습니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
스폿 조명이 포커스가 있는 위치입니다. 속성은 (x, y, z)를 사용하여 D2D1_VECTOR_3F 노출됩니다. 단위는 DIP에 있고 값은 바인딩되지 않습니다. 형식이 D2D1_VECTOR_3F. 기본값은 {0.0f, 0.0f, 0.0f}입니다. |
포커스 D2D1_SPOTSPECULAR_PROP_FOCUS |
스폿 조명의 포커스입니다. 이 속성은 유니티리스이며 0에서 200 사이에 정의됩니다. FLOAT 형식입니다. 기본값은 1.0f입니다. |
LimitingConeAngle D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE |
조명이 프로젝트되는 영역을 제한하는 원뿔 각도입니다. 원뿔 바깥쪽에는 빛이 투사되지 않습니다. 제한 원뿔 각도는 스폿 광원 축( LightPosition 과 PointsAt 속성 사이의 축)과 스폿 광원 원뿔 사이의 각도입니다. 이 속성은 도로 정의되며 0~90도 사이여야 합니다. FLOAT 형식입니다. 기본값은 90.0f입니다. |
SpecularExponent D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
퐁 조명 방정식의 반사 용어에 대한 지수입니다. 더 큰 값은 반사 표면에 해당합니다. 이 값은 단위가 없으며 1.0에서 128 사이여야 합니다. FLOAT 형식입니다. 기본값은 1.0f입니다. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
들어오는 광원에 대한 반사 반사의 비율입니다. 값은 단위가 없으며 0에서 10,000 사이여야 합니다. FLOAT 형식입니다. 기본값은 1.0f입니다. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
높이 맵을 생성하기 위한 Z 방향의 배율 인수입니다. 값은 단위가 없으며 0에서 10,000 사이여야 합니다. FLOAT 형식입니다. 기본값은 1.0f입니다. |
색상 D2D1_SPOTSPECULAR_PROP_COLOR |
들어오는 조명의 색입니다. 이 속성은 벡터 3(R, G, B)로 노출되며 LR, LG, LB를 계산하는 데 사용됩니다. 형식이 D2D1_VECTOR_3F. 기본값은 {1.0f, 1.0f, 1.0f}입니다. |
KernelUnitLength D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
X 및 Y 방향으로 표면 보통을 생성하는 데 사용되는 Sobel 커널의 요소 크기입니다. 이 속성은 Sobel 그라데이션의 dx 및 dy 값에 매핑됩니다. 이 속성은 D2D1_VECTOR_2F(커널 단위 길이 X, 커널 단위 길이 Y)이며 (DIP/커널 단위)에 정의되어 있습니다. 이 효과는 쌍선형 보간을 사용하여 커널 요소의 크기와 일치하도록 비트맵의 크기를 조정합니다. 형식이 D2D1_VECTOR_2F. 기본값은 {1.0f, 1.0f}입니다. |
Scalemode D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
효과가 이미지를 해당 커널 단위 길이로 스케일링하는 데 사용하는 보간 모드입니다. 품질과 속도에 따라 6가지 크기 조정 모드가 있습니다. 자세한 내용은 크기 조정 모드를 참조하세요. 형식이 D2D1_SPOTSPECULAR_SCALE_MODE. 기본값은 D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
크기 조정 모드
열거형 | 설명 |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | 가장 가까운 단일 지점을 샘플하고 사용합니다. 이 모드는 처리 시간을 줄이지만 가장 낮은 품질의 이미지를 출력합니다. |
D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR | 4포인트 샘플 및 선형 보간을 사용합니다. 이 모드는 가장 가까운 인접 항목보다 더 높은 품질의 이미지를 출력합니다. |
D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC | 보간을 위해 16 샘플 입방 커널을 사용합니다. 이 모드는 가장 많은 처리 시간을 사용하지만 더 높은 품질의 이미지를 출력합니다. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | 좋은 에지 앤티앨리어싱을 위해 단일 픽셀 내에 4개의 선형 샘플을 사용합니다. 이 모드는 픽셀이 적은 이미지에서 소량으로 축소하는 데 적합합니다. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | 이방성 필터링을 사용하여 비트맵의 변형된 모양에 따라 패턴을 샘플링합니다. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | 변형 매트릭스에 다운스케일링이 관련된 경우 변수 크기의 고품질 입방 커널을 사용하여 이미지의 미리 다운스케일을 수행합니다. 그런 다음 최종 출력에 입방 보간 모드를 사용합니다. |
참고
모드를 선택하지 않으면 효과가 기본적으로 D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
지원되는 최소 서버 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱] |
헤더 | d2d1effects.h |
라이브러리 | d2d1.lib, dxguid.lib |