Java-applets mit hardware-beschleunigte 3D-Grafik? OpenGL und/orDirectX
Ich kann nicht finden, eine klare Antwort auf diese Frage mit all meinen googeln.
Wenn ich eine web-applet, gibt es eine Bibliothek in Java, die die Vorteile der hardware-beschleunigten Grafik-Treiber auf dem client-Rechner, wie in OpenGL und directx? Ich bin Malte schriftlich einige Fahrer detection code, bevor das applet startet zum erkennen von 3D-Grafik-Fähigkeiten.
Ich weiß, es gibt eine Menge von Java 3D-Bibliotheken, kann aber nicht herausfinden.
Ich hatte den Eindruck, dass Sie das tun könnten, aber es nicht finden kann.
Während ich mich Frage, wie Flash und Silverlight? Ich dachte alle, die Ihre 3D-Grafik-software gerendert?
EDIT:
Sehe ich die Antwort auf die Frage ist ja, Java hat 3D-hardware-Unterstützung. Vielen Dank für alle Infos!
Ich denke, meine eigentliche Frage ist (was ich hinauswill):
1.) inwiefern ist diese Version für die vollständige Nutzung? Können Sie DirectX-oder OpenGL-Shader, zum Beispiel? Ich könnte erwarten, dass einige features fehlen wie, die eher abstrakte Dinge. Könnte ich ein GPUID Programm oder ein Dienstprogramm, das die Liste ist die client-GPU-Fähigkeiten im detail?
2) Ist es machbar? Könnte ich den port eines alten 3D-spielen wie Quake auf einem Java-applet und haben anständig Leistung? (abhängig vom client-system natürlich)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den applet-starter-Projekt sollte helfen:
JOGL ist ein Beispiel-applet hier, und Java3D hat zwei Proben hier.
DirectX ist eine proprietäre Microsoft-3D-system, so, wenn Sie sicher sind, dass Sie laufen nur auf Microsoft-Systemen würde ich vermeiden, DirectX.
JOGL und Java3D sind sehr unterschiedlich. JOGL ist eine dünne Schicht über OpenGL, mit allen vor-und Nachteilen impliziert. Java3D ist eine vollständige scenegraph system.
Es ist völlig möglich für das schreiben von java-applets, die den Zugriff auf die 3D hardware. Die env3d Projekt (http://env3d.org) ist genau das -- ein java-3D-engine, produziert 3D-beschleunigte 3D-applets. Es gibt viele Beispiel-Programme auf der website zu zeigen, die die Verwendung von hardware-beschleunigten 3D in Ihrem browser. Die einzige Voraussetzung ist, dass Java noch installiert werden und der Benutzer muss Sie explizit zulassen, die applet-Berechtigung für den Zugriff auf lokale Ressourcen.
Env3D basiert auf der lwjgl, eine opengl - /gaming-wrapper für Java. Es unterstützt sogar Shader und andere erweiterte Funktionen.
Unterstützung für hardware-beschleunigte Grafik wurde in Java seit 1.5.
Finden Sie in den Versionshinweisen auf wie es zu tun. Hinweis: dies ist für 2D.
Für 3D, J2SE hat Java3D.
Flash unterstützt pseudo-3D, aber nicht jede Art von OpenGL-beschleunigte full-3D-Szene (im Grunde nur die Perspektive warping-Effekte). Es gibt einige software-orientierte Lösungen (z.B. Papervision3D).
Silverlight unterstützt pseudo-3D als auch mit dem 3.0-release später in diesem Jahr. Soweit ich weiß, gibt es derzeit keine Pläne für eine vollständige 3D gibt.
Angeblich 3D-Unterstützung ist geplant für eine spätere Version von JavaFX-initiative, die wäre (wenn es jemals passiert) verbessern Sie Unterstützung für applets ein wenig Recht.
Es kann auch nützlich sein, zu beachten, dass in den neuen Java-Versionen (ich glaube 1.6 Version 10?) es wurden signifikante Verbesserungen an der Grafik-pipeline für windows.
Werden Sie nicht haben, Shader, zuletzt habe ich geprüft, Sie erhalten grundsätzlich eine scenegraph-API auf der Oberseite von dem, was Sie vielleicht als DX5 oder DX6-level-Funktionalität, je nachdem, was du tust.