배치기 왈칵 다운로드

먼저 거의 모든 렌더링 시간이 새 코드 경로를 통과하는지 확인해야 합니다(위 참조). 그래도 숫자가 여전히 비슷하다면 “플러시” 번호를 살펴보십시오. 이 “플러시” 숫자는 SRP 배치가 켜지면 많이 감소해야 합니다. 엄지 손가락의 규칙으로, 10으로 나누어 정말 좋은, 2로 거의 좋다. 플러시 수가 많이 감소하지 않는 경우, 그것은 여전히 당신이 여전히 그늘기 변형을 많이 가지고 의미. 세이더 변형의 수를 줄이십시오. 다른 샤더를 많이 했다면 매개 변수가 더 많은 “동네 짱”을 만들어보십시오. 다양한 재료 매개변수를 보유하는 것은 무료입니다. 일부 렌더링 패스(특히 그림자 및 깊이 가공)에서 배치 크기를 늘려 SRP 배치기를 계속 개선합니다. 우리는 또한 SRP 배치와 함께 자동 GPU instancing 사용을 추가 하기 위해 노력 하 고.

우리는 메가시티 데모에 사용된 새로운 DOTS 렌더러로 시작했습니다. 유니티 에디터의 스피드업은 10FPS에서 50FPS로 매우 인상적입니다. 위의 두 가지 질문을 확인하십시오. SRPBatcherProfiler가 “CPU 렌더링 시간”이 두 배 빠르고 FPS가 변경되지 않은 경우 CPU 렌더링 부분은 병목 현상이 아닙니다. 그것은 당신이 CPU 바인딩되지 않은 것을 의미하지 않는다 – 대신, 어쩌면 당신은 너무 많은 C # 게임 플레이 또는 너무 많은 물리 요소를 사용하고 있습니다. 어쨌든 “CPU 렌더링 시간”이 두 배 빠르면 여전히 긍정적입니다. 당신은 아마 3.5 배 속도 업으로도, 장면은 여전히 60FPS에 있는 상단 비디오에 나타났습니다. VSYNC가 켜져 있기 때문입니다. SRP 배치정말 CPU 측에 6.8ms를 저장. 이러한 밀리초는 다른 작업에 사용할 수 있습니다.

또한 모바일에서 배터리 수명을 절약 할 수 있습니다. Unity 프레임 디버거를 사용하여 SRP 배치기 “일괄 처리” 길이를 확인할 수 있습니다. 각 배치는 “SRP 배치”라는 프레임 디버거의 이벤트입니다, 당신은 여기에서 볼 수 있듯이: SRP 크립토 배치는 여기에서 볼 수 있습니다: SRP 크립토 처리는 다음과 같습니다. 1,2-4, 1,2-4, 이에 대한 설명을 할 수 있습니다. 이에 대한 설명은, 다음과 같습니다. SRP Batcher 컨텍스트에서 “일괄 처리”란 무엇인지 이해하는 것이 중요합니다. 일반적으로 사람들은 CPU 렌더링 비용을 최적화하기 위해 DrawCall 의 수를 줄이는 경향이 있습니다. 그 진짜 이유는 엔진이 무승부를 발행하기 전에 많은 것을 설정해야하기 때문입니다. 그리고 실제 CPU 비용은 GPU DrawCall 자체가 아니라 그 설정에서 비롯됩니다 (즉, GPU 명령 버퍼에서 푸시하는 몇 바이트입니다).

SRP 배치기는 DrawCalls 수를 줄이지 않습니다. 그것은 단지 DrawCalls 사이의 GPU 설정 비용을 줄일 수 있습니다.