diff --git a/pr/posbi/GNUmakefile b/pr/posbi/GNUmakefile new file mode 100644 index 0000000..99229cb --- /dev/null +++ b/pr/posbi/GNUmakefile @@ -0,0 +1,24 @@ +# what's where? +include GNUmakevars + + +all: \ + test-mesh.png \ + test-posbi.png \ + + +%.ppm: %.pov + $(POVRAY) +W$(WIDTH) +H$(HEIGHT) +V -I$< +L$(POVINC) +D +FP + +%.png: %.pov + $(POVRAY) +V -I$< +L$(POVINC) +D +FN + +%.pov: make% + $< > $@ + +test-posbi.png: test-posbi.pov \ + posbi.pov + $(POVRAY) +W800 +H600 +V -I$< +L$(POVINC) +D +FN + +%.gif: %.ppm + ppmquant 256 $< | ppmtogif > $@ diff --git a/pr/posbi/posbi.pov b/pr/posbi/posbi.pov new file mode 100644 index 0000000..8fb5293 --- /dev/null +++ b/pr/posbi/posbi.pov @@ -0,0 +1,63 @@ +#local RND1 = seed(1); +#local R1 = 1000; +#local R2 = 0; + +#local C = array[2][2][2] { + { + { + <-R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1)>, + <-R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1)>, + }, + { + <-R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1)>, + <-R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1)>, + }, + } + { + { + <+R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1)>, + <+R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1)>, + }, + { + <+R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1), -R1 + R2 * (rand(RND1)*2-1)>, + <+R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1), +R1 + R2 * (rand(RND1)*2-1)>, + }, + } +}; + +#declare posbi = mesh2 { + vertex_vectors { + 14, + C[0][0][0], + C[0][0][1], + C[0][1][0], + C[0][1][1], + C[1][0][0], + C[1][0][1], + C[1][1][0], + C[1][1][1], + (C[0][0][0] + C[0][0][1] + C[0][1][0] + C[0][1][1])/4, + (C[1][0][0] + C[1][0][1] + C[1][1][0] + C[1][1][1])/4, + (C[0][0][0] + C[0][0][1] + C[1][0][0] + C[1][0][1])/4, + (C[0][1][0] + C[0][1][1] + C[1][1][0] + C[1][1][1])/4, + (C[0][0][0] + C[0][1][0] + C[1][0][0] + C[1][1][0])/4, + (C[0][0][1] + C[0][1][1] + C[1][0][1] + C[1][1][1])/4, + } + texture_list { + 4 + texture { pigment { color rgb <0.5, 0.5, 0.5> } } + texture { pigment { color rgb <0.9, 0.5, 0.5> } } + texture { pigment { color rgb <0.5, 0.9, 0.5> } } + texture { pigment { color rgb <0.5, 0.5, 0.9> } } + } + face_indices { + 24 + <0, 1, 8>, 0, <1, 2, 8>, 1, <2, 3, 8>, 2, <3, 0, 8>, 3, + <4, 5, 9>, 0, <5, 6, 9>, 1, <6, 7, 9>, 2, <7, 4, 9>, 3, + <0, 1, 10>, 0 <1, 4, 10>, 1, <4, 5, 10>, 2, <5, 0, 10>, 3, + <2, 3, 11>, 0 <3, 6, 11>, 1, <6, 7, 11>, 2, <7, 2, 11>, 3, + <0, 2, 12>, 0 <2, 4, 12>, 1, <4, 6, 12>, 2, <6, 0, 12>, 3, + <1, 3, 13>, 0 <3, 5, 13>, 1, <5, 7, 13>, 2, <7, 1, 13>, 3, + } + +} diff --git a/pr/posbi/povray.ini b/pr/posbi/povray.ini new file mode 100644 index 0000000..49be253 --- /dev/null +++ b/pr/posbi/povray.ini @@ -0,0 +1,6 @@ ++MB5 ++QR ++A ++HTN ++fp +w640 +h480 +d1 +display_gamma = 2.2 diff --git a/pr/posbi/test-mesh.pov b/pr/posbi/test-mesh.pov new file mode 100644 index 0000000..3ca6517 --- /dev/null +++ b/pr/posbi/test-mesh.pov @@ -0,0 +1,46 @@ +global_settings { + assumed_gamma 1.0 + ambient_light rgb<0.5, 0.5, 0.5> +} +background { color rgb<0.2, 0.4, 0.8> } +light_source { + <20000, 20000, 20000> + color 1 +} + +#local CP = <+2, +0, +5>; +light_source { + CP + color 0.5 +} +camera { + location CP + look_at <-0, 0, -0> +} + + +mesh2 { + vertex_vectors { + 5, + <-1, -1, 0>, + <-1, +1, 0>, + <+1, -1, 0>, + <+1, +1, 0>, + < 0, 0, 0>, + } + texture_list { + 4 + texture { pigment { color rgb <0.5, 0.5, 0.5> } } + texture { pigment { color rgb <0.9, 0.5, 0.5> } } + texture { pigment { color rgb <0.5, 0.9, 0.5> } } + texture { pigment { color rgb <0.5, 0.5, 0.9> } } + } + face_indices { + 4 + <0, 1, 4>, 0, 0, 0, + <1, 2, 4>, 1, 1, 1, + <2, 3, 4>, 2, 2, 2, + <3, 0, 4>, 3, 3, 3, + } +} + diff --git a/pr/posbi/test-posbi.pov b/pr/posbi/test-posbi.pov new file mode 100644 index 0000000..14f4379 --- /dev/null +++ b/pr/posbi/test-posbi.pov @@ -0,0 +1,80 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" + +#declare SCHNITT_1 = 1; // Quadrant -/*/- + +global_settings { + assumed_gamma 1.0 + ambient_light rgb<0.5, 0.5, 0.5> +} +background { color rgb<0.2, 0.4, 0.8> } +light_source { + <-20000, 20000, -20000> + color White +} + +#local CP = <+5000, +2500, -1000>; +light_source { + CP + color White*0.5 +} +//camera { +// location CP +// look_at <-0, -0, -0> +// orthographic +// up <0, 4000, 0> +// right <8000, 0, 0> +//} +camera { + location CP + look_at <-0, 900, -0> +} + +#include "posbi.pov" + + object { + posbi + } + +#declare gatter = + union { + #local I = -50; + #while (I <= 50) + #switch (mod(I, 10) ) + #case (0) + #local Color = color <0, 1, 0>; + #local R = 0.2; + #break; + #case (5) + #case (-5) + #local Color = color <1, 0, 0>; + #local R = 0.15; + #break; + #else + #local Color = color <0, 0, 1>; + #local R = 0.1; + #end + + cylinder { + , R + texture {pigment { color Color } } + } + cylinder { + <-50, I, 0>, <+50, I, 0> R + texture {pigment { color Color } } + } + #local I = I + 1; + #end + + } + +object { + gatter + rotate <90, 0, 0> + scale 100 +} + +