목표
그래픽 최적화를 통해 최대한 렌더링 비용을 줄여 렉을 없앤다.
(작업 기간 : 2023.10.06~10.06 (1일 소요), 추가 작업 + 10.12일)
1. Clipping Planes
유니티 카메라에는 Clipping Planes 라는 옵션이 있다.
해당 값은 카메라에 비춰지는 오브젝트 렌더링 여부를 거리로서 결정하는데 기본 값으로
최저 0.3, 최대 1000으로 0.3 거리에서 1000 거리 사이의 오브젝트만 렌더링 한다.
이를 최대 거리 1000에서 100으로 수정하여 게임의 거리감에 맞도록 수정하고 불필요한 오브젝트 렌더링을 줄여주었다.
2. 풀 들의 쉐도우 설정, 반사 프로브 설정 수정
- 중요도가 떨어지나 렌더링 값을 많이 잡아먹던 풀들의 그림자를 제거하고 반사 프로브를 Simple로 변경하였습니다.
ㄴ신전 건물이 아닌 다른 곳을 바라볼 경우 풀의 양이 더 많고 렌더링 자원 소모가 적어져 성능 향상 비율이 더 큼
- 나무나 건물, 천막 등 오브젝트는 자연스러운 환경을 보여주기 위하여 그림자 및 프로브 설정을 기본 값으로 유지.
3. 건물 내 오브젝트의 비활성화로 렌더링 값 줄이기
건물 내에 있는 오브젝트들에 대해 언제나 구현되어 있을 필요는 없다.
이를 두가지 방법으로 처리할 수 있다.
1) occlusion culling (오클루전 컬링) 방식
가려질 오브젝트를 지정해주어 카메라에 비춰지지 않는 경우 해당 오브젝트의 렌더링을 처리를 하지 않도록 한다.
2) 구역을 지정하여 오브젝트 비활성 -> 활성으로 전환
구역을 지정해 해당 지역에 들어오게 되면 (트리거) 오브젝트를 활성화 시켜준다.
현 프로젝트에서는 해당 방법을 사용하였는데 오클루전 컬링은 가려질 오브젝트의 연산이 필요한데 현재 가려줄 오브젝트는 작은 오브젝트들이 많기 때문에 연산량이 높아 비효율 적이다.
그렇기 때문에 구역내 오브젝트를 비활성화 시켜주고 플레이어 진입 시 활성, 퇴장 시 비활성을 해주어 효율적으로 최적화를 해주었다.
(또한 씬 진입시 구현 해두었던 것을 비활성 하는 것 이기 때문에 활성화 시 자원 소모도 적다)
※ 오클루전 컬링 적용 전 후 비교
오클루전 컬링의 연산값이 오히려 렌더링 감소 값보다 크다는 것이 확인 되어 사용하지 않았다.
'유니티 게임 개발 > 3D Portfolio' 카테고리의 다른 글
[유니티] 3D Portfolio #10 적 HP 바 구현, 기존 코드 상속코드화 (0) | 2023.09.26 |
---|---|
[유니티] 3D Portfolio #9 퀘스트 시스템 추가, 전투 판정 수정 (0) | 2023.09.23 |
[유니티] 3D Portfolio #8 퀘스트 시스템 구현, 전체적인 리팩토링 (0) | 2023.09.13 |
[유니티] 3D Portfolio #7 CSV를 활용한 대화창, 튜토리얼 제작(기초작업) (0) | 2023.09.02 |
[유니티] 3D Portfolio #6 전투 시스템 제작 (0) | 2023.08.29 |