#version 3.7; global_settings { assumed_gamma 1.0 } background { color rgb <0.04, 0.06, 0.10> } camera { location <0, 3.0, -12> look_at <0, 1.5, 0> angle 40 } light_source { <30, 40, -20> color rgb <1, 1, 1> } light_source { <-20, 20, -10> color rgb <0.35, 0.4, 0.5> } plane { y, 0 texture { pigment { color rgb <0.12, 0.12, 0.14> } finish { diffuse 0.9 specular 0.05 roughness 0.08 } } } #declare Tex_Scales = texture { pigment { bozo color_map { [0.00 color rgb <0.08, 0.10, 0.10>] [0.40 color rgb <0.12, 0.18, 0.16>] [0.70 color rgb <0.18, 0.28, 0.22>] [1.00 color rgb <0.06, 0.08, 0.08>] } scale 0.35 } normal { bumps 0.7 scale 0.08 } finish { diffuse 0.65 specular 0.35 roughness 0.02 } } #declare Tex_Horn = texture { pigment { color rgb <0.75, 0.72, 0.62> } normal { bumps 0.25 scale 0.05 } finish { diffuse 0.7 specular 0.25 roughness 0.04 } } #declare Tex_Eye = texture { pigment { color rgb <0.90, 0.65, 0.10> } finish { diffuse 0.6 specular 0.55 roughness 0.01 } } #declare Tex_Pupil = texture { pigment { color rgb <0.05, 0.05, 0.05> } finish { diffuse 0.7 } } #declare Tex_Belly = texture { pigment { gradient y color_map { [0.0 color rgb <0.22, 0.18, 0.12>] [1.0 color rgb <0.35, 0.28, 0.18>] } scale 1.2 } normal { wrinkles 0.35 scale 0.12 } finish { diffuse 0.75 specular 0.25 roughness 0.03 } } #declare Dragon = union { // Body object { sphere { <0, 1.3, 0>, 1.35 } texture { Tex_Scales } scale <1.55, 1.0, 2.2> } // Belly plate (subtle overlay) object { sphere { <0, 1.05, 0.3>, 1.1 } texture { Tex_Belly } scale <1.05, 0.75, 1.75> } // Neck object { cylinder { <0, 1.7, 1.6>, <0, 2.35, 2.9>, 0.55 } texture { Tex_Scales } } // Head object { sphere { <0, 2.55, 3.35>, 0.85 } texture { Tex_Scales } scale <1.05, 0.9, 1.25> } // Snout object { sphere { <0, 2.38, 4.15>, 0.55 } texture { Tex_Scales } scale <0.95, 0.65, 1.25> } // Jaw object { sphere { <0, 2.12, 4.05>, 0.48 } texture { Tex_Scales } scale <0.95, 0.55, 1.15> } // Nostrils cone { <-0.18, 2.28, 4.65>, 0.08, <-0.18, 2.26, 4.82>, 0.02 texture { Tex_Pupil } } cone { < 0.18, 2.28, 4.65>, 0.08, < 0.18, 2.26, 4.82>, 0.02 texture { Tex_Pupil } } // Eyes sphere { <-0.32, 2.62, 3.92>, 0.12 texture { Tex_Eye } } sphere { < 0.32, 2.62, 3.92>, 0.12 texture { Tex_Eye } } sphere { <-0.32, 2.62, 4.02>, 0.06 texture { Tex_Pupil } scale <0.65,1,1> } sphere { < 0.32, 2.62, 4.02>, 0.06 texture { Tex_Pupil } scale <0.65,1,1> } // Horns cone { <-0.35, 3.05, 3.15>, 0.18, <-0.65, 3.55, 3.05>, 0.02 texture { Tex_Horn } } cone { < 0.35, 3.05, 3.15>, 0.18, < 0.65, 3.55, 3.05>, 0.02 texture { Tex_Horn } } // Spine spikes #declare I = 0; #while (I < 10) cone { <0, 2.10 - I*0.10, 1.10 - I*0.35>, 0.18 - I*0.008, <0, 2.55 - I*0.10, 1.10 - I*0.35>, 0.02 texture { Tex_Horn } } #declare I = I + 1; #end // Arms cylinder { <-1.15, 1.35, 0.9>, <-1.75, 0.95, 1.2>, 0.25 texture { Tex_Scales } } cylinder { < 1.15, 1.35, 0.9>, < 1.75, 0.95, 1.2>, 0.25 texture { Tex_Scales } } sphere { <-1.78, 0.92, 1.25>, 0.28 texture { Tex_Scales } } sphere { < 1.78, 0.92, 1.25>, 0.28 texture { Tex_Scales } } // Legs cylinder { <-0.65, 0.95, -0.6>, <-1.05, 0.25, -0.9>, 0.35 texture { Tex_Scales } } cylinder { < 0.65, 0.95, -0.6>, < 1.05, 0.25, -0.9>, 0.35 texture { Tex_Scales } } sphere { <-1.08, 0.22, -0.95>, 0.40 texture { Tex_Scales } } sphere { < 1.08, 0.22, -0.95>, 0.40 texture { Tex_Scales } } // Tail sphere { <0, 1.1, -2.0>, 0.85 texture { Tex_Scales } scale <1.0,0.9,1.6> } cone { <0, 1.05, -2.6>, 0.55, <0.10, 0.95, -4.4>, 0.18 texture { Tex_Scales } } cone { <0.10, 0.95, -4.4>, 0.18, <0.20, 0.85, -5.6>, 0.04 texture { Tex_Scales } } cone { <0.20, 0.85, -5.6>, 0.06, <0.25, 0.90, -6.0>, 0.00 texture { Tex_Horn } } // Wings (simple membranes) union { // Left wing bones cylinder { <-0.9, 2.0, 0.3>, <-3.2, 3.0, -0.2>, 0.12 texture { Tex_Horn } } cylinder { <-1.6, 2.2, 0.1>, <-3.8, 2.1, 0.8>, 0.10 texture { Tex_Horn } } cylinder { <-1.4, 2.0, 0.2>, <-3.4, 1.2, 1.1>, 0.08 texture { Tex_Horn } } // Left wing membrane triangle { <-0.9, 2.0, 0.3>, <-3.2, 3.0, -0.2>, <-3.8, 2.1, 0.8> texture { Tex_Scales } } triangle { <-0.9, 2.0, 0.3>, <-3.8, 2.1, 0.8>, <-3.4, 1.2, 1.1> texture { Tex_Scales } } triangle { <-0.9, 2.0, 0.3>, <-3.4, 1.2, 1.1>, <-1.4, 2.0, 0.2> texture { Tex_Scales } } // Right wing bones cylinder { <0.9, 2.0, 0.3>, <3.2, 3.0, -0.2>, 0.12 texture { Tex_Horn } } cylinder { <1.6, 2.2, 0.1>, <3.8, 2.1, 0.8>, 0.10 texture { Tex_Horn } } cylinder { <1.4, 2.0, 0.2>, <3.4, 1.2, 1.1>, 0.08 texture { Tex_Horn } } // Right wing membrane triangle { <0.9, 2.0, 0.3>, <3.2, 3.0, -0.2>, <3.8, 2.1, 0.8> texture { Tex_Scales } } triangle { <0.9, 2.0, 0.3>, <3.8, 2.1, 0.8>, <3.4, 1.2, 1.1> texture { Tex_Scales } } triangle { <0.9, 2.0, 0.3>, <3.4, 1.2, 1.1>, <1.4, 2.0, 0.2> texture { Tex_Scales } } } // Position on ground translate <0, 0, 0> } object { Dragon }