//------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------- //Klein-bottle #declare R=function(u){4*(1-cos(u)/2)} #declare F1=function(u,v){ select( u<=pi, (6*cos(u)*(1+sin(u))+(R(u)*cos(v+pi))), (6*cos(u)*(1+sin(u))+(R(u)*cos(v+pi))), (6*cos(u)*(1+sin(u))+(R(u)*cos(u)*cos(v))) ) } #declare F2=function(u,v){ select( u<=pi, (16*sin(u)), (16*sin(u)), (16*sin(u)+(R(u)*sin(u)*cos(v))) ) } #declare F3=function(u,v){R(u)*sin(v)} //------------------------------------------------------------------------------------------------- #include "meshmaker.inc" //------------------------------------------------------------------------------------------------- object{ // Parametric(Fx,Fy, Fz, , , Iter_U, Iter_V, FileName) Parametric( // Builds a parametric surface out of three given functions. // The uv_coordinates for texturing the surface come from the square <0,0> - <1,1>. F1, F2, F3, //three functions <0, 0>,< 2*pi, 2*pi>,// range within to calculate surface: ,. 75,75, // resolution of the mesh in the u range and v range. "" // FileName: ""= non, "NAME.obj'= Wavefront objectfile, "NAME.pcm" compressed mesh file // "NAME.arr" = include file with arrays to build a mesh2 from, // others: includefile with a mesh2 object ) //--------------------------------------------------------------------------------------------- /* interior_texture { // inside texture uv_mapping // pigment{ color rgb <1,1,1> } pigment{ checker color rgb <0.5,0.0,0.1> rgb <1,1,1> scale <0.02,0.025,0.01>} finish { specular 0.25} } // texture{ // outside (interior_texture) uv_mapping pigment{ checker color rgb <0.0,0,0.0> rgb <1,0.9,0.9> scale <0.015 ,0.035,1>} finish { phong 0.5 } } // */ texture { crackle scale 3 texture_map { [0.00, pigment{ color rgb <1,1,1>*0.5 } ] [0.01, pigment{ color rgb <1,1,1> } ] [0.20, pigment{crackle color_map{[0,rgb 0][1,rgb 0]}}finish{specular 0.01 roughness 0.5}] [0.25, pigment{crackle color_map{[0,rgb 0][1,rgb 0]}}finish{specular 0.2}] [1.00, pigment{ color rgb <1,1,1> } ] } } scale< 1,1,1>*0.14 rotate <0,0,90> rotate <0,-5,0> translate< 0, 0, 0 > } // end of object //--------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------