/* When using this code, please give credit to the original author (Christoph Ohsenbrügge) +---------------------------+ | Donut05 Donut02 Donut01 | | | | Donut04 Donut03 | Donut08+---------------------------+ Donut07 Donut06 Every Donut has the 'donutteig'-texture as standard-dough.. The little coloured perls are small sphere, placed via trace(). not very beautiful, but works. */ // DONUTS! #declare donutteig = texture { pigment { agate turbulence 1 frequency 20 color_map { [0.0 Tan] [0.95 Tan] [0.95 SemiSweetChoc] [1.0 SemiSweetChoc] } } finish { phong 0} } // Texture fuer Donut01 ... Teig mit Schokolade drueber ^_^ #declare donut01tex_choc = texture { pigment { bozo color_map { [0.0 BakersChoc] [0.4 BakersChoc*.9] [0.8 BakersChoc*.5] [1.0 Black ] } } finish { phong .75 phong_size 20} normal { waves 1 frequency 3 } } #declare donut01tex = texture { marble frequency .5 turbulence 0.12 texture_map { [0.00 donutteig] [0.095 donutteig] [0.095 pigment { Black } ] [0.11 donut01tex_choc ] [1.00 donut01tex_choc ] } scale 15 rotate z*90 } // Texture fuer Donut02 ... Teig mit Zuckerguss .. Perlchen als einzelne objekte drauf. #declare donut02tex_zucker = texture { pigment { bozo color_map { [0.0 White] [0.4 Wheat] [0.8 Wheat] [1.0 White ] } } finish { #if (!radon) ambient .4 #end phong .4 phong_size 25} normal { waves .3 frequency 3 rotate x*0} } #declare donut02tex = texture { marble frequency .5 turbulence 0.15 texture_map { [0.00 donutteig ] [0.105 donutteig ] [0.105 pigment { BakersChoc*.3 } ] [0.12 donut02tex_zucker ] [1.00 donut02tex_zucker ] } scale 18 rotate z*90 } // Texture fuer Donut03 ... Schokostreifen drueber.. sollte via marble gehen ;> #declare donut03tex_choc = texture { pigment { bozo color_map { [0.0 BakersChoc*.5] [0.4 BakersChoc*.4] [0.8 BakersChoc*.2] [1.0 Black ] } } finish { phong .75 phong_size 20} } #declare donut03tex_streifen = texture { waves frequency 5 texture_map { [0.00 donutteig] [0.80 donutteig] [0.80 donut03tex_choc] [1.00 donut03tex_choc] } scale <1, 1, .4> //rotate <0, 0, 50> } #declare donut03tex = texture { marble frequency .5 turbulence 0.15 texture_map { [0.00 donutteig ] [0.12 donutteig ] [0.12 donut03tex_streifen ] [1.00 donut03tex_streifen ] } scale 18 rotate z*90 } // Donut04 Texture. ... Teig mit weissen Klecksen #declare donut04tex = texture { donutteig } // Donut05 Textur .... Erdbeerglasur mit Schokostreifen *sabber* #declare donut05tex_erd = texture { waves frequency 5 texture_map { [0.0 pigment { bozo color_map { [0.0 White] [0.2 NeonPink] [0.8 NeonPink] [1.0 White ] } } finish { #if (!radon) ambient .4 #end phong .4 phong_size 25} normal { waves .6 frequency 3 rotate x*0} ] [0.8 pigment { bozo color_map { [0.0 White] [0.2 NeonPink] [0.8 NeonPink] [1.0 White ] } } finish { #if (!radon) ambient .4 #end phong .4 phong_size 25} normal { waves .6 frequency 3 rotate x*0} ] [0.8 donut03tex_choc ] [1.0 donut03tex_choc ] } } #declare donut05tex = texture { marble frequency .5 turbulence 0.2 texture_map { [0.00 donutteig ] [0.11 donutteig ] [0.11 pigment { BakersChoc*.3} ] [0.13 donut05tex_erd ] [1.00 donut05tex_erd ] } scale 18 rotate z*90 } // Textur fuer Donut06 - Mint mit Schokoperlchen ;> #declare donut06tex_mint = texture { pigment { bozo color_map { [0.0 White] [0.4 SpringGreen] [0.8 SpringGreen] [1.0 SlateBlue ] } } finish { #if (!radon) ambient .4 #end phong .6 phong_size 25} normal { waves .5 frequency 3.5 rotate x*0} } #declare donut06tex = texture { marble frequency .5 turbulence 0.15 texture_map { [0.00 donutteig ] [0.11 donutteig ] [0.11 pigment { BakersChoc *.3 } ] [0.13 donut06tex_mint ] [1.00 donut06tex_mint ] } scale 18 rotate z*90 } // Texture fuer Donut07 - Erdbeer- und Zuckerguss gemischt #declare donut07tex_misch = texture { pigment { waves frequency 4 color_map { [0.00 NeonPink ] [0.20 NeonPink ] [0.22 BakersChoc ] [0.25 BakersChoc*.2 ] [0.28 BakersChoc ] [0.30 Wheat ] [0.70 Wheat ] [0.72 BakersChoc ] [0.75 BakersChoc*.2 ] [0.78 BakersChoc ] [0.80 NeonPink ] [1.00 NeonPink ] } } finish { #if (!radon) ambient .4 #end phong .6 phong_size 25} normal { waves .5 frequency 3.5 rotate x*0} } #declare donut07tex = texture { marble frequency .5 turbulence .15 texture_map { [0.00 donutteig ] [0.095 donutteig ] [0.095 pigment { BakersChoc*.5 }] [0.11 donut07tex_misch ] [1.00 donut07tex_misch ] } scale 18 rotate z*90 } // Texture fuer Donut08 - Streifen diesmal aber richtig. torodial mapping versuch #declare donut08tex_stripe = texture { pigment { marble turbulence .1 frequency 7 color_map { [0.00 SpringGreen] [0.40 SpringGreen] [0.45 BakersChoc] [0.50 Black] [0.55 BakersChoc] [0.60 Wheat ] [1.00 Wheat ] } rotate z*90 } finish { #if (!radon) ambient .4 #end phong .6 phong_size 25} normal { waves .5 frequency 3.5 rotate x*0} } #declare donut08tex = texture { marble frequency .5 turbulence .15 texture_map { [0.00 donutteig ] [0.11 donutteig ] [0.11 pigment { BakersChoc*.5 }] //[0.12 pigment { BakersChoc*.5 }] [0.13 donut08tex_stripe ] [1.00 donut08tex_stripe ] } scale 18 rotate z*90 } // Stddonut, dann donut01 - donut05 #declare stddonut = torus { 6, 2.8 } #declare donut01 = object { stddonut texture { donut01tex } translate <49, 2.8+dicke, 28> } #declare donut02_raw = object { stddonut texture { donut02tex } } // Perlen definieren #declare perlenzahl = 4000; #declare laufvar = 0; #declare r1 = seed(24002); #declare donut02 = merge { object { donut02_raw } #while (laufvar< perlenzahl ) #declare lookpoint = <(rand(r1)*20-10), -10, (rand(r1)*20-10)>; #declare trefferpunkt = trace ( stddonut, <0, 30, 0>, lookpoint ); #if (trefferpunkt.z ) sphere { trefferpunkt, .2 pigment { color } finish { phong .6 phong_size 25 } } #end #declare laufvar = laufvar+1; #end translate <31, 2.8+dicke, 28> } #declare donut03 = object { stddonut texture { donut03tex } translate <40, 2.8+dicke, 9> } #declare donut04 = merge { object { stddonut texture { donut04tex } } intersection { torus { 6, 2.81 texture { donut02tex_zucker normal { bumps 1}} } union { sphere { <6, 2.9, 0>, 2.8} sphere { <0, 2.9, 6.2>, 2.8 } sphere { <-5, 3.1, 5>, 2.5 } sphere { <-5.5, 3.2, -4>, 2.9 } } } translate <21, 2.8+dicke, 11> } #declare donut05 = object { stddonut texture { donut05tex } translate <12, 2.8+dicke, 27> } #declare donut06_raw = object { stddonut texture { donut06tex } } // Perlen definieren #declare perlenzahl = 4000; #declare laufvar = 0; #declare r2 = seed(24718); #declare donut06 = merge { object { donut06_raw } #while (laufvar< perlenzahl ) #declare lookpoint = <(rand(r2)*20-10), -10, (rand(r2)*20-10)>; #declare trefferpunkt = trace ( stddonut, <0, 30, 0>, lookpoint ); #if (trefferpunkt.z ) sphere { trefferpunkt, .15 pigment { BakersChoc*.6} finish { phong .6 phong_size 25 } } #end #declare laufvar = laufvar+1; #end rotate x*-30 translate <35, (sin(radians(30))*6+2.5), -(cos(radians(30))*8.8)> } #declare donut07 = object { stddonut texture { donut07tex } translate <70, 2.8, 0> } #declare donut08 = object { stddonut texture { donut08tex } translate <-9, 2.8, 4> }