내일배움캠프 72일차 TIL
오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다.
드로우콜(Draw Call) 배칭이 무엇인지 설명해주세요.
- 드로우 콜이란 CPU가 GPU에게 오브젝트를 그리라고 명령하는 것을 의미합니다.
- 배칭이란 드로우 콜을 줄이는 작업을 의미합니다. 유니티는 2가지 드로우 콜 배칭 메서드를 제공합니다.
- 정적 배칭(Static Batching) : 정적 게임 오브젝트의 경우 유니티가 이들을 결합하고 함께 렌더링합니다. 모든 렌더 파이프라인이 지원합니다. 메모리와 스토리지가 많이 사용됩니다.
- 동적 배칭(Dynamic Batching) : 메시가 충분히 작은 경우 CPU에서 버텍스를 변환하고 유사한 버텍스를 함께 그룹화하여 하나의 드로우 콜로 렌더링합니다. 고해상도 렌더 파이프라인(HDRP)는 지원하지 않습니다. CPU 리소스가 많이 사용됩니다.
코루틴(Coroutine)이 무엇이며, 어떤 상황에서 유용하게 사용될 수 있나요?
- 코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니다. 시간의 흐름에 따른 이벤트의 시퀀스나 절차상의 애니메이션을 포함하기 위해 메서드 콜을 사용하고자 하는 상황에서 코루틴을 사용할 수 있습니다.
- 플레이어의 리지드바디의 벨로시티 y값을 계속 검사할 필요가 있어서 이를 코루틴으로 구현했습니다. 굳이 매 프레임마다 검사할 정도로 정밀할 필요는 없어서, 코루틴으로 일정 주기마다 벨로시티 y값을 검사하도록 구현했습니다.