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 ?
Partager