Hi lug-dd,
nachdem die beiden Vortraege gestern ganz gut gelaufen sind (Dank an Reiner und Holger fuer Beamer und Notebook), habe ich mich mal an die Modellierung von Stefans Metallobjekt nach einer anderen Methode gemacht. Die Wuerfel werden in der #while-Schleife ineinander geschachtelt. Fuer verschiedene Variantionen kann man den Zylinderradius (CarveRad), den Skalierungsfaktor fuer den naechstkleineren Wuerfel (NScale) und die maximale Schachtelungstiefe (NDepth) in der Szenenbeschreibung aendern.
// "Nicht gefraest" // Alternative Modellierung des Objekts von Stefan Lagotzki
#include "colors.inc" #include "textures.inc"
camera { location -5*z direction 3*z look_at 0 }
light_source { <100, 80, -70> color White } light_source { <-50, 40, -40> color rgb<0.8, 0.8, 0.6> }
background { color rgb<0, 0, 0.5> }
// Einheitswuerfel als Grundobjekt #declare UnitBox = box { <-0.5, -0.5, -0.5>, <0.5, 0.5, 0.5> }
// Radius der herausgefraesten Zylinder #declare CarveRad = 0.4
#declare CarvedBox = difference { object { UnitBox } cylinder { <-0.51, 0, 0>, <0.51, 0, 0>, CarveRad } cylinder { <-0.51, 0, 0>, <0.51, 0, 0>, CarveRad rotate 90*y } cylinder { <-0.51, 0, 0>, <0.51, 0, 0>, CarveRad rotate 90*y rotate 90*x } }
// Skalierungsfaktor fuer die Schachtelung #declare NScale = 0.6
#declare Nest = union { object { UnitBox scale NScale } object { CarvedBox } }
// Schachtelungstiefe 4 #declare NDepth = 4 #declare I = 0 #while (I<NDepth) #declare NestN = union { object { CarvedBox } object { Nest scale NScale } } #declare Nest = object { NestN } #declare I = I+1 #end
object { Nest texture { Chrome_Metal } rotate <15, 10, 20> }
Happy tracing :) Chris