다음을 통해 공유


감쇠 및 스포트라이트 계수

전역 조명 수식의 확산 및 반사 조명 구성 요소에는 조명 감쇠와 스포트라이트 원뿔을 설명하는 용어가 있습니다. 다음은 이러한 용어에 대한 설명입니다.

감쇠

조명의 감쇠는 조명 유형 및 조명과 꼭짓점 위치 간의 거리에 따라 달라집니다. 감쇠를 계산하려면 다음 수식 중 하나를 사용합니다.

Atten = 1/( att0i + att1i * d + att2i * d²)

여기서

매개 변수 Default value 유형 설명 범위
att0i 0.0 부동 소수점 정적 감쇠 계수 0 ~ 양의 무한대
att1i 0.0 부동 소수점 선형 감쇠 계수 0 ~ 양의 무한대
att2i 0.0 부동 소수점 이차 감쇠 계수 0 ~ 양의 무한대
d 해당 없음 부동 소수점 꼭짓점 위치에서 조명 위치까지의 거리 해당 없음

 

  • Atten = 1, 조명이 방향성 광원인 경우
  • Atten = 0, 조명과 꼭짓점 간의 거리가 조명의 범위를 초과할 경우

조명과 꼭짓점 위치 간의 거리는 항상 양수입니다.

d = | Ldir |

여기서

매개 변수 Default value 유형 설명
Ldir 해당 없음 x, y, z 부동 소수점 값을 포함한 3D 벡터 꼭짓점 위치에서 조명 위치까지의 방향 벡터

 

d가 조명의 범위보다 클 경우 Direct3D가 더 이상 감쇠 계산을 수행하지 않고 조명의 효과를 꼭짓점에 적용하지 않습니다.

감쇠 상수는 수식에서 계수 역할을 합니다. 감쇠 상수를 간단히 조정하여 다양한 감쇠 곡선을 만들 수 있습니다. Attenuation1을 1.0으로 설정하여 감쇠되지 않지만 범위로 제한되는 조명을 만들거나 여러 값을 사용하여 다양한 감쇠 효과를 낼 수 있습니다.

최대 조명 범위의 감쇠는 0.0이 아닙니다. 조명 범위에 있을 때 조명이 갑자기 나타나지 않도록 애플리케이션에서 조명 범위를 늘릴 수 있습니다. 또는 감쇠 계수가 조명 범위에서 0.0에 가깝도록 애플리케이션에서 감쇠 상수를 설정할 수 있습니다. 감쇠 값에 조명 색의 빨강, 녹색, 파랑 구성 요소를 곱하여 조명이 꼭짓점으로 이동하는 거리의 계수로 조명의 강도를 스케일링합니다.

스포트라이트 계수

다음은 스포트라이트 계수를 지정하는 수식입니다.

스포트라이트 계수의 수식

매개 변수 Default value 유형 설명 범위
rhoi 해당 없음 부동 소수점 스포트라이트 i에 대한 코사인(각도) 해당 없음
phii 0.0 부동 소수점 스포트라이트 i의 반영 각도(라디안 단위) [thetai, pi)
thetai 0.0 부동 소수점 스포트라이트 i의 본영 각도(라디안 단위) [0, pi)
falloff 0.0 부동 소수점 대칭 계수 (음의 무한대, 양의 무한대)

 

여기서

rho = norm(Ldcs).norm(Ldir)

and:

매개 변수 Default value 유형 설명
Ldcs 해당 없음 x, y, z 부동 소수점 값을 포함한 3D 벡터 카메라 공간에서 조명 방향의 음수
Ldir 해당 없음 x, y, z 부동 소수점 값을 포함한 3D 벡터 꼭짓점 위치에서 조명 위치까지의 방향 벡터

 

조명 감쇠를 컴퓨팅한 후 꼭짓점에 대한 확산 및 반사 구성 요소를 계산하기 위해 Direct3D는 적용 가능한 경우 스포트라이트 효과, 화면에서 빛이 반사되는 각도, 현재 재질의 반사율도 고려합니다. 조명 유형에서 “스포트라이트”를 참조하세요.

조명의 수학