Voir la version complète : Z Fighting avec Modeles MD2
LaurentUSA
15/04/2005, 20h34
J'ai un soucis avec des modeles MD2 faits avec Maya et testes avec MilkShape. Tout se presente tres bien dans ces deux logiciels - bases sur OpenGL si je me rappelle bien.
Lorsque je les rends avec DirectX, j'ai beaucoup de Z-Fighting sur les sections du modeles qui ont des polys qui sont "proches".
Comment eliminer ou au moins limiter cet effet ?
GothikSoft
26/04/2005, 10h15
Le Z-Fighting est gere par la carte graphique donc je pense (j'en suis pas sur) que le rendu va changer selon les marques de carte graphiques.
Comment initialiser vous un model md2? Est t'il gerer par un vertex buffer et un index buffer?
Laurent actuellement je fais mumuse avec les md3 et entre les sections des polys il semble y avoir plus que des poly tres proches ... c'est carrement du clonage de vertex.
J'ai pas mal galéré a cause de cela, et apres de longues heures de cassage de cerveau j'ai compris a quoi ca servait (enfin il me semble): il semblerait que le clonage de vertex soit principalement du au besoin de spécifier des coordonnées de texture differente pour un meme vertex (par exemple la frontiere entre le haut de la jambe et le corps, les textures peuvent etre radicalement differentes et donc positionner respectivement de maniere non continue dans la texture map). Quand on a trouvé ca a l'air con, mais j'ai tres peu d'experience dnas l'utilisation de ce genre de modele (animé-texturé, representant autre chose qu'un lapin ou un buddha :p).
Enfin bref que du bonheur surtout pour moi qui devait recuperer un model "propre" pour faire de la génération d'ombre (ShadowVolume, SoftShadowVolume, Smoothie Edge ... enfin plein de techniques s'appuyant sur les aretes de contours).
Pour revenir a ton probleme, c'est bizarre ton ZFighting ... il me semblait que ca n'apparaissait justement que pour les chevauchements de faces et non le reaffichage de meme face ... avec le format md3 il semblerait que les vertex soient définis avant transformations (interpolation entre keyframes ... etc) avec des entiers. Essai si c'est possible sous DX, d'afficher ton mesh avec des entiers et non des floattants pour voir si ton probleme disparait.
Sinon ... je vois pas :p, a part utiliser l'équivalent du Polygon Offset Fill pour DirectX, qui te permettrait de gerer la superposition... mais c un peu bourrin ... voir meme tres bourrin :-) surtout pour un format aussi rependu que md2.
Sinon met toi a OpenGL lol nan je plaisante.
Bonne chance.
vBulletin® v.3.6.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org