유니티 기본강좌_7. 라이트
Type
-Directional : 현실세계의 태양과 같은 것. 전 범위에 걸쳐서, 동일한 세기와 각도로 빛을 내리쬐는 것.
-Spot : spotlight처럼 쭉 뻗어있다.
-Point : 일반 전구라고 생각하면 됨. 동그랗게 빛이 퍼져나간다.
-Area: bake 전용인데, tv라고 생각하면 됨. 직사각형 모양에서 빛이 새어나온다고 생각하면 됨.
Color: 말그대로 조명의 색을 바꾸는 것.
Mode
-Realtime: 매 프레임마다 광원을 계산해서, 어느 위치에 그림자를 뿌리고, 밝기조정을 해주는 것. 매 프레임마다 계산하므로, 과부하가 걸리기 쉬움. 최적화를 시킬 때는 realtime을 되도록 사용하지 않아야 한다.
-Mixed: Realtime과 Baked가 섞였다.
-Baked: 최적화를 위해 나온 것. 조명을 최초 1회 계산하고, 그 다음부터 계산하지 않고 그 상태 그대로 보여주는 것.
(한 번 고정된 배경 등에 많이 활용됨)
baked 된 상태에서 새로운 객체가 추가되면, 빛에 영향을 받지 않게 됨. (새객체를 추가하고, game object를 생성해서, game object에 light probe group을 추가해서 주변 광을 흡수할 수 있게 해줄 수 있음 - chap5. 참조)
Intensity : 빛의 세기. 올릴수록 빛의 세기가 커짐
Indirect Multiplier : 간접광의 세기.
직접광: 태양에서 나오는 빛. 이 직접광이 표면에 반사되어 object를 비추게 될 때 그 빛을 간접광이라고 한다. (Indirect Multiplier가 클수록 간접광의 영향을 많이 받는다.)
Shadow Types
- No Shadow : 그림자가 사라짐
- Hard Shadow : 테두리가 선명한 그림자
- Soft Shadow : 테두리가 흐릿한 그림자
strength : 빛의 세기
resolution : 그림자의 퀄리티
bias : 그림자자체를 밀어낸다. (버그나, 부자연스러운 그림자가 있을 때 사용)
normal bias: 그림자를 쪼글어들게(?) 한다. (버그 체크 시 사용)
near plane: 태양의 경우에는 해당되지 않고, clipping 같은것. 가까이 있는 것부터 멀리있는 것까지 사라지도록 하는 것.
Cookie : 빛을 방해하는 존재
Draw Halo : 광원효과(후광)
Flare : 카메라가 태양을 바라봤을 때, 어떤 렌즈 효과가 생기는지
이런식의 flare가 생기게 할 수 있다.
RenderMode
- Important : 품질이 좋아짐
- Not Important : 대충처리 (배경 등)
Culling Mask : 특정 layer를 비출지 안비출지 (조명에 영향을 받을 layer를 고르는 것)
Window> rendering> lightning settings에 들어가면 아래와 같은 화면이 뜬다.
Lightmapper
-Enlighten : bake과정이 끝날 때까지 결과를 보여주지 않음
-Progressive : bake과정을 실시간으로 보여줌.
Prioritize View : 지금 바라보고 있는 시선의 것들이 먼저 baked되게 함
Direct samples, InDirect samples : 직접광과 간접광에 대한 quality 조절. 높을수록 quality좋아지고, 시간 오래걸림
Bounce : 반사광에 튕기는 개수
Lightmap Resolution: 실질적인 해상도
Ambient Occlusion: 지하와 지상의 극명한 (빛의 세기)대비를 위해 사용
Compress lightmap: 압축
Indirect Intensity: 간접광에 대한 세기
Albedo Boost: 간접광에 대해 튕겨나온 개수
[Script를 이용해서 light의 intensity와 range를 조절하는 방법]
이렇게 코드를 작성하면, 빛이 반짝거리는 효과를 줄 수 있다.
위의 코드는 유니티 엔진에서 다음과 같이 작동한다.