diff --git a/chain_loop.pov b/chain_loop.pov new file mode 100644 index 0000000..9a94e54 --- /dev/null +++ b/chain_loop.pov @@ -0,0 +1,67 @@ + #version 3.7; + #include "colors.inc" + #include "rand.inc" + + global_settings { + assumed_gamma 1.8 + } + + camera { + right 1.78*x + location <-25, -75.1, -60> + look_at 0.1 + angle 30 + } + + background { color rgb <.46, .09, .06> } + + 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 { + #declare I = 0; + #while(I <= 8) + #declare R = mod(I,2); + object { chain_link translate -y*link_trans*I rotate y*( (90*R) + ( RRand(-30, 30, 1 ) ) ) } + #declare I = I + 1; + #end + } + + +//======= RENDER + object { chain scale .45 texture { chain_texture } } + object { chain scale .45 texture { chain_texture } translate < 10, -10, -20 > rotate y*20 } + object { chain scale .45 texture { chain_texture } translate < 10, 30, 20 > rotate y*30 } + diff --git a/helpers.inc b/helpers.inc new file mode 100644 index 0000000..ae54057 --- /dev/null +++ b/helpers.inc @@ -0,0 +1,5 @@ +#version 3.7; + +#declare real_rgb = function(r, g, b) { + color rgb + } diff --git a/images/chain_loop.png b/images/chain_loop.png new file mode 100644 index 0000000..80c345a Binary files /dev/null and b/images/chain_loop.png differ diff --git a/images/noodle.png b/images/noodle.png index 5755679..65f17b5 100644 Binary files a/images/noodle.png and b/images/noodle.png differ diff --git a/images/noodles.png b/images/noodles.png new file mode 100644 index 0000000..fc23544 Binary files /dev/null and b/images/noodles.png differ diff --git a/noodles.pov b/noodles.pov new file mode 100644 index 0000000..e21b120 --- /dev/null +++ b/noodles.pov @@ -0,0 +1,54 @@ + #version 3.7; + #include "colors.inc" + #include "rand.inc" + + global_settings { + assumed_gamma 1.8 + } + + camera { + right 1.78*x + location <5, 20, -15> + look_at <0,2,0> + angle 50 + } + + background { color rgb <74,74,74>/255 } + light_source { <300, 300, -1000> White } + + #declare box1 = difference { + box { <0,0,0>, <1,1,1> } + } + + #declare sph1 = union { + sphere { <.5,.5,.5>, .33} + } + + #declare seg1 = merge { + #declare I = 1; + #while(I <= 14) + object { sph1 translate y*.5*I translate x*( RRand(-.15, .15, 1) ) } + #declare I = I+1; + #end + } + + #declare stack1 = union { + object { + seg1 + } + } + + +//======= RENDER + + #declare test = union { + object { box1 } + object { stack1 } + object { stack1 rotate x*90 translate y*1 } + object { stack1 rotate x*-90 translate z*1 } + object { stack1 rotate z*90 translate x*1 } + object { stack1 rotate z*-90 translate y*1 } + pigment { color rgb <58,97,58>/255 } + } + + object {test rotate <45, 145, 45> }