Calculation de la 'hauteur et la profondeur des marches :
#local D = 0.00001;
#local Step___Height = Total___Height/Number_of___Steps;
#local Step___Width = (Base___Width-Top___Width)/(Number_of___Steps-1);
//--------------------------------------------------------------
L'assemblage avec une boucle while :
union{
#local Nr = 0; // start
#local EndNr = Number_of___Steps; // end
#while (Nr< EndNr)
#local P___Width = Base___Width-Step___Width*Nr;
#local P___Height = Step___Height;
box{ <-P___Width, 0.00, -P___Width>,< P___Width, P___Height, P___Width>
translate<0,Total___Height-(EndNr-Nr)*Step___Height,0>
texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // ~ LightWood
finish { diffuse 0.9 phong 1 reflection 0.00}
} // end of texture
} // end of box
#local Nr = Nr + 1; // next Nr
#end // --------------- end of loop
rotate<0,0,0>
translate<0,0,0>} // end of union
//-----------------------------------------------------------------------------
Les structures dans l'ombre :
Si on fait une pyramide avec une texture continue,
l'objet se montre sans structure dans les régions dans l'ombre ( seulement éclairé de la lumière "ambient" ).
Pour éviter cela on peut déclarer les marches avec deux textures seulement un peu differentes :
union{ // inner union
//---------------------------------------------------------- visible in x and z
box{<-P___Width, 0.00+D, -P___Width>,< P___Width, P___Height-D, P___Width>
texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // LightWood}// rgb<1,1,1>}
finish { diffuse 0.8 phong 1 reflection 0.00}
} // end of texture
} // end of box
//----------------------------------------------------------------- visible in y
box{<-P___Width+D, 0.00, -P___Width+D>,< P___Width-D, P___Height, P___Width-D>
texture{ pigment{ color rgb <1.00, 0.87, 0.73>} // ~ LightWood light
finish { diffuse 0.9 phong 1 reflection 0.00}
} // end of texture
} // end of box
//------------------------------------------------------------------------------
translate<0,Total___Height-(EndNr-Nr)*Step___Height,0>
} // end of inner union
Objets prêt à l'usage pour POV-Ray comme
fichiers include avec fichiers exemple
on peut trouver sur la POV-Ray Objects page.
|