Last active
March 19, 2024 22:04
-
-
Save DavidBiesack/5a66a93bb712b0f6bc07b664f324546f to your computer and use it in GitHub Desktop.
gebegb.pov
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Persistence Of Vision raytracer version 3.0 file. | |
// Copyright 1998 David J. Biesack | |
// GEBEGB - inspired by the cover of Douglas R. Hofstadter's book, | |
// Go:del Escher and Bach: an Eternal Golden Braid | |
#version 3.7; | |
#include "colors.inc" | |
#include "textures.inc" | |
#include "woods.inc" | |
#include "stones.inc" | |
#include "glass.inc" | |
#include "rad_def.inc" | |
global_settings { | |
max_trace_level 12 | |
ambient_light color White | |
// radiosity { Rad_Settings(Radiosity_Final, off, off) } | |
// photons { spacing 0.02 max_trace_level 5 } | |
} | |
#declare Offset = 4; | |
// background walls, floor | |
plane { x, -4*Offset texture { Spun_Brass scale .5 rotate <70,40,10>} } // texture { T_Stone35 scale .8 } } // left wall | |
plane { -z, -4*Offset texture { Sandalwood scale 2} } // { T_Stone35 scale 1.8 } } // back wall | |
plane { y, -4*Offset texture { Brushed_Aluminum scale 16 } } // { T_Stone29 scale 4 } } // floor | |
// Define letters with CSF instead of fonts/text objects; | |
// I can't find a font that is really just right, and the chars | |
// in chars.inc just don't cut it [pun intended] | |
// define letters centered at <0,0,0> for easier rotation | |
// this one's trivial... | |
#declare letter_E = prism { | |
linear_sweep // or conic_sweep for tapering to a point | |
linear_spline // linear_spline | quadratic_spline | cubic_spline | bezier_spline | |
-6, // height 1 | |
6, // height 2 | |
13, // number of points | |
<4,4> <-4,4> // left edge | |
<-4,-4> <4,-4> // bottom edge | |
<3, -2.5> // bottom bevel | |
<-2.5, -2.5> <-2.5, -0.5> // lower left inside edge | |
<0, -0.5> <0,1> <-2.5, 1> // middle, with bevel | |
<-2.5,2.5> <3, 2.5> <4,4> // top right bevel | |
rotate -90*x | |
} | |
#declare letter_G_legs = | |
prism { | |
linear_sweep // or conic_sweep for tapering to a point | |
linear_spline // linear_spline | quadratic_spline | cubic_spline | bezier_spline | |
-6, // height 1 | |
6, // height 2 | |
7, // number of points | |
<.5, -.5> <.5, -2> <2, -2> <2, -4> <3.5, -4> <3.5, -.5> <.5, -.5> | |
rotate -90*x | |
} | |
#declare letter_G = | |
union { | |
difference { | |
cylinder { | |
-6*z, 6*z, 4 | |
} | |
union { | |
cylinder { | |
-7*z, 7*z, 2.5 | |
} | |
prism { | |
linear_sweep // or conic_sweep for tapering to a point | |
linear_spline // linear_spline | quadratic_spline | cubic_spline | bezier_spline | |
-7, // height 1 | |
7, // height 2 | |
3, // number of points | |
<1,0> <5, 5> | |
<4,-4> | |
rotate -90*x | |
} | |
} // end union | |
} // end difference | |
object { letter_G_legs } | |
} // end union | |
#declare letter_B = | |
difference { | |
union { | |
box { <1, 4, -5> <-4, -4, 5> } | |
cylinder { <1, 2, -5> <1, 2, 5> 2 } | |
cylinder { <1.5, -1.5, -5> <1.5, -1.5, 5> 2.5 } | |
} | |
union { | |
cylinder { <1, 2, -6> <1, 2, 6> 1 } | |
box { <1, 3, -6> <-2.25, 1, 6> } | |
cylinder { <1, -1.5, -6> <1, -1.5, 6> 1.5 } | |
box { <1, 0, -6> <-2.25, -3, 6> } | |
} | |
} | |
#declare Triplet_Texture = texture {pigment { Brown_Agate } scale .83} | |
// Top trip-let | |
intersection { | |
object { letter_E rotate -90*y} // left wall -90*y | |
object { letter_G } // back wall | |
object { letter_B rotate 90*x } // floor | |
texture { Triplet_Texture } | |
translate 3*Offset*y | |
} | |
// Bottom trip-let | |
intersection { | |
object { letter_G rotate -90*y } // left wall | |
object { letter_E } // back wall | |
object { letter_B rotate 90*x } // floor | |
texture { Triplet_Texture } | |
} | |
// top down light | |
light_source { | |
0*x // light's position (translated below) | |
color rgb <1,1,1> // light's color | |
spotlight // this kind of light source | |
cylinder // this variation | |
translate <0, 6*Offset, 0> | |
point_at <0, 0, 0> // direction of spotlight | |
radius Offset*1.5 // hotspot (inner, in degrees) | |
tightness 20 // tightness of falloff (1...100) lower is softer, higher is tighter | |
falloff 80 // intensity falloff radius (outer, in degrees) | |
} | |
// lower right | |
light_source { | |
0*x // light's position (translated below) | |
color rgb <1,1,1> // light's color | |
spotlight // this kind of light source | |
cylinder // this variation | |
translate <6*Offset, 0, 0> | |
point_at <0, 0, 0> // direction of spotlight | |
radius Offset*1.5 // hotspot (inner, in degrees) | |
tightness 20 // tightness of falloff (1...100) lower is softer, higher is tighter | |
falloff 80 // intensity falloff radius (outer, in degrees) | |
} | |
// upper right | |
light_source { | |
0*x // light's position (translated below) | |
color rgb <1,1,1> // light's color | |
spotlight // this kind of light source | |
cylinder // this variation | |
translate <6*Offset, 3*Offset, 0> | |
point_at <0, 3*Offset, 0> // direction of spotlight | |
radius Offset*1.5 // hotspot (inner, in degrees) | |
tightness 20 // tightness of falloff (1...100) lower is softer, higher is tighter | |
falloff 80 // intensity falloff radius (outer, in degrees) | |
} | |
// lower left | |
light_source { | |
0*x // light's position (translated below) | |
color rgb <1,1,1> // light's color | |
spotlight // this kind of light source | |
cylinder // this variation | |
translate <0, 0, -6*Offset> | |
point_at <0, 0, 0> // direction of spotlight | |
radius Offset*1.5 // hotspot (inner, in degrees) | |
tightness 20 // tightness of falloff (1...100) lower is softer, higher is tighter | |
falloff 80 // intensity falloff radius (outer, in degrees) | |
} | |
// upper left | |
light_source { | |
0*x // light's position (translated below) | |
color rgb <1,1,1> // light's color | |
spotlight // this kind of light source | |
cylinder // this variation | |
translate <0, 3*Offset, -6*Offset> | |
point_at <0, 3*Offset, 0> // direction of spotlight | |
radius Offset*1.5 // hotspot (inner, in degrees) | |
tightness 20 // tightness of falloff (1...100) lower is softer, higher is tighter | |
falloff 80 // intensity falloff radius (outer, in degrees) | |
} | |
sphere { | |
<0, 0, 0>, 1 | |
hollow | |
texture { | |
pigment { | |
gradient y | |
color_map { | |
[ 0.5 color rgb <0.0, 0.0, 0.5> ] | |
[ 1.0 color rgb <1.0, 1.0, 1.0>*0.7 ] | |
} | |
} | |
finish { | |
ambient color White*0.7 | |
diffuse 0.6 | |
specular 0 | |
} | |
scale <1, 2, 1> | |
translate <0, -1, 0> | |
} | |
scale <1, 1, 1>*1000 | |
} | |
camera { | |
location <17, 25, -17> | |
up <0,1,0> right <1,0,0> // adjust for square aspect ratio | |
look_at <0, 6, 0> | |
} | |
// See options in gebegb.ini | |
// Local Variables: | |
// compile-command: "start e:\\povray\\bin\\pvengine e:\\povray\\djb\\gebegb.ini" | |
// End: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment