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

OpenGL Discussion :

Shadow volume : est-ce le bon choix ?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut Shadow volume : est-ce le bon choix ?
    Hello,

    Pour mon moteur 3d, j'ai décidé d'utiliser les shadows volumes.

    Je n'ait pas encore fini mais j'ai fait une fonction qui permet d'afficher le volume d'ombre. J'était tout content d'avoir su afficher le volume d'ombre, le tout sans trop de perte de performance.

    Donc je passe à la suite et je désactive la mise à jour du tampon de profondeur et du tampon de couleur juste avant d'afficher mon volume d'ombre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    glDepthMask(GL_FALSE);
    glColorMask(0,0,0,0);
    //ici le code pour manipuler le stencil buffer que je n'ait pas encore codé
    showShadowVolume();
    glDepthMask(GL_TRUE);
    glColorMask(1,1,1,1);
    Et la : une perte de performance énorme:
    - Pour un modèle de 166 polygones, je passe de 25fps à 15fps rien qu'en désactivant le test de profondeur et le tampon de couleur.
    - Avec un modèle de 2000 polygones, je passe de 10fps à 3fps !

    Je sais que ma carte graphique est loin d'être à la mode (ati 9200) mais il me semble que la perte de performance pour seulement 2 désacivation/activation de tampon est énorme, non ?

    Donc ma question : Est-ce que les jeux vidéo actuel utilisent les shadow volume ou est-ce encore trop gourmand en resource pour du temps réel ?
    Est-ce que du shadow mapping serait plus performant ?

    Merci d'avance...

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    bah Doom3 tourne a 100% en shadow volume sur GeForce3/4 avec en plu de l'eclairage par pixel, donc oui, les shadow volumes sont utilisé dans des jeux.

    sinon, pour les problèmes de performances shadow volumes/shadow mapping, ca depend completement du type d'ombre que tu souhite généré, et en plus, elle sont sujet au problèmes d'aliasing...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut
    Merci pour cette réponse.

    Je vais attendre d'avoir ma gforce 7600 pour voir si j'y perd toujours autant en performance et si je serait capable d'afficher une scène entière avec uniquement des shadow volume

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Les shadow volumes demandent une extrusion du contour des objets 3D. Si tu laisses le CPU bosser , tu peux effectvement voir une baisse de performance (pour les meme raison que si tu dessines tes polygones en mode immediat (comprendre glBegin ... glEnd))

    Il vaut mieux creer la geometry dans de vertex buffer et utiliser un shader approprie (difficile sans code de savoir si tu ne le fais pas deja)

    note : tu ne desactives (et tu ne dois pas) le test de profondeur, mais juste l ecriture dans le Z buffer

Discussions similaires

  1. [Conseil] L'XML/ XSLT est-il le bon choix?
    Par Hauwke dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/04/2007, 21h47
  2. Access est-il le bon choix ?
    Par leskev dans le forum Access
    Réponses: 2
    Dernier message: 05/02/2007, 11h13
  3. JediVCS est-il un bon choix de gestion de sources ?
    Par WebPac dans le forum Delphi
    Réponses: 13
    Dernier message: 05/10/2006, 09h18
  4. Java + PHP ! Est ce un bon choix?
    Par condor_01 dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 28/07/2006, 10h19
  5. Réponses: 15
    Dernier message: 16/05/2005, 10h31

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