MaxScript zum zeichnen von L-Systemen

Sunday, 25. October 2009 22:23

koch3.png

MaxScript: lsystems1.txt

Das Script kann einfachere L-Systeme mit den Zeichenoperationen A,B,F, Rotationsoperatioinen y,p,r und einem Stack zeichnen.

Bevor drawLSystem aufgerufen wird, müssen erst die Produktion, das Axiom, die Startposition und die Startrichtung festgelegt werden.
Die fraktale Pflanze wie hier im Wiki beschrieben kann z.B. auf folgende Weise gezeichnet werden:

prod = #(#("X", "F-yr[[X]+ryX]+ryF[+ryFX]-ryX"), #("F", "FF"))
start="X"
lAngle = 25
startpos = [0,0,0]
startdir = [0,0,1]
drawLSystem prod start 3 startpos startdir lAngle 1

Bei der Produktion ist zu beachten, dass + und - nicht ganz dieselbe Funktion wie im Wiki haben. + Legt fest, dass die nächste Rotation mit positivem Winkel und - mit negativem Winkel durchgeführt wird. Die eigentliche Rotation geschieht mit y(=Yaw), p(=Pitch) oder r(=Roll).

Im Script sind bereits 4 L-Systeme drin:

Thema: Projekte | Kommentare (0)

CG Shader

Sunday, 6. April 2008 17:41

Zu Vorführungszwecken für ein Schulreferat erstellt. Dieser cg-Shader ermöglicht es, mithilfe von Vertex Colours bis zu 3 verschiedene Texturen auf Objekt aufzutragen. Jede Farbe eines Vertizes steht für die Sichtbarkeit einer Textur. Ein Farbanteil von RGB(0.9/0.1/0) bedeutet, dass Textur 1 zu 90%, Textur 2 zu 10% und Textur 3 zu 0% sichtbar sind.


Zum Album

Thema: Projekte | Kommentare (0)

Ray Tracing

Monday, 24. March 2008 15:49

Ein in C++ geschriebener Ray Tracer.
Unterstützt zurzeit:

  • Szenegraphen
  • Matrizentransformation(zur Positionierung und Rotation)
  • Ambient, Diffuse und Specular Lights.
  • Spiegelung
  • Schatten
  • Objekte:
    • Kugeln
    • Ebenen
    • Lichter

Zum Album

Thema: Projekte | Kommentare (1)