|
Prof.
Urban
|
![]() |
![]() |
||
Wir beginnen mit unserer beliebten roten Kugel vor einem hübschen Himmelshintergrund:

Dieses Bild entstand durch folgendes Skript
#include "colors.inc"
#include "textures.inc"
#include "skies.inc"
global_settings { assumed_gamma 1.0 }
// Kamera
camera
{
location <0, 0.75, -10>
direction 3.0*z
right image_width/image_height*x
look_at <0.0, 0.0, 0.0>
}
// Lichtquelle
light_source { <-10,10,-10> color rgb <1,1,1> }
// Himmelsgewölbe
sky_sphere { pigment { Blue_Sky2 scale 0.2 } }
///////////////////////////////////////////////////////////////////////////
sphere { <0,0,0> , 1
texture {
pigment { color rgb <1,0,0>*1.2 }
finish { Shiny }
}
}
Wie wir bereits wissen, können wir das Aussehen der Kugel mithilfe des normal Modifiers verändern. Er täuscht durch kleine Verschiebungen des Normalvektors der Kugel, der ja zur Reflexionsberechnung herangezogen wird, eine Oberflächenstruktur vor, ohne dass die geometrische Form verändert wird.
Wenn wir etwa bumps
als Muster verwenden, können wir diese in ihrer
Stärke verändern, mittels scale
ihre Größe beeinflussen und eventuell durch turbulence
die Verwirbelung verstärken. Einzige Änderung zum
obigen Programm ist die Definition der Kugel:
sphere { <0,0,0> , 1
texture {
pigment { color rgb <1,0,0>*1.2 }
finish { Shiny }
normal { bumps 0.2 turbulence 0.1 scale 0.2 }
}
}
Mögliche Ergebnisse:
| Ergebnis | bumps | scale | turbulence |
![]() |
0.5 | 0.05 | 0 |
![]() |
0.5 | 0.2 | 0 |
![]() |
0.9 | 0.2 | 0 |
![]() |
0.9 | 0.2 | 0.7 |
Altbekannte Tricks...
Die camera in POV-Ray erlaubt einen tollen Trick: Da ein normal Modifier wie etwa bumps keine wirren Zahlen liefert, sondern algorithmisch berechnete 'Verzerrungen' bereitstellt, darf man ihn als Modifier einer camera benutzen!
Die einzige Änderung zum obigen Programm ist nun, dass wir die normal-Zeile aus der Kugel entfernen, und in die camera verschieben:
camera
{
location <0, 0.75, -10>
direction 3.0*z
right image_width/image_height*x
look_at <0.0, 0.0, 0.0>
normal { bumps 0.3 turbulence 0.2 scale 0.1 }
}
Damit wird unsere Szene durch eine sehr seltsame verwackelte Kamera betrachtet, oder besser 'gesagt durch eine seltsam geschliffene Linse gesehen:
| Ergebnis | bumps | scale | turbulence |
![]() |
0.02 | 0.1 | 0 |
![]() |
0.02 | 0.2 | 0 |
![]() |
0.1 | 0.2 | 0 |
![]() |
0.2 | 0.1 | 0 |
![]() |
0.3 | 0.3 | 0 |
![]() |
0.3 | 0.3 | 1.0 |
![]() |
0.5 | 0.05 | 0 |
![]() |
0.6 | 0.2 | 0 |
// camera mit bumps macht aus geraden Linien Kurven
camera {
normal {
bumps 0.1 // 0.1
scale 0.2 //0.2
}
}
#local R=seed(5);
// 500 dünne gerade Fädchen
#local i=500;
#while(i)
//
sphere{ <0, rand(R)*9, 9> .005 // eine winzige Kugel, y-Position zufällig
scale <(0.6+rand(R))*999,1,1> // in x-Richtung 1 bis 1000 mal vergrößert
// Farbe extrem hell (keine Lichtquelle)
pigment{ rgb <5+0,5+9,5+9*rand(R)> } // viel Grün, (zufällig) viel Blau
rotate 360*rand(R)*z // zufällige Drehung in der Bildebene
}
#local i=i-1;
#end
Rechnen wir zum Vergleich diese Szene OHNE CAMERA (also mit default-Einstellung) so ergibt sich ein Bild aus 500 dünnen Fädchen, die aus gestreckten Kugeln bestehen und zufällig positioniert und gedreht sind.

Fügen wir jedoch diese modifizierte camera ein, so ist das Ergebnis weitaus interessanter - und alles eine Folge der Kameraverzerrung:
