Bonjour à tous.
Je débute toujours avec C# et directX9.
J'ai le problème suivant :Je souhaiterais afficher un cylindre bleu en utilisant un « Material ».
//La ligne suivante est dans une procedure initGraphique : elle définit mon cylindre.
La fonction suivante devrait préparer le Device à utiliser le Material.
Code : Sélectionner tout - Visualiser dans une fenêtre à part meshCyl =Mesh.Cylinder(device, 0.05f, 0.05f, 0.7f, 20, 2);
/* la procédure render affiche un premier objet texturé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 protected void SetupMaterials() {/* procédure qui devrait préparer le Device à laffichage de mon cylindre*/ Material mat = new Material(); mat.Diffuse = Color.Blue; mat.Specular = Color.LightGray; mat.SpecularSharpness = 15.0F; device.Material = mat; device.RenderState.SpecularEnable = true; }
Mais ensuite le cylindre reste entiérement noir*/
Si vous avez une idée … Je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 protected void Render() { device.Viewport = MyViewport1; device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Azure,1.0F, 0); device.BeginScene(); device.Transform.World = Matrix.Identity; SetupMatricesObservateur(1);//calcul matrive view sp.SphereTextured(18, 0.1f, direction.X, direction.Y, direction.Z, ref device, ref texture2);// Cette ligne fonctionne et affiche une « terre » SetupMaterials(); meshCyl.DrawSubset(0);// Problème mon cylindre reste noir ! device.EndScene(); device.Present(); }
D’avance Merci.
PS : N'ayant pas trouvé comment ouvrir un nouvelle discussion. J'ai ajouté une réponse...
Partager