Jump to content

Java OpenGL

Йогл
Разработчик(и) Сообщество JogAmp
Стабильная версия
2.5.0 / 18 августа 2023 г .; 11 месяцев назад ( 18.08.2023 )
Предварительный выпуск
н/д / подлежит уточнению
Написано в Ява , С
Операционная система Кросс-платформенный
Тип Программное обеспечение для компьютерной 3D-графики (библиотека/API)
Лицензия Лицензия BSD
Веб-сайт пробежка .org /jogl /www / Отредактируйте это в Викиданных

Java OpenGL ( JOGL ) — это библиотека- оболочка , позволяющая OpenGL использовать в языке программирования Java . [1] [2] Первоначально он был разработан Кеннетом Брэдли Расселом и Кристофером Джоном Клайном, а дальнейшее развитие получила группа Game Technology Group компании Sun Microsystems . С 2010 года является независимым проектом с открытым исходным кодом под лицензией BSD . Это эталонная реализация привязок Java для OpenGL (JSR-231).

JOGL обеспечивает доступ к большинству функций OpenGL, доступных программам на языке C , посредством использования собственного интерфейса Java (JNI). Он предлагает доступ как к стандартным функциям GL*, так и к функциям GLU*; однако библиотека OpenGL Utility Toolkit (GLUT) недоступна для вызовов, связанных с оконной системой, поскольку Java имеет свои собственные оконные системы: Abstract Window Toolkit (AWT), Swing и некоторые расширения .

Базовый API OpenGL C , а также связанный с ним Windowing API , [3] доступны в JOGL через вызовы Java Native Interface (JNI). Таким образом, для работы JOGL базовая система должна поддерживать OpenGL.

JOGL отличается от некоторых других библиотек-оболочек Java OpenGL тем, что он просто предоставляет процедурный API OpenGL через методы нескольких классов, а не пытается сопоставить функциональность OpenGL с парадигмой объектно-ориентированного программирования . Действительно, большая часть кода JOGL автоматически генерируется из заголовочных файлов OpenGL C с помощью инструмента преобразования GlueGen , который был запрограммирован специально для облегчения создания JOGL.

Статус и стандартизация

[ редактировать ]

По состоянию на 2015 год JOGL обеспечивает полный доступ к спецификации OpenGL 4.5, а также почти ко всем расширениям поставщиков (а также OpenCL , OpenMAX и OpenAL ). [4] Версия 1.1.0 является эталонной реализацией JSR-231 (Java Bindings для OpenGL) . [5] Версия 1.1.1 предоставила ограниченный доступ к GLU NURBS , обеспечивая рендеринг изогнутых линий и поверхностей через традиционные API GLU. В выпуске 2.3.2 добавлена ​​поддержка версий OpenGL до 4.5 и версий OpenGL ES до 3.2.

Планируется поддержка Wayland и Vulkan. [6]

Совместимость Java2D-OpenGL

[ редактировать ]

Начиная с Java SE 6 версии языка Java , Java2D ( API для рисования двухмерной графики в Java) и JOGL стали совместимыми, что позволяет:

Учебники

[ редактировать ]

Примеры кода

[ редактировать ]
    @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);    }

См. также

[ редактировать ]
  • Java Bindings для OpenGL , запрос спецификации сообщества Java, для которого JOGL предоставляет реализацию.
  • Ardor3D — высокопроизводительный профессионально ориентированный граф сцен, использующий несколько привязок для OpenGL и OpenGL-ES, включая JOGL.
  • Elflight Engine — высокопроизводительный игровой движок для 3D-игр, оптимизированный для Интернета.
  • JMonkey Engine , высокопроизводительный графический API на основе графа сцены, использующий несколько привязок для OpenGL и OpenGL-ES, включая JOGL.
  • Poxnora — многопользовательская онлайн-игра, использующая JOGL.
  • RuneScape , MMORPG с использованием JOGL
  • Jake2 , Java-порт Quake II, использующий несколько привязок для OpenGL, включая JOGL для его низкоуровневого графического API.
  • Scilab — программа численных вычислений, использующая JOGL для 2D- и 3D-рендеринга.
  • ClearVolume — библиотека трехмерной визуализации в реальном времени на базе JOGL, разработанная для высококлассных объемных световых микроскопов .
  • LWJGL , альтернативная библиотека-оболочка OpenGL с открытым исходным кодом.
  • Java OpenAL
  • Java OpenCL
  1. ^ Фризен, Джефф (18 сентября 2008 г.). «Java-проекты с открытым исходным кодом: Java Binding для OpenGL (JOGL)» . Учебные пособия по Java с открытым исходным кодом. JavaWorld . Проверено 23 июля 2020 г. JOGL зародился как проект под названием Jungle, созданный экспертами по 3D-графике Кеном Расселом (из Sun Microsystems) и Крисом Клайном (из Irrational Games).
  2. ^ Дэвис, Джин (21 февраля 2005 г.). «Привет, Йогл» . JavaWorld . Проверено 23 июля 2020 г.
  3. ^ «3D и мультимедиа на разных платформах и устройствах с использованием JOGL» (PDF) . СИГРАФ . 27 июля 2010 г. Проверено 6 февраля 2011 г.
  4. ^ «JOGL — привязка Java для API OpenGL» .
  5. ^ «JSR-000231 Java-привязки для API OpenGL» . Процесс сообщества Java . Проверено 6 февраля 2011 г. Чтобы обеспечить максимальное участие сообщества в привязке Java для API OpenGL, мы используем проект JOGL на java.net, который можно найти по адресу https://jogl.dev.java.net . Исходный код JOGL можно найти там, он распространяется по либеральной лицензии на исходный код (в основном лицензируется как BSD, за исключением тех случаев, когда мы используем лицензионный код других сторон). Мы делаем снимок кода этого проекта каждые несколько месяцев, запускаем комплект совместимости технологий с исходным кодом, а затем официально делаем его эталонной реализацией для каждой формальной привязки Java для выпуска OpenGL API.
  6. ^ «Ошибка 794 — Добавление совместимости окон/поверхностей Wayland» . 05.08.2013.
  7. ^ «Руководство пользователя JOGL» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 12bd937701ad6a40bdac42b8fa481cce__1703949060
URL1:https://arc.ask3.ru/arc/aa/12/ce/12bd937701ad6a40bdac42b8fa481cce.html
Заголовок, (Title) документа по адресу, URL1:
Java OpenGL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)