// Simplified Red Dragon (original model; no web lookup used) // Fast iteration settings #version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 6 } background { color rgb <0.80, 0.90, 1.00> } // Camera camera { location <0, 3.2, -11> look_at <0, 1.3, 0> angle 35 } // Lights light_source { <-8, 10, -12> color rgb <1,1,1> } light_source { < 8, 6, -6> color rgb <0.6,0.6,0.7> } // Ground plane { y, 0 texture { pigment { color rgb <0.70, 0.75, 0.70> } finish { diffuse 0.9 specular 0.05 roughness 0.08 } } } // ---------- Materials ---------- #declare Dragon_Red = texture { pigment { color rgb <0.75, 0.12, 0.10> } finish { diffuse 0.85 specular 0.25 roughness 0.05 } }; #declare Horn_Tex = texture { pigment { color rgb <0.90, 0.86, 0.75> } finish { diffuse 0.9 specular 0.15 roughness 0.08 } }; #declare Eye_Tex = texture { pigment { color rgb <0.10, 0.10, 0.10> } finish { diffuse 0.3 specular 0.6 roughness 0.02 } }; #declare Wing_Tex = texture { pigment { color rgb <0.55, 0.05, 0.06> } finish { diffuse 0.9 specular 0.15 roughness 0.06 } }; // Helper: capped cylinder-like limb segment #macro Limb(P1, P2, R, TEX) union { cylinder { P1, P2, R } sphere { P1, R } sphere { P2, R } texture { TEX } } #end // ---------- Dragon ---------- #declare Dragon = union { // BODY: connected spheres (precise joins by matching radii & positions) sphere { < 0.00, 1.15, 0.00>, 1.05 texture { Dragon_Red } } sphere { < 0.00, 1.15, 1.40>, 0.95 texture { Dragon_Red } } sphere { < 0.00, 1.12, 2.70>, 0.80 texture { Dragon_Red } } // BELLY/shoulder blend cylinder { <0,1.15,0.00>, <0,1.15,2.70>, 0.55 texture { Dragon_Red } } // NECK: tapering spheres to head sphere { <0.00, 1.45, -1.10>, 0.55 texture { Dragon_Red } } sphere { <0.00, 1.60, -1.75>, 0.45 texture { Dragon_Red } } sphere { <0.00, 1.70, -2.25>, 0.38 texture { Dragon_Red } } // HEAD: snout + cranium (aligned so parts touch) sphere { <0.00, 1.70, -2.75>, 0.45 texture { Dragon_Red } } // cranium cone { <0.00, 1.65, -3.05>, 0.25, <0.00, 1.58, -3.85>, 0.02 texture { Dragon_Red } } // snout sphere { <0.00, 1.58, -3.86>, 0.03 texture { Dragon_Red } } // Jaw hint cone { <0.00, 1.55, -3.05>, 0.18, <0.00, 1.48, -3.65>, 0.02 texture { Dragon_Red } } // Eyes sphere { < 0.16, 1.73, -2.83>, 0.05 texture { Eye_Tex } } sphere { <-0.16, 1.73, -2.83>, 0.05 texture { Eye_Tex } } // Horns (two cones) cone { < 0.18, 1.95, -2.65>, 0.06, < 0.45, 2.20, -2.90>, 0.01 texture { Horn_Tex } } cone { <-0.18, 1.95, -2.65>, 0.06, <-0.45, 2.20, -2.90>, 0.01 texture { Horn_Tex } } // TAIL: tapering cones/spheres (touching ends) cone { <0.00, 1.05, 3.35>, 0.45, <0.00, 0.95, 4.60>, 0.25 texture { Dragon_Red } } cone { <0.00, 0.95, 4.60>, 0.25, <0.00, 0.85, 5.70>, 0.14 texture { Dragon_Red } } cone { <0.00, 0.85, 5.70>, 0.14, <0.00, 0.80, 6.60>, 0.05 texture { Dragon_Red } } sphere{ <0.00, 0.80, 6.60>, 0.05 texture { Dragon_Red } } // BACK SPINES: small cones along centerline #local i = 0; #while (i < 8) #local zpos = -0.6 + i*0.6; cone { <0, 1.85, zpos>, 0.07, <0, 2.15, zpos-0.08>, 0.00 texture { Horn_Tex } } #local i = i + 1; #end // LEGS (simple): front pair // Front left object { Limb(<0.70, 0.95, 0.50>, <0.95, 0.40, 0.65>, 0.15, Dragon_Red) } object { Limb(<0.95, 0.40, 0.65>, <0.85, 0.10, 0.85>, 0.12, Dragon_Red) } cone { <0.85,0.10,0.85>, 0.10, <0.90,0.00,0.95>, 0.00 texture { Horn_Tex } } cone { <0.85,0.10,0.85>, 0.10, <0.78,0.00,0.95>, 0.00 texture { Horn_Tex } } // Front right (mirror) object { Limb(<-0.70, 0.95, 0.50>, <-0.95, 0.40, 0.65>, 0.15, Dragon_Red) } object { Limb(<-0.95, 0.40, 0.65>, <-0.85, 0.10, 0.85>, 0.12, Dragon_Red) } cone { <-0.85,0.10,0.85>, 0.10, <-0.90,0.00,0.95>, 0.00 texture { Horn_Tex } } cone { <-0.85,0.10,0.85>, 0.10, <-0.78,0.00,0.95>, 0.00 texture { Horn_Tex } } // Hind legs object { Limb(<0.60, 0.90, 2.10>, <0.90, 0.35, 2.35>, 0.16, Dragon_Red) } object { Limb(<0.90, 0.35, 2.35>, <0.78, 0.10, 2.65>, 0.13, Dragon_Red) } cone { <0.78,0.10,2.65>, 0.11, <0.86,0.00,2.78>, 0.00 texture { Horn_Tex } } cone { <0.78,0.10,2.65>, 0.11, <0.70,0.00,2.78>, 0.00 texture { Horn_Tex } } object { Limb(<-0.60, 0.90, 2.10>, <-0.90, 0.35, 2.35>, 0.16, Dragon_Red) } object { Limb(<-0.90, 0.35, 2.35>, <-0.78, 0.10, 2.65>, 0.13, Dragon_Red) } cone { <-0.78,0.10,2.65>, 0.11, <-0.86,0.00,2.78>, 0.00 texture { Horn_Tex } } cone { <-0.78,0.10,2.65>, 0.11, <-0.70,0.00,2.78>, 0.00 texture { Horn_Tex } } // WINGS: simple triangular membranes + leading edge bones // Left wing union { // leading edge (bone) cylinder { <0.55, 1.90, 0.90>, <3.10, 2.25, 1.20>, 0.08 texture { Dragon_Red } } sphere { <0.55, 1.90, 0.90>, 0.10 texture { Dragon_Red } } sphere { <3.10, 2.25, 1.20>, 0.10 texture { Dragon_Red } } // membrane triangle { <0.55, 1.85, 0.85>, <3.20, 2.20, 1.30>, <2.40, 0.95, 2.40> texture { Wing_Tex } } triangle { <0.55, 1.85, 0.85>, <2.40, 0.95, 2.40>, <0.20, 1.10, 2.10> texture { Wing_Tex } } } // Right wing union { cylinder { <-0.55, 1.90, 0.90>, <-3.10, 2.25, 1.20>, 0.08 texture { Dragon_Red } } sphere { <-0.55, 1.90, 0.90>, 0.10 texture { Dragon_Red } } sphere { <-3.10, 2.25, 1.20>, 0.10 texture { Dragon_Red } } triangle { <-0.55, 1.85, 0.85>, <-3.20, 2.20, 1.30>, <-2.40, 0.95, 2.40> texture { Wing_Tex } } triangle { <-0.55, 1.85, 0.85>, <-2.40, 0.95, 2.40>, <-0.20, 1.10, 2.10> texture { Wing_Tex } } } // Slight pose: lift head and curve tail a touch (kept simple) rotate <0, 8, 0> } object { Dragon translate <0,0,0> }