유니티 라이트 그림자 -1
- 프로그래밍/유니티
- 2022. 8. 27.
유니티 라이트 그림자
오늘은 유니티 유니티에서 기본적으로 제공해주는 라이트와 그림자에 대한 내용입니다.
내용은 그냥 제가 필요해서 이것저것 오브젝트랑 라이트 만져본 것을 적을 생각입니다.
이번 글에서는 거의 realtime조명들을 중심으로 사용하여 간단한 기능들을 사용하고 작성할 예정입니다.
- 라이트 오브젝트의 종류.
- light culling mask.
- 오브젝트의 mesh renderer.
라이트 오브젝트의 종류.
1. Directional Light.
범위와 위치에 상관없이 일정한 빛.
각도를 가지고 있어서 각도조절을 통해 그림자를 다르게 할 수 있음.
2. Point Light.
빛이 중심을 기준으로 주변으로 일정 범위만큼 퍼져나가는 조명.
3. Spot Light.
손전등으로 써먹을 수 있을 것 같은 콘모양의 라이트.
4. Area Light.
사각형 형태의 조명으로 한쪽에서 빛을 발하며 혼자만 Realtime조명이 아닌 오직 베이크 해야만 확인가능한 조명입니다.
간접조명에 많이 활용됩니다.
아래 사진은 Area Light를 넣고 베이크한 후 다른 큐브 오브젝트를 추가한 사진입니다.
베이크되어 사용되기 실시간으로 오브젝트가 추가되어도 상태가 반영되지 않습니다.
Light CullingMask
이 기능을 사용하면 원하는 물체에만 빛을 비출 수 있습니다.
먼저 Cube오브젝트에 레이어 하나를 추가해줍니다.
저는 그냥 aa레이어를 하나 만들어서 추가했습니다.
이제 라이트 설정을 해줍니다.
현재는 Culling Mask설정이 Everything으로 되어있습니다.
방금 추가해준 aa레이어를 체크해제해주겠습니다.
이후 aa를 추가해준 큐브를 살펴보면 빛의 영향을 받지 않는 것을 확인 할 수 있었습니다.
Mesh Renderer.
오브젝트를 눌러보면 Mesh Renderer라는게 존재하는 것을 확인할 수 있습니다.
그 Mesh Renderer 라는 것을 눌러보면 Lighting이 존재합니다.
Case shadow가 on으로 되어있는데 이것을 off로 설정하면 빛은 받지만 해당 오브젝트로 그림자가 생기지 않습니다.
이것을 Shadow only로 바꿔주면 오브젝트는 투명이되고 그림자는 생성이 됩니다.
다시 큐브의 case shadow를 on으로 설정하고 옆에 똑같은 큐브 오브젝트를 하나 만들었습니다.
오른쪽에 라이트가 있어 오른쪽 오브젝트의 그림자가 왼쪽 오브젝트에 생기는 것을 확인할 수 있습니다.
왼쪽 오브젝트를 눌러 Receive shadow를 체크 해제해보면 오른쪽 오브젝트의 그림자가 왼쪽 오브젝트에 영향을 주지 않는 것을 확인 할 수 있습니다.
영향을 받는 오브젝트의 Receive shadow를 off로 설정하고 영향을 주는 오브젝트의Cast shadow를 끄면 그림자를 받지 않고 그림자를 생성하지 않기때문에 culling mask를 적용한 것과 비슷한 효과를 주지만 오브젝트는 여전히 빛의 영향을 받는다는점을 알 수 있습니다.
조명