// Simplified "red dragon" inspired by classic fantasy silhouettes. // Note: No web browsing performed; model is an original simplified reference-free build. #version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 6 } background { color rgb <0.70, 0.85, 1.00> } // simple sky // -------------------- Lights -------------------- light_source { < 800, 700, -600> color rgb <1.0, 1.0, 1.0> } light_source { <-400, 300, -200> color rgb <0.45, 0.45, 0.50> } light_source { < 0, 200, 300> color rgb <0.20, 0.20, 0.22> } // -------------------- Camera -------------------- camera { location <-7.0, 6.0, 19.0> look_at <0.0, 3.0, 0.0> angle 35 } // -------------------- Ground -------------------- plane { y, 0 texture { pigment { color rgb <0.40, 0.62, 0.40> } finish { diffuse 0.85 specular 0.05 } } } // -------------------- Materials -------------------- #declare Tex_RedScales = texture { pigment { // mild scale-like mottling bozo color_map { [0.00 color rgb <0.45, 0.03, 0.03>] [0.55 color rgb <0.70, 0.08, 0.06>] [1.00 color rgb <0.95, 0.18, 0.10>] } scale 0.35 } finish { diffuse 0.75 specular 0.30 roughness 0.03 phong 0.20 phong_size 30 } } #declare Tex_Belly = texture { pigment { color rgb <0.92, 0.62, 0.38> } finish { diffuse 0.8 specular 0.18 roughness 0.05 } } #declare Tex_Horn = texture { pigment { color rgb <0.90, 0.88, 0.80> } finish { diffuse 0.7 specular 0.25 roughness 0.04 } } #declare Tex_Eye = texture { pigment { color rgb <0.95, 0.85, 0.10> } finish { diffuse 0.6 specular 0.5 roughness 0.02 } } #declare Tex_Pupil = texture { pigment { color rgb <0.05, 0.05, 0.05> } finish { diffuse 0.8 } } // -------------------- Dragon Model -------------------- // Coordinate plan (approx): // Body centered around y~3, facing +z, tail toward -z. // All joins positioned so primitives touch or slightly overlap for clean seams. #declare Dragon = union { // --- Body (main torso) --- sphere { <0, 3.0, 0.0>, 2.10 texture { Tex_RedScales } } sphere { <0, 3.2, 2.0>, 1.70 texture { Tex_RedScales } } // chest bulge sphere { <0, 2.9,-2.2>, 1.70 texture { Tex_RedScales } } // hips // Belly plate / underside (simple strip) intersection { cylinder { <0, 2.4, 2.6>, <0, 2.4, -3.2>, 1.25 } box { <-3, 0.0, -10>, < 3, 2.4, 10> } texture { Tex_Belly } } // --- Neck (segmented spheres) --- sphere { <0, 4.1, 3.0>, 1.05 texture { Tex_RedScales } } sphere { <0, 4.6, 4.0>, 0.90 texture { Tex_RedScales } } sphere { <0, 4.9, 4.8>, 0.80 texture { Tex_RedScales } } // --- Head --- union { // skull sphere { <0, 5.1, 5.6>, 0.95 texture { Tex_RedScales } } difference { // snout (cone forward) cone { <0, 5.0, 6.1>, 0.85, <0, 4.9, 7.6>, 0.05 texture { Tex_RedScales } } // jaw block box { <-0.55, 4.55, 6.0>, <0.55, 4.85, 7.2> texture { Tex_RedScales } } } // nostrils (tiny dark dots) sphere { <-0.18, 4.95, 7.35>, 0.05 texture { Tex_Pupil } } sphere { < 0.18, 4.95, 7.35>, 0.05 texture { Tex_Pupil } } // eyes sphere { <-0.38, 5.25, 6.75>, 0.10 texture { Tex_Eye } } sphere { < 0.38, 5.25, 6.75>, 0.10 texture { Tex_Eye } } sphere { <-0.38, 5.25, 6.82>, 0.05 texture { Tex_Pupil } } sphere { < 0.38, 5.25, 6.82>, 0.05 texture { Tex_Pupil } } // horns (two swept cones) cone { <-0.45, 5.70, 5.25>, 0.16, <-1.15, 6.30, 4.70>, 0.03 texture { Tex_Horn } } cone { < 0.45, 5.70, 5.25>, 0.16, < 1.15, 6.30, 4.70>, 0.03 texture { Tex_Horn } } } // --- Back spines (simple cones along spine) --- #declare i = 0; #while (i < 3) #declare zpos = 2.5 - i*1.0; cone { <0, 4.9, zpos>, 0.18, <0, 5.6 - i*.10, zpos>, 0.03 texture { Tex_Horn } } #declare i = i + 1; #end // --- Tail (tapered cones) --- cone { <0, 3.0,-3.4>, 0.95, <0, 2.8,-6.2>, 0.55 texture { Tex_RedScales } } cone { <0, 2.8,-6.2>, 0.55, <0, 2.5,-8.8>, 0.28 texture { Tex_RedScales } } cone { <0, 2.5,-8.8>, 0.28, <0, 2.3,-11.0>,0.08 texture { Tex_RedScales } } // tail tip (spade) union { cone { <0, 2.3,-11.0>, 0.10, <0, 2.25,-11.5>, 0.02 texture { Tex_RedScales } } triangle { <0,2.25,-11.45>, < 0.55,2.10,-11.15>, <0,2.40,-11.00> texture { Tex_RedScales } } triangle { <0,2.25,-11.45>, <-0.55,2.10,-11.15>, <0,2.40,-11.00> texture { Tex_RedScales } } } // --- Legs (4) --- // Front left union { cylinder { <-1.40, 2.6, 1.2>, <-2.00, 1.2, 1.2>, 0.45 texture { Tex_RedScales } } cylinder { <-2.00, 1.2, 1.2>, <-1.90, 0.45, 1.55>, 0.38 texture { Tex_RedScales } } // foot sphere { <-1.90, 0.35, 1.65>, 0.48 texture { Tex_RedScales } } // claws cone { <-2.10, 0.30, 2.00>, 0.08, <-2.35, 0.25, 2.25>, 0.01 texture { Tex_Horn } } cone { <-1.90, 0.25, 2.05>, 0.07, <-2.05, 0.22, 2.35>, 0.01 texture { Tex_Horn } } cone { <-1.70, 0.28, 1.98>, 0.07, <-1.75, 0.25, 2.30>, 0.01 texture { Tex_Horn } } } // Front right (mirrored) union { cylinder { < 1.40, 2.6, 1.2>, < 2.00, 1.2, 1.2>, 0.45 texture { Tex_RedScales } } cylinder { < 2.00, 1.2, 1.2>, < 1.90, 0.45, 1.55>, 0.38 texture { Tex_RedScales } } sphere { < 1.90, 0.35, 1.65>, 0.48 texture { Tex_RedScales } } cone { < 2.10, 0.30, 2.00>, 0.08, < 2.35, 0.25, 2.25>, 0.01 texture { Tex_Horn } } cone { < 1.90, 0.25, 2.05>, 0.07, < 2.05, 0.22, 2.35>, 0.01 texture { Tex_Horn } } cone { < 1.70, 0.28, 1.98>, 0.07, < 1.75, 0.25, 2.30>, 0.01 texture { Tex_Horn } } } // Back left union { cylinder { <-1.35, 2.4,-1.8>, <-2.10, 1.1,-2.0>, 0.50 texture { Tex_RedScales } } cylinder { <-2.10, 1.1,-2.0>, <-2.00, 0.45,-1.55>, 0.42 texture { Tex_RedScales } } sphere { <-2.00, 0.35,-1.45>, 0.52 texture { Tex_RedScales } } cone { <-2.25, 0.30,-1.10>, 0.08, <-2.55, 0.25,-0.85>, 0.01 texture { Tex_Horn } } cone { <-2.00, 0.25,-1.05>, 0.07, <-2.20, 0.22,-0.75>, 0.01 texture { Tex_Horn } } cone { <-1.75, 0.28,-1.10>, 0.07, <-1.85, 0.25,-0.80>, 0.01 texture { Tex_Horn } } } // Back right union { cylinder { < 1.35, 2.4,-1.8>, < 2.10, 1.1,-2.0>, 0.50 texture { Tex_RedScales } } cylinder { < 2.10, 1.1,-2.0>, < 2.00, 0.45,-1.55>, 0.42 texture { Tex_RedScales } } sphere { < 2.00, 0.35,-1.45>, 0.52 texture { Tex_RedScales } } cone { < 2.25, 0.30,-1.10>, 0.08, < 2.55, 0.25,-0.85>, 0.01 texture { Tex_Horn } } cone { < 2.00, 0.25,-1.05>, 0.07, < 2.20, 0.22,-0.75>, 0.01 texture { Tex_Horn } } cone { < 1.75, 0.28,-1.10>, 0.07, < 1.85, 0.25,-0.80>, 0.01 texture { Tex_Horn } } } // --- Wings (simple membrane triangles + spars) --- // Left wing anchored on upper back union { // shoulder joint sphere { <-1.55, 4.25, 0.4>, 0.55 texture { Tex_RedScales } } // main spar (arm) cylinder { <-1.55, 4.25, 0.4>, <-4.50, 5.20, -0.2>, 0.18 texture { Tex_Horn } } // finger spars cylinder { <-4.50, 5.20, -0.2>, <-6.40, 4.80, 1.6>, 0.10 texture { Tex_Horn } } cylinder { <-4.50, 5.20, -0.2>, <-6.80, 4.30,-0.4>, 0.10 texture { Tex_Horn } } cylinder { <-4.50, 5.20, -0.2>, <-6.10, 3.90,-2.2>, 0.10 texture { Tex_Horn } } // membrane (3 triangles) triangle { <-1.55,4.25, 0.4>, <-4.50,5.20,-0.2>, <-6.40,4.80, 1.6> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } triangle { <-1.55,4.25, 0.4>, <-4.50,5.20,-0.2>, <-6.80,4.30,-0.4> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } triangle { <-1.55,4.25, 0.4>, <-4.50,5.20,-0.2>, <-6.10,3.90,-2.2> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } } // Right wing mirrored union { sphere { <1.55, 4.25, 0.4>, 0.55 texture { Tex_RedScales } } cylinder { <1.55, 4.25, 0.4>, <4.50, 5.20, -0.2>, 0.18 texture { Tex_Horn } } cylinder { <4.50, 5.20, -0.2>, <6.40, 4.80, 1.6>, 0.10 texture { Tex_Horn } } cylinder { <4.50, 5.20, -0.2>, <6.80, 4.30,-0.4>, 0.10 texture { Tex_Horn } } cylinder { <4.50, 5.20, -0.2>, <6.10, 3.90,-2.2>, 0.10 texture { Tex_Horn } } triangle { <1.55,4.25, 0.4>, <4.50,5.20,-0.2>, <6.40,4.80, 1.6> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } triangle { <1.55,4.25, 0.4>, <4.50,5.20,-0.2>, <6.80,4.30,-0.4> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } triangle { <1.55,4.25, 0.4>, <4.50,5.20,-0.2>, <6.10,3.90,-2.2> texture { Tex_RedScales } finish { diffuse 0.8 specular 0.15 roughness 0.06 } } } // Slight lift above ground translate <0, 0.05, 0> } // Place dragon object { Dragon } // Simple shadow catcher tweak: darker ground under dragon disc { <0,0.001,0>, y, 6.5 texture { pigment { color rgbf <0.0,0.0,0.0,0.65> } finish { ambient 0 diffuse 0 } } no_shadow }