#version 3.7; global_settings { assumed_gamma 1.0 } background { color rgb <0.06, 0.07, 0.09> } camera { location <0, 4.2, -12.0> look_at <0, 2.0, 0> angle 35 } light_source { <10, 18, -16> color rgb <1.0, 0.98, 0.95> } light_source { <-12, 10, -6> color rgb <0.35, 0.40, 0.50> } light_source { <0, 18, 10> color rgb <0.20, 0.18, 0.20> } #declare MAT_RedScales = texture { pigment { color rgb <0.75, 0.10, 0.08> } finish { phong 0.45 phong_size 40 specular 0.10 roughness 0.03 diffuse 0.85 ambient 0 } } #declare MAT_DarkRidge = texture { pigment { color rgb <0.32, 0.03, 0.03> } finish { phong 0.35 phong_size 30 specular 0.08 roughness 0.04 diffuse 0.9 ambient 0 } } #declare MAT_WingMembrane = texture { pigment { color rgb <0.55, 0.05, 0.06> } finish { phong 0.25 phong_size 25 specular 0.06 roughness 0.05 diffuse 0.9 ambient 0 } } #declare MAT_Horn = texture { pigment { color rgb <0.88, 0.82, 0.62> } finish { phong 0.25 phong_size 25 specular 0.10 roughness 0.05 diffuse 0.9 ambient 0 } } #declare MAT_Eye = texture { pigment { color rgb <0.95, 0.75, 0.08> } finish { phong 0.8 phong_size 80 specular 0.25 roughness 0.01 diffuse 0.7 ambient 0 } } plane { y, 0 texture { pigment { color rgb <0.14, 0.15, 0.16> } finish { diffuse 0.9 specular 0.05 roughness 0.06 ambient 0 } } } // ---------- Dragon (simplified) ---------- #declare Dragon = union { // Body (two blended spheres via union overlap) sphere { <0, 1.65, 0.0>, 1.35 texture { MAT_RedScales } } sphere { <-0.7, 1.55, -0.1>, 1.15 texture { MAT_RedScales } } // Back ridge spines #declare i = 0; #while (i < 8) cone { <0.55 - 0.18*i, 2.55 - 0.05*i, 0.05>, 0.10, <0.55 - 0.18*i, 2.85 - 0.06*i, 0.05>, 0.00 texture { MAT_DarkRidge } } #declare i = i + 1; #end // Neck (two cylinders + head) cylinder { <0.95, 2.05, 0.05>, <1.55, 2.35, 0.05>, 0.42 texture { MAT_RedScales } } cylinder { <1.52, 2.33, 0.05>, <2.05, 2.45, 0.00>, 0.35 texture { MAT_RedScales } } // Head base sphere { <2.45, 2.45, 0.00>, 0.55 texture { MAT_RedScales } } // Snout cone { <2.70, 2.40, 0.00>, 0.35, <3.25, 2.32, 0.00>, 0.05 texture { MAT_RedScales } } // Jaw hint box { <2.55, 2.20, -0.18>, <3.10, 2.30, 0.18> texture { MAT_DarkRidge } } // Horns cone { <2.35, 2.95, -0.22>, 0.08, <2.05, 3.25, -0.48>, 0.00 texture { MAT_Horn } } cone { <2.35, 2.95, 0.22>, 0.08, <2.05, 3.25, 0.48>, 0.00 texture { MAT_Horn } } // Eyes sphere { <2.70, 2.55, -0.22>, 0.07 texture { MAT_Eye } } sphere { <2.70, 2.55, 0.22>, 0.07 texture { MAT_Eye } } // Tail (tapered) cone { <-1.55, 1.55, -0.15>, 0.55, <-2.55, 1.25, -0.35>, 0.28 texture { MAT_RedScales } } cone { <-2.55, 1.25, -0.35>, 0.28, <-3.65, 0.95, -0.55>, 0.12 texture { MAT_RedScales } } cone { <-3.65, 0.95, -0.55>, 0.12, <-4.50, 0.80, -0.70>, 0.02 texture { MAT_DarkRidge } } // Legs (front) // Front left cylinder { <0.85, 1.25, 0.75>, <0.85, 0.55, 0.85>, 0.22 texture { MAT_RedScales } } cylinder { <0.85, 0.55, 0.85>, <0.65, 0.10, 0.95>, 0.18 texture { MAT_RedScales } } sphere { <0.65, 0.10, 0.95>, 0.20 texture { MAT_RedScales } } cone { <0.72, 0.02, 1.10>, 0.05, <0.88, -0.05, 1.26>, 0.00 texture { MAT_Horn } } cone { <0.60, 0.02, 1.12>, 0.05, <0.58, -0.05, 1.30>, 0.00 texture { MAT_Horn } } cone { <0.48, 0.02, 1.05>, 0.05, <0.35, -0.05, 1.22>, 0.00 texture { MAT_Horn } } // Front right cylinder { <0.85, 1.25, -0.75>, <0.85, 0.55, -0.85>, 0.22 texture { MAT_RedScales } } cylinder { <0.85, 0.55, -0.85>, <0.65, 0.10, -0.95>, 0.18 texture { MAT_RedScales } } sphere { <0.65, 0.10, -0.95>, 0.20 texture { MAT_RedScales } } cone { <0.72, 0.02, -1.10>, 0.05, <0.88, -0.05, -1.26>, 0.00 texture { MAT_Horn } } cone { <0.60, 0.02, -1.12>, 0.05, <0.58, -0.05, -1.30>, 0.00 texture { MAT_Horn } } cone { <0.48, 0.02, -1.05>, 0.05, <0.35, -0.05, -1.22>, 0.00 texture { MAT_Horn } } // Legs (rear) // Rear left cylinder { <-0.90, 1.15, 0.70>, <-1.05, 0.55, 0.85>, 0.26 texture { MAT_RedScales } } cylinder { <-1.05, 0.55, 0.85>, <-1.10, 0.12, 1.00>, 0.20 texture { MAT_RedScales } } sphere { <-1.10, 0.12, 1.00>, 0.22 texture { MAT_RedScales } } cone { <-1.00, 0.02, 1.18>, 0.06, <-0.88, -0.05, 1.35>, 0.00 texture { MAT_Horn } } cone { <-1.14, 0.02, 1.18>, 0.06, <-1.18, -0.05, 1.38>, 0.00 texture { MAT_Horn } } cone { <-1.26, 0.02, 1.10>, 0.06, <-1.40, -0.05, 1.28>, 0.00 texture { MAT_Horn } } // Rear right cylinder { <-0.90, 1.15, -0.70>, <-1.05, 0.55, -0.85>, 0.26 texture { MAT_RedScales } } cylinder { <-1.05, 0.55, -0.85>, <-1.10, 0.12, -1.00>, 0.20 texture { MAT_RedScales } } sphere { <-1.10, 0.12, -1.00>, 0.22 texture { MAT_RedScales } } cone { <-1.00, 0.02, -1.18>, 0.06, <-0.88, -0.05, -1.35>, 0.00 texture { MAT_Horn } } cone { <-1.14, 0.02, -1.18>, 0.06, <-1.18, -0.05, -1.38>, 0.00 texture { MAT_Horn } } cone { <-1.26, 0.02, -1.10>, 0.06, <-1.40, -0.05, -1.28>, 0.00 texture { MAT_Horn } } // Wings // Left wing root sphere { <0.10, 2.15, 0.85>, 0.30 texture { MAT_RedScales } } cylinder { <0.10, 2.15, 0.85>, <-0.90, 2.70, 2.10>, 0.12 texture { MAT_DarkRidge } } cylinder { <0.10, 2.15, 0.85>, <0.20, 2.95, 2.35>, 0.10 texture { MAT_DarkRidge } } cylinder { <0.10, 2.15, 0.85>, <1.05, 2.55, 1.90>, 0.10 texture { MAT_DarkRidge } } // Left membrane (thin slab clipped by plane to look wing-like) intersection { box { <-1.10, 1.90, 0.90>, <0.90, 3.15, 2.55> } plane { <0, 0.55, -0.85>, 0.0 } texture { MAT_WingMembrane } } // Right wing root sphere { <0.10, 2.15, -0.85>, 0.30 texture { MAT_RedScales } } cylinder { <0.10, 2.15, -0.85>, <-0.90, 2.70, -2.10>, 0.12 texture { MAT_DarkRidge } } cylinder { <0.10, 2.15, -0.85>, <0.20, 2.95, -2.35>, 0.10 texture { MAT_DarkRidge } } cylinder { <0.10, 2.15, -0.85>, <1.05, 2.55, -1.90>, 0.10 texture { MAT_DarkRidge } } intersection { box { <-1.10, 1.90, -2.55>, <0.90, 3.15, -0.90> } plane { <0, 0.55, 0.85>, 0.0 } texture { MAT_WingMembrane } } // Subtle overall scaling/placement (feet to ground) translate <0, 0.05, 0> } object { Dragon } // Simple contact shadow helper: darkened patch beneath disc { <0, 0.001, 0>, y, 2.8, 0.0 texture { pigment { color rgbt <0, 0, 0, 0.75> } finish { diffuse 0 ambient 0 } } no_shadow }