XNA 3D Tutorial Anzeigen eines Objektes. Inhalt Lernen Sie, wie Sie Modelle implementieren. Initializing Lernen Sie, wie Sie Modelle aus der Content Directory.

Slides:



Advertisements
Ähnliche Präsentationen
Steigung m berechnen Man kann die Steigung auch berechnen,
Advertisements

Vom graphischen Differenzieren
Mathematik 9. Jahrgang: Zentrische Streckung
WR + WS ZEIGEN Neues aus der Mathematik.
Markus Tank, Wie arbeitet man mit dem Rich Text Editor?
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Was ich gern lese Lesetagebuch von
Heute: Scherenzange zeichnen
Gymnasium Horn – Bad Meinberg
Wie macht man ein Sudoku? Transformations-Methode:
Outlook_03 - Freigabe von Postfächern für Kollegen
Eine Bewerbung schreiben
Eine Bewerbung schreiben
Unterrichtsmaterial (D7)
Ich möchte gerne mehrere Bilder auf ein Folie
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Hyperlinks und Anker Links notieren
Gestatten Sie, dass ich mich vorstelle:
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
Übungsaufgaben für Microsoft Excel
Chaos und Fraktale M. Bostelmann Michael Bostelmann.
Die folgenden Seiten enthalten eine Anleitung wie man
Mohammad Es ist einfach geboren zu werden, aber es ist ganz schwierig Mensch zu sein.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Der wichtigste Körperteil
Hallo, ich würde gerne wissen, wie ich einen graphen, den ich mit
100 kg Wie wird’s gemacht?! Klick.
Hallo, ich habe dieses Forum gefunden und hoffe dass mit vielleicht hier jemand mit einem Animationsproblem helfen kann. Ich soll (als Hausaufgabe mehr.
Hallo zusammen! hab ein -vermutlich- kleines problem: ich kann keine einzelnen wörter in meiner präsentation einblenden lassen. gegebenheit: ich hab ne.
Hallo Ich möchte einen Text einer Folie nicht einfach nur einfliegen lassen, sondern genau diesen Text, der schon an einer bestimmten Stelle steht, vergrößern.
das ist ein drehender Text
Nächste Folie Hallo, ich bin ein ziemlicher Anfänger in bezug auf PowerPoint. Ich hab folgenden Problem: Also ich habe einen Schriftzug, bestehend aus.
Wie kann man erreichen, das jemand der
Ich werde dir drei Fragen stellen und möchte, dass du sofort antwortest. Du darfst dir keine Bedenkzeit nehmen, sondern musst sofort antworten. OK?, bereit?
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
© powered by Alchimedus ® Seite 1 Ihr Schnelleinstieg führt Sie durch GenoGyn QM interaktiv Kommen wir zu Ihrem ersten Schritt:
Wo könnte das sein? Mann, ist das schwer!. Jetzt sieht man schon mehr oder? Ja find ich auc h!
Soziogramm und Soziogramm Designer
Mitgliederverwaltung Schritt 1 : Wie gewohnt loggt ihr euch mit eurem Wiki-Account ein! Schritt 2: Nun müsst ihr auf Wiki Verwalten klicken.
Vor dem Einlesen eines LV wird ein Projekt definiert. Für die Bedienung von x:plan sind folgende Elemente anwählbar:
Erste Schritte mit dem virtuellen Klassenzimmer Diese Anleitung verwendet in den meisten Fällen den Browser Firefox; Für den Browser Internet-Explorer.
Impossible.
Seite 1 © powered by Alchimedus ® Ihr Schnelleinstieg führt Sie durch RECHENFABRIK Medical QM interaktiv Kommen wir zu Ihrem ersten Schritt:
Hier eine mögliche Antwort:
WARUM MAMI...?.
Vom graphischen Differenzieren
Alles was man wissen muss! By Benjamin Zehetner. Der Aufbau Der Standart Aufbau ist: (Hier muss alles drinnen sein) (Hier befinden sich wichtige Informationen.
Grammatikalische Begriffe im Unterricht
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
A Workshop About this chapter General description Units Time Schedule
Webserver einrichten mit Konfiguration, online stellen, Zugang © by Lars Koschinski 2003.
UNSERER HOMEPAGE Anleitung zur Registrierung europa.eu Stand
Könntest Du in einem Jahr sagen
MAYA K. Canvas-Projekt. In HTML- body: Canvas tag öffnen seamntsiches HTML) Canvas bekommt eine id (1mal verwenden, mit # angesprochen) Höhe und breite.
Schritt für Schritt-Anleitung
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Vieren - Programmierung Im Jahre 1981 traten die ersten Viren auf, die noch sehr einfach gestrickt waren, und nicht sehr destruktiv waren. Mittlerweile.
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Tutorium Software-Engineering SS14 Florian Manghofer.
Der wichtigste Körperteil
 Präsentation transkript:

XNA 3D Tutorial Anzeigen eines Objektes

Inhalt Lernen Sie, wie Sie Modelle implementieren. Initializing Lernen Sie, wie Sie Modelle aus der Content Directory laden können. Contentloading Lernen Sie wie man Modelle zeichnet. Zeichnen

Initializing Das Initialisieren eines 3D-Objektes ist, wenn man XNA sowie so schon in 2D ausprobiert hat, ganz einfach: Zunächst fügen Sie in ihre Klasse, welche automatisch bei der Projekterstellung erstellt wird, folgende Zeile ein: Model myModel;

Contentloading Nachdem Sie die Objektinstanz vom TypModel erstellt haben, muss das Modell aus der Content-Directory (Contentordner im Projekt) geladen werden. Dies erledigt sich durch folgende Zeile, welche Sie in die LoadContent-Methode, der vorherig genannten Klasse, einfügen: myModel = Content.Load (filename); Statt filename schreiben Sie einfach den Namen ihres Modelles zwischen die Anführungszeichen

Zeichnen Nun kommt der eigentlich komplizierteste Part in der ganzen Sache – Das Zeichnen. Aber keine Angst es ist nicht so schwer, wie es aussieht. Hier zunächst der Code: foreach(ModelMesh mesh in myModel.Meshes) { foreach(BasicEffect effect in mesh.Effects) { effect. EnableDefaultLighting(); effect.World = Matrix.Identity; effect.View = Matrix.CreateLookAt(new Vector3(0, 0, -5), Vector3.Zero, Vector3.Up); effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), GraphicsDevice.Viewport.AspectRatio, 0.1f, 1000f); } mesh.Draw(); }

Zeichnen-Fortsetzung Um nun kurz zu erklären was in diesem Code passiert: Zunächst werden 2 Schleifen durchgegangen. Die erste Schleife zählt alleModelmesh aus, übergibt diese an die zweite Schleife und zeichnet diese zum Schluss noch mittels der Funktion: Draw() des Mesh-Objektes.

Zeichnen-Fortsetzung In der 2 Schleife werden alle Effekte des aktuellen Meshes aus der vorherigen Schleife gesetzt. Zunächst wird mittels der Funktion EnableDefaultLightning() das Standartlicht auf das Objekt gesetzt. Danach wird die Eigenschaft World desBasicEffect-Objektes belegt, welche ich in der nächsten Seite nochmals genauer erklären werde.

Zeichnen-Fortsetzung Die Eigenschaft World wird in dem hier verwendeten Beispiel mit Matrix.Identity belegt, was bedeutet dass das Objekt an Position 0,0,0 mit keiner spezifischen Rotation oder Skalierung gezeichnet wird. Denn die World-Eigenschaft des Objektes bestimmt dessen, wie oben genannt, Rotation, Position und Skalierung. Wollen Sie z. B. die Position des Objektes verändern geben Sie statt Matrix.Identity,Matrix.CreateTranslation(new Vector3(x,y,z)) ein Statt x,y,z müssen natürlich die Koordinaten eingegeben werden.

Zeichnen-Fortsetzung Als nächstes wird die View-Eigenschaft belegt. Dazu wird wieder eine neue Matrix erstellt, wobei der erste Parameter, die Position der Kamera darstellt, der zweite Parameter den Punkt auf den die Kamera gerichtet ist und der dritte Parameter der Orientierungspunkt der Kamera. In der nächsten Seite zeige ich ein Bild, welches das besser beschreiben kann.

Zeichnen-Fortsetzung Das sollte das vorhererzählte nochmals gut verdeutlichen. Natürlich können für die Kamera auch andere Koordinaten genommen werden.

Zeichnen-Fortsetzung Als letztes wird die Projection-Eigenschaft belegt, welches wieder eine Matrix benötigt. Hierzu wird die CreatePerspectiveFieldOfView- Methode verwendet. Die Parameter dieser Methode sind leicht erklärt. Der erste Parameter ist für die Spannweite der Kamera verantwortlich, also hier 45°. Diese muss allerdings in das Bogenmaß umgerechnet werden. Das übernimmt derMathHelper mit der Funktion ToRadians() für uns.

Zeichnen-Fortsetzung Der zweite Parameter ist das Fensterformat. Im Standartfall ist das 4:3. Man bekommt das Fensterformat über die AspectRatio- Eigenschaft des Viewport-Objektes. Andernfalls kann man auch einfach die Fensterbreite durch die Fensterhöhe teilen. Durch das Bildschirmformat wird bestimmt, wie das Bild auf das Fenster projiziert werden muss.

Zeichen-Fortsetzung Der 3. und der 4. Parameter sind zuständig für die sogenannte NearPlane und die sogenannte FarPlane. Die NearPlane zeigt dem Programm, ab welcher Nähe abgeschnitten werden soll. Die FarPlane bestimmt, ab welcher Weite abgeschnitten werden soll. Um das ganze nochmals zu verdeutlichen, zeige ich wieder auf der nächsten Seite ein Bild, welches die NearPlane und die FarPlane nochmals erklären soll.

Zeichnen-Fortsetzung Hier kann man gut erkennen, wie NearPlane und FarPlane behandelt werden. Alle Objekte, die vor NearPlane und nach FarPlane sind, kann man nicht sehen. Der Grund, warum so was gemacht wird, ist ganz einfach: Da viele Spiele mehr als 1000 Objekte enthalten, würde, wenn man alle Objekte zeichnen lassen würde, wahrscheinlich der eigene PC abstürzen, weil das Rendern viel zu viel Arbeitsspeicher benötigen würde.

Zusammenfassung Wenn Sie nun Alles Richtig gemacht haben, müsste ihr Objekt korrekt angezeigt werden. Sie sollten jetzt probieren ein wenig mit den Eigenschaften desBasicEffect-Objektes rumzuspielen. Ich werde zudem auch ein Tutorial hochstellen, welches zeigt wie man Texturen auf Objekten anzeigt, oder mit dem Licht rumspielt.

Ende Nun das ist alles was ihr eigentlich braucht. Ich hoffe ihr habt nun alles gut verstanden und könnt dies auch nun gut für eigene Projekte verwenden. Falls ihr noch Fragen über dieses Tutorial oder allgemeine Fragen über XNA habt, könnt ihr mir auch gerne eine Mail schicken. Meine adresse ist