최적화할때는 프로파일링을 겸해서 성능이 좋아지는지 확인 해야 하는데

프로파일링을 잘 다루지 못한다면 일단 유니티 Game탭에서 Stats을 눌러 보면된다.

Statistics이라는 창이 열리고 그 안에 FPS(초당 프레임)을 확인하거나

Batches 부분을 보면 도움이 된다.

Batches는 카메라(View)에 걸린 물체를 렌더링한 수 라고 보면되는데 이를 줄여

프레임을 높이는게 성능향상에 도움이 된다고 한다.

쉽게 말하자면 오브젝트를 카메라에 안걸리게 하면 되는데

이를 컬링(제외)이라고 한다.

 

최적화를 하는방법 중 코드최적화와 렌더링 최적화 중

코드 최적화는 성능을 올리는 데 도움이 많이 되는데

렌더링 최적화는 고생한 만큼 리턴이 없다고 한다. (현 실력 기준)

굉장히 어렵고 T.A라는 직군이 전담을 해서 해준다고 한다.

 

렌더링 최적화 기법 중

오클루전 컬링, LOD, 컬링에 대해서 오늘 배웠는데

 

오클루전 컬링은 오클루더 - 오클루디 로 이루어진 한쌍으로 진행 한다.

오클루더로 설정된 게임 오브젝트는  오클루디로 설정된 게임 오브젝트를

카메라 상으로 가려졌다고 판단이 되면 오클루디 오브젝트가 실제로 사라지게

하는 효과를 지닌 기법이다.

그만큼 맵 구조나 설정등을 신경 쓸게 많기 때문에 사용함에 있어서는 공부가

많이 필요하다는 느낌이다.

 

LOD는 게임오브젝트에 LODGroup이라는 컴퍼넌트를 추가 하면서 만들수 있는데

카메라의 거리를 측정해서 그룹안에 있는 물체를 바꾸거나 사라지게 하는 기법이다.

LOD 자체는 만들기 쉬운데 거리 조절이나 바뀌는 물체쪽을 생각해야 둬야 한다는 느낌이였다.

 

다음은 카메라를 이용한 컬링인데 카메라의 Far Clip Plane을 이용해

랜더거리를 낮추고 light 세팅에서 flog를 켜서 안개가 낀거 같은 효과를 연출 할 수 있다.

랜더거리만 조절해서 하면 부자연스러운 느낌이 나지만 안개에 텍스쳐를 잘 입히면

자연스럽게 조절할 수 있을거 같고 제일 쉬운 느낌이였다.

 


 

 

[기술면접 연습]

디자인 패턴(Singleton, Observer 등) 사용하는 이유는 무엇인가요? 

 

디자인 패턴을 사용하는 이유는 주로 코드의 유지보수성, 확장성, 재사용성을

높이고  설계와 구현을 향상시키기 위함입니다.

 

1. (꼬리질문) 프로젝트에 디자인패턴을 적용해 본 경험이 있나요? 왜 그 디자인패턴을 선택해서 구현하였나요?   

 

FSM패턴을 이용해서 몬스터를 만든적이 있습니다.

몬스터의 여러 동작들을 각각의 상태들로 만들며 단순화하고, 코드의 가독성을 향상시키며

유지보수면에서 좋다고 판단 되어 사용하게 되었습니다.

 

2. (꼬리질문) Unity를 사용하면서 경험해볼 수 있는 대표적인 디자인패턴이 무엇인지 설명해주세요.

 

유니티에서 대표적으로 사용할 수 있는 디자인패턴은 싱글톤 이라고 생각합니다.

유니티 게임매니저를 싱글톤으로 만들며 이를 통해 전역적으로 접근이 가능해지고

자원을 공유하고 중앙 집중화하여 메모리 및 자원사용을 최적화할 수 있습니다.

 

반응형