감쇠 및 스포트라이트 계수
전역 조명 수식의 확산 및 반사 조명 구성 요소에는 조명 감쇠와 스포트라이트 원뿔을 설명하는 용어가 있습니다. 다음은 이러한 용어에 대한 설명입니다.
감쇠
조명의 감쇠는 조명 유형 및 조명과 꼭짓점 위치 간의 거리에 따라 달라집니다. 감쇠를 계산하려면 다음 수식 중 하나를 사용합니다.
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는 적용 가능한 경우 스포트라이트 효과, 화면에서 빛이 반사되는 각도, 현재 재질의 반사율도 고려합니다. 조명 유형에서 “스포트라이트”를 참조하세요.
관련 항목