멈추지 않고 끈질기게

[Unity][Graphics][포트폴리오] 기본 그래픽스 설정 본문

포트폴리오

[Unity][Graphics][포트폴리오] 기본 그래픽스 설정

sam0308 2023. 6. 13. 17:01

※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다.

※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다.

 

 

1. 라이트 맵

 현재 프로젝트는 그래픽적으로 고사양을 추구하는 게임은 아니기에, 라이팅은 라이트맵을 활용하기로 했습니다. 다만 완전히 Baked로 사용하기에는 회전형 장애물 등 동적인 오브젝트 비중도 꽤 높기 때문에, Mixed 모드를 선택하기로 했습니다.

 

사진 1. (좌) Lightmap Resolution 15, 1장 / (우) Lightmap Resolution 16, 2장

 

 Lightmap Resolution은 디폴트 값인 40으로 Bake 해보니 라이트맵이 2장으로 나와서, 몇번 시행착오를 거쳐보니 Lightmap Resolution이 15일 때 1장으로 처리되었습니다. 40일때와 시각적으로 큰 차이가 느껴지지는 않아 배칭이 깨지지 않도록 라이트맵이 1장으로 나오는 15로 결정했습니다. 일단 현재까지 만든 스테이지들 기준이고, 추가로 제작하는 스테이지에서는 다르게 설정할 수도 있겠습니다.

 

 

2. 그림자 설정

 그림자는 Mixed Light Mode에서 ShadowMask를 선택해서 동적 오브젝트와 정적 오브젝트의 그림자가 자연스럽게 연결되도록 했습니다. ShadowMask는 텍스처 메모리를 추가로 사용한다고 알고 있으나, 우선 플랫폼은 PC 타게팅으로 한 프로젝트이므로 메모리 관련 부담은 덜하기에 괜찮을 것으로 판단하였습니다. 

 

사진 2. (좌) Shadow Distance 50 / (우) Shadow Distance 70

 

 대신 Quality 설정에서  Shadow Type은 Hard Shadow로 선택하고 Shadow Distance를 좀 줄였습니다. 디폴트 값인 150에서 70까지 줄였을때는 시각적으로 큰 차이가 느껴지지 않았고, 이보다 낮췄을 경우에는 골대 쪽 그림자가 흐릿하게 노출되는 문제가 있어서 70으로 설정했습니다. 

 

사진 3. (좌) No Cadcades / (중) Two Cascades / (우) Four Cascades

 

 Shadow Cascades는 디폴트 설정인 Four Cascades 그대로 가기로 했습니다. 확인해보고 큰 품질차이가 없다면 Two Cascades나 No Cascades로 설정하려고 했으나, 생각보다 회전 팬의 그림자를 보니 육안으로 느껴질 정도로 품질 차이가 나서 변경하기 어렵다고 판단했습니다. 

 

 

3. GPU 인스턴싱

 TrueOrFalse(이하 TOF) 스테이지의 경우 같은 오브젝트 여러개를 반복 사용하는 스테이지라 해당 오브젝트는 Enable GPU Instancing을 체크하여 GPU 인스턴싱을 적용하였습니다.

 

사진 n. (좌) GPU 인스턴싱 적용 전, (우) GPU 인스턴싱 적용 후

 

 실제로 플레이하여 해당 스테이지 출발지점에서의 드로우콜을 체크해보니, GPU 인스턴싱 적용 전에는 258이던 드로우콜이 GPU 인스턴싱 적용 후 35로 크게 줄었음을 확인할 수 있었습니다. 배칭으로 인한 감소가 기존에는 static 오브젝트 2개에 정적 배칭이 적용된것 뿐이라 2밖에 안되었으나, GPU 인스턴싱 적용 이후 225까지 증가하였습니다. 동일한 메시의 오브젝트를 반복 사용하는 경우라면 GPU 인스턴싱을 꼭 체크하는 것이 좋을 듯 합니다.

 

 


  이 외에도 오클루전 컬링을 Bake하여 적용해보았으나, 기본적으로 탁 트인 실외 환경이라 유의미한 변화는 없었습니다. 그래픽스 관련 설정을 건드릴 부분은 이밖에도 매우 많을 것이고, 포트폴리오 제작을 진행하면서 바뀔 수도 있으므로 그래픽스 관련 나중에 추가로 진행한 내용은 별도의 포스팅으로 올리도록 하겠습니다.