// ========================================== // Make-up brushes and other beauty props // ----------------------------------------- // Made for Persistence of vision 3.6 // ========================================= // Copyright 2001-2004 Gilles Tran http://www.oyonale.com // ----------------------------------------- // This work is licensed under the Creative Commons Attribution License. // To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ // or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. // You are free: // - to copy, distribute, display, and perform the work // - to make derivative works // - to make commercial use of the work // Under the following conditions: // - Attribution. You must give the original author credit. // - For any reuse or distribution, you must make clear to others the license terms of this work. // - Any of these conditions can be waived if you get permission from the copyright holder. // Your fair use and other rights are in no way affected by the above. // ========================================== #include "colors.inc" #include "textures.inc" #include "metals.inc" #include "woods.inc" camera{ location <0, 0.3, -0.6> direction z*2.3 right 4*x/3 look_at <0, 0.1, -0.1> } background{rgb<1,0.98,0.96>} light_source{<-10,10,-10>*10 color White*1.3} light_source{<0, 0.6, -0.6> color White*0.3 shadowless} plane{y,0 texture{pigment{rgb<1,0.98,0.96>} finish{ambient 0 diffuse 1}}} //============================ // Make-up brush, round (1) //============================ #declare T_Handle1=texture{T_Silver_5C} #declare T_Head1=texture{ pigment{ radial frequency 100 turbulence 0.03 lambda 3 color_map{ [0 Black] [0.5 rgb<1,0.7,0.2>*0.4] [1 Black] } } normal{radial 1 frequency 100 turbulence 0.03 lambda 3} finish{ambient 0 diffuse 1 specular 0.2 roughness 0.001} scale <1,4,1> } #declare T_Head1a=texture{ pigment{ radial frequency 100 turbulence 0.03 lambda 3 color_map{ [0 Clear] [0.5 rgb<1,0.7,0.2>*0.4] [1 Clear] } } normal{radial 1 frequency 100 turbulence 0.03 lambda 3} finish{ambient 0 diffuse 1 specular 0.2 roughness 0.001} scale <1,4,1> } #declare Brush1 = lathe{ #declare eP=0.6; cubic_spline 15, <0,1>, <0,1>, <0.100765,0.989652>, <0.143949,0.968059>, <0.172739,0.921276>, <0.129554,0.809715>, <0.097166,0.705352>, <0.082771,0.608186>, <0.093567,0.600989>, <0.071975,0.561403>, <0.057580,0.482230>, <0.057580,0.385065>, <0.061178,0.053981>, <0.021592,0.000000>, <0.039586,-0.028790> texture{ gradient y texture_map{ [eP T_Handle1] [eP T_Head1] [1 T_Head1a] } } } //============================ // Make-up brush, round (2) //============================ #declare T_Handle2=texture{T_Silver_4D} #declare T_Head2=texture{ pigment{ radial frequency 100 turbulence 0.03 lambda 3 color_map{ [0 Clear] [0.5 rgb<1,0.8,0.2>] [1 Clear] } } normal{radial 1 frequency 100 turbulence 0.03 lambda 3} finish{ambient 0 diffuse 1 specular 0.2 roughness 0.001} scale <1,4,1> } #declare Brush2 = lathe{ #declare eP=0.7; cubic_spline 13, <0,1>, <0,1>, <0.121441,0.974489>, <0.148099,0.876743>, <0.130327,0.790846>, <0.068125,0.678291>, <0.077011,0.672367>, <0.047392,0.503535>, <0.038506,0.396904>, <0.038506,0.316931>, <0.041468,0.044430>, <0.008886,0.000000>, <0.023696,-0.023696> texture{ gradient y texture_map{ [eP T_Handle2] [eP T_Head1] [1 T_Head2] } } } //============================ // Make-up brush, round (3) //============================ #declare T_Handle3=texture{T_Chrome_4D} #declare Brush3 = lathe{ #declare eP=0.67; cubic_spline 13, <0,1>, <0,1>, <0.192361,0.988440>, <0.150930,0.908537>, <0.106538,0.816795>, <0.068066,0.677703>, <0.076944,0.671784>, <0.085823,0.639231>, <0.068066,0.618515>, <0.038472,0.355128>, <0.041432,0.044391>, <0.008878,0.000000>, <0.023675,-0.023675> texture{ gradient y texture_map{ [0.63 pigment{color Red*0.8} finish{ambient 0 diffuse 1 specular 0.2 roughness 0.0001 reflection 0.2}] [0.63 T_Handle1] [eP T_Handle1] [eP T_Head1] [1 T_Head1a] } } } //============================ // Make-up brush, flat (4) //============================ #declare T_Handle4=texture{T_Gold_4E} #declare Brush4 = lathe{ #declare eP=0.93; cubic_spline 11, <0.012925,0.995192>, <0.012925,1.000362>, <0.041359,0.987437>, <0.038774,0.930569>, <0.046528,0.915060>, <0.038774,0.780644>, <0.031019,0.604870>, <0.036189,0.276586>, <0.038774,0.038774>, <0.010340,0.000000>, <0.023264,-0.020679> texture{ gradient y texture_map{ [eP T_Handle4] [eP T_Head1] } } } //============================ // Pot with brushes //============================ #declare Pot1=union{ #declare rPot1=0.075/2; #declare ePot1=0.006; #declare yPot1=0.067; union{ torus{rPot1-ePot1*0.5,ePot1*0.5 scale <1,0.5,1> translate y*yPot1} difference{ cylinder{0,y*yPot1,rPot1} cylinder{-y*ePot1,y*yPot1*1.1,rPot1-ePot1} } translate y*ePot1 } torus{rPot1-ePot1*0.5,ePot1*0.5 translate y*ePot1*0.5 scale <1,2,1>} texture{ pigment{Turquoise} // pigment{image_map{png "potmap" map_type 2} scale yPot1} normal{bumps 0.2 scale 0.02} //bumps 0.3 scale 0.03} finish{ambient 0 diffuse 1 specular 0.1 roughness 0.001 reflection 0.1} } } #declare Pot=union{ object{Pot1} union{ object{Brush1 scale 0.10 rotate -z*20 translate <0.02,0.05,0>} object{Brush2 scale 0.11 rotate z*20 rotate y*30 translate <-0.02,0.04,0>} object{Brush2 scale 0.12 rotate z*30 rotate -y*30 translate <0,0.04,0>} object{Brush3 scale 0.09 rotate -z*15 rotate y*70 translate <0,0.04,0>} object{Brush4 scale 0.15 rotate -z*15 rotate -y*70 translate <0,0.04,0>} object{Brush4 scale 0.14 rotate -z*15 rotate -y*100 translate <0,0.04,0>} translate y*ePot1 } } //============================ // Hairbrush //============================ #declare Hairbrush=union{ #declare rPg1=1; #declare rPg2=1.4; #declare rPg3=2; #declare zPg1=12; #declare zPg2=2; #declare zPg3=10; #declare ni=10; #declare nj=10; union{ cylinder{0,z*zPg1,rPg1} sphere{0,rPg1 scale <1,1,0.7>} texture{T_Silver_1C finish{ambient 0}} } union{ cylinder{0,z*zPg2,rPg2 translate z*zPg1} sphere{0,rPg2*0.95 scale <1,1,0.7> translate z*zPg1} texture{pigment{Black} normal{bumps 0.2 scale 0.001} finish{ambient 0 diffuse 1 specular 0.5 roughness 0.1}}} #declare rd=seed(0); union{ union{ cylinder{0,z*zPg3,rPg3} sphere{0,rPg3*0.95 scale <1,1,0.7>} sphere{0,rPg3*0.95 scale <1,1,0.7> translate z*zPg3} texture{T_Wood32 normal{bumps 0.2 scale 0.001} finish{ambient 0 diffuse 1 specular 0.3 roughness 0.1} } } union{ #declare i=0; #while (i rotate j*360/nj*z} cylinder{0,y*1.1,0.08 rotate x*10*rand(rd) rotate y*360*rand(rd) translate <0,rPg3,i*0.95*zPg3/ni+0.8> rotate j*360/nj*z} cylinder{0,y*1.3,0.08 rotate x*10*rand(rd) rotate y*360*rand(rd) translate <0,rPg3,i*0.95*zPg3/ni+0.8> rotate j*360/nj*z} cylinder{0,y*1.4,0.08 rotate x*10*rand(rd) rotate y*360*rand(rd) translate <0,rPg3,i*0.95*zPg3/ni+0.8> rotate j*360/nj*z} cylinder{0,y*0.9,0.08 rotate x*10*rand(rd) rotate y*360*rand(rd) translate <0,rPg3,i*0.95*zPg3/ni+0.8> rotate j*360/nj*z} cylinder{0,y*1.5,0.08 rotate x*10*rand(rd) rotate y*360*rand(rd) translate <0,rPg3,i*0.95*zPg3/ni+0.8> rotate j*360/nj*z} #declare j=j+1; #end #declare i=i+1; #end texture{pigment{rgb<1,0.6,0.3>*0.04} finish{ambient 0 diffuse 1 specular 0.3 roughness 0.1}} } translate z*(zPg1+zPg2) } translate y*rPg1 rotate -x*8 scale 0.01 } //============================ // Lipstick tubes //============================ #declare Lipstick1=union{ cylinder{0,y*0.045,0.01} cylinder{y*0.047,y*0.06,0.01} cylinder{0,y*0.06,0.008} sphere{0,0.01 scale <1,0.5,1> translate y*0.06} texture{T_Brass_1C finish{ambient 0}} } #declare Lipstick2=union{ cylinder{0,y*0.055,0.011} cylinder{y*0.057,y*0.07,0.011} cylinder{0,y*0.06,0.009} sphere{0,0.011 scale <1,2,1> translate y*0.07} texture{T_Gold_1C finish{ambient 0}} } //========================================== // Objects //========================================== object{Pot rotate y*-20 translate <-0.05,0,-0.02>} object{Hairbrush rotate y*80 translate <-0.12,0,-0.13>} object{Lipstick1 translate <-0.1,0,-0.04>} object{Lipstick2 translate <-0.12,0,-0.06>}