2010-11-21 15 views
1

Je voudrais rendre une scène 3D très simple dans une applet Java. Je pourrais faire tout le calcul moi-même et le restituer à un bitmap, mais comme je suis sûr que je ne suis pas la première personne à avoir dessiné quelques cubes à l'écran, je me demandais comment cela se faisait habituellement. Chaque endroit que j'ai lu a dit Java3D ou LWJGL, mais si je comprends bien, ceux-ci s'appuient sur un code dépendant de la plateforme et doivent être installés séparément de Java, les rendant tous deux inadaptés aux graphiques.Comment faire 3d dans une applet Java?

Alors, comment cela se fait-il habituellement?

Répondre

1

This old page répertorie les démos/applications/bibliothèques d'applets Java 3D sans aucune dépendance matérielle. Malheureusement, très peu sont open-source, d'autres ne sont même pas téléchargeables.

Personnellement, je vous recommande d'expérimenter avec Java 1.1 3D renderer by Ken Perlin, qui a le code source disponible et libre d'utiliser à des fins académiques.

EDIT: jGL est une autre bibliothèque Java 3D sans aucune dépendance matérielle. Il imite OpenGL 1. * API. Il est sous licence GNU Lesser General Public License (LGPL).

0

Je ne suis pas un gars de Java, mais il y a 2/3 ans quand j'étais à Univeristy j'ai eu le même problème :) J'ai essayé jogl ... et pour Noob en Java comme moi-même je l'ai trouvé trop compliqué pour configurer et écrire quelque chose en l'utilisant.

J'ai utilisé Java3d et cela a fonctionné comme un charme, le seul problème que j'avais à l'époque, c'était que Java3d ne fonctionnait pas avec toutes les cartes graphiques. Mais heureusement, cela a fonctionné avec les ordinateurs de mon université :)

+0

Comme je l'ai mentionné, la plupart des gens n'ont pas Java3d installé, donc ce n'est pas vraiment une option .. à moins qu'il y ait un moyen de l'installer automatiquement? Les .jar sont signés par Sun, après tout ... –

+0

Ça ne va pas charger pour moi (ClassNotFound) mais j'ai l'impression que ça le charge automatiquement? https://java3d.dev.java.net/applets/FourByFour.html –

+0

BlueRaja: Je pense que vous pouvez utiliser java web start pour déployer automatiquement java3d, mais je ne suis pas sûr – Jarek

1

Dans un JRE 2 (1.6.0_10 +), vous pouvez utiliser les extensions JWS pour les applets intégrées. Ceci est important car JWS facilite beaucoup la tâche pour s'assurer que les binaires corrects se trouvent sur le chemin de la classe d'exécution. AFAIU JOGL et Java 3D offrent toutes deux des extensions JWS pour leurs API. Si vous choisissez d'aller dans ce sens, veuillez ajouter le paramètre draggable à l'applet, afin que l'utilisateur final puisse choisir s'il veut une fenêtre de navigateur (généralement inutile) enroulée autour d'une animation 3D.

+0

Pourriez-vous expliquer un peu plus comment utiliser ceci pour vous assurer que Java3D ou JOGL est installé sur la machine du client? –

1

J'ai rencontré des problèmes similaires lorsque je devais faire un rendu 3D dans une applet. Ma solution consistait simplement à implémenter de zéro une bibliothèque de rendu 3D en Java. La crainte était que ce serait un mauvais interprète, mais sur un processeur I5, cela s'est avéré ne pas être le cas. L'avantage supplémentaire est que j'ai pu écrire la bibliothèque de la façon dont j'ai toujours voulu que les graphiques soient faits. Le vrai avantage, cependant, est qu'il fonctionnera indépendamment de toute nécessité d'avoir une bibliothèque graphique installée sur le client et sans tenir compte des dépendances de la carte graphique.

Je serai ravi de partager un sous-ensemble de ce code à quiconque voudra le regarder.