JOGL-Funziona? Domande + commenti ed esperienze
-
05-07-2019 - |
Domanda
La storia:
Ho cercato su Google un modo per visualizzare la grafica del computer sul Web usando l'accelerazione dalle schede video ( nessun rendering software) . So che è possibile scrivere e il modulo activeX per IE ma che non è una soluzione completa in quanto allineerebbe un buon numero di utenti ( fan di firefox + macOS ). Ecco un esempio di meno di ciò che ho in mente:
Esempio di accelerazione hardware in cima al collegamento del browser
La query:
Di recente ho scoperto che puoi associare le chiamate opengl con java da un browser usando JOGL . Quindi mi chiedevo alcune cose:
A)
JOGL è la soluzione migliore per la mia storia?
B) Posso richiedere estensioni opengl da JOGL?
C) Come carico le trame da JOGL?
I commenti:
Se hai utilizzato JOGL da un browser, per favore fammi sapere quali problemi / esperienze hai avuto da esso.
Soluzione
Non hai menzionato 'applet' nella tua domanda. Prova a cercare "jogl applet" o "lwjgl applet". Ho avuto più gioia con LWJGL che con JOGL, ma entrambi dovrebbero soddisfare le tue esigenze. Potresti anche essere interessato a Java Web Start. Prova le demo qui per entrambi gli esempi basati su Java Web Start e Applet usando LWJGL e qui per un'applet JOGL.
Altri suggerimenti
Sto usando JOGL su un'importante applicazione desktop, e ha avuto successo. È essenzialmente veloce come OpenGL. Non posso parlare di nulla sul Web - sospetto che la soluzione migliore sia scrivere un'applet JOGL usando WebStart. Dai un'occhiata ad alcuni degli esempi JOGL.
JOGl è un wrapper molto sottile su OpenGL. Se conosci OpenGL puoi usare JOGL. Se non conosci OpenGL, imparare JOGl equivale a imparare OpenGL (non è un compito facile). Praticamente tutto ciò che puoi fare in OpenGL puoi fare in JOGL.
Abbiamo avuto problemi con l'accelerazione hardware su Linux (chi non lo fa) e alcune configurazioni di Linux causeranno l'arresto anomalo della nostra app JOGL (non necessariamente altre). Si tratta di un problema noto e probabilmente avrai qualche problema con il 3D su Linux, qualunque cosa tu faccia.
Conosco anche altre persone che usano JME e LWJGL sul desktop con successo.
Ciò che mi preoccupa è che questo forum non è utilizzato dai programmatori Jogl. Esiste una grande e attiva comunità Jogl nella NASA WorldWind - un'app basata su JOGL molto accurata. Ci sono stati numerosi derivati ??e personalizzazioni tra cui un'intera Slovenia virtuale in JOGL.
Ho usato JOGL per un'applicazione desktop con il toolkit GLUT e ha funzionato molto bene (ho anche usato i collegamenti OpenGL in C / C ++ e Python) Non posso commentare l'esecuzione di un'app JOGL all'interno di un'applet ...
Non sono sicuro di cosa intendi quando chiedi come è possibile eseguire una query sulle estensioni OpenGL, JOGL è semplicemente i collegamenti OpenGL in un'API Java, quindi qualsiasi conoscenza OpenGL verrà mappata su JOGL. Se non hai lavorato con OpenGL Bindings, ti consiglio di prendere il libro rosso: http: / /www.opengl.org/documentation/red_book/
A) Credo che Java3D possa usare DirectX o OpenGL / JOGL ove disponibili, o tornare al rendering del software. E offre un'API orientata allo scenario che a volte è più facile da programmare.
B e C) JOGL è un wrapper molto sottile ma completo per OpenGL e le sue estensioni. (Quasi) tutto ciò che puoi fare con OpenGL in C / C ++, puoi fare esattamente allo stesso modo usando JOGL.
Puoi guardare interessanti presentazioni sull'uso di openGL da Java su Parleys .
Il titolo della presentazione è " Applicazioni grafiche Java3D e 2D ad alte prestazioni "
A) Sì B) Sì, utilizzare GLBase.isExtensionAvailable () e GLBase.isFunctionAvailable () C) Utilizzare la classe Texture e TextureIO. Puoi trovare nuove demo dell'applet qui .
Non utilizzare Java3D, è obsoleto e non è più attivamente mantenuto. Ardor3D ha un eccellente renderer JOGL 2.0 (l'ho scritto;)). JMonkeyEngine 2 supporta JOGL 1.1.1a come Xith3D e 3DzzD.
Modifica .: Ho resuscitato Java3D con l'aiuto di Harvey diversi anni dopo aver scritto questo commento, dai un'occhiata a il mio tutorial se vuoi ancora usarlo.