#version 3.7; global_settings { assumed_gamma 1.0 } background { color rgb <0.06, 0.07, 0.09> } sky_sphere { pigment { gradient y color_map { [0.00 rgb <0.03, 0.03, 0.05>] [0.55 rgb <0.08, 0.09, 0.12>] [1.00 rgb <0.18, 0.19, 0.22>] } } } camera { location <10, 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 { cells color_map { [0.00 rgb <0.18, 0.02, 0.02>] [0.35 rgb <0.55, 0.05, 0.05>] [0.70 rgb <0.86, 0.14, 0.10>] [1.00 rgb <0.30, 0.03, 0.03>] } scale 0.22 warp { turbulence 0.35 octaves 4 lambda 2.0 omega 0.5 } } normal { average normal_map { [1 crackle 0.55 scale 0.18] [1 bumps 0.30 scale 0.06] [1 wrinkles 0.15 scale 0.12] } } finish { diffuse 0.85 brilliance 1.2 specular 0.35 roughness 0.02 reflection { 0.02, 0.10 fresnel on } conserve_energy ambient 0 } } #declare MAT_DarkRidge = texture { pigment { crackle color_map { [0.00 rgb <0.08, 0.01, 0.01>] [0.40 rgb <0.22, 0.02, 0.02>] [1.00 rgb <0.12, 0.01, 0.01>] } scale 0.20 warp { turbulence 0.25 octaves 3 } } normal { crackle 0.75 scale 0.14 } finish { diffuse 0.9 specular 0.20 roughness 0.04 reflection 0.01 ambient 0 } } #declare MAT_WingMembrane = texture { pigment { bozo color_map { [0.00 rgbt <0.45, 0.05, 0.06, 0.55>] [0.55 rgbt <0.60, 0.07, 0.08, 0.45>] [1.00 rgbt <0.35, 0.03, 0.04, 0.60>] } scale 0.35 warp { turbulence 0.55 octaves 5 lambda 2.0 omega 0.5 } } normal { bumps 0.25 scale 0.05 } finish { diffuse 0.70 specular 0.22 roughness 0.05 reflection { 0.01, 0.04 fresnel on } conserve_energy ambient 0 } } #declare MAT_Horn = texture { pigment { wood color_map { [0.00 rgb <0.80, 0.74, 0.55>] [0.55 rgb <0.92, 0.86, 0.66>] [1.00 rgb <0.70, 0.62, 0.44>] } rotate <0, 25, 90> scale 0.09 warp { turbulence 0.10 octaves 2 } } normal { bumps 0.18 scale 0.02 } finish { diffuse 0.85 specular 0.32 roughness 0.03 reflection 0.03 ambient 0 } } #declare MAT_Eye = texture { pigment { radial color_map { [0.00 rgb <0.05, 0.02, 0.00>] [0.25 rgb <0.95, 0.75, 0.08>] [0.55 rgb <0.20, 0.10, 0.02>] [1.00 rgb <0.05, 0.02, 0.00>] } rotate <90, 0, 0> scale 0.10 } finish { diffuse 0.25 specular 0.90 roughness 0.002 reflection { 0.08, 0.20 fresnel on } conserve_energy ambient 0 } } plane { y, 0 texture { pigment { granite color_map { [0.00 rgb <0.06, 0.06, 0.07>] [0.35 rgb <0.14, 0.15, 0.16>] [1.00 rgb <0.04, 0.04, 0.05>] } scale 0.75 warp { turbulence 0.25 octaves 4 } } normal { bumps 0.35 scale 0.18 } finish { diffuse 0.9 specular 0.08 roughness 0.07 reflection 0.02 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 }