2014-03-30 3 views
1

LWJGL이 OpenGL 또는 Ogre3D의 Unity 구현보다 훨씬 느린 이유는 무엇입니까? 내가 테스트 한 것에 대해 "벤치 마크"로 시작하겠다. 화면에 35 개 삼각형LWJGL과 다른 OpenGL 구현 간의 주요 성능 차이에 대한 설명

(스탠포드 드래곤 수정) 장소 : 3570k의 @의 4.3GHZ

  • GTX 780 1150 MHZ

  • 첫 번째 테스트 @ -

    • I5 :

      하드웨어

      결과 :

      • GTX 780 ~ 300 FPS (UNITY3D 사용)
      • GTX 780 (OGRE3D 사용) ~ 280 FPS

      번째 테스트에서 렌더링시 (LWJGL 사용) 37 FPS

    • GTX 780 렌더에서 렌더링 : 질감/(I 주위에 20 만 정점을 믿고?) 승 크라이 텍 Sponza 렌더링

      결과 :

      • GTX 780
      • GTX 780 FPS (130) ~ (AT OGRE3D 사용) 렌더링 (UNITY3D 사용) FPS 150 ~에
      • GTX 780 렌더 (LWJGL 사용) 2 FPS에서 렌더링

      일반적 I 사용하거나 Ogre3D, Unity3D, 또는 Panda3D를 사용하여 게임 프로젝트를 렌더링 할 수 있지만 프레임 속도의 차이는 엄청납니다. Unity가 Occlusion Culling과 같은 것을 가지고 있기 때문에 일반적으로 가장 빠르지 만 Ogre3D와 유사한 호출을 사용할 때도 LWJGL과 비슷한 결과를 기대할 것입니다 ... Ogre3D와 LWJGL은 모두 Front Face 만 컬링하고 있지만 LWJGL은 그렇지 않습니다. 모든 종류의 렌더링과 비교하여 성능이 향상됩니다. 마지막으로, LWJGL은 Sponza를 렌더링 할 때 RAM 사용량을 2.5GB로 줄이는 경향이 있지만 다른 결과는 설명하지 않습니다.

    +0

    LWJGL은 ByteBuffers 및 JNA 호출을 사용하여 자바 기반입니다. 이들은 자체적으로 저렴하지 않습니다. –

    +0

    LWJGL **은 OpenGL 구현이 아닙니다. GPU 드라이버는 OpenGL 구현입니다. LWJGL은 OpenGL을 사용하고 같은 시스템에서 실행되는 모든 다른 프로그램과 동일한 OpenGL 드라이버 (= 구현)와 인터페이스하는 * 언어 바인딩입니다. – datenwolf

    답변

    3

    누구나 동일한 문제가있는 경우 문제는 실현되지 않았습니다. 즉시 표시 그리기 호출을 표시 목록에 사용하면 가치가 떨어지며 성능이 떨어집니다. 반드시 목록을 표시하지 않고 VBO 만 사용해야합니다. 노트북의 경우 성능이 최대 600 배 향상 될 것으로 기대할 수 있습니다.