2012-07-02 3 views
2

나는 PowerVR SGX 540이있는 플레이 북 용 3d 애플리케이션을 작성 중이다. OpenGL을 통해 VBO에 충분한 데이터를 채우면 디바이스가 다운 될 수 있다는 것을 알았다. 장치, 하드 재부팅 필요). 충돌을 일으키기 위해 ~ 300k 삼각형과 ~ 150k 버텍스로 모델에 대한 데이터를 보냈습니다. 꼭지점에 대한 일반 데이터도 보냈습니다.VBO로 전송되는 데이터의 한계를 결정 하시겠습니까?

적은 데이터를 보내면 문제가 발생하지 않는다는 것을 알았습니다 (삼각형과 꼭지점이 절반 인 다른 모델을 사용해 보았습니다). 또한, 버텍스 배열을 사용하면 문제가 발생하지 않습니다 (매우 느리지 만).

내가 알고 싶습니다 :

  • 내가 모바일 하드웨어에 대한 공통의 결과를보고 있어요 무엇인가? 즉, 150k 버텍스와 법선 과잉을 가진 300k 트라이 모델이 있습니까?

  • 다른 모델 크기를 테스트 할 때 VBO 사용에 사용할 수있는 메모리 양을 확인할 수 있습니까 (충돌에서 장치를 복구하는 데 5 분이 걸립니다)?

  • 다른 문제가 있습니까? 그것이 GUI에 그린되기 전에 내가없이이 모든 것을 다시 실행하면 확인하지 않은 (

내 GUI를위한 Qt는을 사용하고 FBO에 3D 장면을 그리기 해요 : 나는 몇 가지 추가 정보를 제공 한 UI를 EGL 창을 작성하여 그리면 그 문제는 아직 재현됩니다.

내가 OpenGL을 제대로 사용하지 않았는지 확인하기 위해 Open 3D를 사용하여 OpenGL을 호출하고 OpenSceneGraph로 모든 작업을 수행했습니다. 두 방법 모두 정확히 동일한 방식으로 실패합니다 (VBO는 더 적은 데이터로 작동하고 정점 배열은 작동하며 증가 된 VBO 데이터는 충돌을 일으킴).

프로그램이 내 바탕 화면에서 제대로 작동합니다. 불행히도 다른 응용 프로그램을 테스트 할 수있는 다른 모바일 장치가 없습니다.

+0

드라이버가 최신 버전인지 확인하십시오. 응용 프로그램이 할 수있는 일은 전체 장치를 크래쉬 할 수 있어야합니다. 최악의 경우 소프트웨어가 실패하게됩니다. – GManNickG

+0

장치가 부서지는 것은 끔찍한 일이라고 (다소 자랑 스럽지만 나는 sandboxed apps tbh를 실행하는 장치에서이를 처리 할 수 ​​있었다)). 그러나 이것은 PC가 아닌 플레이 북이므로 실제로 선택하고 선택할 수는 없다. 운전자. 나는 이미 최신의 안정된 OS를 돌리고있다. 내가 가진 유일한 선택은 해결 방법입니다. – Prismatic

+0

아 맞아. 잘하면 똑 바른 해결책이있다. – GManNickG

답변

0

OpenGL ES는 인덱스의 데이터 형식으로 부호없는 short (16 비트) 만 지원하므로 인덱스 배열을 사용하는 경우 제한을 초과합니다.