2014-05-11 4 views
0

제 게임에는 크기가 다르고 색상이 다른 채워진 약 50 개의 전체 서클이 전체 화면으로 표시되며, 계속해서 크기를 조정하여 애니메이션을 만듭니다. 나는 현재 모두 Shaperenderer을 사용하고 있습니다. 이렇게하면 모든 서클이 선명하게 보입니다.하지만 성능이 좋지 않은 것처럼 보입니다. circle 스프라이트를 만들고 Shaperenderer 대신 SpriteBatch을 사용하여 렌더링해야합니까? 그렇게함으로써 성과가 향상 될 것인가?Shaprenderer 또는 SpriteBatch보다 효율적인 간단한 도형 그리기?

+0

둘 다 시도하고 시간을 측정하십시오. * 렌더링 만 시간을 할애해라. (예를 들어, 스프라이트를 만들지 마라.) 워밍업/캐싱 문제를 방지하기 위해 여러 번 실행하십시오. – usr2564301

+0

이것은 원의 수와 화면의 크기에 따라 다릅니다. 그러나 이들이 매우 크다면 스프라이트를 사용하여 유효율 문제가 발생할 수 있습니다. 이 경우에는 먼저 깊이 테스트가 켜져 있는지 확인하십시오. 그렇지 않다면 아마도 현재 속도가 느려지는 횟수가 너무 많아서 단일 호출로 배치하는 방법을 찾아야 할 것입니다. – Tenfour04

답변

0

일반적으로 예, SpriteBatch API는 Libgdx의 ShapeRenderer API보다 더 최적화되어 있습니다. ShapeRenderer은 디버그 오버레이 및 사용하기 쉽도록 설계되었습니다. 그러나 API 사용 방법의 세부 사항에 따라 다릅니다.

ShapeRenderer API는 뷰포트가 픽셀 단위로 매핑되었다고 가정합니다. 거친 추측에 기반하여 원에서 사용할 정점의 수를 결정합니다. 각 원에 대해 너무 많은 정점을 생성 할 수 있습니다. 계산 된 정점 수를 줄임으로써 충실도를 희생하지 않고도 성능을 향상시킬 수 있습니다.

특정 사례에 대해서도 코드를 프로파일하고 최적화하기 전에 실제로 시간이 소비 된 곳을 확인하는 것이 좋습니다.