#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.92, 0.95, 1.0> } camera { location <0.0, 2.3, -8.5> look_at <0.0, 1.1, 0.0> angle 35 } light_source { < 7, 10, -10> color rgb <1,1,1> } light_source { <-6, 6, -3> color rgb <0.55,0.60,0.75> } #declare RedDragonTex = texture { pigment { color rgb <0.78, 0.10, 0.12> } normal { bumps 0.35 scale 0.12 } finish { diffuse 0.85 specular 0.35 roughness 0.04 reflection 0.05 } } #declare HornTex = texture { pigment { color rgb <0.85, 0.82, 0.75> } finish { diffuse 0.8 specular 0.2 roughness 0.06 } } #declare EyeTex = texture { pigment { color rgb <0.05, 0.05, 0.06> } finish { diffuse 0.2 specular 0.8 roughness 0.01 } } plane { y, 0 texture { pigment { color rgb <0.82, 0.86, 0.90> } finish { diffuse 0.9 specular 0.05 roughness 0.08 } } } #declare Dragon = union { blob { threshold 0.65 // Body core (slightly arched) sphere { <0.0, 1.10, 0.0>, 1.00, 1.0 } sphere { <-0.3, 1.15, 1.0>, 0.92, 1.0 } sphere { <-0.5, 1.10, 2.0>, 0.84, 1.0 } sphere { <-0.4, 1.00, 3.0>, 0.72, 1.0 } // Chest/shoulders sphere { <0.4, 1.22, 0.6>, 0.72, 1.0 } sphere { <-0.9, 1.20, 0.7>, 0.70, 1.0 } // Neck + head sphere { <0.6, 1.35, -0.7>, 0.55, 1.0 } sphere { <0.9, 1.45, -1.35>, 0.50, 1.0 } sphere { <1.25, 1.48, -1.75>, 0.55, 1.0 } // head sphere { <1.55, 1.43, -2.05>, 0.35, 1.0 } // snout // Tail (curved to the left) sphere { <-0.2, 0.92, 3.8>, 0.55, 1.0 } sphere { < 0.2, 0.80, 4.6>, 0.45, 1.0 } sphere { < 0.7, 0.70, 5.3>, 0.35, 1.0 } sphere { < 1.2, 0.62, 6.0>, 0.26, 1.0 } sphere { < 1.6, 0.58, 6.6>, 0.18, 1.0 } // Legs (simple stubs, blended) sphere { < 0.55, 0.55, 0.9>, 0.45, 1.0 } // front right sphere { <-0.75, 0.55, 0.9>, 0.45, 1.0 } // front left sphere { < 0.35, 0.50, 2.5>, 0.50, 1.0 } // back right sphere { <-0.55, 0.50, 2.5>, 0.50, 1.0 } // back left // Wing bases (blended into back) sphere { < 1.00, 1.55, 1.4>, 0.55, 1.0 } sphere { <-1.30, 1.55, 1.4>, 0.55, 1.0 } texture { RedDragonTex } } // Wings (simple smooth membranes) intersection { // right wing union { sphere { <1.25, 1.70, 1.55>, 0.30 texture { RedDragonTex } } sphere { <2.20, 1.85, 2.10>, 0.32 texture { RedDragonTex } } sphere { <3.05, 1.65, 2.80>, 0.28 texture { RedDragonTex } } // membrane as smooth triangle-like sheet using spheres+cylinders cylinder { <1.25,1.70,1.55>, <2.20,1.85,2.10>, 0.12 texture { RedDragonTex } } cylinder { <2.20,1.85,2.10>, <3.05,1.65,2.80>, 0.10 texture { RedDragonTex } } cylinder { <1.25,1.70,1.55>, <3.05,1.65,2.80>, 0.08 texture { RedDragonTex } } // thin membrane fill with a scaled sphere (fast approximation) sphere { <2.20, 1.70, 2.30>, 1.10 scale <1.35, 0.22, 0.85> texture { RedDragonTex } } } // clip to keep it from intersecting too much through the body plane { x, 0.05 } } intersection { // left wing union { sphere { <-1.55, 1.70, 1.55>, 0.30 texture { RedDragonTex } } sphere { <-2.55, 1.85, 2.05>, 0.32 texture { RedDragonTex } } sphere { <-3.40, 1.65, 2.70>, 0.28 texture { RedDragonTex } } cylinder { <-1.55,1.70,1.55>, <-2.55,1.85,2.05>, 0.12 texture { RedDragonTex } } cylinder { <-2.55,1.85,2.05>, <-3.40,1.65,2.70>, 0.10 texture { RedDragonTex } } cylinder { <-1.55,1.70,1.55>, <-3.40,1.65,2.70>, 0.08 texture { RedDragonTex } } sphere { <-2.55, 1.70, 2.25>, 1.10 scale <1.35, 0.22, 0.85> texture { RedDragonTex } } } plane { x, -0.05 inverse } } // Horns cone { <1.05, 1.78, -1.70>, 0.08, <0.85, 2.05, -1.55>, 0.01 texture { HornTex } } cone { <1.22, 1.78, -1.92>, 0.08, <1.05, 2.05, -1.78>, 0.01 texture { HornTex } } // Eyes sphere { <1.42, 1.53, -1.72>, 0.06 texture { EyeTex } } sphere { <1.42, 1.50, -1.86>, 0.06 texture { EyeTex } } // Pose: slight turn for nicer silhouette rotate <0, 18, 0> translate <0, 0.0, 0> } object { Dragon }