// Prince vs Dragon in the Mountains (removed gray ball/foreground boulder; improved staging) // Single-file POV-Ray SDL #version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.62, 0.80, 1.0> } // sky // ---------------- Camera ---------------- camera { location < -14.0, 8.8, -20.5> look_at < 0.6, 2.7, 1.1> angle 34 } // ---------------- Lights ---------------- light_source { <55, 65, -40> color rgb <1.00, 0.98, 0.92> } // sun key light_source { <-45, 30, -10> color rgb <0.28, 0.36, 0.52> } // sky fill light_source { <0, 12, -2> color rgb <0.14, 0.14, 0.16> } // subtle front lift // ---------------- Atmosphere ---------------- fog { distance 75 color rgb <0.72, 0.84, 1.0> fog_type 2 fog_offset 0.2 fog_alt 4.2 turbulence 0.22 } // ---------------- Textures ---------------- #declare T_Ground = texture { pigment { color rgb <0.33, 0.32, 0.30> } finish { diffuse 0.95 specular 0.04 roughness 0.10 } }; #declare T_Rock = texture { pigment { bozo color_map { [0.0 color rgb <0.20,0.20,0.22>] [0.6 color rgb <0.35,0.35,0.38>] [1.0 color rgb <0.60,0.60,0.64>] } scale 1.15 } finish { diffuse 0.95 specular 0.08 roughness 0.12 } }; #declare T_Snow = texture { pigment { color rgb <0.93,0.95,0.99> } finish { diffuse 0.95 specular 0.20 roughness 0.05 } }; #declare T_Skin = texture { pigment { color rgb <0.92,0.78,0.66> } finish { diffuse 0.9 specular 0.08 roughness 0.2 } }; #declare T_ClothBlue = texture { pigment { color rgb <0.12,0.18,0.55> } finish { diffuse 0.9 specular 0.06 roughness 0.12 } }; #declare T_RedCape = texture { pigment { color rgb <0.55,0.10,0.12> } finish { diffuse 0.9 specular 0.06 roughness 0.15 } }; #declare T_Gold = texture { pigment { color rgb <0.95,0.78,0.22> } finish { diffuse 0.6 specular 0.6 roughness 0.06 reflection 0.05 } }; #declare T_Steel = texture { pigment { color rgb <0.72,0.75,0.80> } finish { diffuse 0.35 specular 0.85 roughness 0.02 reflection 0.10 } }; #declare T_Dragon = texture { pigment { bozo color_map { [0.0 color rgb <0.08,0.26,0.13>] [0.6 color rgb <0.16,0.42,0.22>] [1.0 color rgb <0.33,0.60,0.33>] } scale 0.55 } finish { diffuse 0.9 specular 0.16 roughness 0.08 } }; #declare T_WingMembrane = texture { pigment { color rgb <0.20,0.55,0.30> transmit 0.35 } finish { diffuse 0.8 specular 0.10 roughness 0.15 } }; // ---------------- Ground / Stage ---------------- plane { y, 0 texture { T_Ground } } // Rocky fighting mound (no big gray sphere in front; kept low and centered) //union { // difference { // sphere { <0, 1.05, 0.8>, 5.1 } // plane { y, 0 } // texture { T_Rock } // } // // Snow sprinkle on upper mound for mountain feel // difference { // sphere { <0, 2.35, 0.8>, 4.0 } // plane { y, 2.05 } // texture { T_Snow } // } //} // ---------------- Mountains (fast geometry) ---------------- #declare Mountain = union { difference { sphere { <0, 10, 0>, 14 } plane { y, 0 } texture { T_Rock } } difference { sphere { <0, 14.2, 0>, 10 } plane { y, 9.5 } texture { T_Snow } } }; #declare Ridge = union { object { Mountain scale <1.15, 1.00, 1.10> } object { Mountain scale <0.95, 0.92, 0.90> translate <8, 0, 6> } object { Mountain scale <0.85, 0.88, 0.80> translate <-9, 0, 8> } }; // Valley walls / background ridge object { Ridge translate <-36, 0, 36> rotate <0, 18,0> scale <1.25, 1.10, 1.25> } object { Ridge translate < 34, 0, 36> rotate <0, -18,0> scale <1.30, 1.12, 1.30> } object { Ridge translate < 0, 0, 62> rotate <0, 0,0> scale <1.90, 1.25, 1.90> } // Distant haze wall for depth box { <-220, 0, 120>, <220, 70, 150> texture { pigment { color rgbt <0.72,0.84,1.0, 0.84> } finish { diffuse 0 emission 0.16 } } no_shadow } // ---------------- Prince (stylized) ---------------- #declare Prince = union { // Torso cylinder { <0,1.2,0>, <0,2.7,0>, 0.55 texture { T_ClothBlue } } // Belt torus { 0.56, 0.08 rotate <90,0,0> translate <0,1.55,0> texture { T_Gold } } // Head + neck cylinder { <0,2.7,0>, <0,2.95,0>, 0.22 texture { T_Skin } } sphere { <0,3.35,0>, 0.48 texture { T_Skin } } // Crown union { torus { 0.36, 0.05 rotate <90,0,0> translate <0,3.70,0> } cone { <0,3.70,0.36>, 0.06, <0,3.92,0.36>, 0.0 } cone { <0.31,3.70,0.18>, 0.06, <0.31,3.92,0.18>, 0.0 } cone { <-0.31,3.70,0.18>, 0.06, <-0.31,3.92,0.18>, 0.0 } cone { <0.31,3.70,-0.18>, 0.06, <0.31,3.92,-0.18>, 0.0 } cone { <-0.31,3.70,-0.18>, 0.06, <-0.31,3.92,-0.18>, 0.0 } texture { T_Gold } } // Legs (touch ground at y=0) cylinder { <-0.20,0.0,0>, <-0.20,1.2,0>, 0.18 texture { T_ClothBlue } } cylinder { < 0.20,0.0,0>, < 0.20,1.2,0>, 0.18 texture { T_ClothBlue } } // Boots cone { <-0.20,0.0,0.05>, 0.20, <-0.20,0.0,-0.35>, 0.10 texture { T_Rock } } cone { < 0.20,0.0,0.05>, 0.20, < 0.20,0.0,-0.35>, 0.10 texture { T_Rock } } // Arms (posed toward dragon) cylinder { <-0.58,2.45,0>, <-1.25,2.10,0.30>, 0.14 texture { T_ClothBlue } } cylinder { <-1.25,2.10,0.30>, <-1.55,1.85,0.55>, 0.12 texture { T_Skin } } cylinder { <0.58,2.45,0>, <1.30,2.20,0.15>, 0.14 texture { T_ClothBlue } } cylinder { <1.30,2.20,0.15>, <1.70,2.00,0.45>, 0.12 texture { T_Skin } } // Cape box { <-0.70,1.30,-0.15>, <0.70,3.00,-0.95> texture { T_RedCape } rotate <10,0,0> translate <0,0.0,-0.05> } // Sword union { cylinder { <1.70,2.00,0.45>, <2.70,2.65,1.10>, 0.05 texture { T_Steel } } cone { <2.70,2.65,1.10>, 0.05, <3.10,2.92,1.30>, 0.00 texture { T_Steel } } torus { 0.12, 0.03 rotate <0,90,0> translate <1.66,2.02,0.43> texture { T_Gold } } cylinder { <1.58,1.95,0.39>, <1.70,2.00,0.45>, 0.035 texture { T_Gold } } } // Shield union { sphere { <-1.55,1.85,0.55>, 0.28 } box { <-1.83,1.57,0.42>, <-1.27,2.13,0.70> } texture { T_Steel } } }; object { Prince translate <-4.7, 0.0, 0.35> rotate <0, 26, 0> } // ---------------- Dragon (stylized) ---------------- #declare Dragon = union { // Body sphere { <0,2.0,0>, 1.35 texture { T_Dragon } } sphere { <1.4,2.1,0.2>, 1.10 texture { T_Dragon } } // Neck + head cylinder { <2.3,2.35,0.30>, <3.2,2.60,0.55>, 0.42 texture { T_Dragon } } sphere { <3.55,2.70,0.65>, 0.55 texture { T_Dragon } } cone { <3.55,2.70,0.65>, 0.42, <4.25,2.78,0.78>, 0.10 texture { T_Dragon } } // Horns cone { <3.45,3.10,0.55>, 0.10, <3.78,3.48,0.35>, 0.00 texture { T_Rock } } cone { <3.55,3.10,0.85>, 0.10, <3.90,3.50,1.08>, 0.00 texture { T_Rock } } // Tail cylinder { <-1.10,1.85,-0.10>, <-2.30,1.55,-0.45>, 0.33 texture { T_Dragon } } cylinder { <-2.30,1.55,-0.45>, <-3.35,1.25,-0.95>, 0.24 texture { T_Dragon } } cylinder { <-3.35,1.25,-0.95>, <-4.10,1.05,-1.35>, 0.16 texture { T_Dragon } } // Legs (feet at y=0.10) cylinder { <1.85,1.55,0.85>, <1.55,0.75,1.05>, 0.22 texture { T_Dragon } } cylinder { <1.55,0.75,1.05>, <1.55,0.10,1.10>, 0.18 texture { T_Dragon } } cylinder { <1.90,1.55,-0.40>, <1.65,0.80,-0.60>, 0.22 texture { T_Dragon } } cylinder { <1.65,0.80,-0.60>, <1.65,0.10,-0.70>, 0.18 texture { T_Dragon } } cylinder { <-0.55,1.35,0.85>, <-0.85,0.70,1.00>, 0.24 texture { T_Dragon } } cylinder { <-0.85,0.70,1.00>, <-0.95,0.10,1.05>, 0.18 texture { T_Dragon } } cylinder { <-0.60,1.35,-0.55>, <-0.95,0.70,-0.70>, 0.24 texture { T_Dragon } } cylinder { <-0.95,0.70,-0.70>, <-1.05,0.10,-0.80>, 0.18 texture { T_Dragon } } // Wings union { cylinder { <1.20,2.70,-0.10>, <2.60,3.70,-2.20>, 0.12 texture { T_Dragon } } cylinder { <2.60,3.70,-2.20>, <3.90,3.20,-3.55>, 0.09 texture { T_Dragon } } triangle { <1.20,2.70,-0.10>, <2.60,3.70,-2.20>, <3.90,3.20,-3.55> texture { T_WingMembrane } } triangle { <1.20,2.70,-0.10>, <2.05,2.55,-2.50>, <3.90,3.20,-3.55> texture { T_WingMembrane } } } union { cylinder { <1.10,2.65,0.55>, <2.40,3.55,2.55>, 0.12 texture { T_Dragon } } cylinder { <2.40,3.55,2.55>, <3.65,3.05,3.70>, 0.09 texture { T_Dragon } } triangle { <1.10,2.65,0.55>, <2.40,3.55,2.55>, <3.65,3.05,3.70> texture { T_WingMembrane } } triangle { <1.10,2.65,0.55>, <2.00,2.45,2.80>, <3.65,3.05,3.70> texture { T_WingMembrane } } } // Fire breath (toward prince) cone { <4.30,2.80,0.80>, 0.12, <7.20,2.55,0.40>, 1.05 texture { pigment { color rgbt <1.0,0.55,0.10,0.70> } finish { emission 0.80 diffuse 0.05 } } no_shadow } }; object { Dragon translate <4.9, 0.0, 1.15> rotate <0, -28, 0> } // ---------------- Contact shadow helper patches ---------------- #declare ShadowPatch = texture { pigment { color rgbt <0.0,0.0,0.0,0.75> } finish { diffuse 0 } }; disc { <-4.7,0.01,0.35>, y, 1.6, 0.0 texture { ShadowPatch } no_shadow } disc { < 4.9,0.01,1.15>, y, 2.5, 0.0 texture { ShadowPatch } no_shadow }