2013-05-09 5 views
1

일반적으로 모바일 게임에서 벡터 그래픽을 사용하지 않거나 미리 래스터 화하여 성능을 높이는 것이 좋습니다. 왜 그런가요? OpenGL은 적어도 화면에서 이미지를 렌더링 할 때 선/삼각형을 그리는 것과 같지만 ...모바일 장치에서 OpenGL 벡터 그래픽 렌더링 성능

+0

캐시를 래스터 라이즈하여 오버 헤드가 적게 발생하므로 벡터와 드로잉의 모든 좌표를 계산할 때가 더 많음 (드로 사이클 횟수와 CPU 사용량이 많음) –

답변

3

이미지를 래스터 라이 제이션하면 이미지가 덜 캐시되므로 벡터와 그리기의 모든 좌표를 계산할 수 있습니다 더 많은 CPU 사용). 벡터 그리기는 정확히 한 번입니다. 호출 할 때마다 호를 점으로 그리거나 캐시 된 이미지 파일로 특정 좌표의 이미지를 표시하는 것입니다.

+0

앱 스토어에 3D 게임이 많이 있습니다. 평균 2D 벡터 기반 게임보다 렌더링에 10 배 더 도전적이어야하지만 일반적으로 성능 문제는 없습니다. 내가 잘못? – cubuspl42

+1

3 차원 모델을 생성하는 3 차원 프로그램은 정확히 그렇습니다. 그러나 3D 게임의 성능을 2D 게임과 비교해 보면 차이가 있음을 알 수 있습니다. 3D 게임은 오브젝트의 이미지로 래스터 그래픽을 사용하므로 2의 하이브리드입니다. 렌더링 된 이미지와 프리젠 테이션을 동시에 생성합니다. –

+3

3D 게임에서 성능 문제가 없다고 생각하면 잘못 생각한 것 같습니다. 3D 게임 개발자와 이야기하면 최적화가 모든 것을 의미하며 자동 마법처럼 어깨를 으 should해서는 안됩니다. 작년까지 모바일 장치에서 3 차원 게임을 잘 수행하기가 어려웠고 대부분의 경우 재생 가능성을 위해 품질과 수량 (프레임 속도)을 제한했습니다. 기억해야 할 중요한 점은 모든 것이 도구 일 뿐이므로 올바른 도구를 사용해야한다는 것입니다. 확장 가능한 그래픽이 필요한 경우 SVG를 사용하고 그렇지 않은 경우에는 래스터의 성능 이점을 활용하십시오. –

1

사기꾼을 사용하는 것은 가장 좋은 최적화 방법이며 사기꾼 모양에 따라 오버 드로가 얼마나 많은지와 과정에서 블렌딩이 필요할 때마다 트릭을 통해 필렛을 채울 수 있습니다. 또한 셰이프가 변경되는 일부 시나리오에서는 그래픽을 가짜로 캐시하는 것이 실현 가능하지 않거나 다른 오버 헤드가 발생할 수 있습니다. 렌더링 파이프 라인의 균형을 맞추는 문제입니다.

+1

미안하지만 나는 많이 얻지 못했다. 아직 답변 해 주셔서 감사합니다. – cubuspl42

+0

:) 당신은 환영합니다. – Trax

1

답변은 하드웨어에 따라 다릅니다. GPU를 사용하고 있습니까? Android 및 IOS가 장착 된 최신 휴대 기기에는 칩셋에 GPU 장치가 내장되어 있습니다. 이 GPU는 벡터 그래픽에 매우 적합합니다. 이 점을 확인하기 위해 대부분의 GPU에는 1 개 이상의 픽셀 프로세서 외에도 전용 Geometry 프로세서가 있습니다. (예제 Mali-400 GPU). 예를 들어, 서로 다른 색상의 200 개 삼각형 모양의 원을 그려야한다고 가정 해 보겠습니다. 최신 OpenGL을 사용하는 경우 하나의 지오메트리 집합 (원을 형성하는 삼각형 목록)과 각 원에 대한 매개 변수 목록 (위치 및 색상) 만 있으면됩니다. 이 정보를 GPU에 제공하면 매우 빠르게 병렬로 그릴 것입니다.

각 색상별로 다른 질감을 사용하면 프로그램의 저장 공간 크기가 매우 커지고 메모리 대역폭 문제로 인해 속도가 더 느려질 수 있습니다.

당신이하고 싶은 일과 하드웨어에 달려 있습니다. 하드웨어에 GPU가없는 경우 그래픽을 미리 렌더링해야합니다.