Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von DeRaaZuul
Thema: Mesh.FromFile
Am im Forum: Grafik und Sound

Also ich habe ein Problem damit wenn ich eine Mesh laden will.Immer kommt bei Mesh.FromFile... ein unbekannter Fehler.Ich bin völlig ratlos woran es liegen könnte.Die Beispiel vom SDK laufen ohne Probs.Das selbe Problem habe ich ,wenn ich Polygon texturisieren will und Texturloard.FromFill benutze, kommt ein Fehler.Ich bin völlig Ratlos , hier der Code für das Meshladen:

#region Using directives

using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using Direct3D = Microsoft.DirectX.Direct3D;


#endregion

namespace ConsoleApplication1
{
class Program : Form
{
Device dev;
Material[] mat = null;
Texture[] tex = null;
Mesh mesh;



public void InitGfx()
{
PresentParameters pp = new PresentParameters();
pp.Windowed = true;
pp.SwapEffect = SwapEffect.Discard;
pp.EnableAutoDepthStencil = true;
pp.AutoDepthStencilFormat = DepthFormat.D16;

dev = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, pp);
SetCamera();
LoadMesh("tiger.x");



}

public void LoadMesh(string name)
{
ExtendedMaterial[] em=null;
//Da kommt der Fehler
mesh = Mesh.FromFile(name, MeshFlags.SystemMemory, dev, out em);


if ((em != null) && (em.Length != null))
{
mat = new Material[em.Length];
tex = new Texture[em.Length];
for (int i = 0; i < em.Length; i++)
{
mat = em.Material3D;
if (em.TextureFilename != null && em.TextureFilename != string.Empty)
{
tex = TextureLoader.FromFile(dev, em.TextureFilename);
}
}
}
}


public void DrawMesh()
{
for (int i = 0; i < mat.Length; i++)
{
dev.SetTexture(0, tex);
dev.Material = mat;
mesh.DrawSubset(0);
}
}

public void Render()
{

Material mat = new Material();

dev.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.AliceBlue, 1.0f, 0);
dev.BeginScene();

DrawMesh();


dev.EndScene();
dev.Present();
}

public void SetCamera()
{
dev.Transform.View = Matrix.LookAtLH(new Vector3(0.0f,0.0f, -10.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f));
dev.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, 1.0f, 1.0f, 100.0f);
}

protected override void OnPaint(PaintEventArgs e)
{
Render();
}

static void Main(string[] args)
{
Program frm = new Program();
frm.Show();
frm.InitGfx();
frm.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);

while (frm.Created)
{
frm.Invalidate();
Application.DoEvents();

}
}
}
}

Thema: Speed fragen
Am im Forum: Grafik und Sound

Also als erstes da das hier mein 1ter Beitrag ist, will ich mal im Forum hier mit nem großen HALLO begrüßen
Ich programmiere selber NOCH in C++ und DirectX , ich habe mit C# angesehen und finde es gefällt mir persönlich besser als C++.Deshalb ziehe ich es in betracht auf C# umzusteigen aber ich frage mich wie sieht es in sachen Speed aus.Ich denke ein DirectX-Programm was in C++ geschrieben wurde ist schneller als das was in C# geschrieben wurde , oder?Hat jemand vllt schon paar kleine Benchmarks erstellt?Und wie denkt ihr sieht es überhaupt in der Zukunft aus , denkt ihr es werden irgendwann kommerzielle Projekte mal mit C# und DirectX gemacht?Seufz hoffe meine Rechtschreibung ist ned zu schlimm , 3 Wochen Ferien haben ihre Spuren hinterlassen