Draw Call

드로우콜 (Draw Call)
CPU는 현재 프레임에 어떤 것을 그려야 할지 정하고, GPU에 오브젝트를 그리라고 명령을 호출하는 명령이다. 게임의 오브젝트를 화면에 렌더링하려면 우선 오브젝트가 렌더링 대상인지를 판단한다. 이러한 과정을 컬링이라고 한다. 컬링을 거친 오브젝트가 렌더링 되기 위해선 CPU에서 GPU에 다음의 정보를 줘야 한다. 메시 정보 텍스처 정보 쉐이더 정보 트랜스폼 정보 알파 블렌딩 여부 기타 등등 메시 텍스쳐 쉐이더등의 정보는 스토리지에 보관되어 있다가 CPU가 이를 읽어들여 CPU 메모리에 데이터를 올린다. 그 후 CPU메모리에 있는 정보들을 GPU 메모리로 복사한다. 정보들은 GPU 메모리에 있어야 GPU가 사용할 수 있다. 만약 위 복사과정이 매 프레임마다 일어난다면 성능을 많이 잡아먹을 것이다. 따라서 ..

[Unity] 최적화 Batching, Draw Call, SetPass calls
Batching(배칭) 동일한 메테리얼을 공유하는 복수의 드로우콜을 하나로 묶어서 드로우콜하는 기법 Batching = Draw Call + SetPass calls Draw Call(드로우콜) CPU가 GPU에게 화면에 오브젝트를 그려달라고 요청하는 것 한프레임에서 오브젝트를 하나 그릴때 여러 정보들이 CPU에서 GPU로 전달 DATA > Storage(HDD,SDD,SD) > CPU Memory > GPU Memory 매 프레임 화면에 그려야 하기 때문에 값이 클수록 프레임에 부하가 걸린다. 적정개수 PC : 1000개 이상 가능 ~ 3000개 모바일 : 100개도 많다. 최신 디바이스는 200개까지가능 일반적으로 오브젝트 단위로 1개씩 증가, 쉐이더에 따라서 추가적으로 증가 SetPass calls..