Einführung in die Beschreibungssprache des Raytracers POV-Ray       - Seite 6
von Friedrich A. Lohmüller
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorials
 
  
POV-Ray Einführung
  INHALT  -  INDEX
 
  1. Arbeiten mit POV-Ray:
      "Insert Menu Add-on".
  2. Grundsätzliches zum
      Erstellen von Szenentexten.
      Räumliche Koordinaten,
      Zahlen und Vektoren
  3. Szenen-Aufbau
      Ein Grundbeispiel.
  4. Header einer Szene,
      #include-Dateien
      camera, light_source.
  5. Geometrische Grundobjekte
      sphere, box, cylinder,
      cone, torus, plane.
      und andere Körper
>6. Transformationen
      Streckung, Drehung,
      Verschiebung u. andere.
      CSG: union,
      difference, intersection.
  7. Farben und Oberflächen       texture, pigment, normal, finish
  8. #declare, #local, #macro,
      Platzhalter, flexible Objekte.
  9. #while Schleifen
      Grundbeispiele.
 10. #include, Include-Dateien.
      Wiederverwendbare Objekte.
 11. Rationelles Arbeiten,
      Geschwindigkeit, Flexibilität,
      modulares Arbeiten
      Anpassung v. 3.1 auf 3.5/3.6
      Anpassung v. 3.5/3.6 auf 3.7
      POV-Ray + Windows Vista.
 
  - Insert Menu Add-on
    & Download
                                       
Transformationen:
Maßstabsänderung (Skalieren), Spiegelung, Rotation, Verschiebung
    Zu mehr Details siehe "Geometrisch Transformationen".
Diese Abbildungen können sowohl auf die Körpergeometrie eines Objektes als auch z.B. auf eine Textur bzw. deren Bestandteile angewandt werden.

'scale' = skalieren - vergrößern/verkleinern - strecken/stauchen.
Skalieren bewirkt eine zentrische Streckung in die jeweilige KoordinatenRichtung
immer bezogen auf den KoordinatenMittelpunkt (="Ursprung" = <0,0,0>).
Beispiele: scale 2 bewirkt dasselbe wie scale<2,2,2>: die Größe des Körpers wird in alle Richtungen verdoppelt.
scale 0.5 in alle Richtungen gleichzeitig mal 0.5, d.h. alles halb so groß
scale<1.0,0.5,3.0> getrennt in x- ,y- z-Richtung:hier: in x-Richtung original groß, in y-Richtung auf die Hälfte gequetscht und in z-Richtung auf das 3fache gestreckt.
scale<-1,1,1> ist eine Spiegelung an der yz-Ebene: Die spiegelt ein Objekt an der yz-Ebene.
Achtung: scale <2,0,0> z.B. verursacht eine "Parse Warning: Illegal Value: Scale X by 0.0. Changed to 1.0."
Bedeutet: Geändert zu scale <2,1,1>, denn das Multiplizieren einer Komponente mit Null macht keinerlei Sinn!



'rotate' = rotieren oder drehen.
Immer bezogen auf den KoordinatenMittelpunkt <0,0,0>!! 'rotate' bewirkt eine Drehung nach der "Linke-Daumen-Regel" um die jeweilige Koordinaten-Achse.
Beispiel: rotate<0,45,0> dreht einen Körper um die y-Achse um 45 Grad.
Achtung: Die Drehung erfolgt nicht um eventuelle Symmetrieachsen durch den Mittelpunkt des Objektes sondern immer nur um die Koordinatenachsen.
Achtung: Die Drehungen werden in der aufgezählten Reihenfolge ausgeführt! Die Hintereinander-Ausführung von Drehungen um verschiedene Achsen ist nicht kommutativ, das heißt nicht beliebig vertauschbar!


'translate' = verschieben, parallelverschieben - relativ zur jeweiligen Ausgangslage.
'translate' bewirkt eine ParallelVerschiebung ohne Formveränderung oder Änderung der räumlichen Orientierung.
Beispiel: translate <-2,1,3> verschiebt den Körper um 2 Einheiten nach links( -x-Rchtung),um 1 Einheit nach oben(+y-Richtung) und um 3 Einheiten vorne in +z-Richtung).
Andere Transformationen: Mittels einer Transformationsmatrix lassen sich sowohl obige Transformationen als auch nicht ganz so einfach zu überblickende andere affine Abbildungen definieren. Die Scherung parallel zu einer Koordinatenebene sei hier nur beispielsweise erwähnt!

CSG (Constructiv Solid Geometry)
   Boolsche Algebra mit Körpern

d.h. Zusammenkleben und Herausmeißeln von Körpern durch 'Mengenlehre-Funktionen':
1.: union = Vereinigung = Summe der Körper
      (merge = union für durchsichtige Körper, falls innere Trennungsflächen unerwünscht sind.
2.: intersection = Schnittmenge = nur das Gemeinsame der Körper
3.: difference = Differenzmenge = der Rest von 1.Körper minus 2.Körper minus 3.Körper usw.
Vereinigung Differenz Schnittmenge
union{...}
oder merge{...}
difference{...} intersection{...}
union and merge
difference
intersection
Anmerkung: Der abzuziehende Körper sollte eindeutig über den ursprünglichen Körper herausstehen. Bei Gleichheit von Grenzflächen spielt einem meist die Rechengenauigkeit einen Streich und läßt die Grenzfläche ganz oder teilweise stehen. (Der Fehler kann unter Umständen erst bei einer veränderten Kamerastellung in Erscheinung treten - ist aber dann um so irritierender! Der Effekt des teilweisen Durchscheinens ist oft recht dekorativ, er taugt aber nicht zur grafischen Gestaltung von Oberflächen, da er im Gegensatz zu richtigen Texturen aus anderen Kamerapositionen nicht reproduzierbar ist!)
Näheres siehe CSG - Constructiv Solid Geometry - Boolesche Algebra mit Körpern.

Teil 0 | Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5 | Teil 6 | Teil 7 | Teil 8 | Teil 9 | Teil 10 | Teil 11

top

© Friedrich A. Lohmüller, 2014
homepage:www.f-lohmueller.de