POV-Ray : Newsgroups : povray.binaries.images : Ping Pong : Re: Ping Pong Server Time
4 Nov 2024 20:14:00 EST (-0500)
  Re: Ping Pong  
From: alphaQuad
Date: 20 Mar 2008 10:35:01
Message: <web.47e2838a41aa233d5cffe8340@news.povray.org>
"Nekar Xenos" <nek### [at] gmailcom> wrote:

> I dream of a procedural Pov planetarium... :-)

Me too. I have all the planetarium code in opengl/C and mircscript,
Orbital elements for all known moons, just an export option and we could skip
all the code translation.
http://members.aceweb.com/alphaquad/matrixcap.jpg

> This is a ping-pong round - you're supposed to change and post the code  :)

well if it has a map ... hmmm I could make jpg out 800k png, as opposed to
zipping for b.s.f ( I dont recall the limit over there )

the comments are wrapping, making for difficult reuse, I've attempted some
repair




****************************** CHANGES ***************************/*
  Planet isosurface from Jaime Vives Piqueres's moon.

*/


global_settings{
 assumed_gamma 1.0
 max_trace_level 12
}
#default{texture{finish{ambient 0}}}
#include "functions.inc"


#declare Modelling=off;
#declare ShowPlanet=on;
#declare ShowWater=on;
#declare ShowClouds=on;
#declare ShowRings=on;


// *** PLANET ***

// planet texture
#declare t_planet=
pigment{
          onion    warp { turbulence 0.1 /*lambda 33 */ }
          color_map{
                   [.7 rgb <.3,.2,.05>] // sand
                   [.8 rgb <0,.1,0>]    // green
                   [.99 rgb <.1,.05,.01>]//<.1,.2,.01>]  // green
                   }
                 scale 1/(<1.01,.995,1.01>)
                 }



#declare t_planet=
texture{
 pigment{
          onion    scale <1.01,.995,1.01>
          turbulence .05
          lambda 2.5
          omega 1.2
          pigment_map{
                   [0 rgb 1]
                   [.05  t_planet ]
                   [.95  t_planet ] // sand
                   [1 rgb 1]//<.1,.2,.01>]
                   }
         }
#declare P_IM_Earth = pigment {
  image_map {
    jpeg "earth1024"
    map_type 1
    interpolate 2
  }
}

#if(!Modelling)
        normal{granite .001 scale .00001}
#end
finish{specular .1 }
}

#declare Scalar=<4,1,4>;
#declare Rotar=<-15,0,0>;

// Cloud texture
#declare t_clouds=
texture{
         pigment{
                  wrinkles  scale <100,50,100>*22
                  turbulence <1,2,1>
                  lambda 2.5
                  omega 1.3
                  warp { turbulence <10,0,10>*.1
                        //lambda 3
                        omega 1.2
                        }
                  color_map{
                           [0 rgb 1 transmit 1]
                           [.3 rgb 1 transmit .9]
                           [1 rgb 1 transmit 0]
                           }
                  rotate y*15
                  scale<0.021,0.02,0.021>/Scalar
                  rotate -Rotar
                 }
        }

// Cloud texture
#declare t_clouds=
texture{ wrinkles  rotate Rotar
                  scale Scalar
                  //lambda 2.5
                  omega 1.3
                  texture_map{
                           [0 t_clouds ]
                           [.3 pigment {rgb 1 transmit 1}]
                           [.5 t_clouds]
                           [.7 pigment {rgb 1 transmit 1}]
                           [1 t_clouds ]
                           }
        }



// Planet
#declare PlanetE=
union {
sphere {
 0,1
 texture { pigment { P_IM_Earth } }
 }
#if(!Modelling)
              sphere{0,1 // Atmosphere
                      pigment{colour rgbt 1}
                      interior{
                               media {
                                          // (---general values---)
  intervals 10 // number of intervals used for sampling [10]
  samples 1,1  // minimum and maximum number of samples taken per interval [1,1]
  confidence 0.9  // statistic parameter higher->better quality [0.9]
  variance 1.0/128   // statistic parameter lower->better quality [1.0/128]
  ratio 0.9      // distribution between lit and unlit areas [0.9]
  // (---media types---)
  //absorption rgb<.1,.05,0>*.001
  // absorbing media, block light of specified color
  scattering {2, rgb 10 }
  //method 3   // adaptive sampling
                           density {onion
                                  color_map{
                                       [.89 rgb .5] // earth
                                       [.93 rgb <0,.5,.6>*.5]//
                                       [.98 rgb <0,0,.1>]//
                                       [1 rgb 0 ]//
                                                           }
                                                  }
                                        }
                               }
                      rotate y*90
                      scale 1.05
                      hollow
                      double_illuminate
                }
#end
 }




#declare Planet=
union{
        isosurface{  // Copied from Jaime's LightSys Space Demo scene

function{(x*x+y*y+z*z-1)+f_granite(x*2,y*2,z*2)*f_agate(x,y,z)*.05}
                 max_gradient 3.8
                 contained_by{sphere{0,1}}
                 texture{t_planet scale .02}
                 scale y*1.002
                 }


       #if(ShowWater)
               sphere{0,1 // water
                      pigment{gradient y scale 2 translate y
                              turbulence .1
                               lambda 7
                          colour_map{
                             [0 rgbt<1,1,1,0> ]
                             [.15 rgb <0,.05,.2> transmit .3*(!Modelling)]
                             [.9 rgb <0,.05,.2> transmit .3*(!Modelling)]
                             [1 rgbt<1,1,1,0> ]
                                      }
                              }
                      finish{specular .2  metallic brilliance 2}
                      #if(!Modelling)
                         interior{fade_distance .003 fade_color rgb <0,0,.1>}
                      #end
                      scale .996
                      }
       #end
      #if(!Modelling)
              sphere{0,1 // Atmosphere
                      pigment{colour rgbt 1}
                      interior{
                           media {
                              // (---general values---)
 intervals 10 // number of intervals used for sampling [10]
 samples 1,1  // minimum and maximum number of samples taken per interval [1,1]
 confidence 0.9  // statistic parameter higher->better quality [0.9]
 variance 1.0/128   // statistic parameter lower->better quality [1.0/128]
 ratio 0.9       // distribution between lit and unlit areas [0.9]
 // (---media types---)
 //absorption rgb<.1,.05,0>*.001
 // absorbing media, block light of specified color
 scattering {2, rgb 10 }
 //method 3       // adaptive sampling
                                density {onion
                                          color_map{
                                              [.89 rgb .5] // earth
                                              [.93 rgb <0,.5,.6>*.5]//
                                              [.98 rgb <0,0,.1>]//
                                                           [1 rgb 0 ]//
                                                           }
                                                  }
                                        }
                               }
                      rotate y*90
                      scale 1.05
                      hollow
                      double_illuminate
                      }
       #end
       #if(ShowClouds)
               union{
                      sphere{0,1.01 texture{t_clouds }}
                      rotate y*45
                      hollow //double_illuminate
                      }
        #end
       }

// placement
union{  #if(ShowRings)
        disc {<0, 0, 0>,  y, 1.0, .7        // -O- RINGs -O-
                        pigment{spherical
                                cubic_wave
                                colour_map{
                                           [0 rgbft <0,0,0, 1,1>]
                                           [.01 rgbft <.4,.3,.2, 0,.1>]
                                           [.015 rgbft <.3,.3,.3, .1,.7>]
                                           [.03 rgbft <.35,.3,.25, 0,.1>]
                                           [.04 rgbft <.1,.21,.3, .1,.9>]
                                           [.07 rgbft <.3,.21,.1, .2,.5>]
                                           //
                                           [.12 rgbft <.25,.2,.15, 0,.1>]
                                           [.12 rgbft <.25,.2,.15, 0,.1>]
                                           [.18 rgbft <.2,.2,.25, .1,.7>]
                                           [.20 rgbft <.3,.2,.1, 0,.1>]
                                           [.22 rgbft <0,0,0, 1,1>]
                                           }
                                }
                        normal{granite .001 scale .00001}
                        finish{diffuse 1}
                        scale 2
                        hollow
                        double_illuminate
                        //rotate <40,0,30>

                        }
         #end
        object{PlanetE rotate <0,180,0> }
        scale .3
        rotate <0,0,24>
        translate <0,0,0>
}

light_source{
         <100,.1,100>,
         2
         fade_power 2
         //translate <2,.1,.5>
         }

camera{
 location <0,.5,-3>
 //up y
 //look_at .5*x //<0,-.3,1> //<0,-.4,1>
 look_at <0.3,0.15,0>
 angle 12

}


Post a reply to this message


Attachments:
Download 'earth1024.jpg' (215 KB)

Preview of image 'earth1024.jpg'
earth1024.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.