2011-03-20 4 views
4

Java2D는 렌더링의 뒷 배경에서 OpenGL을 사용한다고 들었습니다. JOGL을 사용하는 것이 가치가 있는지 궁금해했습니다. 모든 2D 라이브러리는 내 프로그램을위한 기본 라이브러리입니다. 하드웨어 가속을 사용하고 있는지 확인하기 위해 피할 필요가있는 특정 기술이 있다고 들었지만 그 이유를 알지 못합니다. (몇 가지는 알고 있지만 아직까지는 그 (것)들의 포괄적 인 명부를 찾아 내십시오.).Java2D가 LWJGL 및 JOGL만큼 빠를 수 있습니까?

+0

일부 빠른 벤치마킹을 통해 직접 확인할 수 있습니다. 몇 가지 스프라이트를하고 모든 3과 블리 팅을하고 어떻게 작동하는지보십시오. 하드웨어 가속화 여부와 상관없이 – DragonFax

답변

5

a 2D casual game in Java using LWJGL을 공동 개발 한 사람으로서 캐주얼 게임을 만들려면 LWJGL 또는 JOGL을 사용하지 않는 것이 좋습니다.

장점 :

  • 간체 엔진 쓰기 : OpenGL을 사용하면 화면마다 프레임을 다시 그릴 수 있다는 것을 의미, 높은 충전 속도를 가지고있다.
  • 멋진 3D 효과를 얻을 수 있습니다.

단점 :

  • 모든 사용자는 3D 카드를 가질 필요가있다.
  • 모든 사용자는 OpenGL 드라이버를 설치해야합니다. Windows 7에는 OpenGL 드라이버가 설치되어 있지 않습니다 (재미있는 결과를 보려면 Google에서 "pixel format not accelerated"을 찾으십시오).
  • 3D 카드는 특히 오래 된 랩톱에서 배터리를 먹습니다. 사람들은 노트북에서 캐주얼 게임을하는 경우가 많으므로 문제가 될 수 있습니다.
  • 애플릿은 3D 카드를 사용하려면 추가 권한이 필요합니다. 500 달러의 인증서를 구매할 의향이없는 한 사용자가 게임을하기 위해 클릭해야하는 무서운 권한 대화 상자가 표시됩니다.

게임을 개발하려면 PulpCore과 같은 Java2D 렌더링 및 애니메이션 프레임 워크를 사용하는 것이 좋습니다. 우리가 가지기를 바란다.

+1

예를 들어 JOGL이 이미 서명 된 빌드를 제공하기 때문에 인증서에 관한 요점이 잘못되었습니다. 게임/응용 프로그램에 다시 서명 할 필요가 없습니다. – mbien

+0

심지어 엉뚱한 온보드 칩은 캐주얼 게임으로도 충분할 수 있습니다. "가속화되지 않는 픽셀 포맷"은 주로 LWJGL에 관한 것이지만 JOGL에는 관심이 없습니다.이 경우에도 LWJGL에 "소프트웨어"OpenGL 사용을 허용하는 플래그가 있습니다 (Microsoft GDI 렌더러, Direct3D를 통해 에뮬레이트 된 OpenGL), JOGL은 하드웨어 가속 기능을 사용하여 하드웨어 가속 기능을 매우 비효율적으로 사용할 수있는 Java2D보다 배터리를 먹지 않습니다 (특히 어떤 v-sync를 사용하든)이 Microsoft OpenGL 드라이버를 사용할 수 있습니다 Java2D 성능은 플랫폼간에 일관성이없고 Android를 지원하지 않습니다. – gouessej

3

짧은 대답, 아니오. Java2D에는 너무 많은 부풀린 레이어가 있기 때문에 LWJGL 또는 JOGL 앱과 거의 비슷한 속도를 낼 수 있습니다.

4

OpenGL에 Java2D를 그리기 위해 드롭 할 수있는 라이브러리가 있습니다. GLG2D (내 라이브러리)가이 작업을 수행합니다. 이것은 JOGL에 의존하며 모든 java.awt.Graphics2D 호출을 OpenGL 호출로 변환합니다.

선 그리기, 특히 곡선은 Java2D에서 매우 느릴 수 있습니다.

0

Java2D에서 하드웨어 가속을 사용할 수 있지만이 경우에도 OpenGL (JOGL, LWJGL)에 대한 Java 바인딩보다 느리며 때로는 버그가 있습니다. 두 세계의 장점을 모두 원한다면 위에서 언급 한대로 Brandon이 GLG2D를 살펴보십시오. JOGL은 낮은 수준의 바인딩 인 반면 Java2D는 높은 수준의 API입니다. 이러한 저수준 OpenGL 바인딩 (예 : JGame, Slick 및 LibGDX)에 의존하는 고급 API를 사용할 수 있습니다.

관련 문제