JOGL - Это работает? Вопросы + Комментарии и опыт

История:

Я искал какой-нибудь способ отображения компьютерной графики в Интернете с использованием ускорения от видеокарты (без программного рендеринга). Я знаю, что можно написать модуль ActiveX для IE, но это не полное решение, так как это оттолкнет большое количество пользователей (поклонники Firefox + macOS ). Вот пример более менее того, что я имею в виду:

Пример аппаратного ускорения поверх ссылки браузера


Запрос:

Недавно я узнал, что вы можете связать вызовы opengl с java из браузера, используя JOGL. Поэтому мне было интересно кое-что:

A) Является ли JOGL лучшим решением для моей истории?

B) Can i query opengl extensions from JOGL?

C) How do i load textures from JOGL?


Комментарии:

Если вы использовали JOGL из браузера, пожалуйста, дайте мне знать, какие у вас возникли проблемы/опыты.


person Community    schedule 30.10.2008    source источник
comment
A) Да B) Да, используйте GLBase.isExtensionAvailable() и GLBase.isFunctionAvailable() C) Используйте класс Texture и TextureIO. Свежие демонстрации апплетов можно найти здесь: jogamp.org/jogl-demos/www   -  person gouessej    schedule 20.10.2011


Ответы (7)


Вы не упомянули «апплет» в своем вопросе. Попробуйте выполнить поиск по запросу «апплет jogl» или «апплет lwjgl». Я получил больше удовольствия от LWJGL, чем от JOGL, но они оба должны удовлетворить ваши потребности. Вас также может заинтересовать Java Web Start. Попробуйте ознакомиться с демонстрационными примерами здесь для примеров Java Web Start и апплетов с использованием LWJGL и здесь для апплета JOGL.

person Community    schedule 30.10.2008

Я использую JOGL в одном из основных настольных приложений, и это успешно. По сути, это так же быстро, как OpenGL. Я ничего не могу сказать о сети — я подозреваю, что лучше всего написать апплет JOGL с помощью WebStart. Взгляните на некоторые примеры JOGL.

JOGl — это очень тонкая оболочка над OpenGL. Если вы знаете OpenGL, вы можете использовать JOGL. Если вы не знаете OpenGL, изучение JOGl будет таким же, как изучение OpenGL (непростая задача). Практически все, что вы можете сделать в OpenGL, вы можете сделать и в JOGL.

У нас были проблемы с аппаратным ускорением в Linux (у кого нет), и некоторые конфигурации Linux приводили к сбою нашего приложения JOGL (не обязательно другие). Это известная проблема, и у вас, вероятно, будут проблемы с 3D в Linux, что бы вы ни делали.

Я также знаю других людей, успешно использующих JME и LWJGL на рабочем столе.

person Community    schedule 05.12.2008

Что меня беспокоит, так это то, что этот форум не используется программистами Jogl. В NASA WorldWind существует большое и активное сообщество Jogl — очень аккуратное приложение на основе JOGL. Было множество производных и пользовательских настроек, включая целую виртуальную Словению в JOGL.

person Community    schedule 22.09.2009

Я использовал JOGL для настольного приложения с набором инструментов GLUT, и он работал очень хорошо (я также использовал привязки OpenGL в C/C++ и Python). Я не могу комментировать запуск приложения JOGL внутри апплета...

Я не уверен, что вы имеете в виду, когда спрашиваете, как вы можете запрашивать расширения OpenGL, JOGL - это просто привязки OpenGL в Java API, поэтому любое знание OpenGL будет отображаться в JOGL. Если вы еще не работали с привязками OpenGL, я бы порекомендовал вам ознакомиться с красной книгой: http://www.opengl.org/documentation/red_book/

person Community    schedule 30.10.2008
comment
Когда я говорю запросить расширения opengl... я имею в виду, как я узнаю, например, что пользователь X имеет FBO? ... обычно в opengl вы запрашиваете, доступно ли расширение .... так можно ли это сделать в JOGL? - person StfnoPad; 31.10.2008

A) Я считаю, что Java3D может использовать DirectX или OpenGL/JOGL, где это возможно, или вернуться к программному рендерингу. И он предлагает API, ориентированный на граф сцены, который иногда легче программировать.

B и C) JOGL — очень тонкая, но полнофункциональная оболочка для OpenGL и его расширений. (Почти) все, что вы можете сделать с OpenGL в C/C++, вы можете сделать точно так же, используя JOGL.

person Community    schedule 30.10.2008
comment
Насколько я помню, Java3D был ужасно медленным... и не имел фрагментных шейдеров... но так было несколько лет назад. - person StfnoPad; 31.10.2008
comment
Java3D может быть быстрым, но вам, возможно, придется реализовать свои собственные алгоритмы отбраковки, чтобы добиться этого. Теперь поддерживаются вершинные и фрагментные шейдеры. - person palm3D; 31.10.2008

Вы можете посмотреть интересную презентацию по использованию openGL из Java на Parleys.

Название презентации: «Высокопроизводительные графические приложения Java3D и 2D».

person Community    schedule 27.11.2008

A) Да B) Да, используйте GLBase.isExtensionAvailable() и GLBase.isFunctionAvailable() C) Используйте класс Texture и TextureIO. Свежие демоверсии апплетов можно найти здесь.

Пожалуйста, не используйте Java3D, он устарел и больше не поддерживается. В Ardor3D есть отличный рендерер JOGL 2.0 (это я написал ;)). JMonkeyEngine 2 поддерживает JOGL 1.1.1a, например Xith3D и 3DzzD.

Редактировать. Я воскресил Java3D с помощью Харви через несколько лет после написания этого комментария, пожалуйста, посмотрите мой учебник, если вы все еще хотите его использовать.

person Community    schedule 19.10.2011