1. Schritt: Regeln definieren

 
 
Zu Beginn werden Regeln definiert, wie geometrische Objekte im Raum angeordnet werden sollen. Die Regeln beschreiben, wie schrittweise immer neue Objekte entstehen, die zu ihren Vorgängern im 3D Raum verschoben, rotiert, verkleinert oder vergrößert sind. Zusätzlich können die Regeln vorgeben, wie sich die Farbe oder Transparenz der neuen Objekte im Vergleich zu ihren Vorgängern ändert. Die Änderung der Farbe wird ähnlich zu den Änderungen des Ortes als Transformation in einem Farbraum beschrieben. Der Farbraum arbeitet mit den Freiheitsgraden Farbwinkel, Sättigung, Helligkeit, Filtertransparenz und Deckkraft.
(grow 
  (camera (translate 2.5 -6.5 6) (lookat 2.35 0 3.5))
  (option (depth 12))
  (option (limit 20000))

  (group
    (rule LIGHT  
                 (shape distantlight (coord (transform (translate 5 -5 10)))
                                   (material straight (set (hsv 0 0 1)))
                 )
                 (shape distantlight (coord (transform (translate 2.5 0 10)))
                                   (material straight (set (hsv 180 0.5 1)))
                 )
    )
  )

  (group
    (rule GRID  (apply X (shape (set (scale 0.1 0.1 0.95)))
                         (color (set (hsv 45 0.1 1) (translate_transmit 0.5)))
                )
    )
    (rule X (apply Y  (repeat 50) (coord (transform (translate_x 0.1))))
    )
    (rule Y (apply TURN (repeat 10) (coord (transform (translate_y 0.1))))
    )
    (rule TURN (apply STEP (coord (transform (overlay (perlin_noise 1512)
                                                  (impact rotate 0 0.05 0)))
                           )
                           (shape (transform (overlay (perlin_noise 1512)
                                                  (impact rotate 0 0.05 0)))
                           )
               )
    )

    (rule PAINT (shape box (shape (transform (scale 0.25)))
                           (material mattetranslucent))
    )

    (rule STEP
                (apply PAINT (coord (transform (translate_z 0.125))))
                (apply PAINT (coord (transform (translate_z 0.375))))
                (apply PAINT (coord (transform (translate_z 0.625))))
                (apply PAINT (coord (transform (translate_z 0.875))))
                (apply TURN  (coord (transform (translate_z 1))))
    )
    (rule STEP
                (apply PAINT (coord (transform (translate_z 0.125))))
                (apply PAINT (coord (transform (translate_z 0.375))))
                (apply PAINT (coord (transform (translate_z 0.625))))
                (apply TURN  (coord (transform (translate_z 0.750))))
    )
  )
)
 
 

2. Schritt: Regeln ausführen

 
 
Die manuell definierten Regeln werden von einem Interpreter ausgeführt. Dabei können tausende von einfachen Objekten erzeugt werden, die an unterschiedlichen Orten liegen, in verschiedene Richtungen zeigen oder sich in den Farbeigenschaften unterscheiden. Die Anzahl der generierten Objekte hängt von den Regeln ab und wird durch die Leistungsfähigkeit des Computers begrenzt. Auf einem typischen PC kann man wenige hunderttausend Objekte generieren.
 
 

3. Schritt: Szenenbeschreibung

 
 
In den folgenden Arbeitsschritten werden unterschiedliche Programme eingesetzt, die jeweils ihre eigene Szenenbeschreibungssprache erwarten. Die generierten Geometrie- und Farbdaten werden in das passende Datenformat umgewandelt. Dazu werden Vorlagen verwendet, in welche die generierten Werte eingesetzt werden. Für jedes der unterstützen Programme gibt es eine spezifische Vorlage.
 
 

4. optionaler Schritt: Vorschau der generierten Szene

 
 
Die generierten Daten können zur Kontrolle in ein 3D-Modellierungswerkzeug geladen werden. Dies hilft die Platzierung der Objekte in der Szene zu verstehen und einen eigneten Standpunkt für die Kamera zu finden. Allerdings ist dies nur praktikabel, wenn die Szene aus wenigen hundert Objekten besteht. Die Wartezeit für den Import der Daten in das 3D-Modellierungswerkzeug wird sonst zu lang. Generative Grafik
 
 
Zum besseren Verständnis kann eine Vorschau berechnet werden, die sowohl die Kameraperspektive als auch die orthogonalen Ansichten zeigt. Der Raytracer Persistance of Vision eignet sich hierzu. Hier spielt die Ladezeit für die Szene eine untergeordnete Rolle. Wenn die Szene aber viele Lichtquellen enthält dauert die Berechnung lange. Generative Grafik
 
 

5. Schritt: Berechnen des Bildes

 
 
Aus der Szenenbeschreibung wird die Ansicht berechnet. Die Szene enthält zusätzlich zu den Geometriedaten, Farbtönen und Lichtquellen eine Kamera. Im einfachsten Fall ist diese Kamera durch ihren Standpunkt, den Punkt auf den sie gerichtet ist und den Blickwinkel definiert. Je nach Renderer können Tiefenunschärfe oder Bewegungsunschärfe simuliert werden. Das Ergebnis ist ein High Dynamic Range Bild. Die Farbdynamik eines HDR Bildes kann viel größer und detaillierter sein, als von einem Computermonitor direkt angezeigt werden kann.
 
 

6. Schritt: Farbton, Kontrast und Helligkeit einstellen

 
 
High Dynamic Range Bilder werden auch in der Digitalfotografie verwendet, um Szenen aufzunehmen, die sowohl helle als auch dunkle Bereiche enthalten. Das vom Renderer berechnete HDR Bild wird nun ähnlich wie RAW Bilder aus einer Digitalkamera in den Farbraum des Monitors gebracht.
Generative Grafik
 
 
Creative Commons License
Text and images are licensed under a Creative Commons License.
 
CC-GNU GPL
This software is licensed under the CC-GNU GPL.


 
     
 
Kandid, a genetic art project InnerWorld, a terrain generator for Blender Vehikel, embodied intelligence for mobile robots
 
     
  Impressum