// PoVRay 3.5 Scene File " ... .pov" // created by ... // Date: ... //-------------------------------------------------------------------------- #version unofficial megapov 1.0; //#version 3.5; global_settings { assumed_gamma 1.0 } //-------------------------------------------------------------------------- #include "colors.inc" //#include "textures.inc" //#include "glass.inc" //#include "metals.inc" //#include "golds.inc" //#include "stones.inc" //#include "woods.inc" //#include "shapes.inc" //#include "shapes2.inc" #include "functions.inc" //#include "math.inc" //#include "transforms.inc" //-------------------------------------------------------------------------- // camera ------------------------------------------------------------------ #declare Camera_0 = camera {ultra_wide_angle angle 75 // front view location <0.0 , 1.0 ,-3.0> right x*image_width/image_height look_at <0.0 , 1.0 , 0.0>} #declare Camera_1 = camera {ultra_wide_angle angle 90 // diagonal view location <2.0 , 2.5 ,-3.0> right x*image_width/image_height look_at <0.0 , 1.0 , 0.0>} #declare Camera_2 = camera {ultra_wide_angle angle 90 //right side view location <3.0 , 1.0 , 0.0> right x*image_width/image_height look_at <0.0 , 1.0 , 0.0>} #declare Camera_3 = camera {ultra_wide_angle angle 90 // top view location <0.0 , 3.0 ,-0.001> right x*image_width/image_height look_at <0.0 , 1.0 , 0.0>} #declare Camera_4 = camera { location <-60.0, -45.5, -138> right x*image_width/image_height look_at <-60.0, -35.5, 0.0> } #declare Camera_5 = camera { location <-60.0, 10, -110> right x*image_width/image_height look_at <-60.0, 0.0, -110.0> } #camera{Camera_4} // sun --------------------------------------------------------------------- light_source{< -1500, 1500, -1500> color White} // sky --------------------------------------------------------------------- sky_sphere { pigment { gradient <0,1,0> color_map { [0.00 rgb <0.6,0.7,1.0>*1.5] [0.35 rgb <0.0,0.1,0.8>*1.5] [0.65 rgb <0.0,0.1,0.8>*1.5] [1.00 rgb <0.6,0.7,1.0>*1.5] } scale 2 } // end of pigment } //end of skysphere //fog{fog_type 2 // distance 50 // color rgb <0.8, 0.65, 0.45>*1.2 // fog_offset -50 // fog_alt 2.0 // turbulence 0.8} // ground ------------------------------------------------------------------ #declare WhiteRand = seed( 2142134 ); #declare BlackRand = seed( 9876987 ); // An infinite planar surface // plane {, D } where: A*x + B*y + C*z = D plane { y, // unit surface normal, vector points "away from surface" -55.0 // distance from the origin in the direction of the surface normal // hollow on // has an inside pigment? // solid pattern for use in texture/pigment/normal(/density) // cube checker pattern, alternates color1 and color2 pigment { checker // texture component pigment { marble // patterned pigment turbulence 1.0 color_map { [0.0 White ] [0.8 White ] [0.975 Red*0.5] [1.0 Black] } scale <0.5, 0.5, 0.5> translate < 0.5+rand( WhiteRand )*100, 0.5+rand( WhiteRand )*70, 0.5+rand( WhiteRand )*90 > rotate rand( WhiteRand )*90*y } , pigment { marble // patterned pigment turbulence 1.0 color_map { [0.0 Black ] [0.8 Black ] [0.975 Red*0.5] [1.0 White] } scale <0.5+rand( BlackRand )*0.5, 0.5+rand( BlackRand )*0.5, 0.5+rand( BlackRand )*0.5> translate < rand( BlackRand )*60, rand( BlackRand )*80, rand( BlackRand )*50 > rotate rand( BlackRand )*90*y } scale <10, 1, 10> } finish { ambient 0.6 //brilliance 6 diffuse 0.89 metallic //specular 0.8 //roughness 1/10 //reflection 0.05 } } // Pyramd #declare fn_Pigm=function { pigment { agate color_map { [0 color rgb 0] [1 color rgb 1] } } } // end of function fn_Pigm #declare Half_Sphere = union { #declare Roundness = seed( 402 ); #declare Pigmentness = seed( 13384 ); #declare Xrand = seed( 4517 ); #declare Yrand = seed( 416 ); #declare Zrand = seed( 918 ); #declare XLength = 1.0; #declare YLength = 1.0; #declare ZLength = 1.0; #declare InitXOffset = 1.0; #declare XOffsetIncrement = XLength*2.0; #declare InitZOffset = 1.0; #declare ZOffsetIncrement = -ZLength*2.0; #declare InitYOffset = 1.0; #declare YOffsetIncrement = YLength*2.0; #declare RGBRand = seed( 386 ); #declare InitYPos = -10; #declare EndYPos = 10; #declare YPosInc = 1; #declare CurYPos = InitYPos; #declare SphereRadius = 10; #while( CurYPos <= EndYPos ) #declare Theta = asin( CurYPos / SphereRadius ); #declare InitXPos = -SphereRadius * cos( Theta ); #declare EndXPos = -InitXPos; #declare CurXPos = InitXPos; #declare CurCrossSectionRadius = InitXPos; #while( CurXPos <= EndXPos ) #declare InitZPos = -1 * pow( CurCrossSectionRadius * CurCrossSectionRadius - CurXPos * CurXPos, 0.5 ); #declare EndZPos = -InitZPos; #declare CurZPos = InitZPos; // #while( CurZPos <= EndZPos ) #local curRoundness = 0.1+(rand(Roundness)*0.05); #local curPigmentness = 0.05 + 0.05*rand( Pigmentness ); isosurface { function{ f_rounded_box(x,y,z,curRoundness,0.5,0.5,0.5)-fn_Pigm((x+CurXPos)/2, (y+CurYPos)/2, (z+CurZPos)/2).gray*curPigmentness } threshold 0 contained_by {box {<-1.2,-1.2,-1.2>,<1.2,1.2,1.2>}} max_gradient 3.168 accuracy 0.01 //evaluate 1,20,0.99 #local RGBModifier = rand( RGBRand ); texture{ pigment{color rgb<0.8+RGBModifier*0.2,0.65+RGBModifier*0.65*0.25,0.45+RGBModifier*0.45*0.25>*1.2} finish {ambient 0.1 diffuse 0.85 specular 0.2 roughness 0.02 }} scale translate } // end of isosurface ----------------------------------------- #declare CurZPos = EndZPos; #debug concat( "<", str( CurXPos, 3, 0 ), ", ", str( CurYPos, 3, 0 ), ", ", str( CurZPos, 3, 0 ), ">\n" ) // #while( CurZPos <= EndZPos ) // #local curRoundness = 0.1+(rand(Roundness)*0.05); // #local curPigmentness = 0.05 + 0.05*rand( Pigmentness ); // isosurface { // function{ // f_rounded_box(x,y,z,curRoundness,0.5,0.5,0.5)-fn_Pigm((x+CurXPos)/2, (y+CurYPos)/2, (z+CurZPos)/2).gray*curPigmentness // } // threshold 0 // contained_by {sphere {0, 20.1}} // max_gradient 3.168 // accuracy 0.01 //evaluate 1,20,0.99 // #local RGBModifier = rand( RGBRand ); // texture{ pigment{color rgb<0.8+RGBModifier*0.2,0.65+RGBModifier*0.65*0.25,0.45+RGBModifier*0.45*0.25>*1.2} // finish {ambient 0.1 diffuse 0.85 specular 0.2 roughness 0.02 }} // scale // translate // } // end of isosurface ----------------------------------------- // #set CurZPos = CurZPos + 1; // #end // #while( curZPos <= EndZPos ) #set CurXPos = CurXPos + 1; #end // #while( curXPos <= EndXPos ) #set CurYPos = CurYPos + 1; #end // #while( curYPos <= EndYPos ) } object { Half_Sphere translate < -60, -43, -110 > } object { Half_Sphere rotate 180*y translate < -60, -43, -100 > }