#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.62, 0.78, 0.95> } fog { distance 40 color rgb <0.62, 0.78, 0.95> fog_type 2 fog_alt 2.0 turbulence 0.2 } camera { location <0, 4.2, -14> look_at <0, 2.2, 0> angle 38 } light_source { <-18, 22, -18> color rgb <1, 1, 1>*1.15 area_light <4,0,0>, <0,0,4>, 5, 5 adaptive 1 jitter } light_source { <10, 10, -2> color rgb <1, 0.98, 0.92>*0.45 } plane { y, 0 texture { pigment { color rgb <0.35, 0.45, 0.30> } finish { diffuse 0.9 specular 0.05 roughness 0.08 } } } #declare Tex_Scales = texture { pigment { granite color_map { [0.00 color rgb <0.06,0.35,0.18>] [0.55 color rgb <0.09,0.45,0.22>] [1.00 color rgb <0.03,0.22,0.12>] } scale 0.35 } normal { bumps 0.35 scale 0.18 } finish { diffuse 0.85 specular 0.22 roughness 0.035 } } #declare Tex_Belly = texture { pigment { color rgb <0.72, 0.62, 0.42> } normal { wrinkles 0.25 scale 0.35 } finish { diffuse 0.9 specular 0.12 roughness 0.06 } } #declare Tex_Horn = texture { pigment { color rgb <0.90,0.88,0.80> } normal { ripples 0.15 scale 0.25 } finish { diffuse 0.85 specular 0.18 roughness 0.05 } } #declare Tex_Eye = texture { pigment { color rgb <0.1,0.1,0.1> } finish { diffuse 0.1 specular 0.9 roughness 0.005 reflection 0.05 } } #declare Dragon = union { // Body sphere { <0, 1.8, 0.0>, 1.35 texture { Tex_Scales } } sphere { <-1.3, 1.55, -0.5>, 1.10 texture { Tex_Scales } } // chest sphere { <1.2, 1.55, -0.45>, 1.05 texture { Tex_Scales } } sphere { <0, 1.25, 1.25>, 1.20 texture { Tex_Scales } } // hips // Belly patch sphere { <0, 1.45, -0.15>, 1.00 texture { Tex_Belly } scale <0.65, 0.7, 0.85> } // Neck cylinder { <0, 2.25, -0.9>, <0, 2.55, -2.1>, 0.55 texture { Tex_Scales } } sphere { <0, 2.55, -2.1>, 0.60 texture { Tex_Scales } } // Head sphere { <0, 2.75, -2.85>, 0.78 texture { Tex_Scales } } sphere { <0, 2.60, -3.35>, 0.50 texture { Tex_Scales } } // snout cone { <0, 2.58, -3.70>, 0.22, <0, 2.58, -4.25>, 0.02 texture { Tex_Scales } } // nose tip // Jaw sphere { <0, 2.43, -3.30>, 0.44 texture { Tex_Belly } scale <1.1,0.55,1.0> } // Eyes sphere { <-0.28, 2.86, -3.25>, 0.08 texture { Tex_Eye } } sphere { < 0.28, 2.86, -3.25>, 0.08 texture { Tex_Eye } } // Horns cone { <-0.35, 3.20, -2.85>, 0.10, <-0.75, 3.55, -2.70>, 0.02 texture { Tex_Horn } } cone { < 0.35, 3.20, -2.85>, 0.10, < 0.75, 3.55, -2.70>, 0.02 texture { Tex_Horn } } // Spines down the back #declare i = 0; #while (i < 8) cone { <0, 2.9 - i*0.18, -0.3 + i*0.55>, 0.12, <0, 3.35 - i*0.18, -0.3 + i*0.55>, 0.01 texture { Tex_Horn } } #declare i = i + 1; #end // Tail cylinder { <0, 1.20, 2.05>, <0, 1.05, 3.35>, 0.45 texture { Tex_Scales } } cylinder { <0, 1.05, 3.35>, <0.2, 0.95, 4.65>, 0.30 texture { Tex_Scales } } cone { <0.2, 0.95, 4.65>, 0.26, <0.55, 0.85, 5.80>, 0.02 texture { Tex_Scales } } // Legs (simple) // Front left cylinder { <-1.0, 1.15, -0.65>, <-1.45, 0.45, -0.85>, 0.28 texture { Tex_Scales } } cylinder { <-1.45, 0.45, -0.85>, <-1.35, 0.05, -0.95>, 0.22 texture { Tex_Scales } } sphere { <-1.35, 0.10, -0.95>, 0.26 texture { Tex_Scales } } // Front right cylinder { <1.0, 1.15, -0.65>, <1.45, 0.45, -0.85>, 0.28 texture { Tex_Scales } } cylinder { <1.45, 0.45, -0.85>, <1.35, 0.05, -0.95>, 0.22 texture { Tex_Scales } } sphere { <1.35, 0.10, -0.95>, 0.26 texture { Tex_Scales } } // Back left cylinder { <-0.85, 1.05, 1.25>, <-1.25, 0.45, 1.60>, 0.30 texture { Tex_Scales } } cylinder { <-1.25, 0.45, 1.60>, <-1.05, 0.05, 1.70>, 0.23 texture { Tex_Scales } } sphere { <-1.05, 0.10, 1.70>, 0.28 texture { Tex_Scales } } // Back right cylinder { <0.85, 1.05, 1.25>, <1.25, 0.45, 1.60>, 0.30 texture { Tex_Scales } } cylinder { <1.25, 0.45, 1.60>, <1.05, 0.05, 1.70>, 0.23 texture { Tex_Scales } } sphere { <1.05, 0.10, 1.70>, 0.28 texture { Tex_Scales } } // Shadow-friendly overall placement translate <0, 0, 0> } object { Dragon }