Salut,
Jai un petit problème daffichage avec Direct3D dun cube.
Tout dabord, mon cube est défini par 36 vecteurs, 6 par face. Chaque vecteur a une couleur, les coordonnées x, y,z et les coordonnées de texture.
Jaffiche mon cube avec un Alpha Blending pour donner des facettes semi-transparentes.
Voici le code que jutilise pour activer lAlpha blending
device.RenderState.AlphaBlendEnable = true;
device.RenderState.DestinationBlend = Blend.InvSourceAlpha;
device.RenderState.SourceBlend = Blend.SourceAlpha;
Quand je fais ca, mon cube saffiche bien, et il est transparent. Pas de problème. Jutilise une fonction de rotation des axes, alors comme ca je vois le cube tourner et lAlpha Blending marche nickel
Ensuite, je voulais activer le Z-Buffer et le DepthStencil. Voici mes instructions :
presentParams.AutoDepthStencilFormat = DepthFormat.D16;
presentParams.EnableAutoDepthStencil = true;
...
device.RenderState.ZBufferEnable = true;
Alors la, quand jexecute le programme, cest pas toutes les faces du cube qui sont transparentes (je veux dire semi-transparentes). La premiere face est opaque par exemple. La deuxieme face est opaque mais quand elle vient se placer devant la premiere face, elle devient semi-transparente.
http://www3.sympatico.ca/red.zrari/Cube3D.jpg
Jai essayé plein de truc pour remédier a ce probleme.
Par exemple, jai essayé ca :
device.RenderState.AlphaFunction = Compare.GreaterEqual;
device.RenderState.ReferenceAlpha = 0;
device.RenderState.AlphaTestEnable = true;
et ca:
device.RenderState.ZBufferWriteEnable = true;
device.RenderState.ZBufferFunction = Compare.Always;
mais ca résout pas vraiment le problème...Jai fait beaucoup de recherches pour trouver une solution, mais la, je suis vaincu.
Le code source complet se trouve sur le site web suivant :
http://www3.sympatico.ca/red.zrari/Cube3D.zip
une image qui explique le probleme :
http://www3.sympatico.ca/red.zrari/Cube3D.jpg
une image cool que javais fait, mais pas trop rapport avec le sujet :
http://www3.sympatico.ca/red.zrari/cube.JPG
Une derniere chose, pouvez-vous me citer aussi quelques forums plus spécialisé où je peux poster mon message.
Info divers :
------------------
Visual Studio 2003
Managed DirectX
Merci davance
P.S. : je compte poster ce programme sur codes-sources une fois terminé et bien documenté
@++