Java OpenGL

редактировать
JOGL
Демонстрационный снимок экрана, иллюстрирующий преломление в реальном времени с использованием JOGL в Mac OS X A demo снимок экрана, иллюстрирующий рефракцию в реальном времени с использованием JOGL на Mac OS X
Разработчик (и) Сообщество JogAmp
Стабильный выпуск 2.3.2 / 10 октября 2015 г.; 5 лет назад (10.10.2015)
Предварительный выпуск 2.3.2 / 10 октября 2015 г.; 5 лет назад (10.10.2015)
Написано наJava, C
Операционная система Кросс-платформенная
Тип Программное обеспечение для трехмерной компьютерной графики (библиотека / API)
Лицензия Лицензия BSD
Веб-сайтjogamp.org / jogl / www / Отредактируйте это в Викиданных

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

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

Содержание
  • 1 Дизайн
  • 2 Статус и стандартизация
  • 3 Взаимодействие Java2D-OpenGL
  • 4 Учебники
  • 5 Примеры кода
  • 6 См. также
  • 7 Ссылки
  • 8 Внешние ссылки
Дизайн

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

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

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

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

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

Взаимодействие Java2D-OpenGL

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

  • Наложить компоненты Swing (облегченные меню, всплывающие подсказки и другие виджеты ) поверх OpenGL рендеринга.
  • Рисование 3D OpenGL графики поверх Java2D рендеринг (см. здесь для кнопки со значком OpenGL).
  • Используйте 3D-графику везде, где обычно будет виджет Swing используемый. (Внутри JTable, JTree,...)
  • Нарисуйте графику Java2D поверх 3D-рендеринга OpenGL.
Учебники
Примеры кода
@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 (вид, 0, глаз, 0, в, 0, вверх, 0, tmp); FloatUtil.makePerspective (проекция, 0, сброс, 45f, аспект, рядом, далеко); FloatUtil.multMatrix (проекция, просмотр); // проекция * = просмотр transformPointer.asFloatBuffer (). put (projection); } gl4.glUseProgram (имя_программы); gl4.glBindVertexArray (vertexArrayName.get (0)); gl4.glBindBufferBase (GL2ES3.GL_UNIFORM_BUFFER / * цель * /, 1 / * TRANSFORM0, индекс * /, bufferName.get (2) / * TRANSFORM, buffer * /); gl4.glBindTextureUnit (0 / * диффузный * /, textureName.get (0)); gl4.glBindSampler (0 / * диффузный * /, samplerName.get (0)); gl4.glDrawElements (GL.GL_TRIANGLES, elementCount, GL.GL_UNSIGNED_SHORT, 0); }
См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • icon Портал компьютерного программирования
  • Java-привязки для OpenGL, запрос спецификации сообщества Java, для которого JOGL предоставляет реализацию
  • Ardor3D, высокопроизводительный, профессионально ориентированный граф сцены с использованием нескольких привязок для OpenGL и OpenGL-ES, включая JOGL
  • , высокопроизводительный движок трехмерных игр, оптимизированный для Интернета
  • JMonkey Engine, высокая производительность графический API на основе графа сцены с использованием нескольких привязок для OpenGL и OpenGL-ES, включая JOGL
  • Poxnora, многопользовательскую онлайн-игру с использованием JOGL
  • RuneScape, MMORPG с использованием JOGL
  • Jake2, порт Java для Quake II с использованием нескольких привязок для OpenGL, включая JOGL для его низкоуровневого графического API
  • Scilab, программу численных вычислений, использующую JOGL для 2D, 3D-рендеринга
  • ClearVolume, библиотека 3D-визуализации в реальном времени в реальном времени на базе JOGL, разработанная для высококачественных объемных световых микроскопов.
  • LWJGL и др. внутренняя библиотека оболочки OpenGL с открытым исходным кодом
  • Java OpenAL
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 03:57:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте