9
votes

Quelle est la meilleure approche pour utiliser OpenGL sur le Web?

J'ai écrit un programme en C ++ / OpenGL (à l'aide de Dev-C ++ Compiler) pour ma classe Calculus 2. L'enseignant a aimé le programme et il m'a demandé de l'avoir mis en ligne afin que, au lieu de télécharger le .exe, je peux simplement l'exécuter sur le navigateur Web. Un peu comme des applets Java fonctionnent sur le navigateur.

La question est:

Comment si possible, puis-je afficher un programme C ++ / OpenGL dans un navigateur Web? Je pense à passer à Jogl qui est une interprétation Java de OpenGL mais je reste plutôt rester en C ++ depuis que je suis plus familier avec ça.

Y a-t-il également une autre API de base Web 3D 3D plus facile et plus facile que je peux envisager?


2 commentaires

Il y a une chose appelée "Unity Web Player". Aucune idée de ce qui est en dessous, je viens de trébucher sur un match 3D dedans récemment.


Jogl est très abordable si vous connaissez déjà C ++. Je ne pense pas que vous auriez un problème avec JOGL.


7 Réponses :


1
votes

Avez-vous vraiment le temps de le réécrire? Je pensais que les étudiants devaient être trop occupés pour des travaux d'affectation non essentiels.

Mais si vous voulez vraiment le faire, peut-être un aperçu de celui-ci en fonction d'un film flash est le moyen le plus simple. Ensuite, il suffit de le faire et vous pourriez fournir un lien de téléchargement vers la demande réelle si les gens sont intéressés.


1 commentaires

Lol je n'ai pas cette œuvre de travail alors je passe la plupart de mon temps à étudier, alors je peux passer le temps. + Lol bien je peux faire ça mais je ne sais pas je suis curieux sur la façon de faire OpenGL sur le Web.



5
votes

afaik, il n'y a que 3 options:

  1. Java. Il inclut toute la pile OpenGL.

    • Le client natif de Google (NaCl) , essentiellement c'est un plugin qui vous permet de vous laisser Exécutez le code X86 exécutable. Il suffit de le compiler et de l'appeler de HTML. Très expérimental, et personne ne l'aura déjà installé. Je ne sais pas si cela vous donne accès aux bibliothèques OpenGL.

    • Canvas: 3D . Un autre projet très expérimental. Il s'agit d'une API 3D accélérée accessible à partir de JavaScript. Afaict, ce n'est que sur des constructions expérimentales de Firefox.

      J'irais pour Java, si du tout.

      OTOH, si c'est surtout des œuvres vectorielles (sans beaucoup de textures et d'éclairage / ombres), vous pouvez le faire fonctionner sur SVG simplement en projetant vos vecteurs de 3D à 2D. Dans ce cas, vous pouvez obtenir une compatibilité croisée croisée avec SVGWeb , c'est une simple bibliothèque JavaScript qui Vous permet d'utiliser de manière transparente le support svg natif du navigateur ou un rendu SVG basé sur Flash.


1 commentaires

Ouais je pars la même chose. Il n'y a pas trop d'options à ce sujet. Mais merci pour la réponse.



2
votes

À l'extérieur de Java, Navigateur OpenGL est vraiment à ses balbutiements. Google a lancé une API et un plugin vraiment cool pour cela. Ça s'appelle O3D:

http://code.google.com/apis/o3d/

article sur l'initiative globale: http://www.macworld.com/article/142079/2009/ 08 / webgl.html


0 commentaires

1
votes

Ce n'est pas OpenGL, mais le 's Consortium Web3D Spécification X3D peut être d'intérêt.


0 commentaires

0
votes

Deux approches:

  1. Switch to Java. Cependant, votre demande subira une perte de performance en tant que compromis pour la portabilité. Mais puisque Java est partout, cette approche garantit que votre code peut être exécuté dans la plupart des navigateurs.

  2. Utilisez ActiveX, ce qui vous permet d'exécuter du code binaire natif pour Microsoft Windows. Ceci n'est pas recommandé dans la production car ActiveX est bien connu comme un trou de sécurité potentiel, mais comme votre conférencier est celui qui le visible, la sécurité ne semble pas être une grosse affaire. Ceci est applicable pour Microsoft Platform (Windows + IE) uniquement.


0 commentaires

5
votes

Il y a beaucoup d'activité récemment avec Webgl . Il s'agit d'une liaison pour JavaScript dans les implémentations Native OpenGL ES 2.0, conçues comme une extension de l'élément HTML5 en toile.

Il est pris en charge par les constructions nocturnes de Firefox, Safari, Chrome et Opera.

Regardez sur ces didacticiels , en fonction des tutoriels NEHE OpenGL bien connus.

Plusieurs projets basés sur Webgl sont émergents, notamment des API de scèneGraphes.

  • des équipes indie: Scenejs , glage , Spidergl .
  • de Google: l'équipe derrière Plugin O3D tente de mettre en œuvre un backend pure webgl ( source ) pour le projet, de sorte que non le plug-in sera nécessaire.
  • de W3C / Web3D: Il existe une discussion en cours pour inclure X3D dans le cadre de tout arbre HTML5 DOM, un peu comme SVG dans HTML4. Le X3Dom projet est né l'année dernière pour soutenir cette idée. Maintenant, il utilise Webgl comme son rendu Backend et est la version 1.0 depuis mars 2010.

    Je suis presque sûr que Webgl est la voie à suivre dans un proche avenir. Mozilla / Google / Apple / Opera le promeut et si la technologie fonctionne et que la demande de la technologie / développeur est suffisante, Microsoft l'appliquera peut-être sur IE (espérons qu'il n'y aura pas de "Webdx"!).


0 commentaires

1
votes

Une autre solution consiste à utiliser EMSCRIPTEN (compilateur source à source). EMSCRIPTEN prend en charge C / C ++ et OpenGL et traduira la source en HTML / JavaScript.

Pour utiliser EMSCRIPTEN, vous devrez utiliser SDL comme couche d'abstraction de plate-forme (pour obtenir un contexte OpenGL ainsi que pour charger des images).

EMSCRIPTEN est actuellement utilisé dans un moteur irréel et sera également utilisé dans le moteur UNITY 5.

En savoir plus sur le projet ici: https://github.com/kripken/emscrepripten


0 commentaires