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

Projets Discussion :

EscapeNgine : Moteur 3D


Sujet :

Projets

  1. #21
    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
    Citation Envoyé par deadalnix Voir le message
    Joli !

    Tu pourrait nous en dire un peu plus sur ton « pipeline xml » ? Ça m'a l'air d'être un des gros points forts du moteur.
    En fait, je me suis grandement inspiré du système de moteurs 3D comme horde3d(En xml aussi) et Ogre3D (Système de compositor en format texte).On peut scripter le rendu dans un fichier XML, pour définir l'ordre de rendu des géométries, et leurs cibles.Par exemple, le pipeline avec lequel je travail en ce moment, et qui permet le Light pre pass est celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <Pipeline>
     
    	<IfDef Name="PreLight">
    		<CreateRenderTarget Name="GBUFFER_RT" Type="HalfVector4" Size="1.0" NbBuf="1" />
    		<CreateRenderTarget Name="LIGHTING_RT" Type="Color" Size="1.0" NbBuf="1" />
    	<IfDef />
     
    	<CreateRenderTargetScreen Name="SCREEN_RT" />
     
    	<RenderingLoop>
     
     
    		<IfDef Name="PreLight">
    			<!--
    				RENDER GBUFFER
    			-->
    			<SetTarget Target="GBUFFER_RT" />
    			<ClearRenderTarget />
    			<RenderGeometry Context="1" />
     
    			<!--
    				CREATE LIGHT BUFFER
    			-->
    			<SetTarget Target="LIGHTING_RT" />
    			<ClearRenderTarget />
    			<RenderPrePassLighting LightShader="PreLight\Light.fx" NormalRT="GBUFFER_RT" />
    		<IfDef />
     
     
    		<SetTarget Target="SCREEN_RT" />
    		<ClearRenderTarget />
     
    		<!--
    			RENDER DIFFUSE AND FORWARD-LIGHTING
    		-->
    		<IfDef Name="PreLight">
    			<RenderGeometry Context="0" >
    				<BindBuffer RenderTarget="LIGHTING_RT" BufIdx="0" />
    			</RenderGeometry>
    		<IfDef />
     
    		<!--
    			RENDER FOWARD LIGHTING
    		-->
    		<RenderGeometry Context="2" />
    		<RenderForwardLighting />
     
     
    	</RenderingLoop>
     
    </Pipeline>
    Dans ce pipeline je déclare des buffers (Render Target) qui seront ensuite utilisés dans la boucle de rendu. Dans la boucle de rendu on définit à quels moments seront rendus les géométries et dans quel contexte. Tout les contextes sont reliés à un shader. Par exemple, si j'ai besoins d'un buffer qui enregistre les normales de chacune des géométries, je peux associer un shader qui affiche les normales d'une géométrie pour chacun des pixels au contexte, et ensuite exploiter ce buffer pour de la lumière en screen space pour le deffered lighting, ou dans ce cas ci, le Light pre-pass. Puisque le pipeline est compilé, on peut aussi définir des macro pour la compilation, très utile ou gérer les effets, par exemple, pour désactiver les effets avancés sur les ordinateurs plus faibles.

    Éventuellement, j'ai le plan de faire la même chose pour les matériaux. En fait, les matériaux de chacune des géométries sont déjà définis à l'aide de XML, et ils sont liés à des shaders. Puisque la programmation de shaders n'est pas évident pour tout le monde, et aussi pour accentuer le développement, je compte créer un système XML pour définir des effets qui généreront des shaders automatiquement d'une façon transparente. Mais ça, ce n'est pas pour le moment...

  2. #22
    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
    Quelques nouvelles du moteur :

    Avec mes travaux scolaire et la fin de la session qui approche, j'ai beaucoup moins de temps à mettre sur le moteur, alors j'en retarde un peu la sortie (à janvier-février probablement). Le tout sera toujours open source et gratuit.

    Pour rendre le système de ressource compatible avec le xbox 360, j'ai du tout refaire la gestion(encore une fois), pour le rendre compatible avec le content pipeline de XNA.

    Ensuite, j'ai beaucoup travaillé sur le multi-thread, c'est une des choses qui a retarde pas mal la sortie du moteur. La gestion des threads va s'adapter automatiquement au nombre de processeurs logiques d'un ordinateur pour un maximum de performances. J'ai aussi implémenté JigLibX pour la physique, qui roule sur son thread, et pour rendre la physique fluide avec le rendu : les frames sont interpolés lors du rendu. J'ai aussi programmé un contrôleur physique pour les joueurs, qui ne sont pas affectés de la même manière par la physique que les autres éléments physiques.

    J'ai effectué un "stress test" sur mon portable (Core 2 duo T9300, Geforce Quadro 570M/Environ équivalent d'une 7600), en 720P(1280X720), sur une scène où il y a 500 lumières dynamiques accroché sur 500 boites physicalisés, et j'obtiens entre 20 et 30 FPS, donc temps réel :


    Sinon j'ai implémenté le prallax mapping par intération compatible avec le light pre pass :



  3. #23
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    magnifique

  4. #24
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 196
    Points : 109
    Points
    109
    Par défaut
    Et tu fais ça seul ?
    Punaise, de l'excellent boulot !
    Pourrais_tu m'envoyez ton mail par mail () stp, je voudrais voir 2 / 3 trucs avec toi.
    Merci d'avance.

    umbrella1965@hotmail.fr

    Corentin

  5. #25
    Membre actif Avatar de stilobique
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Infographiste 3D
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 277
    Points
    277
    Par défaut
    Tiens, des pierres qui brille

    Sinon c'est ces bien
    Environment Artist | Technical Artist | Game Art
    Porfolio Art Station

  6. #26
    Membre averti Avatar de yodaime
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2006
    Messages : 282
    Points : 340
    Points
    340
    Par défaut
    Miam ! J'ai hâte de tester tout ca.

    J'espère que tu prépares une bonne doc !

  7. #27
    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
    @corentin3D:
    Je t'ai envoyé un MP

    @killpatate:
    En fait, j'ai volontairement augmenté le spéculaire pour montrer l'effet, disons que ce sont des roches mouillés

  8. #28
    Membre actif Avatar de stilobique
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Infographiste 3D
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par Mikmacer Voir le message
    @corentin3D:
    Je t'ai envoyé un MP

    @killpatate:
    En fait, j'ai volontairement augmenté le spéculaire pour montrer l'effet, disons que ce sont des roches mouillés
    C'est bien ce que je pensait ^^
    Environment Artist | Technical Artist | Game Art
    Porfolio Art Station

  9. #29
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 196
    Points : 109
    Points
    109
    Par défaut
    Op répondu

  10. #30
    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
    Voici quelques nouvelles sur l'Avancement du moteur!

    J'ai commencé un gros refatoring, et je travails actuellement sur la version 0.1.0 du moteur pour une première sortie. J'ai fait beaucoup de tests et de debugging, la fin est proche!

    J'ai implémentés de nouveaux trucs, comme le SSAO, et un système de cascaded shadow map pour pouvoir avoir une qualité optimale de l'ombrage. J'ai aussi retravaillé le sytème de GUI, et il est maintenant beaucoup plus facilement extensible. Il fonctionne à l'Aide d'un template défini dans un fichier XML, donc ce sera asssez facile de changer tout le skin de l'interface pour des tests. Pour l'instant, je n'ai programmé que les boutons, text box, les labels, et les images simples(Des évènement du styl OnClick, OnMouseEnter, etc. sont gérés). Je suis actuellement en train de faire une démo, pour tester le tout, et éventuellement servir d'exemple.

    Pour la physique, j'ai grandemnet amélioré le tout en programmant un système qui gère les appelks d'intégration à un inverval régulier, et par dessus tout, pour rendre la physique plus fluide, je crée une interpolation entre chacune des frames d'états de la physique, ce qui aide grandement à la fluidité du système multithreadé.

    En attendant la démo, voici quelques images de mon implémentation d'ambient occlusion en temps réel à l'aide de ma version du SSAO :







    Avec un peu de shading :

  11. #31
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    joli

  12. #32
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 196
    Points : 109
    Points
    109
    Par défaut
    Salut,

    Est ce que tu as bien reçu mon dernier message ?

  13. #33
    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
    Le projet avance toujours, voici quelques news!

    Maintenant que j'ai finalisé la base du moteur, j'ai commencé un éditeur pour éditer les scènes et les ressources du jeu. En fait, cet éditeur va m'aider, entre autre, à visualiser beaucoup plus rapidement ce que les nouvelles features que je programme.

    Pour, l'instant, ce qui est fait au niveau de l'éditeur c'est:
    -Compilation des resources en .XNB(Je me suis battu un peu avec MSBUILD)
    -Un explorateur de ressource permettant de créer des dossiers, déplacer des resources dans une hiéarchies, effacer des ressources, créer des ressources et +.
    - Un éditeur de matériaux qui s'adapte aux shaders reliés(au niveau des parametres d'entré comme les texutres, et valeurs numériques), et un éditeur de textures
    -Un gestionnaire de vues qui permet d'avoir jsuqu'à 4 vues en même temps sur la scène, et chacunes de vues est indépendante et peut avoir un pipeline de rendu graphique différent (Exemple, un pipeline avec du HDR et du calcul de lumiere, un pipeline sans lumière, etc.)
    - Les vues peuvent se maximiser pour n'en voir qu'une.
    - Gestionaire de scene graph, pour pouvoir changer la relation parent/enfant entre les nodes d'une scènes, effacer des nodes, ajouter des nodes, etc.
    - On peut éditer les nodes
    -Un éditeur de sélections pour pouvoir gérer les sélections de nodes
    - Un système de Undo/Redo pour l'édition de la scène avec un nombre ajustables d'actions à annuler ou refaire
    - Un gizmo de rotation/translation/scale
    - etc... (Il commence en avoir un peu trop à dire)

    Sinon, il y aura encore énormément de choses d'ajouté prochainement(J'y travail dans mes temps libres). Exemple : Éditeur de terrain, génération de textures par algorithme de noise, éditeur texte pour les ressources comme les shaders, un gestionnaire pour gérer des setup afin de prendre en compte les ubershaders plus facilement, possibilité de lier des entitée logiques de jeu à une node, système de messages Scipt de niveau/Code C# scriptable pour pouvoir créer des évènements à partir de l'éditeur pour un niveau , éditeur pour les decals projetés, etc.

    Finalement, voici une image de la version du moment, encore très peu paufiné et avancé selon moi :

  14. #34
    Membre chevronné
    Avatar de lagwag
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 693
    Points : 1 891
    Points
    1 891
    Par défaut
    tu le programmes en quoi?

  15. #35
    Membre averti Avatar de yodaime
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2006
    Messages : 282
    Points : 340
    Points
    340
    Par défaut
    J'ai hâte de tester tout ça !

    Quand penses tu pouvoir mettre à disposition une petite démo ?

  16. #36
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Boulot impressionnant, bravo !

  17. #37
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    Félicitation.

  18. #38
    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
    merci!

    Pour répondre aux questions :

    @lagwag:
    C'est programmé avec C#/XNA avec le framework .NET 3.5, l'interface est en winforms.

    @yodaime:
    J'ai déjà commencé une démo il y a quelques temps, mais par manque de temps, je n'ai pas tout finalisé. En fait, en ce moment, ma priorité est de finir l'éditeur pourqu'il ai une bonne base et que les éléments de base soient utilisablent, car je coopère sur des projets de jeux avec le moteur en ce moment, et je veux que l'éditeur soit assez avancé le plus vite possible pour être utilisable par les artistes. À vrai dire, je compte sortir le moteur, avec l'éditeur(Qui sera déjà testé par divers artistes/prog) vers le début de l'été.

  19. #39
    Invité
    Invité(e)
    Par défaut
    Ca pête.

  20. #40
    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
    Sympa, ce serait bien de mettre les FPS et le nombre de poly, textures, ..., pour les images afin de se faire une idée.

    En tout cas bon boulot.

Discussions similaires

  1. Réponses: 27
    Dernier message: 25/08/2004, 22h30
  2. Moteur physique : comment l'implémenter ?
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 17/12/2003, 12h56
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. moteur de particules :Dessiner un point
    Par houssa dans le forum OpenGL
    Réponses: 2
    Dernier message: 25/06/2003, 22h13
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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