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 :

Petit problème de génération de terrain


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 70
    Points : 92
    Points
    92
    Par défaut Petit problème de génération de terrain
    bon voila je vais tenter de vous expliquer mon problème, j'ai fait un programme DirectX (en C#) qui génère un terrain à partir d'une heightmap. Sans entrer dans les details mais pour que vous avez un max d'info
    - je génère une grille sur l'axe X/Z et y étant pour l'élévation
    - grille rendu en triangle strip list (list en serpantin) et format PositionNormalColored

    Voici mon problème, je me suis aperçu que j'avais une sorte de transparence et que l'on voyait, à travers les élément proche, des éléments lointains (jpg bordfond). Après qq recherches, j'ai lu que le pb pouvait venir du ration clipping plan near/fear, qui ici, est important 1/4000 (zbuffer & wbuffer).

    Mais, j'ai beau activé/désactive les z-buffer et w-buffer via
    device.RenderState.ZBufferEnable = true/false;
    device.RenderState.UseWBuffer = true/false;

    cela ne change rien... Dans mes derniers test j'ai pu constater que si je dessinais du fond vers le début forcement je n'ai plus ce problème (2iem jpg)
    (ce qui exclu une éventuelle transparence dans mes couleurs)

    or dans la faq du site j'ai lu que l'ordre des vertices n'avait pas bcp d'importance et même qu'il valait mieux dessiner du bord vers le fond pour éliminer les vertices cacher pr ceux des premiers plans...

    Donc je m'intérroge sur plusieurs point:

    - Est-ce que ma méthode est bonne à savoir pour de grand ratio clipping plan il faut dessiner le fond vers le bord ? Et laisser faire le Zbuffer pour les elements sans grand volume

    - Etant juste en colored, est que ce problème va disparaitre en textured ?

    - Y- a-t'il d'autres truc à faire pour bien utiliser le w-buffer ?

    - Est-ce une bonne méthode ? en existe-t-il d'autres ?

    Et petite question subsidiaire, je m'interroge sur l'unité de longueur entre 2 points (par exemple 1,0,0 et 2,0,0) cela correspond à quoi ?
    Images attachées Images attachées   

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    - Est-ce que ma méthode est bonne à savoir pour de grand ratio clipping plan il faut dessiner le fond vers le bord ? Et laisser faire le Zbuffer pour les elements sans grand volume
    Aucun rapport ; si tu as des problèmes d'imprécisions de Z-buffer, alors tu les auras quelque soit l'ordre dans lequel tu affiches tes triangles.

    - Etant juste en colored, est que ce problème va disparaitre en textured ?
    Si la réponse à cette question était oui, ça voudrait dire que la source du problème est la couleur des sommets. Je ne pense pas que ce soit le cas

    - Y- a-t'il d'autres truc à faire pour bien utiliser le w-buffer ?
    Je ne crois pas avoir déjà vu quelqu'un l'utiliser, et je ne crois pas que ce soit une bonne idée. Voir la doc sur ça, je crois que leur blabla est intéressant.

    Donc deux choses : vire ce W-buffer, et montre nous toutes tes initialisations qui ont rapport avec le Z-buffer. L'explication la plus probable serait que tu en as oublié une partie.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 70
    Points : 92
    Points
    92
    Par défaut
    pour l'ordre apparemment si tu regarde les 2 jpg, lorsque je dessine les vertex du fond vers le bord, c'est impeccable ... et non dans le sens inverse. (sur la doc directX il parle bien du pb du zbuffering sur des grands ratio).

    pour l'initialisation du buffer au début je ne faisais rien (le z-buffer étant apparemment activé par défaut) sinon en tout pour l'initialisation du z-buffer j'utilise cette commande comme expliquer :

    - device.RenderState.ZBufferEnable = true

    de toute façon avec les 2 jpg les wbuffer était désactivé ... donc je m'interroge tjrs.

    Comme tu le dis reste à voir si j'ai oublié qqchose pour le zbuffering

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Lorsque tu crées ton device, il faut aussi paramètrer le Z-Buffer dans les PresentParameters.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 70
    Points : 92
    Points
    92
    Par défaut
    effectivement je n'avais pas vu les paramètres dans les presentparameters, et en nettoyant également le zbuffer, cela marche maintenant dans les 2 sens.
    Merci beaucoup pour ton aide Laurent.

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

Discussions similaires

  1. [PDF] Migration petite application : génération des pdf. Utilisation de firefox -print ?
    Par raphaelneijens dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/06/2014, 12h06
  2. Réponses: 8
    Dernier message: 31/05/2011, 10h42
  3. Réponses: 7
    Dernier message: 22/02/2007, 15h12
  4. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 13h00
  5. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 19h55

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