Skip to main content

History: POVRay Skyboxes

Source of version: 3 (current)

Copy to clipboard
            Just thought i'd share my povray scripts for some basic skyboxes (see also [http://ghoulsblade.schattenkind.net/wiki/index.php/Povray)].

Uncleaned and ugly code and few explanations, but time is short, sorry.

To render under linux run something like the following command (adjust $i)
* povray -Imyinfile.pov -H256 -W256 +FT -D32 -Omyoutfile_rt.tga -K$i
* myinfile.pov would contain the snippets listed below
* myoutfile_rt.tga would be a texture to generate for one side of the skybox
* +FT means something like "F": output to file, "T" : TGA format... see manpage for details
* -D32 would be the color depth if i remember correctly
* -K sets the "clock" used in the camera block to determine which side of the skybox to render
* replace $i with values ranging from 0-5 to render all sides, and adjust the outfile accordingly
* to follow the default ogre naming sheme, it think the following will help, but i'm not quite sure if its correct
* 0 = "_fr"; // front
* 1 = "_rt"; // right
* 2 = "_bk"; // back
* 3 = "_lf"; // left
* 4 = "_up"; // up
* 5 = "_dn"; // down

The skyboxes in the examples are best suited for space-scenes.

I suggest rendereing stars on them during runtime using RenderOp OT_POINT_LIST or with little billboards, to avoid compression artifacts, and to enable animation (e.g. blinking stars).

__Skybox1__ (bright red colours, maybe inside a nebulae):

{img src="img/wiki_up/Ghoulskybox1_fr.jpg" alt="Ghoulskybox1_fr.jpg"}

{CODE(wrap="1",colors="povray")}#include "colors.inc"

camera {
  location <0,0,0>
  angle 90
  right <1,0,0> up <0,1,0>
  // turn the cam based on the current frame=clock : [0-5]
  #switch (clock)
    #range (0,3)
      // first 4 frames : turn from left to right
      rotate (90*clock)*y
    #break
    #case (4)
      // look at the sky
      rotate -90*x
    #break
    #case (5)
      // look at the ground
      rotate 90*x
    #break
  #end // End of conditional part
}

background { color rgb <0,0,0> }

// light_source { <100, 100, -200> color White }

sphere { < 0, 0, 0>, 2
    pigment { rgbt 1 } // surface of sphere is transparent
    interior {
        media {
            emission 0.02
            intervals 1
            samples 25
            method 3
            density {
                spherical
                ramp_wave
        translate 1.0*y  // replace 1.0 = t   by time for animation
        warp { turbulence 1.5 }
        translate -1.0*y // replace -1.0 = -t  by time for animation
                color_map {
                    [0.0 color rgb <0, 0, 0>]
                    [0.1 color rgb <1, 0, 0>]
                    [0.5 color rgb <1, 1, 0>]
                    [1.0 color rgb <1, 1, 0>]
                }
            }
        }
    }
    scale 25
    hollow
}{CODE}

__Skybox2__ (vast darkness and a few green nebulae):
 
{img src="img/wiki_up/Ghoulskybox2_fr.jpg" alt="Ghoulskybox2_fr.jpg"}

(see this [http://sfz.schattenkind.net/wiki/index.php/Image:S05_02.jpg|screen shot also with runtime stars]

{CODE(wrap="1",colors="povray")}#include "colors.inc"

camera {
  location <0,0,0>
  angle 90
  right <1,0,0> up <0,1,0>
  // turn the cam based on the current frame=clock : [0-5]
  #switch (clock)
    #range (0,3)
      // first 4 frames : turn from left to right
      rotate (90*clock)*y
    #break
    #case (4)
      // look at the sky
      rotate -90*x
    #break
    #case (5)
      // look at the ground
      rotate 90*x
    #break
  #end // End of conditional part
}

background { color rgb <0,0,0> }

// light_source { <100, 100, -200> color White }
/*
/usr/share/povray-3.5/include/stars.inc

  sky_sphere {
    pigment {
        granite
        color_map {
            [ 0.000  0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.270  0.280 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ]
            [ 0.280  0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.470  0.480 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ]
            [ 0.480  0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.680  0.690 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ]
            [ 0.690  0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
            [ 0.880  0.890 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ]
            [ 0.890  1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ]
        }
    turbulence 1
    sine_wave
    scale .5
    }
    
  }
  */
  
sphere { < 0, 0, 0>, 2
    pigment { rgbt 1 } // surface of sphere is transparent
    interior {
        media {
            emission 0.02
            intervals 1
            samples 25
            method 3
            density {
                spherical
                ramp_wave
        translate 1.0*y  // replace 1.0 = t   by time for animation
        warp { turbulence 2.5 }
        translate -1.0*y // replace -1.0 = -t  by time for animation
                color_map {
                    [0.0 color rgb <0, 0, 0> * 0.5]
                    [0.1 color rgb <0, 1, 0> * 0.5]
                    [0.5 color rgb <1, 1, 0> * 0.5]
                    [1.0 color rgb <1, 0, 0> * 0.5]
                }
            }
            density {
                spherical
                ramp_wave
                color_map {
                    [0.0 color rgb 1]
                    [0.2 color rgb 1]
                    [0.3 color rgb 0]
                    [1.0 color rgb 0]
                }
            }
        }
    }
    scale 25
    hollow
}{CODE}

* see also spacescape skybox maker : http://www.ogre3d.org/forums/viewtopic.php?f=11&t=56125#p380926