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

Développement 2D, 3D et Jeux Discussion :

Rendu différé photoréaliste


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    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 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut Rendu différé photoréaliste
    Bonjour à tous,

    La rubrique 2D/3D/Jeux est heureuse de vous apporter un tutoriel sur une technique de rendu utilisée dans maintenant presque tous les jeux : le rendu différé.
    Cette technique repose intensivement sur l'utilisation des shaders et du rendu vers des textures.

    Bonne lecture.
    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.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Points : 75
    Points
    75
    Par défaut
    Bonjour,
    d'après ce que j'avais lu (notamment les commentaires de développeurs du moteur Ogre3d), les défauts du deferred shading sont assez limitants pour un moteur actuel (le cout mémoire qui va encore empirer si on veut rendre en 4K, les problèmes de transparence).
    Ils parlaient de variantes appelées forward+/forward 2.5D qui règlent ces problèmes mais qui nécessitent un carte graphique supportant directX 11 minimum.

  3. #3
    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 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Oui, le deferred shading prend de la mémoire. Cela est indiqué en fin du tutoriel. Pour un rendu 1080p, nous pouvons compter : 1920*1080*4*2 (4 canaux de couleurs, multipliés par deux car on utilise un tampon de profondeur). Cela fait : 16 Mo. Nos cartes graphiques ont aisément 1 Go de VRAM maintenant. Certains jeux montent jusqu'à 12 passe de rendu par image. Cela fait environ 200 Mo (après, je ne parle pas des optimisations de packing pour faire réduire la taille). Donc, personnellement je pense que cela est une technique très envisageables (et de toute façon, j'ose croire qu'elle est utilisée dans tous les jeux depuis DirectX 9).

    Bien entendu, il se peut que je me trompe et je serai curieux de lire l'article des développeurs de Ogre.
    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.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Points : 75
    Points
    75
    Par défaut
    j'ai retrouvé un post de Matias Goldberg (principal développeur de la version 2.0 de Ogre) sur la comparaison deferred shading vs forward+ :
    http://www.gamedev.net/topic/666577-.../#entry5216190

  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 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Merci beaucoup.

    Forward+ requires atomic counters for implementing efficiently on compute shaders; which makes DX11 level hardware a requirement. Deferred can be implemented to run on DX10 HW just fine.
    Il faut savoir faire la nuance. Le deferred shading est une technique "vieille" (environ 10 ans maintenant)*. Suivant les évolutions du matériel et de ses capacités, de nouvelles techniques vont apparaitre (donc le forward+). Chaque technique possède ses lacunes (toujours) et c'est pour cela que la recherche en rendu 3D est toujours aussi active.
    Maintenant, comme je l'ai dit, la technique du deferred shading n'est pas pour autant a eclipsé (au moins pour la connaissance générale), notamment car elle est présente dans la majorité des jeux entre 2002 (DirectX 9) et 2012 (disons, DirectX 11) (même si elle est encore présente aujourd'hui).
    Et votre remarque est toutefois très juste .

    * J'ai traduit le tutoriel ici présent, pour réparer la lacune du manque de ressource sur le sujet sur Developpez.com. Malheureusement, oui, j'ai un retard conséquent (et c'est aussi pour cela que j'ai besoin de gens prêt à m'aider à mettre la rubrique 2D/3D/Jeux au top niveau).
    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 régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Points : 75
    Points
    75
    Par défaut
    oui, je suis d'accord avec le fait que l'article est toujours intéressant (au moins pour comprendre la base, les problèmes et les améliorations possibles).
    le seul problème je trouve est l'absence de pointeurs vers des solutions pour le futur.

    et c'est surtout le message dans la conclusion qui me gène :
    Aucune autre technique ne vous permet de dessiner autant de lumières agissant sur une même surface sans paralyser les performances.
    autre post intéressant discutant des différentes techniques :
    http://www.ogre3d.org/forums/viewtopic.php?f=25&t=82786

  7. #7
    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 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    J'ai rajouté une mention.
    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.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Points : 75
    Points
    75
    Par défaut
    parfait

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/03/2015, 16h43
  2. Problème avec le rendu de sphère
    Par Francky033 dans le forum DirectX
    Réponses: 10
    Dernier message: 29/08/2003, 22h00
  3. Un objet rendu apparaît derrière un autre objet
    Par jamal24 dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2003, 20h47

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