myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Knowledge Base » Artikel » [Tutorial] Irrlicht - erste Schritte
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[Tutorial] Irrlicht - erste Schritte

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen


S.H.-Teichhof ist offline

[Tutorial] Irrlicht - erste Schritte

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.

C#-Code:
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


Dateianhang:
unknown sydney.bmp (59,10 KB, 3.069 mal heruntergeladen)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von S.H.-Teichhof am 25.04.2006 19:22.

25.04.2006 19:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen

Themenstarter Thema begonnen von S.H.-Teichhof

S.H.-Teichhof ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das Model und das SDK Findet ihr unter  http://irrlicht.sourceforge.net/downloads.html
25.04.2006 19:25 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
mowfax mowfax ist männlich
myCSharp.de-Mitglied

avatar-1897.jpg


Dabei seit: 20.04.2006
Beiträge: 13
Entwicklungsumgebung: Visual Studio 2005 C# Express
Herkunft: Offenburg


mowfax ist offline Füge mowfax Deiner Kontaktliste hinzu AIM Screenname von mowfax: Mowfax

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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 smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von mowfax am 25.04.2006 21:31.

25.04.2006 21:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen

Themenstarter Thema begonnen von S.H.-Teichhof

S.H.-Teichhof ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von S.H.-Teichhof am 25.04.2006 21:40.

25.04.2006 21:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
mowfax mowfax ist männlich
myCSharp.de-Mitglied

avatar-1897.jpg


Dabei seit: 20.04.2006
Beiträge: 13
Entwicklungsumgebung: Visual Studio 2005 C# Express
Herkunft: Offenburg


mowfax ist offline Füge mowfax Deiner Kontaktliste hinzu AIM Screenname von mowfax: Mowfax

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

oh ok großes Grinsen
Danke für die Mühe, ich freu ich mich schon auf die Fortsetzung!
25.04.2006 23:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen

Themenstarter Thema begonnen von S.H.-Teichhof

S.H.-Teichhof ist offline

[Tutorial] Movment mit irrlicht

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Tutorial 2.Quake3Map

Dieses Tutorial Zeigt:
1. wie dem Benutzer das auswählen eines Video Treibers Gestaltet wird
2. wie eine Quake 3 Map in die Engine geladen wird.
3. wie eine vom Benutzer Gesteuerte Kamera erzeugt wird
4. Der Drawing Loop

Bitte Beachten: Sie Sollten mit den Grundlagen der Engine Vertraut sein. Dazu Bitte 1. Hallo World durcharbeiten.

1. Auswahl des Video Treibers

Der zu Verwendente Video Treiber wirb Bei der Irrlicht Engine durch ein Objekt des Typs Irrlicht.Video.DriverType Abgebildet dabei stehen Folgende Möglichkeiten zur Auswahl:
OPENGL
DIRECT3D9
DIRECT3D8
SOFTWARE2
SOFTWARE
NULL_DRIVER

Dem Benutzer Bieten wir Diese Möglichkeiten auf der Konsole an.

C#-Code:
            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.

C#-Code:
            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

C#-Code:
Irrlicht.IrrlichtDevice device = new IrrlichtDevice(driverType);

Und Prüfen ob die Erzeugung Erfolgreich war

C#-Code:
            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.

C#-Code:
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

C#-Code:
ICameraSceneNode cam = device.SceneManager.AddCameraSceneNodeFPS(null, 100, 100, -1);

Und Setzen Ihre Position Auf einen Startpunkt Innerhalb unserer Welt

C#-Code:
    cam.Position = new Vector3D(1395,142,1326);


4. Der drawing loop

Jetzt Brauchen wir nur noch unseren Drawing Loop.

C#-Code:
            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;
                    }
                }
            }

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von S.H.-Teichhof am 02.05.2006 21:06.

02.05.2006 21:01 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen

Themenstarter Thema begonnen von S.H.-Teichhof

S.H.-Teichhof ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

So und hier noch die komplette Code Datei


Dateianhang:
unknown Movment.zip (1,17 KB, 1.428 mal heruntergeladen)
02.05.2006 21:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.185
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
16.05.2006 13:06 Beiträge des Benutzers | zu Buddylist hinzufügen
DarkKiller DarkKiller ist männlich
myCSharp.de-Mitglied

Dabei seit: 13.07.2005
Beiträge: 32
Entwicklungsumgebung: SharpDevelop


DarkKiller ist offline Füge DarkKiller Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn es jemanden interessieren Würde:

 Hier sind fast alle Tutorials auf der Irrlichthomepage in .Net Sprachen portiert.

Ist aber englisch.
17.05.2006 20:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr.
p47rick p47rick ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.12.2006
Beiträge: 8
Entwicklungsumgebung: VS 2010
Herkunft: Österreich


p47rick ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

die Seite gibts nicht mehr...
Hat vll von euch jemand alle tutorials in c#?
03.07.2007 15:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.185
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

nee, seit meinem letzten Beitrag hab ich mir meine eigene 3D-Engine gebaut...

aber hier ist die Irrlicht Webseite:  http://irrlicht.sourceforge.net/
03.07.2007 15:58 Beiträge des Benutzers | zu Buddylist hinzufügen
Riv3r Riv3r ist männlich
myCSharp.de-Mitglied

Dabei seit: 13.06.2007
Beiträge: 206
Entwicklungsumgebung: Visual Studio 2008 Prof


Riv3r ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Geht das hier noch weiter? Is ja schon ziemlich altes Thema...
04.07.2007 07:55 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
Danwe
myCSharp.de-Mitglied

Dabei seit: 03.05.2007
Beiträge: 209


Danwe ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
14.08.2007 12:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
S.H.-Teichhof S.H.-Teichhof ist männlich
myCSharp.de-Mitglied

avatar-2460.jpg


Dabei seit: 03.10.2004
Beiträge: 1.549
Entwicklungsumgebung: #Developer
Herkunft: Sindringen

Themenstarter Thema begonnen von S.H.-Teichhof

S.H.-Teichhof ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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)
14.08.2007 13:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 13 Jahre.
Der letzte Beitrag ist älter als 12 Jahre.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.09.2019 16:58