Draw call
화면상에 그려지는 메쉬에 대한 정보(Texture + shader + 기타 설정값)를 비디오 카드에 보낼때 1번의 Draw call 발생. 이를 Draw call이라 정의(메쉬 변화에 따른 부하는 크지 않으나 Texture 혹 shader 변화에 따른 부하는 크게 발생하는듯)
Batching
하나의 Material을 공유하는 여러개의 메쉬를 합쳐서 연산할경우 Draw call에 대한 부담을 줄일수 있게 된다. 이렇게 여러개의 오브젝트를 하나의 오브젝트로(즉 맥스에서 attach)하는것을 Batching이라 정의 함.
-------------------------------------------------------------------------------------------
즉, 하나의 큰 맵에서 동일한 쉐이더를 사용한 오브젝트를 여러개로 나눌것인지, 하나로 합칠것인지는 씬의 카메라 이동과 맵 크기에 따라 적절히 조절하는것이 Draw call을 줄일수 있는 방법이 될 것이다.
너무 잘게 쪼개어 놓을경우 Draw call이 증가하며, 큰 화면에 모든 오브젝트를 하나로 합칠경우 화면에 보이지 않는 오브젝트에 대해서도 culling이 되지 않으므로 적절히 분배하는것이 퍼포먼스 향상에 도움이 될듯.
(엔진에 따라 카메라에 비춰지지 않는 메쉬에 대해서는 연산에서 제외하는 기술..(명칭이 기억안남) 하여튼 엔진에서 오브젝트에 대해 가려진 메쉬는 그리지 않는 경우 이 작업이 큰 효과를 발휘하지는 못할것 같다. (seamless 방식에선 꽤 효과가 있으나 zone loading에선 그닥 효과가 없을듯...)
Batching을 적절히 나누어 주면 좋으나 너무 잘게 쪼개어 버리면 Draw call이 증가하니 씬에 따라 적절히 배분하는게 좋을듯....
(그러니까 쓰잘데기 없이 쉐이더 너무 만들어 올림 안된단 소리..ㅠ_ㅠ... 반성하자..)


댓글을 달아 주세요