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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
meshCyl =Mesh.Cylinder(device, 0.05f, 0.05f, 0.7f, 20, 2);
La fonction suivante devrait préparer le Device à utiliser le Material.

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 à l’affichage 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;
        }
/* la procédure render affiche un premier objet texturé.
Mais ensuite le cylindre reste entiérement noir*/

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();
 
            }
Si vous avez une idée … Je suis preneur.

D’avance Merci.
PS : N'ayant pas trouvé comment ouvrir un nouvelle discussion. J'ai ajouté une réponse...