#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 6 } background { color rgb <0.02, 0.03, 0.06> } camera { location <0, 2.2, -9> look_at <0, 0.5, 0> angle 35 } light_source { <300, 400, -300> color rgb <1.0, 1.0, 1.0> } light_source { <-40, 20, -30> color rgb <0.35, 0.45, 0.9> } light_source { <0, 5, -8> color rgb <0.3, 0.3, 0.35> shadowless } #declare HullWhite = texture { pigment { color rgb <0.90, 0.92, 0.95> } finish { diffuse 0.55 specular 0.55 roughness 0.03 reflection 0.06 } }; #declare HullDark = texture { pigment { color rgb <0.12, 0.13, 0.16> } finish { diffuse 0.6 specular 0.35 roughness 0.05 reflection 0.04 } }; #declare StripeBlue = texture { pigment { color rgb <0.15, 0.45, 0.95> } finish { diffuse 0.5 specular 0.6 roughness 0.02 } }; #declare Glass = texture { pigment { color rgbt <0.55, 0.75, 1.0, 0.65> } finish { diffuse 0.15 specular 0.9 roughness 0.01 reflection 0.08 } }; #declare GlowCyan = texture { pigment { color rgb <0.2, 0.9, 1.0> } finish { emission 1 diffuse 0 } }; #declare StarField = union { #declare I = 0; #while (I < 450) sphere { <(rand(seed(12345))*2-1)*140, (rand(seed(67890))*2-1)*90, 60 + rand(seed(24680))*140>, 0.10 + rand(seed(13579))*0.22 texture { pigment { color rgb <0.8, 0.85, 0.95> * (0.4 + rand(seed(97531))*0.6) } finish { emission 1 diffuse 0 } } no_shadow } #declare I = I + 1; #end }; object { StarField } #declare Ship = union { // Main fuselage (sleek capsule-like) union { cylinder { <0, 0.55, -1.6>, <0, 0.55, 1.8>, 0.55 texture { HullWhite } } sphere { <0, 0.55, 1.8>, 0.55 texture { HullWhite } } sphere { <0, 0.55, -1.6>, 0.55 texture { HullWhite } } // Slight top spine cylinder { <0, 0.92, -1.2>, <0, 0.92, 1.5>, 0.14 texture { HullDark } } // Nose cone cone { <0, 0.55, 2.25>, 0.40, <0, 0.55, 3.2>, 0.02 texture { HullWhite } } // Cockpit glass intersection { sphere { <0, 0.78, 2.15>, 0.55 } box { <-1, 0.72, 1.7>, <1, 1.35, 3.0> } texture { Glass } } // Blue stripe box { <-0.55, 0.47, -1.4>, <0.55, 0.54, 2.9> texture { StripeBlue } } // Side dark panels box { <-0.62, 0.18, -0.8>, <-0.42, 0.70, 1.5> texture { HullDark } } box { <0.42, 0.18, -0.8>, <0.62, 0.70, 1.5> texture { HullDark } } } // Wings (clean, slightly swept) union { // Left wing intersection { box { <-3.2, 0.38, -0.4>, <-0.55, 0.50, 1.55> } plane { <0.25, 0, 1>, 0.95 } // trim front edge plane { <-0.4, 0, 1>, 1.8 } // trim back edge texture { HullWhite } } // Right wing intersection { box { <0.55, 0.38, -0.4>, <3.2, 0.50, 1.55> } plane { <-0.25, 0, 1>, 0.95 } plane { <0.4, 0, 1>, 1.8 } texture { HullWhite } } // Wingtip dark caps box { <-3.2, 0.38, 0.9>, <-2.85, 0.52, 1.55> texture { HullDark } } box { <2.85, 0.38, 0.9>, <3.2, 0.52, 1.55> texture { HullDark } } } // Engine nacelles (two) union { // Left nacelle union { cylinder { <-1.55, 0.25, -1.2>, <-1.55, 0.25, 0.9>, 0.28 texture { HullDark } } sphere { <-1.55, 0.25, 0.9>, 0.28 texture { HullDark } } cone { <-1.55, 0.25, -1.2>, 0.28, <-1.55, 0.25, -1.7>, 0.18 texture { HullDark } } // Intake ring torus { 0.22, 0.04 rotate <90,0,0> translate <-1.55, 0.25, 0.95> texture { StripeBlue } } // Exhaust glow cone { <-1.55, 0.25, -1.70>, 0.16, <-1.55, 0.25, -2.35>, 0.02 texture { GlowCyan } no_shadow } } // Right nacelle union { cylinder { <1.55, 0.25, -1.2>, <1.55, 0.25, 0.9>, 0.28 texture { HullDark } } sphere { <1.55, 0.25, 0.9>, 0.28 texture { HullDark } } cone { <1.55, 0.25, -1.2>, 0.28, <1.55, 0.25, -1.7>, 0.18 texture { HullDark } } torus { 0.22, 0.04 rotate <90,0,0> translate <1.55, 0.25, 0.95> texture { StripeBlue } } cone { <1.55, 0.25, -1.70>, 0.16, <1.55, 0.25, -2.35>, 0.02 texture { GlowCyan } no_shadow } } } // Small window lights union { #declare W = -0.35; #while (W <= 0.35) sphere { , 0.05 texture { GlowCyan } no_shadow } #declare W = W + 0.175; #end } // Subtle bottom fin intersection { box { <-0.12, 0.05, -0.5>, <0.12, 0.55, 0.7> } plane { <0, 1, 0>, 0.22 } texture { HullDark } } // Slight overall tilt for dynamic view rotate <0, -18, 0> rotate <6, 0, 0> translate <0, 0, 0> }; object { Ship } plane { y, -20 texture { pigment { color rgb <0,0,0> } finish { ambient 0 diffuse 0 } } no_image }