본문 바로가기

트러블 슈팅

트러블 슈팅 - 그림자 문제 (near plane, shadow acne)

문제 발생

 

 

기본적인 세팅을 마친뒤 맵의 이곳 저곳을 돌아 다니던 중.. 뭔가 이상한 부분을 발견하였다.

 

 

 

1. 플레이어 캐릭터가 접근하니 원 형태로 캐스팅 되었던 그림자가 사라짐.

2. 캐스팅 된 그림자의 일부분에 선 모양으로 그림자가 깨져보임.

 

 


 

원인 발견 1

해당 문제에 대해서 간단하게 검색 해보니 금방 나오는 일반적인 문제였다. 그림자가 원 형태로 사라지는 부분은 유니티의 공식 문서를 확인하니 아래와 같이 라이팅과 관련된 각 요소들의 프로퍼티 정보가 나와있었다.

https://docs.unity3d.com/kr/2018.4/Manual/ShadowOverview.html

 

그림자 - Unity 매뉴얼

Unity의 광원은 게임 오브젝트의 그림자 를 오브젝트 자체의 다른 부분이나 가까이 있는 다른 게임 오브젝트에 캐스트할 수 있습니다. 그림자는 평면적으로 보일 수 있는 오브젝트에 부피감과 포

docs.unity3d.com

 

 

Shadow Near Plane 이 프로퍼티를 사용하면 그림자를 렌더링할 때 가까운 평면에 대한 값을 선택할 수 있습니다. 이 거리보다 광원에 가까운 게임 오브젝트는 그림자를 캐스트하지 않습니다.

 

그중 위와 같이 적힌 부분이 있었고 해당 프로퍼티를 1 에서 3으로 올려주니 금방 해결이 되었다.

 

 

원인 발견 2

 

그림자가 깨지는 부분또한 shadow acne 이라는 것으로 각진 오브젝트가 많이 사용되는 로우 폴리곤 게임의 경우 은근 자주 발생하는 문제인듯 하였다.

이는 빛 발생원과 그림자를 생성하는 오브젝트간의 판정 부분에서 조명과 90도의 각도를 이루는 면의 부분에서 그림자 캐스팅을 하지 않게 되어 발생하는 현상이다.

 

 

해당 오브젝트의 Mesh Renderer의 Casting Shadows 에서 Two Sided 로 수정해주면 해결된다.

 


해결

 

잘 해결된 모습이다.

가까이 다가가도 그림자도 정상 작동하며 손실없이 정상적으로 표현되고 있다.