// Prince vs Dragon in the Mountains (fixed parse error + improved framing; no blocking ball) // 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 (reframed to avoid any foreground occlusion) ---------- camera { location < -9.5, 9.2, -19.5> look_at < 0.6, 2.9, 0.8> angle 36 } // ---------- Lights ---------- light_source { <45, 55, -35> color rgb <1.0, 0.98, 0.92> } // warm key (sun) light_source { <-35, 28, -8> color rgb <0.32, 0.40, 0.55> } // cool fill (sky) light_source { <0, 10, 10> color rgb <0.16, 0.16, 0.18> } // subtle front lift // ---------- Atmosphere ---------- fog { distance 70 color rgb <0.72, 0.84, 1.0> fog_type 2 fog_offset 0.2 fog_alt 4.0 turbulence 0.25 } // ---------- Textures ---------- #declare T_Ground = texture { pigment { color rgb <0.34, 0.33, 0.31> } finish { diffuse 0.95 specular 0.04 roughness 0.10 } }; #declare T_Rock = texture { pigment { bozo color_map { [0.0 color rgb <0.22,0.22,0.24>] [0.6 color rgb <0.36,0.36,0.39>] [1.0 color rgb <0.58,0.58,0.62>] } scale 1.1 } 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.18 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.15,0.40,0.21>] [1.0 color rgb <0.30,0.58,0.30>] } 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 } }; #declare T_Boulder = texture { pigment { bozo color_map { [0 rgb <0.30,0.30,0.33>] [1 rgb <0.58,0.58,0.62>] } scale 0.6 } finish { diffuse 0.95 specular 0.06 roughness 0.14 } }; // ---------- Ground ---------- plane { y, 0 texture { T_Ground } } // Fight "stage": raised rocky mound (kept low; won't block view) difference { sphere { <0,1.05,0.6>, 4.6 } plane { y, 0 } texture { T_Rock } } // ---------- Mountains (fast geometry; no isosurface function noise) ---------- #declare Mountain = union { // Main rock mass difference { sphere { <0, 10, 0>, 14 } plane { y, 0 } texture { T_Rock } } // Snow cap (a smaller sphere clipped higher) 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> } }; // Place ridges behind action (forms a mountain valley) object { Ridge translate <-34, 0, 34> rotate <0, 18,0> scale <1.20, 1.05, 1.20> } object { Ridge translate < 30, 0, 34> rotate <0, -18,0> scale <1.25, 1.10, 1.25> } object { Ridge translate < 0, 0, 58> rotate <0, 0,0> scale <1.80, 1.20, 1.80> } // Distant haze wall (cheap depth) box { <-200, 0, 120>, <200, 60, 140> texture { pigment { color rgbt <0.72,0.84,1.0, 0.82> } finish { diffuse 0 emission 0.15 } } 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 forward 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 <8,0,0> translate <0,0.0,-0.05> } // Sword union { cylinder { <1.70,2.00,0.45>, <2.55,2.55,0.95>, 0.05 texture { T_Steel } } cone { <2.55,2.55,0.95>, 0.05, <2.95,2.80,1.15>, 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.6, 0.0, 0.35> rotate <0, 24, 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.75,3.45,0.35>, 0.00 texture { T_Rock } } cone { <3.55,3.10,0.85>, 0.10, <3.85,3.45,1.05>, 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 (touch ground at y=0.10 endpoints -> visually grounded with shadow patches) 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.65,-2.10>, 0.12 texture { T_Dragon } } cylinder { <2.60,3.65,-2.10>, <3.80,3.15,-3.40>, 0.09 texture { T_Dragon } } triangle { <1.20,2.70,-0.10>, <2.60,3.65,-2.10>, <3.80,3.15,-3.40> texture { T_WingMembrane } } triangle { <1.20,2.70,-0.10>, <2.10,2.55,-2.35>, <3.80,3.15,-3.40> texture { T_WingMembrane } } } union { cylinder { <1.10,2.65,0.55>, <2.40,3.50,2.45>, 0.12 texture { T_Dragon } } cylinder { <2.40,3.50,2.45>, <3.55,3.00,3.55>, 0.09 texture { T_Dragon } } triangle { <1.10,2.65,0.55>, <2.40,3.50,2.45>, <3.55,3.00,3.55> texture { T_WingMembrane } } triangle { <1.10,2.65,0.55>, <2.00,2.45,2.70>, <3.55,3.00,3.55> texture { T_WingMembrane } } } // Fire breath (aimed toward prince) cone { <4.30,2.80,0.80>, 0.12, <7.10,2.55,0.40>, 1.00 texture { pigment { color rgbt <1.0,0.55,0.10,0.70> } finish { emission 0.75 diffuse 0.05 } } no_shadow } }; object { Dragon translate <4.7, 0.0, 1.15> rotate <0, -26, 0> } // ---------- Foreground depth element (kept far left; cannot block fight) ---------- union { sphere { <0,0.55,0>, 0.75 } sphere { <0.55,0.50,0.15>, 0.55 } sphere { <-0.40,0.45,-0.15>, 0.50 } texture { T_Boulder } translate <-13.0, 0.0, -1.8> } // ---------- Contact shadow helper patches ---------- #declare ShadowPatch = texture { pigment { color rgbt <0.0,0.0,0.0,0.75> } finish { diffuse 0 } }; disc { <-4.6,0.01,0.35>, y, 1.6, 0.0 texture { ShadowPatch } no_shadow } disc { < 4.7,0.01,1.15>, y, 2.4, 0.0 texture { ShadowPatch } no_shadow }