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

DirectX Discussion :

Skybox : besoin d'explication


Sujet :

DirectX

  1. #1
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 64
    Par défaut Skybox : besoin d'explication
    Bonjour à tous,

    Je m'entraine avec DirectX en ce moment en créant un viewer de scene 3D.
    Jusqu'a maintenant j'ai un terrain et quelques murs et j'essaye d'y integrer une skybox.
    Pour m'aider j'ai télécharger le code disponible ici :http://www.gameengineer.net/download...DX9_Skybox.zip

    Il ya quelques trucs que je ne comprends pas dedans :

    dans la fonction d'initialisation des vertexs (buildSkybox) se trouve ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // A skybox should appear to be the farthest "thing" away.  When you really think about it you
    	// really should not realize that the skybox is an object but rather part of the scene.  
    	// In order to make sure the skybox is in the correct order we must temporarily disable Z buffering.
    	// 
    	// Set up rendering states for the sky box
        m_pD3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, false );
    	m_pD3DDevice->SetRenderState( D3DRS_LIGHTING, false );
    J'ai bien compris pourquoi on ne doit pas écrire temporairement dans le Z buffer (en fin ... je pense ) mais je ne comprend pas ... pour combien de temps ?, quand repermettre d'écrire dedans ?


    PS : j'ai intégrer ce code au mien, et j'ai bien la skybox mais plus mon terrain et mes murs. Du moins quand je créé ma skybox après tout le reste, sinon j'ai ma scene de base sans skybox.
    J'espere que les réponses à mes questions me permettront de comprendre pourquoi.

    Merci d'avance ^^

  2. #2
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    quand tu change un état du device (renderstate), il le garde tant que tu ne le change pas.
    Pour ta skybox, avec ZWRITEENABLE = false, ça veut dire que rien ne sera écrit dans le ZBUFFER, aucun teste de profondeur, simplement dessiné par dessus tout ce qui a été dessiné avant (dans le BACKBUFFER).
    Donc, il est préférable de dessiner ta skybox en premier, puis de réactiver l'écriture dans le ZBUFFER (ZWRITEENABLE = true) et ensuite dessiner ton terrain.

  3. #3
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 64
    Par défaut
    Ok merci pour tes précisions, j'ai désormais une skybox fonctionnelle (et toute jolie ^^)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    En fait c'est une astuce qui permet d'avoir une skybox de bonne qualité et infinie pour l'utilisateur

  5. #5
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    De bonne qualité parce qu'elle répond à l'exigence que l'on peut se faire d'une skybox passe encore mais infinie pas vraiment, enfaite juste pour les objets, ce n'est pas parce que tu désactive le z-buffer que tu ne peux pas passé aux travers de cette skybox (ce qui se fait simplement en déplaçant ta caméra ). Donc pour une vrai impression d'infinité il faut prendre en compte la position de la caméra pour le placement de la skybox

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'explication sur le c++
    Par poporiding dans le forum MFC
    Réponses: 13
    Dernier message: 17/12/2005, 18h01
  2. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  3. [C#] J'aurais besoin d'explication
    Par Roach- dans le forum Windows Forms
    Réponses: 18
    Dernier message: 10/03/2005, 16h00
  4. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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