Tutorials

13.10.2008 16:53 Alter: 9 yrs

Papervision3D Tutorial – Einstieg in Papervision 3D

Rubrik: Tutorials

Papervision 3D ist eine Open-Source-Software mit der man für Flash Echtzeit-3D-Anwendungen erstellen kann. Derzeit arbeiten die Entwickler an der Veröffentlichung der Version 2.0 (Great White) von Papervision3D. Da es in den nächsten Wochen fertig gestellt werden soll und die Änderungen gegenüber der Vorgängerversion von Papervision 3D so weitreichend sind, dass weitgehende Änderungen am Quelltext notwendig sind, konzentrieren wir uns in diesem Tutorial für Papervision 3D auf die weitgehend stabil laufende Alpha Papervision 3D 2.0 Great White.

In unserem ersten Tutorial zu PV3D geht es darum, Papervision 3D in seinen Grundzügen mit Flash zu nutzen. Unser Ziel ist es die grundlegenden Elemente zu erstellen und einen Würfel, eine Ebene und eine Kugel zu erzeugen. Sowie diese Elemente mit unterschiedlichen Materialien zu überziehen.

Los geht’s: Download von Papervision 3D

Als erstes kommt der Download von Papervision 3D, sonst kann das Tutorial ja gar nicht beginnen. Den Code findet man bei http://code.google.com/p/papervision3d/

Nach dem Download entpackt man die ZIP-Datei in eine Verzeichnis und bindet das Verzeichnis in Flash ein. Bei Flash CS 3 geht man dazu auf „Bearbeiten → Einstellungen → ActionScript“ in der neuen Ansicht wählt man „ActionScript 3.0 Einstellungen“ aus und fügt dort unter das Verzeichnis hinzu.

Damit steht für alle zukünftigen Projekt Papervision3D zur Verfügung.

Papervision3D – Eine Ebene erstellen

Jetzt geht es endlich ans Eingemachte. Damit leicht verstanden werden kann, was im Quelltext steht, haben wir (hoffentlich) ausreichend das erste Papervision3D Listing kommentiert.

Außerdem ist das Script nicht in unterschiedliche Funktionen unterteilt, vielmehr ist es chronologisch von oben nach unten angeordnet, um das Geschehen leichter verständlich zu machen.

Package { 	
/* Zunächst importieren wir die Papervision3D-Klassen,
anschließend die Flash-Klassen und Beginnen dann mit dem Programmieren
*/
import org.papervision3d.cameras.Camera3D; //Kamera, Blick auf Szene
import org.papervision3d.scenes.Scene3D; //Kontainer für Elemente
import org.papervision3d.view.Viewport3D; //Was angezeigt wird
import org.papervision3d.render.BasicRenderEngine; //Renderer
import org.papervision3d.objects.primitives.*; //Einfache Formen
import org.papervision3d.materials.ColorMaterial; //Farbiges Material
import org.papervision3d.materials.utils.MaterialsList; //Materialliste

//Flash-Klassen importieren
import flash.display.Sprite;
import flash.events.Event;

public class example extends Sprite { // Erweitern der Klasse Sprite
private var viewport: Viewport3D; //Variable für den Viewport
private var camera: Camera3D; // Variable für die Kamera
private var scene: Scene3D;
private var renderer: BasicRenderEngine;
private var cube: Cube;
private var material: ColorMaterial; // Variable für Material
private var materials: MaterialsList; // Diese Variable enthält eine Liste von Materialien


function example() { // Viewport initialisieren
viewport = new Viewport3D(); // Viewport initialisieren
addChild(viewport); // Viewport zur Stage hinzufügen

// Szene anlegen; zur Szene werden die Element hinzugefügt.
scene = new Scene3D();
camera = new Camera3D(); // Kamera-Klasse initialisieren
camera.y = 100;
camera.z = -300; // Kamera vom Objekt absetzen
 			//RenderEngine definieren
renderer = new BasicRenderEngine();
planeStart();
}
// eine einfache Ebene erzeugen
function planeStart() {
// Material für die Ebene anlegen
material = new ColorMaterial(0x1175dff);
// Hier wird eine 80 auf 80 Pixel große blaue Ebene angelegt
plane = new Plane(material, 80,80);
scene.addChild(plane);


// Kamera auf die Ebene richten.
camera.lookAt(plane);
// Ereignis zum Rendern starten
addEventListener(Event.ENTER_FRAME, handleEnterFrame);
}

private function handleEnterFrame(e:Event){
plane.yaw(3); // Ebene rotieren in Grad/Aufruf

//Szene wird gerendert
renderer.renderScene(scene, camera, viewport);
}
}
}

Damit sehen wir nun, sobald der Flash-File kompiliert wurde, eine einfache Ebene in Farbe, die vor der Kamera langsam rotiert.

Hier kann man sich das funktionierende Papervision3d Beispiel ansehen.

Sehen Sie sich hier unsere Leistungen im Bereich der 3D-Simulation und interaktiver 3D-Anwendungen an.