IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

Moteur 3D pour application scientifique / industrielle


Sujet :

Moteurs 3D

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Moteur 3D pour application scientifique / industrielle
    Bonjour,

    J'inaugure mon 1er post sur le forum Developpez.com.
    Je travaille actuellement pour la branche R&D de ma société, et pour des raisons de marketing, on nous demande de plus en plus d'intégrer une visualisation 3D temps réel dans nos applications (Windows).

    On s'est orienté il y a 2 ans vers le moteur 3D TrueVision3D, qui dit en passant est très bien et complet, surtout depuis la version 6.5 qui se gère à merveille depuis un environnement .NET (et non chez nous, on fait pas de c++ ).
    On a donc une appli qui fait tourner le moteur, et on charge des fichiers qui contiennent la description de montages mécaniques (boîtes de vitesse, réducteurs, ...). On créé donc à la volée les meshs adéquats, on y applique nos texteures, etc ... La routine quoi.

    Cependant, faisant un peu de veille, je commence à me poser qqs questions sur notre choix....
    N'y-at'il pas de moteur 3D plus adapté pour le monde industriel ? On est toujours à la limite des jeux vidéos quand on parle de moteur 3D...
    Microsoft XNA annonce clairement que son produit est orienté jeux... mais quelle seraient les contraintes à l'utiliser pour nos développements ? Donne-t'il accès à la gestion d'une scène, à la création de meshs, aux opérations des transformation/rotation par matrice/quaternion ... ?

    Merci de vos avis éclairés

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    C'est une erreur XNA n'est pas plus orienté Jeux que OGL ou D3D.

    XNA n'est qu'une surcouche à DX9 incorporant des composants permettant de démarrer plus vite un projet. Tout est modifiable (ou presque tout).

    Tu as par exemple un composant pour loader les objets, gérer les composants, les IN/OUT, ..., on trouve plus d'exemple de jeux en XNA que de simulateur mécanique, mais honnêtement on trouve la même chose avec les autres API.

    De plus XNA n'est pas un moteur car il ne fournis pas des fonctions assez haut niveau pour ca, par contre il fournit un package suffisant pour en créer un plus aisément.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Pourtant XNA est clairement en raison de son architecture, du nommage des classes/variables et de sa philosophie (possibilité de déployer l'appli sur XBOX ou Zune) orientée jeux ... Il suffit de lire les tutos présents sur le site

    Soit, admettons qu'on puisse y faire autre chose et que l'on l'utilise pour en faire un simulateur mécanique. Ce n'est pas un moteur 3D, je suis d'accord, mais comment alors créer des meshs de manière procédurale via la création de vertex (y'a des classes déjà disponibles ?) ? Ou faut'il, comme tu le sous-entend, développer soi-même finalement son propre moteur 3D basé sur XNA afin de fournir ces fonctions ?
    A ce propos, qqn peut'il me citer des moteurs 3D entièrement basé sur XNA ?

    Et sinon, en rapport avec ma première question, y-a-t'il des moteurs 3D du marché (gratuit ou non) plus dédiés aux applications scientifiques/industrielles ? Ou finalement Irrlicht, Ogre, TV3d, ... sont-ils ce qu'il y a de plus adaptés à mon besoin ?

    Bp de questions dsl

  4. #4
    Membre actif
    Avatar de Mikmacer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Donne-t'il accès à la gestion d'une scène,
    Non, mais ce n'est probablement pas la partie la plus compliqué à programmer avec XNA.

    à la création de meshs
    Il y a un loader .FBX, compatible avec les logiciels autodesk. Selon ce que j'ai vu, il y avait quelques probleme avec le format FBX, pour l'importation des fichiers FBX lorsque l'exportation contenait une scène relativement complexe. Pour mon projet, j'ai préféré me programmer une loader Collada.

    aux opérations des transformation/rotation par matrice/quaternion ... ?
    Oui, il y a une classe de matrice 4X4, Vecteur2, Vecteur3, Vecteur4, et une classe quaternion.

    Par compte, avant de plonger dans XNA, il faut savoir que la gestion des ressource doit se faire avec le système de "Content Pipeline". Toutes les ressources doivent être compilés en .XNB, et si on veut approfondir la gestion de ressources, il faut utiliser MSBuild. C'est loins d'être plaisant, mais c'est faisable. Il faut se battre avec quelques fois, par contre... la compilation peut être très longue si on ne la gère pas bien. C'est probablement mon seul gros reproche à XNA, mais ils se devaient de créer un système de gestion de ressources multiplateforme.

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Moteur 3D pour applications industrielles
    Un très bon moteur 3D pour les applications industrielles et notamment pour le marketing/ventes est la suite logicielle d'EON Reality: "EON Studio, EON Professionalv et EON Ultra".
    www.eonreality.com

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    EON Reality n'est pas du tout ce que je cherche ...
    Ce forum n'intéresse que des développeurs de jeux ? Personne n'a en charge la création dans un cadre professionnel d'un moteur 3D style clui que l'on trouve dans les logiciels de DAO/CAO ?
    Je prends un autocad ou un solidworks par exemple, l'affichage 3D est bien généré par un moteur 3D à partir de coordonnées ou fonctions (style extrusions, chamfrein...) définis par l'utilisateur...

    Ce que je recherche, c'ets une solution optimale pour afficher à la volée des meshs calculés de façon procédurale à partir de données géométriques qui me permettront de calculer l'ensemble des coordonnées des vertices pour les différents meshs à monter dans ma scène 3D.

    Y'a-t'il des moteurs 3D plus spécialisés dans ce domaine ?

    Et sinon, concernant XNA, j'ai qd meme l'impression qu'il faudrait énormément customiser la plateforme pour obtenir un moteur 3D dédié à des applications industrielles ...

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut

    Citation Envoyé par kami58 Voir le message
    Ce forum n'intéresse que des développeurs de jeux ? Personne n'a en charge la création dans un cadre professionnel d'un moteur 3D style clui que l'on trouve dans les logiciels de DAO/CAO ?
    Je prends un autocad ou un solidworks par exemple, l'affichage 3D est bien généré par un moteur 3D à partir de coordonnées ou fonctions (style extrusions, chamfrein...) définis par l'utilisateur...
    Pas besoin d'un moteur 3D pour afficher un peu de géométrie...tu prends OpenGL ou DirectX, ça le fait très bien sans avoir besoin de monter une usine photo-voltaïque

    Perso je me (re)développe mon moteur à moi basé sur OpenGL.



    Citation Envoyé par kami58 Voir le message
    Y'a-t'il des moteurs 3D plus spécialisés dans ce domaine ?
    Teste OCC (nan, c'est pas l'OCC de Discovery Channel! )... apparemment ça peut s'utiliser à partir de C# (d'ailleurs je viens de découvrir que ça pouvait s'utiliser avec Java, faudra que je regarde ça...)


    Citation Envoyé par kami58 Voir le message
    Et sinon, concernant XNA, j'ai qd meme l'impression qu'il faudrait énormément customiser la plateforme pour obtenir un moteur 3D dédié à des applications industrielles ...
    Ca sera vraisemblablement la même chose pour les autres. Des libs de qualité industrielle sont rarement accessibles librement (bonjour la concurrence sinon...).
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Mais de toute façon que ce soit pour le jeux ou pour l'industrie il y a aura du travail sauf trouver un tout fait et ca je connais pas.

    Sinon XNA permet de refaire la partie affichage d'un blender ou autre sans trop de problème, tout comme OpenTK ou SlimDX.

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bien sur qu'il y'a du taf je suis d'accord
    Mais le pb n'est pas de savoir combien de lignes de code je vais devoir coder, mais plutot si un outil proppose un environnement plus proche des contraintes industrielles afin de créer notre environnement 3D pour outil CAD.

    Un moteur de jeu qui me propose une gestion du joystick, le chargement de paysages, ..... ca ne m'intéresse guère pour mes besoins
    Pour TrueVision actuellement,je suis sur qu'on utilise que 40% des fonctionnalités offertes par le moteur.

    OpenCascade oui effectivement c'est une réponse, puisqu'un outil qui existait chez nous avant était codé par une société externe en Opencascade c'est vrai. Mais t'es sur que ca accepte le C# ? J'ai juste trouvé le fait qu'il fallait passer par des Wrappers, mais j'ai peur que ca joue sur les perfs le fait de switcher entre code managé/non managé .... Un retour d'expérience de qqn ?

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par kami58 Voir le message
    Un moteur de jeu qui me propose une gestion du joystick, le chargement de paysages, ..... ca ne m'intéresse guère pour mes besoins
    Pour TrueVision actuellement,je suis sur qu'on utilise que 40% des fonctionnalités offertes par le moteur.
    Ca, c'est normal. Utiliser 100% des fonctions d'un moteur voudrait dire que le moteur a été développé pour l'application qui l'utilise. On est toujours à un ratio inférieur, plus éventuellement quelques fonctions supplémentaires à créer soi-même car non intégrées dans le moteur.
    Et comme disait mon prof de math, "qui peut le plus peut le moins"! Mais je suis un peu comme toi, je n'aime pas trop me trainer 100Mo de fichiers annexes si je n'utilise que 20% du potentiel du moteur (ce qui explique pourquoi je réinvente l'eau chaude et la roue ronde...)

    Citation Envoyé par kami58 Voir le message
    Mais t'es sur que ca accepte le C# ?
    Non, c'est justement pour cela qu'il y a un "apparemment" dans ma phrase


    Citation Envoyé par kami58 Voir le message
    J'ai juste trouvé le fait qu'il fallait passer par des Wrappers, mais j'ai peur que ca joue sur les perfs le fait de switcher entre code managé/non managé .... Un retour d'expérience de qqn ?
    Je ne code pas en C#, mais vu ma petite expérience en Java/Jogl, les perfs ne devraient pas être trop bloquantes si vous ne tapez pas dans du gros (les machines actuelles sont surdimensionnées en général par rapport au besoin)
    Il faudrait voir quels sont tes besoin niveau perf (nombre de polygones, lumières, shaders, etc etc...)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Bonjour Kami,

    Je ne suis pas sur d'avoir compris ton besoin alors avant de partir dans une envolée lyrique qui ne servirait à rien, je préfère vérifier.

    Qu'est ce que vos applications windows vous fournissent comme données aujourd'hui ? Est ce que vous avez des algorithmes qui vous donnent par exemple des listes de vertex ou qqch du genre ? Est ce que tout ce dont tu as besoin c'est d'un outil qui te permet d'utiliser ces informations là afin, dans ton cas, d'avoir le rendu en temps réel de tes objets (+ quelques manipulations dans l'espace tel que des rotations translation etc etc ...) ?

    Merci

    Alex

  12. #12
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Oui en effet. Nous prenons en charge en entrée de nos algorithmes des données géométriques des éléments mécaniques qu'il faut modéliser (par exemple pour un arbre, la liste des sections avec leur rayon et leurs longueur, ou pour d'autres pièces la forme de la section de base, puis ensuite la longueur et enfin qqs particularités géométriques).
    De là, nos algo en déuisent un certains nombre de vertex (selon la précision voulue également).
    Maintenant, il nous faut intégrer ces données dans un moteur 3D, et également permettre une manipulation 3D temps réel pour que l'utilisateur puisse faire des rotations/zoom/transparence/.....
    Je ne pense en effet que niveau perfs on nécessite un supercalculateur

    Notre optique actuelle est de passer par un moteur de jeu. Mais peut etre exite-t'il des outils dédiés à ce genre d'applications ? OpenCascade en effet est un exemple de ce qui peut nous interesser

  13. #13
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par kami58 Voir le message
    Notre optique actuelle est de passer par un moteur de jeu. Mais peut etre exite-t'il des outils dédiés à ce genre d'applications ? OpenCascade en effet est un exemple de ce qui peut nous interesser
    Au vu de ce que tu expliques, OpenCascade est beaucoup trop "polyvalent"... vous n'en utiliseriez que 40%...

    Si vos algos crachent les vertex, il ne reste plus qu'à les afficher. Un moteur de jeu fera amplement l'affaire. Sinon jète un oeil à OpenGL (ou DirectX), faire de l'affichage et de l'interaction ne nécessitera que peu de ligne de code...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 69
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Perso j'utiliserai Ogre3D dans ce cas.
    Dans Ogre3D, il y a une classe bete comme chou qui sert à faire exactement à ce que tu veux : ManualObject.
    Tu lui donne les positions de tes vertex, couleurs, normales et autres attributs, et cela s'affiche ensuite (et encore mieux si tu as les index sous forme de triangle).
    Ensuite tu peux mettre a jour les nombres et valeurs de tes vertex de manière quasi-identique (fonction update du manualobject).

    Je te déconseille d'utiliser les méthodes 'haut niveau de ogre' (rendu automatique etc...) qui sont utilisées dans les tutoriaux officiels. Sincèrement elles compliquent le code plus qu'autre chose.

    Pourquoi ogre ? Cela te permettra ensuite de booster ton rendu : en effet, tu peux ensuite 'lier' des effets spéciaux (shader et fullscreen quads) sur ta scène entière très facilement. De nombreux exemples sont déjà fournis par défaut.

    Maintenant, il faut voir si tu as des besoins particulier en terme d'infrastructure (rendu distribué etc...). Si tu sors du cadre "machine unique", il te faudra coder toi même les contrôles maitres esclaves etc... bref, il existe dans ce cas sûrement mieux qu'Ogre.

    remarque : ogre ne sert qu'à faire du rendu 3D. tout le reste tu peux oublier (input, son, physique etc... il n'y a rien).

    Pour du procédural qui utilise vos propres fichiers, je pense que ogre3d est la meilleure solution.

    N'hésite pas à me MP pour de l'aide sur Ogre (j'ai des tutos très simples et clairs en français) ou poser la question sur leurs forums.

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pour du scientifique/industrie, tu devrais regarder OpenInventor dont voici les deux principale implémentation :
    * Coin3D
    * OpenInventor - VSG

    Sinon, y as aussi
    OpenSceneGraph
    OpenMask

Discussions similaires

  1. Moteur de workflow pour application PHP
    Par Bioteck dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/10/2015, 16h22
  2. Réponses: 1
    Dernier message: 20/11/2009, 15h44
  3. Moteur workflow pour une application Java
    Par vOnYuRi dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 11/08/2009, 11h06
  4. Quel Outil pour les applis Industrielles ET bases de données
    Par ThierryAIM dans le forum Débats sur le développement - Le Best Of
    Réponses: 8
    Dernier message: 23/04/2003, 09h14
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo