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 :

DrawSpace - WIP d'un framework 3D amateur


Sujet :

Moteurs 3D

  1. #1
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut DrawSpace - WIP d'un framework 3D amateur
    Bonjour

    Après plus de trois ans de développement, je viens ici présenter mon projet perso, réalisé sur mon temps libre comme un hobby, sans prétendre évidemment aboutir à un JV AAA fini, mais dont la finalité est seulement de parfaire mes connaissances en rendu 3D qui est un domaine qui me passionne (entre autres )

    Il s'agit d'un moteur 3D censé offrir un certain nombre de "facilités" pour le développement de jeux/simulations spatiales, avec notamment :

    - quelques fonctionnalités basiques : caméras, scenegraph, gestion de resources graphiques, gestion d'évenements fenêtres, système de connexion "signaux/slots" façon Qt, etc...
    - un système de log pour faciliter le debug.
    - un moteur physique (Bullet 2.82) déja intégré, pour les collisions/contacts et devant servir de base pour la mise au point de modèle de vols de vaisseaux (vols atmosphérique et dans l'espace)
    - un système de plugin pour l'intégration propre du renderer 3D : à ce jour, seul un plugin Direct3D 9 existe (oui je sais c'est vieux); un plugin Direct3D 11 est en cours d'écriture en ce moment.
    - un module de géneration procédurale de planètes. Il est aujourd'hui possible de se poser avec un vaisseau sur une planète, et de se promener "à pied" dans les alentours. Pour des problèmes de précision limite en float32 je suis actuellement bridé à des tailles de planètes de 500 km de rayon.
    - des effets sympas comme les nuages volumétriques, le rendu de l'eau, et d'autres...
    - une API pour créer et contrôler les orbites des planètes au sein du système solaire.
    - gestion/rendu d'impostors en grand nombre.
    - système de GUI (à faire).
    - je réfléchis à l'intégration d'un système de scripting Lua afin de faciliter le dév d'application et aussi d'outils. J'avoue que cette partie est encore très floue dans ma tête...
    - et plein d'autre choses...

    Je travaille pour l'instant sur plateforme Windows, sous Visual 2013. Un portage Linux est envisagé, quand j'aurais bien avancé sur le reste.

    Le projet est open source GPLV3, et hébergé sous github ici

    Quelques screenshots de la génération procédurale de planète :
    Nom : Image59.png
Affichages : 1906
Taille : 709,8 Ko
    Nom : Image29.png
Affichages : 1887
Taille : 182,4 Ko
    Nom : Image9.png
Affichages : 1852
Taille : 206,6 Ko
    Nom : Image46.png
Affichages : 1777
Taille : 80,3 Ko





    Screenshot d'un test de rendu de l'eau


    quelques vidéos:






    Ce qui reste à faire (liste non exhaustive) :

    - système de module : système de plugin pour encapsuler et réutiliser des fonctionnalités complexes et des noeuds scenegraph; exemple: le rendu d'une planète procédurale implique tout
    un ensemble de classes custom et de code complexe, ce qui fait que le code actuel du client est assez bordelique, et surtout je suis incapable d'instancier plus d'une planète.
    - tester differents types de planètes (océaniques, lunes infertiles/rocheuses, gazeuses, avec les anneaux planétaires) en jouant sur la customisation des classes.
    - intégrer plusieurs planètes au sein d'un même système.
    - le portage vers D3D11 devrait aboutir; il faudrait aussi que je prenne le temps de faire un portage vers OpenGL, voire (soyons fou) sur Vulkan (dans une autre vie)
    - en corollaire du point précedent, faire un portage sous Linux de l'ensemble.
    - un système de GUI (fenêtres/boutons et autres widgets) intégré.
    - un certain nombre d'outils à mettre au point, notamment pour visualiser les scenes et planètes et jouer en live avec les paramètres shaders ou coté C++, et voir le résultat immédiatement
    au lieu de recompiler...



    Enfin, si quelques personnes prennent la peine de s'amuser à explorer le code, je rappelle qu'il s'agit ici d'un projet non pro, avec beaucoup de choses pas finies/à peine commencées/en chantier, fait par une seule personne sur son maigre temps libre; merci donc de faire preuve d'indulgence ;-) ceci dit, les questions/remarques/critiques constructives sont évidemment les bienvenues, puisque c'est le but de ma démarche ici : obtenir un "feedback" après trois ans de dev en solo...

    -Nev-
    Images attachées Images attachées         

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    Salut!

    Beau boulot!
    Je suis toujours bluffé par ces systèmes de génération procédurale de planète, avec immersion, et tout ce que ça engendre comme boulot.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Visuellement, c'est super chouette

    Bravo toi pour tout ce que ça a dû représenter comme taff. Si j'ai un peu de temps, j'irai jeter un oeil sur la génération procédurale. C'est quel algo ? Perlin ? Diamond Square ?
    Tutoriels et FAQ TypeScript

  4. #4
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Salut!

    Beau boulot!
    Je suis toujours bluffé par ces systèmes de génération procédurale de planète, avec immersion, et tout ce que ça engendre comme boulot.
    Merci

    Visuellement, c'est super chouette

    Bravo toi pour tout ce que ça a dû représenter comme taff. Si j'ai un peu de temps, j'irai jeter un oeil sur la génération procédurale. C'est quel algo ? Perlin ? Diamond Square ?

    Merci !

    coté CPU pour gérer le LOD du maillage planète j'utilise une version simplifiée de l'algorithme CDLOD

    coté GPU pour générer les reliefs, j'utilise un calcul type "FBM" pour les côtes et les plaines, et "IQ turbulence" pour les montagnes, tout les deux basé sur du Perlin noise

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Explorer le code pourquoi pas, mais il est où, le code ?
    Sinon, n'aviez vous pas déjà présenté le projet sur le forum auparavant ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Explorer le code pourquoi pas, mais il est où, le code ?

    C'était peut être pas assez explicite ...

    Le projet est open source GPLV3, et hébergé sous github ici
    ... alors je remet le lien en clair : https://github.com/NevilClavain/DrawSpace

    Sinon, n'aviez vous pas déjà présenté le projet sur le forum auparavant ?
    Ca ne me rappelle rien... vous auriez le post en question ?


    Nev

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Le rendu est vraiment pas mal , il y'a juste un etit détails qui me gene (mais c'est pas tres grave mais ça fait pas réaliste) :


    Il faudrait que la lumière du Soleil éclaire uniformément les planètes , vu que un concentrer de lumière sur un 'point' , jamais vu sur terre

    Mais ça reste du bon boulot quand même , bonne continuation

  8. #8
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    En fait il s'agit du reflet "speculaire" du soleil sur l'ocean, comme sur cette photo :
    Nom : earth-from-space-hd Atmospheric Phenomena.jpg
Affichages : 545
Taille : 145,5 Ko

    il est peu être un peu trop "appuyé" sur mes screenshots, je ne sais pas ?; l'important c'est que ça reste un paramètre facilement modifiable.

    Nev

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    En effet, j'ai loupé le lien.
    Sinon, votre projet m'avait fait pensé à : http://www.developpez.net/forums/d15...l-multijoueur/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    Sinon, votre projet m'avait fait pensé à : http://www.developpez.net/forums/d15...l-multijoueur/
    Ha oui je comprend mieux mais je confirme : aucun lien, comme disait l'autre.

    Toutefois, avoir été confondu avec ce projet, je le prend comme un compliment

    Nev

  11. #11
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Citation Envoyé par NevilClavain Voir le message
    En fait il s'agit du reflet "speculaire" du soleil sur l'ocean, comme sur cette photo :
    Nom : earth-from-space-hd Atmospheric Phenomena.jpg
Affichages : 545
Taille : 145,5 Ko

    il est peu être un peu trop "appuyé" sur mes screenshots, je ne sais pas ?; l'important c'est que ça reste un paramètre facilement modifiable.

    Nev

    Sur cette photo l'effet "spéculaire" a été rajouté sur photoshop. Ce n'est pas dû au soleil.

  12. #12
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Très bon boulot !! le rendu est vraiment pas mal et il y a une montagne de taff derrière.
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  13. #13
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Qui m'a mis un pouce rouge ?

  14. #14
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par divxdede Voir le message
    Très bon boulot !! le rendu est vraiment pas mal et il y a une montagne de taff derrière.
    Merci ! beaucoup de taf certes, mais (rendons à César ce qui est à César) une petite partie se base sur des briques faites par d'autres personnes (shaders atmosphérique, code GPU pour le Perlin Noise notamment...)

    Nev

  15. #15
    Membre actif Avatar de NevilClavain
    Homme Profil pro
    Ingé logiciel
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 214
    Points
    214
    Par défaut
    Up : le projet vit toujours !
    Les taches en cours :
    • C++ : API en cours de ré-écriture sous la forme du pattern "ECS" (tâche achevée à 85%)
    • Ajout d'une couche Lua pour créer des scènes et des tests sous formes de scripts, depuis une console commandes integrée

Discussions similaires

  1. [MVC] Différences entre les framework MVC push et pull ?
    Par XavierZERO dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 15/01/2004, 13h12
  2. Recherche un framework RAD pour Eclipse
    Par Almex dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 08/10/2003, 12h24
  3. [Persistence][Framework]Avis.
    Par quilo dans le forum Persistance des données
    Réponses: 5
    Dernier message: 10/09/2003, 14h55
  4. Modifications framework
    Par rgarnier dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/06/2003, 18h08

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