Lighting Overview
조명은 기본적으로 실시간 직접 조명(RealTime Direct Lighting)과
미리 계산된 간접 조명(Pre-Computed Indirect Lighting)의 두 형태를 취한다.
RealTime Light → 즉각적인 피드백으로 조명을 움직일 수 있다.
Baked Global Illumination(구워진 전역조명)
간접광이 가상장면에서 반사되는 방식을 모방한다.
사람의 눈에 보이는 방식으로 만들어 사실적이게 느껴진다.
미리 계산된 조명효과는 라이트맵이라는 텍스쳐에 저장됨
→ 런타임시 이 텍스쳐를 3D 지오메트리 표면에 적용한 다음 렌더링한다.
(참고로 Realtime Global Illumination은 라이트맵 텍스쳐에 저장되지 않고 GI cache를 이용함)
베이크된 조명은 계산하는데 비용이 많이 들기 때문에 움직이지 않는 물체에 적용해야 한다.
Directional Light
방향성 조명은 무한히 멀리 떨어져 있는 광원이다.
광선이 평행하기 때문에 방향성 조명을 사용하여 햇빛을 대신할 수 있다.
그래서 위치 값을 바꾸는 것은 의미가 없다.
방향성 조명에서 중요한 유일한 변환은 회전이다.
빛을 회전시키면 구체의 조명과 방향 모두에 영향을 줄 수 있다.
Intensity 프로퍼티 값을 0으로 해도 완전한 어둠이 만들어지지 않는다.
유니티에서 기본적으로 환경내에 약간의 주변 조명을 제공하기 때문이다.
이 기능을 끄려면 아래 두개의 프로퍼티를 0으로 만들면 된다.
Shadows
그림자가 미세할 수록 기기의 리소스를 더 많이 먹는다.
Project Setting의 퀄리티 세팅에서 그림자의 품질을 한번에 조정할 수 있다.
단, 이 경우에는 Shadow의 Resolution의 프로퍼티가 Use Quality Setting을 사용해야 함.
아래 세 가지 슬라이더는 그림자에 나타나는 이상함을 완화하는데 도움이 될 수 있다.
조명이 환경에 그레이스케일 이미지를 투사하고,그 빛에 의해 보이지 않는 모든 것은 그림자에 드리워진다.
이 결과물을 ShadowMap이라고 한다.
그런데 쉐도우맵이 지오메트리 위에서 계산하는 방식의 차이에 따라 때때로 매우 작은 구멍이나 예상과는
다른 결과물을 얻을 수 있다.
이럴 때 위 세 가지의 슬라이더를 조정하며 편향을 줄이는데 도움이 된다.
Point Light
Directional Light와 달리 위치가 조명에 많은 영향을 미친다.
또, Point Light의 빛이 방사되므로 회전에 따른 변화는 없다.
Point Light의 빛은 구의 중심에서 100%의 강도로 시작하여 구의 가장자리에 도달할 때 까지 0%로 감소한다.
이 감쇠는 역제곱 법칙을 따르는데, 빛은 거리의 제곱에 반비례한다.
따라서 중앙에서 더 밝아졌다가, 범위 끝으로 갈수록 빠르게 감소한다.
아래와 같은 경고가 나타나는 이유는 실시간 모드에서 간접승수는 실제로 그림자에 영향을 주지 않기 떄문이다.
경고를 없애려면 간접승수를 0으로 만들면 된다.
SpotLight
피사체에 빛이 비추는 방식을 보다 세밀하게 제어할 수 있다.
원뿔형태이며, 조명각도를 특정하게 제어해야 하는 경우에 유용하다.
원뿔의 꼭짓점이 빛의 원점이며, 100%의 세기로 시작하여 점차 나아갈수록 감쇠한다.
Baked Light에서는 Spot Light에만 Cookie가 작동된다.
Light Cookies - 노션에 정리한 내용
Area Light
LED PANEL LIGHTING이라고 생각하면 이해하기 쉽다.
너비와 높이를 늘리면(위치나 강도를 조정하지 않고) 그만큼 더 많은 빛을 발산한다. (Range, Width, Height 조정)
유니티 공식메뉴얼에 다음과 같이 작성되어있다. 즉, realtime에서는 작동하지 않는다.
Because this lighting calculation is quite processor-intensive,
Area Lights aren’t available at runtime and can only be baked into lightmaps.
빛이 여러개 있는 프로젝트라면 보색 조합을 신경쓰자
색상의 RGB모델에서는 두 가지 보색을 혼합하면 결합하여 백색광을 형성하고,
두 가지 보색을 단순히 나란히 배치하면 많은 대비가 만들어진다.
우리의 눈과 뇌가 색상이 얼마나 다른지 인식하기 때문이다.
특히 영화에서는 드라마틱한 연출을 위해 주황색과 파랑색의 대비로 수십년간 대비효과를 사용해왔다.
그외에 괜찮은 결과물을 만드는 보색 조합은 아래와 같다.
빨간색과 초록색
: 따뜻하고 활기찬 대비를 만들어내고, 자연적인 분위기와 환경을 나타내는 데 적합하다.
노란색과 보라색
: 화사하고 대담한 대비를 형성하여 화려한 분위기를 연출한다. 축제나 카툰 스타일의 게임에서 인기가 있다.
주황색과 청록색
: 다이나믹한 대비를 만들어내며, 미스터리한 분위기를 연출하는 데 적합하다.
스페이스 혹은 공상과학 테마의 게임에서 사용될 수 있다.
녹색과 자주색
:미스티컬하고 신비로운 분위기를 나타내는 데 사용된다. 판타지 게임이나 어드벤처 게임에 어울린다
유데미 강의를 보고 일부 내용을 정리한 것입니다.
'유니티 개발 기술 > 그래픽 & 비주얼' 카테고리의 다른 글
ParticleSystem의 다양한 함수 (0) | 2023.07.25 |
---|---|
Light 클래스의 다양한 속성 (0) | 2023.07.24 |
Texture 클래스의 다양한 속성 (0) | 2023.07.24 |
Material 클래스의 다양한 속성 (0) | 2023.07.23 |
Material 클래스의 다양한 함수 (0) | 2023.07.23 |