Tutorial Teil 1: Hallo Word
In diesem Teil wird behandelt werden:
1.) die Einstellungen der IDE zur Verwendung der Irrlicht Engine behandeln.
2.) die Grundlagen der Verwendung der Irrlicht Engine
1.)Vorbereitung der IDE
Um die Irrlicht Engine in Ihrem Programm zu Verwenden müssen sie zuerst eine Referenz auf die irrlicht Dll (Irrlicht.NET.dll)Setzen. Bei dieser Gelegenheit stellen Sie auch sicher, dass (Irrlicht.dll) sich im gleichen Verzeichnis befindet
2.)Das erste Beispiel Hallo World
Nun zum Eigentlichen Programm.
using System;
using Irrlicht;
using Irrlicht.Video;
using Irrlicht.Core;
using Irrlicht.Scene;
namespace HelloWorld
{
class Example
{
[STAThread]
static void Main(string[] args)
{
// Initialisieren der Engine
IrrlichtDevice device = new IrrlichtDevice(DriverType.OPENGL);
device.WindowCaption = "Irrlicht.NET C# example 01 - Hello World";
// Laden der Sydney Textur
ITexture texSydney =
device.VideoDriver.GetTexture(@"sydney.bmp");
// Lädt den Animierten mesh von Sydney
Irrlicht.Scene.IAnimatedMesh mesh =
device.SceneManager.GetMesh(@"sydney.md2");
// Fügt eine vom User kontrollierte Kamera und einen animierten mesh in die Szene
ICameraSceneNode cam =
device.SceneManager.AddCameraSceneNodeFPS(null, 100, 100, -1);
cam.Position = new Vector3D(20,0,-50);
ISceneNode node =
device.SceneManager.AddAnimatedMeshSceneNode(mesh, null, -1);
node.SetMaterialTexture(0, texSydney);
node.SetMaterialFlag(MaterialFlag.LIGHTING, false);
// Versteckt den Mauszeiger
device.CursorControl.Visible = false;
// Startend den drawing loop
int fps = 0;
while(device.Run())
{
if (device.WindowActive)
{
device.VideoDriver.BeginScene(
true, true, new Color(0,100,100,100));
device.SceneManager.DrawAll();
device.VideoDriver.EndScene();
// Anzeige der Fps
if (fps != device.VideoDriver.FPS)
{
fps = device.VideoDriver.FPS;
device.WindowCaption =
"Irrlicht.NET C# example 01 - Hello World [" +
device.VideoDriver.Name + "] fps:" + fps;
}
}
} // Ende des drawing loop
} // Ende main()
} // Ende class
} // Ende namespace
Das Beispiel zeigt wie die grundlegenden Funktionen der Irrlicht Engine zu verwenden sind.
Es lädt ein md2 file, fügt eine Textur hinzu und zeigt eine animation. Dem Benutzer ist es des weitern möglich mit Hilfe der Tastatur und der Maus um die Objekte Herum zu Fliegen
Häufig Auftretende Probleme
• Wenn der Compiler angibt das 'Irrlicht' nicht gefunden werden kann Fügen sie eine Referenz auf Irrlicht.NET.dll ein
• Wenn es Colmpilieren ohne Probleme Funktioniert, aber das Programm eine Exzeption wie diese wirft: "An unhandled exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module. Additional information: File or assembly name Irrlicht.NET, or one of its dependencies, was not found."
fehlt die Irrlicht.DLL. Kopiere Sie diese in ein Verzeichnis in dem die IDE Sie finden kann und wo die Irrlicht.NET.Dll ebenso vorhanden ist.
Nächster Teil: [mehrteiliges Tutorial] Irrlicht
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Das Model und das SDK Findet ihr unter http://irrlicht.sourceforge.net/downloads.html
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Hey danke dafür, hört sich echt interessant an die Engine!
Gibt das ein längeres Tutorial?
P.S. Meinst du das ist im Smalltalk-Forum richtig aufgehoben?
[Edit] Ich seh grad dass die Tutorials ja alle auf der Seite drauf sind 🙂
dieses ja aber in Englisch und das 2. an dem ich gerade arbeite ist nur in C++ Verfügbar also macht die arbeit doch sinn.
p.s Ich habe vor alle 14 C++ Tuturials nach C# zu portieren und in Deutsch zu übersetzen
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
oh ok 😁
Danke für die Mühe, ich freu ich mich schon auf die Fortsetzung!
Tutorial 2.Quake3Map
Dieses Tutorial Zeigt:
Bitte Beachten: Sie Sollten mit den Grundlagen der Engine Vertraut sein. Dazu Bitte 1. Hallo World durcharbeiten.
**
Dem Benutzer Bieten wir Diese Möglichkeiten auf der Konsole an.
Console.Write("Please select the driver you want for this example:\n"+
" (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"+
" (d) Software Renderer\n (e) Apfelbaum Software Renderer\n"+
" (f) NullDevice\n (otherKey) exit\n\n");
Werten Seine Eingabe mit Hilfe von Console.ReadKey().KeyChar und einer switch Anweisung aus und Speichern sie in das Objekt driverType das wir vorher angelegt haben.
switch(Console.ReadKey().KeyChar)
{
case('a'):
{
driverType = Irrlicht.Video.DriverType.DIRECT3D9;
break;
}
case ('b'):
{
driverType = Irrlicht.Video.DriverType.DIRECT3D8;
break;
}
case ('c'):
{
driverType = Irrlicht.Video.DriverType.OPENGL;
break;
}
case ('d'):
{
driverType = Irrlicht.Video.DriverType.SOFTWARE;
break;
}
case ('e'):
{
driverType = Irrlicht.Video.DriverType.SOFTWARE2;
break;
}
case ('f'):
{
driverType = Irrlicht.Video.DriverType.NULL_DRIVER;
break;
}
default:
{
return ;
}
}
Nun Erzeugen wir unser Irrlicht.IrrlichtDevice
Irrlicht.IrrlichtDevice device = new IrrlichtDevice(driverType);
Und Prüfen ob die Erzeugung Erfolgreich war
if (device == null)
{
return;
}
**
2. Laden des Map Files **
nun Laden wir das mapfile in unser device FileSystem dies machen wir per
device.FileSystem.AddZipFileArchive("map-20kdm2.pk3");
Dies können wir tun da pk3 Dateien „nur“ zip Dateien Sind..
Jetzt noch die Eigentliche Map(20kdm2.bsp) in einen Irrlicht.Scene.IAnimatedMesh Laden und Überprüfen ob das Laden Erfolgreich war.
Irrlicht.Scene.IAnimatedMesh mesh = device.SceneManager.GetMesh("20kdm2.bsp");
if (mesh == null)
{
return;
}
**
3.Die Benutzer gesteuerte Kamera**
Nun Fügen wir noch eine Benutzergesteuerte Kamera zu unserer Szene
ICameraSceneNode cam = device.SceneManager.AddCameraSceneNodeFPS(null, 100, 100, -1);
Und Setzen Ihre Position Auf einen Startpunkt Innerhalb unserer Welt
cam.Position = new Vector3D(1395,142,1326);
**
4. Der drawing loop**
Jetzt Brauchen wir nur noch unseren Drawing Loop.
while(device.Run())
{
if (device.WindowActive)
{
device.VideoDriver.BeginScene(true, true, new Color(0,100,100,100));
device.SceneManager.DrawAll();
device.VideoDriver.EndScene();
if (fps != device.VideoDriver.FPS)
{
fps = device.VideoDriver.FPS;
device.WindowCaption = "Irrlicht.NET C# example 01 - Hello World ["+
device.VideoDriver.Name + "] fps:" + fps;
}
}
}
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
So und hier noch die komplette Code Datei
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Ein wirklich interessantes Thema! Ich freue mich, daß du dir die Mühe gemacht hast, die Tutorials zu übersetzen! Das Hello World Beispiel hab ich schon auf der Irrlicht Homepage gefunden - und es hat auf Anhieb funktioniert, sogar mit eigenen Modellen.
Ich würde mich über weitere Beiträge sehr freuen! Am meisten würden mich (und viele andere sich auch) Themen interessieren, wie Shader oder das Scene-Management in Irrlicht. Z.b. wie man vorhandene fx-Shader oder Szenen mit mehreren Objekten aus einem Grafikprogramm wie 3ds max in Irrlicht integrieren kann. Leider gibt es da bisher noch sehr wenig Infos dazu, vor allem in C#.
Viele Grüße,
Christian
Weeks of programming can save you hours of planning
Wenn es jemanden interessieren Würde:
Hier sind fast alle Tutorials auf der Irrlichthomepage in .Net Sprachen portiert.
Ist aber englisch.
die Seite gibts nicht mehr...
Hat vll von euch jemand alle tutorials in c#?
nee, seit meinem letzten Beitrag hab ich mir meine eigene 3D-Engine gebaut...
aber hier ist die Irrlicht Webseite: http://irrlicht.sourceforge.net/
Weeks of programming can save you hours of planning
Geht das hier noch weiter? Is ja schon ziemlich altes Thema...
Würde mich auch freuen wenns noch weiter geht.
Habe das gerade erst entdeckt u. habe schonmal einen Blick auf Irrlicht geworfen, ich werd mir das auf jeden Fall mal genauer ansehen.
Die ANpassung der ersten 2 Teile an den Neuen .Net Warpper ist in Arbeit und ich hoffe das ich so in 14 Tagen ein weiteres Teil Ferig Habe (Steck grade über beide Ohren in Arbeit)
Wir Arbeiten eigendlich nicht wir nehmen nur das geld