자바 오픈GL

Java Open
조그
JOGL Refrection Demo Screenshot.png
Mac OS X에서 JOGL을 사용한 실시간 굴절을 보여주는 데모 스크린샷
개발자조그앰프 커뮤니티
안정된 릴리스
2.3.2 / 2015년 10월 10일, 6년 전(2015년 10월 10일)
프리뷰 릴리즈
2.3.2 / 2015년 10월 10일, 6년 전(2015년 10월 10일)
기입처자바, C
운영 체제크로스 플랫폼
유형3D 컴퓨터 그래픽스 소프트웨어(라이브러리/A)PI)
면허증.BSD 라이선스
웹 사이트jogamp.org/jogl/www/ Edit this at Wikidata

Java OpenGL(JOGL)은 OpenGL을 Java 프로그래밍 [1][2]언어로 사용할 수 있는 래퍼 라이브러리입니다.원래 Kenneth Bradley Russell과 Christopher John Kline에 의해 개발되었으며 Sun Microsystems Game Technology Group에 의해 더욱 개발되었습니다.2010년부터는 BSD 라이선스에 의한 독립된 오픈 소스 프로젝트입니다.Java Bindings for OpenGL(JSR-231)의 레퍼런스 실장입니다.

JOGL은 Java Native Interface(JNI)를 사용하여 C 언어 프로그램에서 사용할 수 있는 대부분의 OpenGL 기능에 액세스할 수 있도록 합니다.GLU* 함수와 함께 표준 GL* 함수에 대한 액세스를 제공합니다.단, Java에는 자체 윈도우 시스템인 AWT(Abstract Window Toolkit), Swing 및 일부 확장 기능이 있기 때문에 OpenGL Utility Toolkit(GLUT) 라이브러리는 윈도우 시스템 관련 호출에는 사용할 수 없습니다.

설계.

기본 OpenGL C API와 관련된 Windowing [3]API는 Java Native Interface(JNI) 호출을 통해 JOGL에서 액세스됩니다.따라서 JOGL이 작동하려면 기본 시스템이 OpenGL을 지원해야 합니다.

JOGL은 OpenGL 기능을 객체 지향 프로그래밍 패러다임에 매핑하는 대신 몇 가지 클래스의 메서드를 통해 절차적인 OpenGL API를 노출한다는 점에서 다른 Java OpenGL 래퍼 라이브러리와 다릅니다.실제로 대부분의 JOGL 코드는 JOGL 생성을 용이하게 하도록 특별히 프로그램된 GlueGen이라는 변환 도구를 통해 OpenGL C 헤더 파일에서 자동 생성됩니다.

상태 및 표준화

2015년 현재 JOGL은 OpenGL 4.5 사양뿐만 아니라 거의 모든 공급업체 확장 기능( OpenCL, OpenMAXOpenAL)[4]에 대한 전체 액세스를 제공합니다.1.1.0 버전JSR-231(Java Bindings for OpenGL)[5]의 레퍼런스 실장입니다.1.1.1 릴리즈에서는 GLU NURBS에 대한 접근이 제한되었으며 기존의 GLU API를 통해 곡선과 표면을 렌더링할 수 있었습니다.2.3.2 릴리스에서는 최대 4.5의 OpenGL 버전과 3.2의 OpenGL ES 버전에 대한 지원이 추가되었습니다.

Wayland와 Vulkan의 지원이 [6]계획되어 있습니다.

Java2D-OpenGL 상호 운용성

Java SE 6 버전Java 언어 이후 Java2D(JAVA에서 2차원 그래픽을 그리기 위한 API)와 JOGL은 상호 운용이 가능해져 다음을 가능하게 되었습니다.

  • OpenGL [7]렌더링 위에 스윙 구성요소(경량 메뉴, 툴팁 및 기타 위젯)를 오버레이합니다.
  • Java2D 렌더링 위에 3D OpenGL 그래픽을 그립니다(OpenGL 아이콘이 있는 버튼은 여기를 참조하십시오).
  • 일반적으로 스윙 위젯이 사용되는 모든 장소에서 3D 그래픽을 사용합니다.(JTable 내부, JTree 등)
  • 3D OpenGL 렌더링 위에 Java2D 그래픽을 그립니다.

튜토리얼

코드 예시

    @오버라이드     일반의 무효 표시(GLAuto 그리기 가능 그릴 수 있다) {          GL4 gl4 = 그릴 수 있다.getGL().GL4를 취득하다();          gl4.glClearBufferfv(GL2ES3.GL_COLOR, 0, 클리어 컬러);         gl4.glClearBufferfv(GL2ES3.깊이, 0, 클리어 상세);          {             플로트유틸.외관(보다, 0, 눈동자, 0, , 0, 업., 0, tmp);             플로트유틸.makePerspective(인식)(투영, 0, 리셋, 45f, 측면, 근처에, 멀리.);              플로트유틸.멀티 매트릭스(투영, 보다); // 투영 *= 보기              트랜스폼 포인터.asFloat 버퍼().놓다(투영);         }          gl4.glUse 프로그램(프로그램명);         gl4.glBindVertex 어레이(정점 배열 이름.얻다(0));         gl4.glBindBufferBase(GL2ES3.GL_UNIForm_BUFFER /*타깃*/, 1 /*TRANSFORM0, 인덱스*/, 버퍼명.얻다(2) /*TRANSFORM, 버퍼*/);          gl4.glBindTextureUnit(0 /*syslog*/, 텍스처명.얻다(0));         gl4.glBindSampler(0 /*syslog*/, 썬플라명.얻다(0));          gl4.glDraw 요소(GL.GL_TRIANGLE, 요소수, GL.GL_UNSIGNED_SHORT, 0);     } 

「 」를 참조해 주세요.

  • JOGL이 실장하는 Java 커뮤니티 사양 요구인 OpenGL용 Java 바인딩
  • JOGL을 포함한 OpenGL 및 OpenGL-ES용 여러 바인딩을 사용한 고성능 프로페셔널 지향 장면 그래프인 Ardor3D
  • 웹에 최적화된 고성능 3D 게임 엔진인 Elflight Engine
  • JMonkey Engine은 JOGL을 포함한 OpenGL 및 OpenGL-ES용 여러 바인딩을 사용하는 고성능 장면 그래프 기반 그래픽 API입니다.
  • JOGL을 이용한 온라인 멀티플레이어 게임 Poxnora
  • JOGL을 사용한 MMORPG RuneScape
  • JOGL을 포함한 OpenGL용 바인딩을 사용하여 낮은 수준의 그래픽 API를 제공하는 Quake II의 Java 포트인 Jake2
  • 2D, 3D 렌더링을 위해 JOGL을 사용하는 수치 컴퓨팅 프로그램인 Scilab
  • ClearVolume, JOGL로 구동되는 실시간 실시간 3D 시각화 라이브러리로 고급 볼륨 감지 라이트 시트 현미경용으로 설계되었습니다.
  • LWJGL, 대체 오픈 소스 OpenGL 래퍼 라이브러리
  • 자바 오픈AL
  • Java OpenCL

레퍼런스

  1. ^ Friesen, Jeff (September 18, 2008). "Open source Java projects: Java Binding for OpenGL (JOGL)". Open Source Java Tutorials. JavaWorld. Retrieved 2020-07-23. JOGL originated as a project named Jungle, which was created by 3D graphics experts Ken Russell (of Sun Microsystems) and Chris Kline (of Irrational Games).
  2. ^ Davis, Gene (February 21, 2005). "Hello JOGL". JavaWorld. Retrieved 2020-07-23.
  3. ^ "3D & Multimedia Across Platforms and Devices Using JOGL" (PDF). SIGGRAPH. 2010-07-27. Retrieved 2011-02-06.
  4. ^ "JOGL - Java Binding for the OpenGL API".
  5. ^ "JSR-000231 Java Bindings for the OpenGL API". Java Community Process. Retrieved 2011-02-06. In order to facilitate maximum community participation for the Java Binding for the OpenGL API, we use the JOGL project on java.net found at https://jogl.dev.java.net. The JOGL source code can be found there, licensed under a liberal source code license (mostly licensed as BSD except where we use other parties' licensed code). We take a snapshot of the code from this project every few months, run the Technology Compatibility Kit on the source code, and then officially make it the Reference Implementation for each formal Java Binding for the OpenGL API release.
  6. ^ "Bug 794 - Add Wayland Windowing/Surface Interoperability". 2013-08-05.
  7. ^ "JOGL Userguide".

외부 링크