diff --git a/chain.png b/chain.png new file mode 100644 index 0000000..a5f5034 Binary files /dev/null and b/chain.png differ diff --git a/chain.pov b/chain.pov new file mode 100644 index 0000000..b113b94 --- /dev/null +++ b/chain.pov @@ -0,0 +1,68 @@ + #version 3.7; + #include "colors.inc" + + global_settings { + assumed_gamma 1 + } + + camera { + right x*1280/720 + location <-25, -75.1, -60> + look_at 0.1 + angle 30 + } + + background { color Gray30 } + + light_source { <300, 300, -1000> White } + + #declare half_torus = difference { + torus { + 4,1 + sturm + rotate x*-90 // so we can see it from the top + } + box { <-5, -5, -1>, <5, 0, 1> } + } + #declare chain_segment = cylinder { <0,4,0>, <0,-4,0>, 1 } + + #declare flip_it = x*180; + #declare torus_trans = 8; + #declare link_trans = torus_trans*2-2*y; + + #declare chain_texture = texture { + pigment { color rgb <.49, .56, .59> } + finish { + ambient .1 + diffuse .4 + reflection .35 + specular 1 + metallic + } + } + + #declare chain_link = union { + object { half_torus translate y*torus_trans/2 } + object { half_torus rotate flip_it translate -y*torus_trans/2 } + object { chain_segment translate x*torus_trans/2 } + object { chain_segment translate -x*torus_trans/2 } + translate y*60 + } + + #declare chain = union { // needs loop with random range + object { chain_link } // 0 + object { chain_link translate -y*link_trans rotate y*78 } // 90 + object { chain_link translate -y*link_trans*2 rotate y*8 } // 0 + object { chain_link translate -y*link_trans*3 rotate y*112 } // 90 + object { chain_link translate -y*link_trans*4 rotate y*-10 } // 0 + object { chain_link translate -y*link_trans*5 rotate y*90 } // 90 + object { chain_link translate -y*link_trans*6 rotate y*18 } // 0 + object { chain_link translate -y*link_trans*7 rotate y*72 } // 90 + texture { chain_texture } + } + +//======= RENDER + object { chain scale .45 } +// object { chain scale .45 translate < 10, 0, -20 > rotate y*20 } +// object { chain scale .45 translate < -10, 0, 20 > rotate y*35 } + diff --git a/demo.png b/demo.png index 51242a1..3d1f0b5 100644 Binary files a/demo.png and b/demo.png differ diff --git a/demo.pov b/demo.pov index 313c51d..8329b6e 100644 --- a/demo.pov +++ b/demo.pov @@ -1,20 +1,53 @@ +// Just following along the tutorial (mostly) + #include "colors.inc" #include "stones.inc" -background { rgb < 0.4, 0.28, 0.42 > } +background { rgb < 0.5, 0.5, 0.5 > } camera { - location <0, 2, -3> - look_at <0, 1, 2> - } - -sphere { - <0, 1, 2>, 2 - texture { - /*pigment { color Yellow }*/ - pigment { color rgb < 0.16, 0.79, 0.04 > } - } - } + location <0, 2, -4> + look_at <0, 1, 2> +} light_source { <2, 4, -3> color White } + + sphere { + <0, 1, 2>, 2 + texture { + pigment { color rgb < 0.16, 0.79, 0.04 > } + } + } + +// box { +// <-1, 0, -1>, // Near lower left corner +// < 1, 0.5, 3> // Far upper right corner +// texture { +// T_Stone25 // Pre-defined from stones.inc +// scale 2 // Scale by the same amount in all +// // directions +// } +// rotate y*20 // Equivalent to "rotate <0,20,0>" +// } + +// cone { +// <0, 1, 0>, 0.03 // Center and radius of one end +// <1, 2, 3>, 1.0 // Center and radius of other end +// texture { T_Stone25 scale 1 } +// } + +// cylinder { +// <0, 1, 0>, // Center of one end +// <1, 2, 3>, // Center of other end +// 0.5 // Radius +// open // Remove end caps +// texture { T_Stone25 scale 1 } +// } + + + plane { y, -1 + pigment { + checker color rgb < .13, .16, .13 > , color rgb < .42, .42, .42 > + } + } diff --git a/povray.ini b/povray.ini new file mode 100644 index 0000000..b4447cb --- /dev/null +++ b/povray.ini @@ -0,0 +1,73 @@ +; PERSISTENCE OF VISION RAY TRACER +; +; POV-Ray VERSION 3.7 +; +; SAMPLE POVRAY.INI FILE +; +; The general form of the options is "Variable=value". Everything +; between the equals sign and the end of the line is considered part +; of the value. The spacing and layout is free-form but only one option +; per line is allowed. Variables and values are not case-sensitive. +; +; Note: characters after a semi-colon are treated as a comment +; +; Traditional POV-Ray switches beginning with + or - are also allowed +; and they may be given with more than one switch per line. +; +; Add your own options at the bottom and/or edit these to suit. See the +; general documentation for full instructions on how to use INI options. +; +; Width of image in pixels. Accepts integer values. +Width = 1280 +; +; Height of image in pixels. Accepts integer values. +Height = 720 +; +; Sets minimum number of objects before auto bounding kicks in. +Bounding_Threshold = 3 +; +; +; Turn display on +Display=On +; +; Turn verbose mode on +Verbose=On +; +; +; Specify path to search for any files not found in current directory. +; For example: Library_Path="C:\Program Files\POV-Ray for Windows\include" +; There may be some entries already here; if there are they were +; probably added by the install process or whoever set up the +; software for you. At the least you can expect an entry that +; points to the standard POV-Ray include files directory; on +; some operating systems there may also be one which points to +; the system's fonts directory. +; +; Note that some platforms (e.g. Windows, unless this feature is +; turned off via the configuration file) will automatically append +; standard locations like those mentioned above to the library +; path list after reading this file, so in those cases you don't +; necessarily have to have anything at all here. +; + +;; Search path for #include source files or command line ini files not +;; found in the current directory. New directories are added to the +;; search path, up to a maximum of 25. + +Library_Path="/usr/local/Cellar/povray/3.7.0.0/share/povray-3.7" +Library_Path="/usr/local/Cellar/povray/3.7.0.0/share/povray-3.7/ini" +Library_Path="/usr/local/Cellar/povray/3.7.0.0/share/povray-3.7/include" + +;; File output type control. +;; T Uncompressed Targa-24 +;; C Compressed Targa-24 +;; P UNIX PPM +;; N PNG (8-bits per colour RGB) +;; Nc PNG ('c' bit per colour RGB where 5 <= c <= 16) + +Output_to_File=true +Output_File_Type=N16 ;; (+/-Ftype) + ++A + + diff --git a/tordemo.png b/tordemo.png new file mode 100644 index 0000000..fd1a66a Binary files /dev/null and b/tordemo.png differ diff --git a/tordemo.pov b/tordemo.pov new file mode 100644 index 0000000..686fb9e --- /dev/null +++ b/tordemo.pov @@ -0,0 +1,64 @@ +#include "colors.inc" + + camera { + location <0, .1, -75> + look_at 0.1 + angle 30 + } + + background { color Gray50 } // to make the torus easy to see + + light_source { <300, 300, -1000> White } + + #declare full_tor = torus { + 4, 1 // major and minor radius + rotate -90*x // so we can see it from the top + pigment { Green } + } + + #declare half_tor = difference { + torus { + 4, 1 + rotate x*-90 // so we can see it from the top + } + box { <-5, -5, -1>, <5, 0, 1> } + pigment { Green } + } + #declare tor_trans = 8; // twice the major radius + + #declare flip_it = 180*x; + + #declare snake = union { + object { half_tor } + object { half_tor + rotate flip_it + translate x*tor_trans + } + object { half_tor + translate x*tor_trans*2 + } + object { half_tor + rotate flip_it + translate x*tor_trans*3 + } + object { half_tor + rotate flip_it + translate -x*tor_trans + } + object { half_tor + translate -x*tor_trans*2 + } + object { half_tor + rotate flip_it + translate -x*tor_trans*3 + } + object { half_tor + translate -x*tor_trans*4 + } + rotate y*45 + translate z*20 + } + + + object { snake } +