11 Stimmen

Was ist der beste Ansatz für die Verwendung von OpenGL im Web?

Ich habe ein Programm in C++/OpenGL (unter Verwendung des Dev-C++ Compilers) für meinen Kurs in Kalkül 2 geschrieben. Dem Lehrer gefiel das Programm und er bat mich, es irgendwie online zu stellen, so dass ich es einfach im Webbrowser ausführen kann, anstatt die .exe-Datei herunterzuladen. So ähnlich wie Java-Applets, die im Browser laufen.

Die Frage ist:

Wie kann ich, wenn möglich, ein C++/OpenGL-Programm in einem Webbrowser anzeigen? Ich denke darüber nach, zu JOGL zu wechseln, einer Java-Interpretation von OpenGL, aber ich bleibe lieber bei C++, da ich damit besser vertraut bin.

Gibt es auch eine andere bessere und einfachere 3D-Web-Basis-API, die ich in Betracht ziehen kann?

0voto

Mortennobel Punkte 3263

Eine andere Lösung ist die Verwendung von Emscripten (ein Source-to-Source-Compiler). Emscripten unterstützt C/C++ und OpenGL und übersetzt den Quellcode in HTML/JavaScript.

Um Emscripten zu verwenden, müssen Sie SDL als Plattformabstraktionsschicht verwenden (um einen OpenGL-Kontext zu erhalten und um Bilder zu laden).

Emscripten wird derzeit in der Unreal Engine verwendet und wird auch in der Unity 5 Engine zum Einsatz kommen.

Lesen Sie hier mehr über das Projekt: https://github.com/kripken/emscripten

-2voto

thoaionline Punkte 498

Zwei Ansätze:

  1. Wechseln Sie zu Java. Als Ausgleich für die Portabilität wird Ihre Anwendung jedoch an Leistung einbüßen. Da Java jedoch überall verbreitet ist, gewährleistet dieser Ansatz, dass Ihr Code in den meisten Browsern ausgeführt werden kann.

  2. Verwenden Sie ActiveX, mit dem Sie nativen Binärcode für Microsoft Windows ausführen können. Dies wird für die Produktion nicht empfohlen, da ActiveX als potenzielle Sicherheitslücke bekannt ist, aber da Ihr Dozent die Datei betrachtet, scheint die Sicherheit keine große Rolle zu spielen. Dies gilt nur für die Microsoft-Plattform (Windows+IE).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X