Pixel

setzer

.de
Aktuellste Kommentare:
  • Stefan schrieb:
    Schöner Beitrag und nützliche Links, vielen Dank dafür!...
    [lesen]
  • Pixelsetzer schrieb:
    Hi Marius, danke für den Hinweis. Ich hab das gar nicht gesehen, dass die Zeichen unformatiert wurden. Ich habe es gleich mal geändert. ;-) Wegen...
    [lesen]
  • Marius Gerum schrieb:
    Sehr schön, gefällt mir gut :-) OOP ftw ;-) Marius...
    [lesen]
  • Marius Gerum schrieb:
    upps, im letzten Kommentar ... wusste nicht dass HTML funzt, ich meinte > und < ^^...
    [lesen]
  • Marius Gerum schrieb:
    Hi, schöner Artikel und gut strukturierter Code. 2 Dinge würden mir an dieser Stelle vielleicht noch fehlen, und zwar das fertige Applet zum sofo...
    [lesen]

Einfache 3D Programmierung mit Processing

Heute möchte ich die Programmierumgebung Processing vorstellen, mit der es recht schnell und einfach möglich ist, zu programmieren. Da Processing in der Programmiersprache Java geschrieben ist, ist es für Windows, Mac OS X und Linux verfügbar. Die Programmiersprache Processing ist ein leicht verändertes Java. So ist zum Beispiel nur ein

void meineFunktion(int anz) {

nötig um eine Funktion zu schreiben.

Da der Schwerpunkt in der Grafik-Programmierung liegt, bringt Processing viele sinnvolle und praktische Funktionen mit, mit denen es sehr einfach ist, 3D Bilder oder Animationen zu erstellen. Es gibt sowohl fertige Funktionen, um einen Würfel zu erstellen und ihn um die eigene Achse zu drehen, als auch komplett eigene Körper.

Auch Interessierte, die bis her noch nichts mit einer Programmiersprache zu tun hatten, werden schnell Ergebnisse erzielen können.

processing, 3D, Animation, Grafik

Processing download und erste Schritte

Processing kann auf der Seite des Herstellers heruntergeladen werden: http://processing.org/download/

Nach dem Entpacken, kann Processing sofort gestartet werden.

Nach dem Processing gestartet wurde, können unter “File” -> “Exampels” viele verschiedene Beispiele geladen werden, an denen man auch recht viel über Processing lernen kann. Da die Benutzeroberfläche recht einfach und übersichtlich gestaltet ist und sich zudem selbst erklärt, werde ich nicht weiter darauf eingehen.

Außer ein Button, der nicht gleich ins Auge sticht, jedoch später recht sinnvoll ist. Dieser befindet sich ganz rechts in der Tab-Leiste und ist ein Pfeil nach rechts. Dieser Knopf öffnet weitere Tabs, die die Übersicht erleichtern. Trotz der Möglichkeit verschiedener Tabs, können Variablen, die global definiert sind, also nicht in einer Funktion stehen (das reicht bei Processing aus), so wie Funktionen, in jedem Tab verwendet werden.

Die erste 3D-Animation

Nun will ich kurz erklären, wie man einen 3D-Würfel erzeugt, ihn grün färbt und anschließend um die eigene Achse drehen lässt.

Die Main-Funktion von Processing nennt sich “void setup()”, diese wird ein mal beim Start des Programms aufgerufen. Um Animationen zu erzeugen, wird zusätzlich noch die Funktion “void draw()” benötigt. Diese wird immer wieder ausgeführt. Damit auf jeden Rechner die Animation gleich schnell abläuft, unabhängig der Rechenleistung, gibt es die Funktion “frameRate()”, die in die Setup-Funktion ihren Platz hat. Nun brauchen wir noch ein Ausgabefenster. Das Ausgabefenster wird mit “size()” erstellt und gehört auch in die Setup-Funktion.

Nun haben wir die Setup-Funktion soweit ausgerüstet, das wir uns an die Draw-Funktion machen können, aber vorher noch mal die fertige Setup-Funktion:

void setup() {
  size(600, 600, P3D); // 600 x 600 im 3D (P3D) Modus
  frameRate(24); // Bildwiederholrate 24
}

Die Draw-Funktion kommt direkt unter die Setup-Funktion und sieht in meinem Beispiel wie folgt aus:

void draw() {
  lights();
  background(0);
  pushMatrix();
  translate(width/2, height/2, 0);
  rotateY(radians(frameCount));
  fill(0,255,0);
  box(100);
  popMatrix();
}
  • Als erstes werden mit “lights()” die Lichter aktiviert. Das lässt den Würfel plastischer wirken.
  • In der nächsten Zeile wird mit “background(0)” der Hintergrund schwarz gefärbt.
  • Eine Zeile weiter wird mit “pushMatrix()” die Matrix-Ebene gewechselt. (Stichwort: MatrixStack).
  • Anschließend wird das Koordinaten System um die Hälfte der Breite und um die Hälfte der Höhe verschoben. (“width” und “height” sind feste Variablen, die automatisch den wert durch “size()” bekommen.)
  • Die Funktion “rotateY()” dreht, wie der Name schon erahnen lässt, auf der Y-Achse.
  • Mit “fill()” können Objekte eingefärbt werden (Rot, Grün, Blau und Alpha).
  • Eine Zeile weiter wird der Würfel erzeugt.
  • In der letzten Zeile wird wieder auf die erste Matrix-Ebene gewechselt.

Nun ist die erste selbst programmierte 3D Animation zum starten bereit.

Ein paar Hinweise zum Schluss

Vordefinierte Funktionen und reservierte Wörter wie “void” werden orange eingefärbt. Feste Variablen wie “frameCount”, “width” und “height” werden hellblau eingefärbt. Variablen und Funktionen fangen immer mit einem Kleinbuchstaben an.

Ich wünsche viel Spaß beim herum probieren, programmieren und experimentieren. zwinkern.png

  • Mikee schrieb:
    I would like to take your site layout and make my own site based on it, are you willing to share it to help me out? Please e-mail me asap
    5. August 2010, 13:26  

  • Pixelsetzer schrieb:
    No sorry. This design is only for my blog. If you need help to create your one design, you should read about CSS and HTML. I would help you, but i can not do it in english very well. I wish you much success. Oh, your e-mail adress was not correct.
    8. August 2010, 10:55  

Kommentar schreiben:

Mit der Eingabe des Sicherheits-Codes stimmen Sie der Speicherung ihrer IP-Adresse und ihrer anderen angegebenen Daten zu.
Die IP-Adresse und ihre E-Mail wird nur für die Spam-Abwehr benötigt.