제 게임에는 크기가 다르고 색상이 다른 채워진 약 50 개의 전체 서클이 전체 화면으로 표시되며, 계속해서 크기를 조정하여 애니메이션을 만듭니다. 나는 현재 모두 Shaperenderer
을 사용하고 있습니다. 이렇게하면 모든 서클이 선명하게 보입니다.하지만 성능이 좋지 않은 것처럼 보입니다. circle 스프라이트를 만들고 Shaperenderer
대신 SpriteBatch
을 사용하여 렌더링해야합니까? 그렇게함으로써 성과가 향상 될 것인가?Shaprenderer 또는 SpriteBatch보다 효율적인 간단한 도형 그리기?
0
A
답변
0
일반적으로 예, SpriteBatch
API는 Libgdx의 ShapeRenderer
API보다 더 최적화되어 있습니다. ShapeRenderer
은 디버그 오버레이 및 사용하기 쉽도록 설계되었습니다. 그러나 API 사용 방법의 세부 사항에 따라 다릅니다.
ShapeRenderer
API는 뷰포트가 픽셀 단위로 매핑되었다고 가정합니다. 거친 추측에 기반하여 원에서 사용할 정점의 수를 결정합니다. 각 원에 대해 너무 많은 정점을 생성 할 수 있습니다. 계산 된 정점 수를 줄임으로써 충실도를 희생하지 않고도 성능을 향상시킬 수 있습니다.
특정 사례에 대해서도 코드를 프로파일하고 최적화하기 전에 실제로 시간이 소비 된 곳을 확인하는 것이 좋습니다.
둘 다 시도하고 시간을 측정하십시오. * 렌더링 만 시간을 할애해라. (예를 들어, 스프라이트를 만들지 마라.) 워밍업/캐싱 문제를 방지하기 위해 여러 번 실행하십시오. – usr2564301
이것은 원의 수와 화면의 크기에 따라 다릅니다. 그러나 이들이 매우 크다면 스프라이트를 사용하여 유효율 문제가 발생할 수 있습니다. 이 경우에는 먼저 깊이 테스트가 켜져 있는지 확인하십시오. 그렇지 않다면 아마도 현재 속도가 느려지는 횟수가 너무 많아서 단일 호출로 배치하는 방법을 찾아야 할 것입니다. – Tenfour04