{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name = JOGL
| logo = 
| logo caption = 
| screenshot = JOGL Refrection Demo Screenshot.png
| screenshot size = 200px
| caption = [[macOS|Mac OS X]]에서 '''JOGL'''을 사용하여 실시간 [[굴절]]을 묘사하고 있는 [[셰어웨어|데모]] 스크린샷.
| developer = [http://jogamp.org/ JogAmp 커뮤니티]
| latest release version = 2.5.0
| latest release date = {{시작 날짜와 나이|2023|08|18}}
| latest preview version = 
| latest preview date = 
| programming language = [[자바 (프로그래밍 언어)|자바]], [[C (프로그래밍 언어)|C]]
| operating system = [[크로스 플랫폼]]
| genre = [[3차원 컴퓨터 그래픽스|3차원 컴퓨터 그래픽스 소프트웨어]] (라이브러리/API)
| license = [[BSD 허가서]]
| website = {{URL|http://jogamp.org}}
}}

'''자바 OpenGL'''(Java OpenGL, '''JOGL''')은 [[OpenGL]]을[[자바 (프로그래밍 언어)|자바 프로그래밍 언어]]에 사용될 수 있도록 하는 래퍼 [[라이브러리 (컴퓨팅)|라이브러리]]이다.<ref>{{웹 인용
| url=http://www.javaworld.com/javaworld/jw-09-2008/jw-09-opensourcejava-jogl.html
| title=Open source Java projects: Java Binding for OpenGL (JOGL)
| publisher=[[인터내셔널 데이터 그룹]]
| date=2008-09-18
| quote=''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).''
| accessdate=2011-02-06
| 보존url=https://web.archive.org/web/20101203165816/http://www.javaworld.com/javaworld/jw-09-2008/jw-09-opensourcejava-jogl.html
| 보존날짜=2010-12-03
| url-status=dead
}}</ref><ref>{{웹 인용
| url=http://www.javaworld.com/javaworld/jw-02-2005/jw-0221-jogl.html
| title=Hello JOGL
| publisher=[[인터내셔널 데이터 그룹]]
| date=2005-02-21
| accessdate=2011-02-06
| 보존url=https://web.archive.org/web/20100327145458/http://www.javaworld.com/javaworld/jw-02-2005/jw-0221-jogl.html
| 보존날짜=2010-03-27
| url-status=dead
}}</ref> Kenneth Bradley Russell과 Christopher John Kline에 의해 처음 개발되었다가 이후 [[썬 마이크로시스템즈]] 게임 테크놀로지 그룹에 의해 추가 개발되었다. 2010년 이후로 [[BSD 허가서]] 하의 독립 [[오픈 소스 소프트웨어|오픈 소스]] 프로젝트로 유지되고 있다. [[Java Bindings for OpenGL]](JSR-231)의 참조 구현체이다.

JOGL은 [[자바 네이티브 인터페이스]](JNI)를 사용함으로써 [[C (프로그래밍 언어)|C]] 언어 프로그램들에서 이용 가능한 대부분의 OpenGL 기능들에 접근할 수 있다.

== 코드 예제 ==

<syntaxhighlight lang=java>
    @Override
    public void display(GLAutoDrawable drawable) {

        GL4 gl4 = drawable.getGL().getGL4();

        gl4.glClearBufferfv(GL2ES3.GL_COLOR, 0, clearColor);
        gl4.glClearBufferfv(GL2ES3.GL_DEPTH, 0, clearDepth);

        {
            FloatUtil.makeLookAt(view, 0, eye, 0, at, 0, up, 0, tmp);
            FloatUtil.makePerspective(projection, 0, reset, 45f, aspect, near, far);

            FloatUtil.multMatrix(projection, view); // projection *= view

            transformPointer.asFloatBuffer().put(projection);
        }

        gl4.glUseProgram(programName);
        gl4.glBindVertexArray(vertexArrayName.get(0));
        gl4.glBindBufferBase(GL2ES3.GL_UNIFORM_BUFFER /*target*/, 1 /*TRANSFORM0, index*/, bufferName.get(2) /*TRANSFORM, buffer*/);

        gl4.glBindTextureUnit(0 /*diffuse*/, textureName.get(0));
        gl4.glBindSampler(0 /*diffuse*/, samplerName.get(0));

        gl4.glDrawElements(GL.GL_TRIANGLES, elementCount, GL.GL_UNSIGNED_SHORT, 0);
    }
</syntaxhighlight>

== 같이 보기 ==
* [[Java Bindings for OpenGL]]
* [[Ardor3D]]
* [[Elflight Engine]]
* [[JMonkey Engine]]
* [[Poxnora]]
* [[룬스케이프]]
* [[Jake2]]
* [[Scilab]]
* [[Jreality]]
* [[ClearVolume]]
* [[LWJGL]]
* [[자바 OpenAL]]
* [[자바 OpenCL]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* [http://jogamp.org/deployment/jogamp-current/javadoc/jogl/javadoc/ JOGL 2.3.x Specification]
* [http://www.jcp.org/en/jsr/detail?id=231 JSR-231 Java Bindings for OpenGL] website
* [http://ak.kiet.le.googlepages.com/theredbookinjava.html tool kiet] {{웨이백|url=http://ak.kiet.le.googlepages.com/theredbookinjava.html |date=20090209203335 }}, The OpenGL Programming Guide examples using JOGL
* [https://web.archive.org/web/20071126072642/http://nehe.gamedev.net/ NeHe's tutorials and sample code]
* [http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE Setting up a JogAmp JOGL project in your favorite IDE]
* [http://demo.dzzd.net/Viewer3D/ Viewer3D], an applet to display interactive 3D content with JOGL
* [http://sourceforge.net/projects/eclipse-opengl/ Eclipse OpenGL Pack] OpenGL plugin for the [[이클립스 (소프트웨어)|Eclipse]] IDE

[[분류:3차원 그래픽 소프트웨어]]
[[분류:자바 라이브러리]]
[[분류:자바 API]]
[[분류:OpenGL]]