Jointella
22-04-2009, 14:12
Ciao a tutti
mi sto vedendo un pò come funzionano le directx ma ho un problema che non riesco a superare
cerco di caricare una mesh da un file.x,il file viene caricato e la texture viene trovata ma non riesco a visualizzare niente sullo schermo.
posto parte del codice incriminato
questo è il form paint
private void Form1_Paint(object sender, PaintEventArgs e)
{
dev.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1, 0);
dev.BeginScene();
dev.Transform.View = Matrix.LookAtLH(new Vector3(0, 10, -15),new Vector3(0, 0, 0),new Vector3(0, 1, 0));
dev.Transform.World = Matrix.RotationY(Environment.TickCount / 1000.0f);
for (int i = 0; i < NumeroDiMesh; i++)
{
dev.SetTexture(0,texture[i]);
dev.Material = materiale[i];
cubo.DrawSubset(i);
}
dev.SetTexture(0, null);
dev.EndScene();
dev.Present();
this.Invalidate();
}
questa la funzione con la quale carico il file nella mesh
public void MeshCostr(string fsrc, bool mateOn, bool textOn, string path)
{
ExtendedMaterial[] Mat;
cubo = Mesh.FromFile(path + fsrc, MeshFlags.Dynamic, dev, out Mat);
NumeroDiMesh = Mat.Length;
materiale = new Material[NumeroDiMesh];
texture = new Texture[NumeroDiMesh];
int i;
for (i = 0; i < NumeroDiMesh; i++)
{
materiale[i] = Mat[i].Material3D;
materiale[i].Ambient = materiale[i].Diffuse;
if (textOn == true)
{
if (Mat[i].TextureFilename != null)
{
texture[i] = TextureLoader.FromFile(dev, path + Mat[i].TextureFilename);
}
}
}
spero che mi possiate aiutare
ciao ciao
mi sto vedendo un pò come funzionano le directx ma ho un problema che non riesco a superare
cerco di caricare una mesh da un file.x,il file viene caricato e la texture viene trovata ma non riesco a visualizzare niente sullo schermo.
posto parte del codice incriminato
questo è il form paint
private void Form1_Paint(object sender, PaintEventArgs e)
{
dev.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1, 0);
dev.BeginScene();
dev.Transform.View = Matrix.LookAtLH(new Vector3(0, 10, -15),new Vector3(0, 0, 0),new Vector3(0, 1, 0));
dev.Transform.World = Matrix.RotationY(Environment.TickCount / 1000.0f);
for (int i = 0; i < NumeroDiMesh; i++)
{
dev.SetTexture(0,texture[i]);
dev.Material = materiale[i];
cubo.DrawSubset(i);
}
dev.SetTexture(0, null);
dev.EndScene();
dev.Present();
this.Invalidate();
}
questa la funzione con la quale carico il file nella mesh
public void MeshCostr(string fsrc, bool mateOn, bool textOn, string path)
{
ExtendedMaterial[] Mat;
cubo = Mesh.FromFile(path + fsrc, MeshFlags.Dynamic, dev, out Mat);
NumeroDiMesh = Mat.Length;
materiale = new Material[NumeroDiMesh];
texture = new Texture[NumeroDiMesh];
int i;
for (i = 0; i < NumeroDiMesh; i++)
{
materiale[i] = Mat[i].Material3D;
materiale[i].Ambient = materiale[i].Diffuse;
if (textOn == true)
{
if (Mat[i].TextureFilename != null)
{
texture[i] = TextureLoader.FromFile(dev, path + Mat[i].TextureFilename);
}
}
}
spero che mi possiate aiutare
ciao ciao