Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
글로벌 일루미네이션 가짜
왜 가짜 글로벌 일루미네이션인가?
Godot는 장점과 단점이 있는 여러 전역 조명(GI) 기술을 제공합니다. 그럼에도 불구하고 GI 기술을 사용하지 않고 대신 손수 만든 접근 방식을 사용하는 것이 가능합니다. VoxelGI, SDFGI 또는 구운 라이트맵 대신 전역 조명에 "수제" 접근 방식을 사용하는 데에는 몇 가지 이유가 있습니다.
렌더링 성능이 좋아야 하지만 번거로울 수 있는 라이트맵 베이킹 프로세스를 거칠 여유가 없습니다.
완전한 실시간 그리고 절차적으로 생성된 레벨에서 작동하는 GI에 대한 접근 방식이 필요합니다.
완전한 실시간 그리고 심각한 빛 누출로 고통받지 않는 GI에 대한 접근 방식이 필요합니다.
아래에 설명된 접근 방식은 반사 조명이 아닌 간접 확산 조명만 다루고 있습니다. 반사 조명의 경우 일반적으로 이 가짜 GI 접근 방식과 함께 사용할 수 있을 만큼 저렴한 ReflectionProbe를 사용하는 것이 좋습니다.
더 보기
조명을 사용하여 전역 조명을 가짜로 만드는 것이 귀하의 요구 사항에 적합한지 확신할 수 없습니까? Godot 4에서 사용할 수 있는 GI 기술 비교는 :ref:`doc_introduction_to_global_illumination_comparison`를 참조하세요.
DirectionalLight3D 전역 조명 가짜
하늘은 자체 방향 조명을 제공하지만 씬의 기본 DirectionalLight3D 노드는 일반적으로 많은 양의 빛을 방출합니다. GI 기술을 사용할 때 이 빛은 단단한 표면에 반사되어 대부분의 실외 그늘진 표면에서 반사됩니다.
첫번째 벡터의 끝에 두번째 벡터를 더함으로써 우리는 시각적으로도 이것을 확인할 수 있습니다:
조명을 180도 회전시킵니다. 이를 통해 메인 DirectionalLight3D 노드에 의해 반사되는 조명을 표현할 수 있습니다.
**그림자**를 **끄기**로 설정합니다. 이는 보조 조명의 성능 부담을 줄이는 동시에 음영 영역이 일부 조명을 받을 수 있도록 허용합니다(여기서 우리가 원하는 것).
**에너지**를 원래 값인 10-40% of로 설정합니다. "완벽한" 값은 없으므로 빛과 일반적인 재료 색상에 따라 다양한 에너지 값을 실험해 보세요.
**반사광**을 ``0.0``로 설정합니다. 간접 조명은 가시적인 반사 로브를 방출해서는 안 되므로 보조 조명에 대해 반사 조명을 완전히 비활성화해야 합니다.
참고
이 접근 방식은 대부분 야외에 있는 장면에서 가장 효과적입니다. 실내로 들어갈 때 보조 DirectionalLight3D의 조명은 그림자가 비활성화되어 있으므로 계속 표시됩니다.
이 문제는 실내 영역에 들어갈 때 보조 DirectionalLight3D의 에너지를 부드럽게 줄임으로써 해결될 수 있습니다(실내 영역을 나갈 때는 그 반대로 수행). 예를 들어 이는 Area3D 노드 및 AnimationPlayer를 사용하여 달성할 수 있습니다.
위조 위치 조명 전역 조명
위치 조명(OmniLight3D 및 SpotLight3D)에 대해 DirectionalLight3D와 동일한 접근 방식을 따르는 것이 가능합니다. 그러나 씬의 모든 위치 조명 노드가 보기 좋게 보이도록 이 작업을 반복해야 하므로 더 많은 수동 작업이 필요합니다.
이상적인 시나리오에서는 상당한 양의 빛이 충분히 밝은 표면에 닿는 모든 위치에 추가 OmniLight3D를 추가해야 합니다. 그러나 시간 제약으로 인해 이것이 항상 쉽게 실현 가능한 것은 아닙니다(특히 절차적 수준 생성을 수행할 때).
급한 경우 보조 OmniLight3D 노드를 기본 OmniLight3D 노드와 동일한 위치에 배치할 수 있습니다. 이 노드를 기본 OmniLight3D 노드의 하위 항목으로 추가하면 두 노드를 동시에 쉽게 이동하고 숨길 수 있습니다.
보조 OmniLight3D 노드에서 다음 변경을 수행합니다.
조명의 **범위**를 25-50% 늘립니다. 이를 통해 이전에 원래 조명이 비추지 않았던 부분을 보조 조명이 밝게 할 수 있습니다.
**그림자**를 **끄기**로 설정합니다. 이는 보조 조명의 성능 부담을 줄이는 동시에 음영 영역이 일부 조명을 받을 수 있도록 허용합니다(여기서 우리가 원하는 것).
**에너지**를 원래 값인 10-40% of로 설정합니다. "완벽한" 값은 없으므로 빛과 주변 환경에 따라 다양한 에너지 값을 실험해 보세요.
**반사광**을 0으로 설정합니다. 간접 조명은 눈에 보이는 반사광 로브를 방출해서는 안 되므로 보조 조명에 대해 반사광 조명을 완전히 비활성화해야 합니다.
SpotLight3D의 경우에도 동일한 트릭을 사용할 수 있습니다. 이 경우 보조 OmniLight3D는 대부분 빛이 반사되는 위치를 반사하는 방식으로 배치되어야 합니다. 이는 일반적으로 SpotLight3D의 주요 충격 위치에 가깝습니다.
아래 예에서는 SpotLight3D 노드를 사용하여 방 바닥을 밝게 비췄습니다. 하지만 간접조명이 없기 때문에 방의 나머지 부분은 전체적으로 어둡습니다. 실제 생활에서는 방의 벽과 천장이 반사되는 빛으로 비춰집니다. SpotLight3D의 원점과 바닥 사이에 위치한 OmniLight3D 노드를 사용하면 이 효과를 시뮬레이션할 수 있습니다.