diff --git a/pr/sol/GNUmakefile b/pr/sol/GNUmakefile index c526c42..2b352b3 100644 --- a/pr/sol/GNUmakefile +++ b/pr/sol/GNUmakefile @@ -3,14 +3,21 @@ include GNUmakevars all: \ + sol-im-leerraum.ppm \ + raumhafen.ppm \ + people.ppm \ test-mittelstueck.ppm \ test-sz.ppm \ test-sol.ppm \ test-mensch.ppm \ exodus.ppm \ + sol-ortho.ppm +%.jpg: %.ppm + cjpeg $< > $@ + %.ppm: %.pov $(POVRAY) +L$(POVINC) +V -I$< +FP @@ -28,7 +35,19 @@ test-sol.ppm: test-sol.pov sol.pov sz.pov mittelstueck.pov \ test-mensch.ppm: test-mensch.pov mensch.pov exodus.ppm: exodus.pov sol.pov sz.pov mittelstueck.pov \ - ynkelonium_texture.pov Triebwerk.pov mensch.pov + ynkelonium_texture.pov Triebwerk.pov mensch.pov ringwulst.pov + $(POVRAY) +L$(POVINC) +V -I$< +FP +W600 +H800 + +raumhafen.ppm: raumhafen.pov + $(POVRAY) +L$(POVINC) +V -I$< +FP +W600 +H800 + +sol-im-leerraum.ppm: sol-im-leerraum.pov sol.pov sz.pov mittelstueck.pov \ + ynkelonium_texture.pov Triebwerk.pov ringwulst.pov + $(POVRAY) +L$(POVINC) +V -I$< +FP + +sol-ortho.ppm: sol-ortho.pov sol.pov sz.pov mittelstueck.pov \ + ynkelonium_texture.pov Triebwerk.pov + %.gif: %.ppm ppmquant 256 $< | ppmtogif > $@ diff --git a/pr/sol/exodus.pov b/pr/sol/exodus.pov index ee72a4e..372cd99 100644 --- a/pr/sol/exodus.pov +++ b/pr/sol/exodus.pov @@ -6,7 +6,10 @@ global_settings { assumed_gamma 1.0 - ambient_light rgb<0.5, 0.5, 0.5> + //ambient_light rgb<0.5, 0.5, 0.5> + ambient_light rgb<0, 0, 0> + radiosity {} + max_intersections 128 } background { color rgb<0.2, 0.4, 0.8> } light_source { @@ -15,6 +18,8 @@ light_source { } camera { + up <0, 4/3, 0> + right <1, 0, 0> location <6000, 1.65, 10> look_at <0, 2500, -1000> //ok //look_at <6000, 1.65, 0> @@ -28,43 +33,79 @@ object { translate <0, 3300, 0> } -#declare i = 3000 -#declare rand1 = seed(0) +#include "bmpeople.inc" +#include "lft.cdf" + +#declare i = 5900; +#declare rand1 = seed(0); #while (i < 6000) - #declare Mensch_Schritt = rand(rand1) * 30 - 15 - #declare Mensch_Farbe_Jacke = - color - #declare Mensch_Farbe_Hose = - color - #declare Groesse = rand(rand1) * 0.2 + 0.9 - #include "mensch.pov" + #debug concat ("\nMensch: ", str(i, 0, 0)) + #declare Schritt = (rand(rand1) * 0.7 + 0.3) * + ((rand(rand1) > 0.5) * 2 - 1); + #declare MF = int(rand(rand1) * 1.5); // Männer:Frauen = 2:1 + #declare Groesse = (rand(rand1) * 0.3 + 1.7) * (1 - 0.08 * MF); + + #declare BM_Neck_Rot = <-10,0,0>; // Rotation vector for the neck + #declare BM_Torso_Rot= <-10,0,0>; // Rotation vector for the Upper Torso + + #declare BM_RA_S2E = <-20*Schritt,0,-8>; // Right Upperarm + #declare BM_RA_E2W = <-20*Schritt+20,0,-3>; // Right Forearm + #declare BM_RH_Rot = <0,0,0>; // Right Hand + + #declare BM_LA_S2E = <20*Schritt,0,8>; // Left Upperarm + #declare BM_LA_E2W = <20*Schritt+20,0,3>; // Left Forearm + #declare BM_LH_Rot = <0,0,0>; // Left Hand + + #if (Schritt >= 0) + #declare BM_RL_H2K = <30*Schritt,0,-5>; // Right Thigh + #declare BM_RL_K2A = <15*Schritt,0,0>; // Right Lower Leg + #declare BM_RF_Rot = <0,0,0>; // Right Foot + + #declare BM_LL_H2K = <0,0,5>; // Left Thigh + #declare BM_LL_K2A = <-30*Schritt,0,0>; // Left Lower Leg + #declare BM_LF_Rot = <15*Schritt,0,0>; // Left Foot + + #declare BM_Toe_Angle =<15,0,0>; // x = Left Foot + #else + #declare BM_LL_H2K = <30*-Schritt,0,-5>; // Right Thigh + #declare BM_LL_K2A = <15*-Schritt,0,0>; // Right Lower Leg + #declare BM_LF_Rot = <0,0,0>; // Right Foot + + #declare BM_RL_H2K = <0,0,5>; // Left Thigh + #declare BM_RL_K2A = <-30*-Schritt,0,0>; // Left Lower Leg + #declare BM_RF_Rot = <15*-Schritt,0,0>; // Left Foot + + #declare BM_Toe_Angle =<0,0,15*-Schritt>; // x = Left Foot + #end + + #declare BM_Hair_On = 1; + #declare BM_Hair_Rot = <0,0,0>; + #declare BM_Hair_Arch = 0; + #declare BM_Hair_Thck = 0.20; + #declare BM_Hair_Line = 4 * rand(rand1)*2; + #declare BM_Hair_LDpth = rand(rand1) * (1-MF*0.7); + #declare BM_Hair_Wght = 0.015; + #declare BM_Hair_Hght = 1.5; + #declare BM_Hair_Length= 5 + rand(rand1)*(5 + MF*5); + #declare BM_Hair_Curl = 0.01 * rand(rand1); + #declare BM_Hair_Col = <.6,.5,.4> * rand(rand1); + + Blob_Man(MF, Groesse) object { - Mensch - scale - rotate <0, -90, 0> + BlobMan + #if (Schritt >= 0) + transform BMO_Toe_L + #else + transform BMO_Toe_R + #end + + rotate <0, 90, 0> translate } - #declare i = i + 1 + #declare i = i + 1; #end -#declare i = 0 -#declare rand1 = seed(0) -#while (i < 50) - #declare Mensch_Schritt = 0 - #declare Mensch_Farbe_Jacke = - color - #declare Mensch_Farbe_Hose = - color - #include "mensch.pov" - object { - Mensch - rotate <0, -90, 0> - translate <0, i + rand(rand1)*1.8, 0> - } - #declare i = i + 3 -#end - -#declare i = 4000 +#declare i = 4000; #while (i < 6000) #debug concat ("\nRoboter: ", str(i, 0, 0)) object { @@ -77,13 +118,69 @@ object { rotate <0, 0, 0> translate } - #declare i = i + 5 + #declare i = i + 5; #end plane { - <0, 1, 0>, 0.3 + <0, 1, 0>, 0.0 pigment { - checker color White*0.7, color White*0.5 + color White*0.7 } } +#declare T_Beton = + texture { + pigment { + color rgb <1, 1, 1> + } + finish { + ambient 0.6 + diffuse 0.3 + reflection .1 + specular 0 + roughness 0.1 + + } + } +#declare T_Fenster = + texture { + pigment { + color rgb <0.2, 0.2, 0.5> + } + finish { + ambient 0.1 + diffuse 0.1 + reflection .25 + specular 1 + roughness 0.001 + + } + } + +#local ii = 0; +#declare rand2 = seed(1); +#while (ii < 360) + #local wm = rand(rand2)*1000; + #local wd = (wm + 20) / (100000 * pi) * 360; + #local hd = rand(rand2)*2000; + + box { + <-50000, 0, 0> + <-50100, hd, wm> + texture { + quilted + control0 0 + control1 1 + texture_map { + [ 0.0 T_Fenster ] + [ 0.3 T_Fenster ] + [ 0.3 T_Beton ] + [ 1.0 T_Beton ] + } + scale <10, 5, 10> + } + rotate <0, ii, 0> + + } + #local ii = ii + wd; +#end diff --git a/pr/sol/mittelstueck.pov b/pr/sol/mittelstueck.pov index aeb468a..e34d72f 100644 --- a/pr/sol/mittelstueck.pov +++ b/pr/sol/mittelstueck.pov @@ -36,13 +36,13 @@ } } -#declare R1 = 750 -#declare R2 = 400 +#declare R1 = 750; +#declare R2 = 400; #include "ringwulst.pov" #declare Landestuetzen = union { - #declare i = 15 + #declare i = 15; #while (i < 360) union { union { @@ -108,7 +108,7 @@ translate <800, -750, 0> rotate <0, i, 0> } - #declare i = i + 30 + #declare i = i + 30; #end } diff --git a/pr/sol/people.pov b/pr/sol/people.pov new file mode 100644 index 0000000..be3a3cb --- /dev/null +++ b/pr/sol/people.pov @@ -0,0 +1,101 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" + +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 { + <86E9, 86E9, -86E9> + color White +} + +camera { + location <6000, 1.65, 5> + look_at <0, 2500, -1000> //ok + //look_at <6000, 1.65, 0> +} + +#include "bmpeople.inc" +#include "lft.cdf" + +#declare i = 5900 +#declare rand1 = seed(0) +#while (i < 6000) + #debug concat ("\nMensch: ", str(i, 0, 0)) + #declare Schritt = (rand(rand1) * 0.7 + 0.3) * + ((rand(rand1) > 0.5) * 2 - 1); + #declare MF = int(rand(rand1) * 1.5); // Männer:Frauen = 2:1 + #declare Groesse = (rand(rand1) * 0.3 + 1.7) * (1 - 0.08 * MF); + + #declare BM_Neck_Rot = <-10,0,0>; // Rotation vector for the neck + #declare BM_Torso_Rot= <-10,0,0>; // Rotation vector for the Upper Torso + + #declare BM_RA_S2E = <-20*Schritt,0,-8>; // Right Upperarm + #declare BM_RA_E2W = <-20*Schritt+20,0,-3>; // Right Forearm + #declare BM_RH_Rot = <0,0,0>; // Right Hand + + #declare BM_LA_S2E = <20*Schritt,0,8>; // Left Upperarm + #declare BM_LA_E2W = <20*Schritt+20,0,3>; // Left Forearm + #declare BM_LH_Rot = <0,0,0>; // Left Hand + + #if (Schritt >= 0) + #declare BM_RL_H2K = <30*Schritt,0,-5>; // Right Thigh + #declare BM_RL_K2A = <15*Schritt,0,0>; // Right Lower Leg + #declare BM_RF_Rot = <0,0,0>; // Right Foot + + #declare BM_LL_H2K = <0,0,5>; // Left Thigh + #declare BM_LL_K2A = <-30*Schritt,0,0>; // Left Lower Leg + #declare BM_LF_Rot = <15*Schritt,0,0>; // Left Foot + + #declare BM_Toe_Angle =<15,0,0>; // x = Left Foot + #else + #declare BM_LL_H2K = <30*-Schritt,0,-5>; // Right Thigh + #declare BM_LL_K2A = <15*-Schritt,0,0>; // Right Lower Leg + #declare BM_LF_Rot = <0,0,0>; // Right Foot + + #declare BM_RL_H2K = <0,0,5>; // Left Thigh + #declare BM_RL_K2A = <-30*-Schritt,0,0>; // Left Lower Leg + #declare BM_RF_Rot = <15*-Schritt,0,0>; // Left Foot + + #declare BM_Toe_Angle =<0,0,15*-Schritt>; // x = Left Foot + #end + + #declare BM_Hair_On = 1; + #declare BM_Hair_Rot = <0,0,0>; + #declare BM_Hair_Arch = 0; + #declare BM_Hair_Thck = 0.20; + #declare BM_Hair_Line = 4 * rand(rand1)*2; + #declare BM_Hair_LDpth = rand(rand1) * (1-MF*0.7); + #declare BM_Hair_Wght = 0.015; + #declare BM_Hair_Hght = 1.5; + #declare BM_Hair_Length= 5 + rand(rand1)*(5 + MF*5); + #declare BM_Hair_Curl = 0.01 * rand(rand1); + #declare BM_Hair_Col = <.6,.5,.4> * rand(rand1); + + Blob_Man(MF, Groesse) + object { + BlobMan + #if (Schritt >= 0) + transform BMO_Toe_L + #else + transform BMO_Toe_R + #end + + rotate <0, 90, 0> + translate + } + #declare i = i + 1; +#end + +plane { + <0, 1, 0>, 0.0 + pigment { + checker color White*0.7, color White*0.5 + } +} + diff --git a/pr/sol/povray.ini b/pr/sol/povray.ini index 4d50cdd..a9f5a93 100644 --- a/pr/sol/povray.ini +++ b/pr/sol/povray.ini @@ -1,6 +1,8 @@ -+A +HTP +fp +w800 +h600 display_gamma = 2.2 +L../roboter -+sp16 ++L../../blbman40 ++L../../galaxy ++D ++QR diff --git a/pr/sol/raumhafen.pov b/pr/sol/raumhafen.pov new file mode 100644 index 0000000..443fbe3 --- /dev/null +++ b/pr/sol/raumhafen.pov @@ -0,0 +1,148 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" +#include "ynkelonium_texture.pov" +#include "T_BlackMetal.pov" + +global_settings { + assumed_gamma 1.0 + //ambient_light rgb<0.5, 0.5, 0.5> + ambient_light rgb<0, 0, 0> + radiosity {} +} +background { color rgb<0.2, 0.4, 0.8> } +light_source { + <86E9, 86E9, -86E9> + color White +} + +camera { + up <0, 4/3, 0> + right <1, 0, 0> + location <6000, 1.65, 10> + look_at <0, 2500, -1000> //ok + //location <-46000, 1.65, 0> + //look_at <-50000, 2, 0> //ok + //look_at <6000, 1.65, 0> +} + + +union { + union { + sphere { + <0, 0, 0>, 1250 + } + torus { + 1250, 400 + } + translate <0, 1250+750, 0> + } + + union { + cylinder { + <0, 750, 0>, + <0, -750, 0>, + 750 + } + torus { + 750, 400 + } + } + + union { + sphere { + <0, 0, 0>, 1250 + } + torus { + 1250, 400 + } + translate <0, -(1250+750), 0> + } + texture { + Ynkelonium_Texture + } + translate <0, 3300, 0> +} + + +#declare i = 4000; +#while (i < 6000) + #debug concat ("\nRoboter: ", str(i, 0, 0)) + cylinder { + <0, 0, 0> <0, 2.5, 0> 0.3 + texture { T_BlackMetal } + translate + } + cylinder { + <0, 0, 0> <0, 2.5, 0> 0.3 + texture { T_BlackMetal } + translate + } + #declare i = i + 5; +#end + +plane { + <0, 1, 0>, 0.0 + pigment { + color White*0.7 + } +} + +#declare T_Beton = + texture { + pigment { + color rgb <1, 1, 1> + } + finish { + ambient 0.6 + diffuse 0.3 + reflection .1 + specular 0 + roughness 0.1 + + } + } +#declare T_Fenster = + texture { + pigment { + color rgb <0.2, 0.2, 0.5> + } + finish { + ambient 0.1 + diffuse 0.1 + reflection .25 + specular 1 + roughness 0.001 + + } + } + +#local ii = 0; +#declare rand2 = seed(1); +#while (ii < 360) + #local wm = rand(rand2)*1000; + #local wd = (wm + 20) / (100000 * pi) * 360; + #local hd = rand(rand2)*2000; + + box { + <-50000, 0, 0> + <-50100, hd, wm> + texture { + quilted + control0 0 + control1 1 + texture_map { + [ 0.0 T_Fenster ] + [ 0.3 T_Fenster ] + [ 0.3 T_Beton ] + [ 1.0 T_Beton ] + } + scale <10, 5, 10> + } + rotate <0, ii, 0> + + } + #local ii = ii + wd; +#end diff --git a/pr/sol/ringwulst.pov b/pr/sol/ringwulst.pov index 917b074..032c9b2 100644 --- a/pr/sol/ringwulst.pov +++ b/pr/sol/ringwulst.pov @@ -1,12 +1,18 @@ /* Parameter: * R1, R2: Durchmesser des Torus + * Ringwulst_Triebwerk_An: (-45, 0, 45) Sind Triebwerke an, und + * wenn ja, in welche Richtung? */ +#if (!defined(Ringwulst_Triebwerk_An)) + #declare Ringwulst_Triebwerk_An = 0; +#end + #declare Hangars_Ringwulst_neg = difference { union { - #declare i = 10 - #declare ii = 10 + #declare i = 10; + #declare ii = 10; #while (i < 360) union { box { @@ -27,8 +33,8 @@ } rotate <0, i, 0> } - #declare i = i + ii - #declare ii = 30 - ii + #declare i = i + ii; + #declare ii = 30 - ii; #end } @@ -42,10 +48,10 @@ #declare Geschuetze_Ringwulst_aussen = union { - #declare w = -45 + #declare w = -45; #while (w <= 45) - #declare i = 10 - #declare ii = 10 + #declare i = 10; + #declare ii = 10; #while (i < 360) union { sphere { @@ -64,10 +70,10 @@ translate rotate <0, i, 0> } - #declare i = i + ii - #declare ii = 30 - ii + #declare i = i + ii; + #declare ii = 30 - ii; #end - #declare w = w + 90 + #declare w = w + 90; #end texture { Ynkelonium_Texture @@ -77,9 +83,9 @@ #declare Geschuetze_Ringwulst_mitte = union { - #declare w = 0 + #declare w = 0; #while (w <= 0) - #declare i = 0 + #declare i = 0; #while (i < 360) union { sphere { @@ -98,9 +104,9 @@ translate rotate <0, i, 0> } - #declare i = i + 10 + #declare i = i + 10; #end - #declare w = w + 90 + #declare w = w + 90; #end texture { Ynkelonium_Texture @@ -114,7 +120,7 @@ torus { R1, R2 } - #declare i = 0 + #declare i = 0; #while (i < 360) object { Triebwerk_neg @@ -128,10 +134,39 @@ translate rotate <0, i, 0> } - #declare i = i + 30 + #declare i = i + 30; #end object {Hangars_Ringwulst_neg} } + #if (Ringwulst_Triebwerk_An) + #local i = 0; + #while (i < 360) + cylinder { + <0, 0, 0> <1, 0, 0> 1 + hollow on + pigment { rgbt 1.0 } + interior { + media { + emission rgb <0.2, 0.4, 0.8> + density { + gradient x + density_map { + [0.0 rgb 0.05] + [0.5 rgb 0.01] + [1.0 rgb 0.0] + } + } + } + } + scale <250, 60, 60> + translate <350, 0, 0> + rotate <0, 0, Ringwulst_Triebwerk_An> + translate + rotate <0, i, 0> + } + #local i = i + 30; + #end + #end cone { <0, -R2, 0>, R1, <0, R2, 0>, R1 diff --git a/pr/sol/sol.pov b/pr/sol/sol.pov index c03cffb..5bd0dd5 100644 --- a/pr/sol/sol.pov +++ b/pr/sol/sol.pov @@ -1,17 +1,56 @@ #include "sz.pov" #include "mittelstueck.pov" -#declare Sol = - union { - object { - SZ - translate <0, 750+1250, 0> +#if (defined(Sol_Simple)) + #declare Sol = + union { + union { + sphere { + <0, 0, 0>, 1250 + } + torus { + 1250, 400 + } + translate <0, 1250+750, 0> + } + + union { + cylinder { + <0, 750, 0>, + <0, -750, 0>, + 750 + } + torus { + 750, 400 + } + } + + union { + sphere { + <0, 0, 0>, 1250 + } + torus { + 1250, 400 + } + translate <0, -(1250+750), 0> + } + texture { + Ynkelonium_Texture + } } - object { - Mittelstueck +#else + #declare Sol = + union { + object { + SZ + translate <0, 750+1250, 0> + } + object { + Mittelstueck + } + object { + SZ + translate <0, -(750+1250), 0> + } } - object { - SZ - translate <0, -(750+1250), 0> - } - } +#end diff --git a/pr/sol/sz.pov b/pr/sol/sz.pov index 13c55fe..03fa817 100644 --- a/pr/sol/sz.pov +++ b/pr/sol/sz.pov @@ -10,7 +10,7 @@ #declare Hangars_Kugelschale_neg = difference { union { - #declare i = 0 + #declare i = 0; #while (i < 360) union { box { @@ -38,7 +38,7 @@ } rotate <0, i+15, 0> } - #declare i = i + 30 + #declare i = i + 30; #end } sphere { @@ -51,9 +51,9 @@ #declare Geschuetze_Huelle_oben = union { - #declare w = 30 + #declare w = 30; #while (w <= 60) - #declare i = 0 + #declare i = 0; #while (i < 360) union { sphere { @@ -71,9 +71,9 @@ rotate <0, 0, w> rotate <0, i, 0> } - #declare i = i + 10 + #declare i = i + 10; #end - #declare w = w + 15 + #declare w = w + 15; #end texture { Ynkelonium_Texture @@ -83,9 +83,9 @@ #declare Geschuetze_Huelle_unten = union { - #declare w = -55 + #declare w = -55; #while (w <= -35) - #declare i = 0 + #declare i = 0; #while (i < 360) union { sphere { @@ -103,9 +103,9 @@ rotate <0, 0, w> rotate <0, i, 0> } - #declare i = i + 10 + #declare i = i + 10; #end - #declare w = w + 20 + #declare w = w + 20; #end texture { Ynkelonium_Texture @@ -125,13 +125,13 @@ object {Geschuetze_Huelle_unten} } -#declare R1 = 1250 -#declare R2 = 400 +#declare R1 = 1250; +#declare R2 = 400; #include "ringwulst.pov" #declare Landestuetzen = union { - #declare i = 15 + #declare i = 15; #while (i < 360) cone { <0, 0, 0>, 100 @@ -151,7 +151,7 @@ } } } - #declare i = i + 30 + #declare i = i + 30; #end } diff --git a/pr/sol/test-sol.pov b/pr/sol/test-sol.pov index 19201ba..0a1b09b 100644 --- a/pr/sol/test-sol.pov +++ b/pr/sol/test-sol.pov @@ -14,7 +14,7 @@ light_source { color White } camera { - location <-6000, 2, -1710> + location <-6000, 10000, -1710> look_at <0, 2500, 0> }