/*Tyler Eaves This was a '1 hour challenge', in which I try to get a particular effect that I've never done in 60-90 minutes, and see what happens. Usually a few vague blobs. This one I REALLY like though. This was inspired by an image by Tek that showed a planet on a non-sphericla shape. I just had to give it a try. I used a torus for the shape (VERY geologically accurate...) I'm stoked about how it came out. With more time it can definatly be improved, and there are a few glaring omissions (Starfield..., real atmosphere.), but it looks pretty real to me, and for ~70 minutes of coding... Basically the scene consists of two concentric torii lit by a parallel light. One torus is the "planet", the second has a slightly larger minor radius, and is used to layer the clouds on. I'm pretty happy with the clouds, REALLY happy with the oceans, and pretty happy about the continents. If I assume this is planet-like, the geology is pretty lousy, as it's the same at all latitudes. This, however is a TORUS, no way this thing could even hold water on the inner surface, and probably not the outer surface either... I'm particually proud of the just-noticable 'wrinkling' of the oceans, that is also evident in space photos of earth. Source and render attached... I may render a few close to the surface tomorrow... */ // +w512 +h384 +sp8 +ep4 // +w640 +h480 +sp8 +ep8 +a0.3 +r2 // +w1280 +h960 +sp8 +ep4 // +w1280 +h960 +sp8 +ep8 +a0.3 +r2 #include "stars.inc" default{finish{ambient 0}} sky_sphere{ /* pigment{ granite turbulence 4 color_map{ [0.0 rgb 0] [0.98 rgb 0] [0.98 rgb 1] [1 rgb 1] } }*/ pigment { granite color_map { [ 0.000 0.290 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.290 0.300 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ] [ 0.300 0.490 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.490 0.500 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ] [ 0.500 0.690 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.690 0.700 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ] [ 0.700 0.890 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.890 0.900 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ] [ 0.900 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] } turbulence 1 sine_wave scale .5 } } camera{ location <.5,.5,2> look_at <0,0,1> } light_source{ // <1,.3,3> ,1 <1,.3,3> ,1.5 parallel point_at <0,0,0> } #declare sea_tex1 = texture{ pigment{ rgb <0,0,.3> } normal{ agate .05 scale .01 } finish{ reflection .1 specular .5 } } #declare sea_tex2 = texture{ pigment{ rgb <0,.4,.6> } normal{ agate .05 scale .01 } finish{ reflection .1 specular .5 } } #declare land_tex0 = texture{ pigment{ rgb <.7,.57,07> } finish{ specular .1 reflection .1 } } #declare land_tex1 = texture{ pigment{ rgb <0,.3,0> } normal{ agate 0.05 scale .05 } finish{ reflection .01 specular .1 roughness .5 } } #declare land_tex2 = texture{ pigment{ rgb <.5,.4,.2> } normal{ agate 0.25 scale .05 } finish{ reflection .01 specular .1 roughness .5 } } #declare land_tex3 = texture{ // pigment{ rgb <1,1,1> } pigment{ rgb <1,1,1>/1.5 } finish{ reflection .3 specular .8 } } torus{ 1, .3 texture{ granite texture_map{ [0.0 sea_tex1] [0.3 sea_tex1] [0.4 sea_tex2] [0.41 land_tex1] [0.42 land_tex1] [0.65 land_tex2] // [0.85 land_tex3] [0.95 land_tex3] [1.0 land_tex3] } } } torus{ 1, .301 texture{ pigment{ granite turbulence .7 octaves 2 scale .9 color_map{ [0.0 rgbf<1,1,1,1>] [0.42 rgbf <1,1,1,1>] /* [0.5 rgbf <.8,.8,.8,.5>] [0.80 rgbf<1,1,1,.3>] [1.0 rgbf <1,1,1,0>] */ [0.5 rgbt <.8,.8,.8,.5/1.5>*1.5] [0.80 rgbt<1,1,1,.15>*2] [1.0 rgbt <1,1,1,0>*3] } } normal{ bumps .05 scale .01 } finish{ specular .3 reflection .1 } rotate y*10 } }