-
Modélisation 3D en java
Bonjour à tous,
Dans le cadre du projet que je dois réaliser, je vais être amené à faire de la modélisation en trois dimensions. Je n'ai malheureusement jamais encore pu toucher à ce domaine.
Mon application va se faire en Java, elle aura un côté bête de saisie, puis un côté visualisation.
Oui mais comment se passera la visualisation ?
C'est plus compliqué que l'utilisation d'un framework. En fait l'objectif est de modéliser ce qu'on pourrait appeler un "site géographique". Il y a donc une notion de bâtiments à installer sur l'image 3D, de formes géométriques somme toute assez simples (des cylindres, etc...).
L'objectif est donc d'avoir à la fin, une sorte de "carte" du site, qui soit zonnée. Zonnée, c'est à dire que si l'on clique sur tel parallélépipède, correspondant à un bâtiment, POUF on a une zone qui s'ouvre, et qui donne les infos relatives à celui-ci.
Quid des contraintes ?
Elles ne sont pas si nombreuses mais malheureusement je suis obligé d'en tenir compte pour que l'application soit un succès.
- Zoning à prendre obligatoirement en compte
- Pas d'applet Java => Le client doit pouvoir avoir son image sans rien faire sur sa machine
- Pas de lib/logiciels payants
La dernière chose à savoir, et je parle vraiment en tant que noob, c'est la possibilité de faire tourner l'image (comme sur cette applet : Applet qui fait tourner une image 3D ), j'imagine que ça doit être très compliqué, surtout pour faire du zoning par la suite. De plus j'imagine que c'est tout à fait impossible à faire sans faire une applet (peut être HTML5 le permet-il ?). Enfin en gros je veux savoir si cet espoir peut s'envoler direct ou non.
L'objectif à long terme est de générer dynamiquement ces maps
Je ne sais pas encore comment faire, à cause de ma méconnaissance totale du monde 3D, mais j'imaginais peut être un système de drag'n drop pour positionner les objets sur la map. J'imaginais peut-être une saisie de la taille de chaque élément (pour essayer d'obtenir une dimension du site à l'échelle mais ça pose encore certains problèmes...)
La destination du programme est : côté admin, ceux qui "fabriquent" les maps, qui ne sont pas informaticiens; coté utilisateurs, qui voient les maps, et qui cliquent sur les endroits qui les intéressent (qui ne sont pas non plus informaticiens).
Je suis conscient du fait qu'il faille y aller étape par étapes, c'est pour ça que j'ai tenu à bien détailler ce que je voulais.
Donc ma question finale, que j'ai oubliée au premier post, est donc : Comment s'y prendre pour répondre à mes besoins ? De quels outils aurais-je besoin ? Quelles solutions s'offrent à moi ?
J'ai constaté qu'il existait tout de même quelques outils. Parmi ceux-là, j'ai repéré gwt-g3d, une extension du framework gwt. J'ai aussi vu Jogl, une librairie 3D, LWJGL, un framework de création de jeux vidéos (sûrement trop puissant pour ce que je recherche). J'ai vu aussi Java3D, mais j'en ai entendu que du mal.
Tenant tout de même à rappeler que je débute complètement dans ce domaine, et que je ne suis pas un expert Java, merci de me corriger si mes affirmations sont inexactes.
J'espère avoir été suffisamment clair, et vous remercie d'avance pour votre lecture, et vos réponses.
-
Bonjour,
Concernant les librairies 3d, tu as deux optiques :
- lwjgl et jogl qui nécessitent pas mal de connaissances en OpenGL, donc de nombreux prérequis
- des librairies plus haut niveau selon une philosophie proche de Java3D telles que jMonkeyEngine (gratuit) et une ou deux autres (google est ton ami).
Pour la contrainte du déploiement, un programme en java peut tout à fait être packagé sans nécessiter l'installation de java sur le poste, cf. ce tutoriel sur la création d'éxecutables. A mon avis, solution à ne réserver que pour les petites applications.
Sinon, HTML5 / javascript permet effectivement de faire de la 3d, même si le support par tous les navigateurs est illusoire pour le moment. Mais là ce n'est plus faire du java.
-
Bonjour Washmid,
Je prends bonne note de ta réponse. D'après ce que j'ai pu lire, GWT-G3D permet de justement générer du JS/HTML afin d'afficher un rendu 3D, donc compatible tous navigateurs.
Sauf que je ne connais pas, et j'aimerais savoir si ça pourrait faire ce que je cherche, pour pas que je parte dans une direction et me rendre compte que ça marchera pas...
Je n'ai jamais manipulé OpenGL, donc si j'écoute ce que tu me dis, il faudrait au préalable bouquiner sur la 3D, puis me lancer dans LWJGL ou JOGL ?
Edit : Je précise que c'est une application Web que je veux... Je me rends compte que ça exclut les libs comme JOGL ?
Merci à toi
-
Pour JOGL, je dirais que oui, il vaut mieux bouquiner un peu avant, du moins si l'on cherche à comprendre ce que l'on fait en s'éloignant des tutoriels.
Concernant le web, non, rien n'exclut l'utilisation de librairies tierces. Vas voir sur le site de jMonkeyEngine, il y a des d'exemples démarrés via java web start :ccool:. La mode applet fonctionne aussi très bien -> exemple avec minecraft beta jouable directement dans le browser (minecraft utilise lwjgl).
Concernant la piste javascript (y compris GWT) et la compatibilité des navigateurs, internet explorer risque de te plomber. A tester ceci dit. Les applets java non plus ne sont pas sans défaut.
-
Bonjour,
Je m'excuse du retard j'ai eu quelques problèmes personnels.
Bon j'ai bien lu ta réponse et je me suis un peu documenté notamment sur Jmonkey. Le côté applet est vraiment très sympa, je me demande si je ne vais pas partir là-dessus. Le souci c'est que je sais que c'est à la base un moteur de création de jeux. Est-ce que ce n'est pas trop gros pour ce que je veux moi ? Enfin je ne cherche pas à faire de l'eau, ni à contrôler un perso... Je cherche vraiment à positionner des objets de forme simple sur un map (dans un premier temps, après les graphismes devront sûrement être plus poussés).
Je vais faire quelques tests en attendant.
Encore merci.