#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 7 radiosity { pretrace_start 0.08 pretrace_end 0.01 count 40 nearest_count 5 error_bound 0.6 recursion_limit 1 low_error_factor 0.5 gray_threshold 0.0 minimum_reuse 0.015 brightness 0.75 } } background { color rgb <0.012, 0.018, 0.040> } fog { fog_type 2 distance 55 color rgb <0.04, 0.06, 0.11> fog_offset 0.0 fog_alt 3.5 turbulence 0.4 } camera { location <0, 2.2, -9> look_at <0, 0.55, 0.3> angle 35 } light_source { <300, 400, -300> color rgb <1.0, 1.0, 1.0>*0.55 } light_source { <-40, 20, -30> color rgb <0.35, 0.45, 0.9>*0.55 } light_source { <0, 5, -8> color rgb <0.25, 0.25, 0.28>*0.50 shadowless } // A soft rim/kicker to reveal paneling (dimmed) light_source { <8, 5, -2> color rgb <0.55, 0.60, 0.75>*0.16 area_light <1.2,0,0>, <0,0,1.2>, 3, 3 adaptive 1 jitter } #declare R1 = seed(12345); #declare R2 = seed(67890); #declare R3 = seed(24680); #declare R4 = seed(13579); // --- Textures (improved, procedural) --- #declare HullPaint_White = texture { pigment { average pigment_map { [0.72 color rgb <0.90, 0.92, 0.96>] [0.18 color rgb <0.86, 0.88, 0.92>] [0.10 granite color_map { [0 rgb <0.90,0.92,0.96>] [1 rgb <0.78,0.80,0.84>] } scale 0.35] } } normal { average normal_map { [0.65 bumps 0.25 scale 0.12] [0.35 wrinkles 0.20 scale 0.20] } } finish { diffuse 0.55 specular 0.75 roughness 0.02 reflection 0.07 metallic 0.05 } } #declare HullPanelLines = texture { pigment { function { abs(sin(x*10)) + abs(sin(z*10)) } color_map { [0.00 color rgbt <0.10,0.12,0.16, 0.55>] [0.08 color rgbt <0.10,0.12,0.16, 1.00>] [1.00 color rgbt <0.10,0.12,0.16, 1.00>] } scale 0.55 } finish { diffuse 0 specular 0 reflection 0 } } #declare HullGrime = texture { pigment { bozo color_map { [0.00 color rgbt <0.08,0.07,0.06, 1.00>] [0.35 color rgbt <0.12,0.11,0.10, 0.92>] [0.60 color rgbt <0.18,0.17,0.16, 0.75>] [1.00 color rgbt <0.22,0.21,0.20, 0.65>] } scale 0.9 translate <0.2, 0.0, -0.1> } finish { diffuse 0.2 specular 0.0 reflection 0 } } #declare HullWhite = texture { average texture_map { [0.78 HullPaint_White] [0.12 HullPanelLines] [0.10 HullGrime] } } #declare HullDarkMetal = texture { pigment { granite color_map { [0.00 rgb <0.10, 0.11, 0.14>] [0.55 rgb <0.14, 0.15, 0.18>] [1.00 rgb <0.06, 0.07, 0.09>] } scale 0.35 } normal { bumps 0.35 scale 0.08 } finish { diffuse 0.45 specular 0.55 roughness 0.03 reflection 0.10 metallic 0.35 } } #declare StripeBluePaint = texture { pigment { bozo color_map { [0.00 rgb <0.10, 0.35, 0.88>] [0.65 rgb <0.15, 0.45, 0.95>] [1.00 rgb <0.18, 0.55, 1.00>] } scale 0.25 } normal { bumps 0.20 scale 0.10 } finish { diffuse 0.45 specular 0.85 roughness 0.015 reflection 0.06 } } #declare Glass = texture { pigment { color rgbt <0.55, 0.75, 1.0, 0.78> } normal { bumps 0.12 scale 0.05 } finish { diffuse 0.05 specular 0.95 roughness 0.008 reflection 0.14 conserve_energy } } #declare GlowCyan = texture { pigment { color rgb <0.2, 0.9, 1.0> } finish { emission 0.85 diffuse 0 } } #declare EngineCore = texture { pigment { color rgb <0.35, 1.0, 1.0> } finish { emission 1.20 diffuse 0 } } #declare EngineHalo = texture { pigment { color rgbt <0.25, 0.95, 1.0, 0.88> } finish { emission 0.55 diffuse 0 } } // --- Starfield (use consistent seeds; avoid reseeding per star) --- #declare StarField = union { #declare I = 0; #while (I < 420) #declare sx = (rand(R1)*2-1)*140; #declare sy = (rand(R2)*2-1)*90; #declare sz = 60 + rand(R3)*140; #declare sr = 0.10 + rand(R4)*0.22; #declare si = (0.30 + rand(R1)*0.65); sphere { , sr texture { pigment { color rgb <0.80, 0.86, 0.98>*si } finish { emission 0.95 diffuse 0 } } no_shadow } #declare I = I + 1; #end } object { StarField } // --- Ship --- #declare Ship = union { // Main fuselage 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 { HullDarkMetal } } // 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 } interior { ior 1.45 } } // Blue stripe box { <-0.55, 0.47, -1.4>, <0.55, 0.54, 2.9> texture { StripeBluePaint } } // Side dark panels box { <-0.62, 0.18, -0.8>, <-0.42, 0.70, 1.5> texture { HullDarkMetal } } box { <0.42, 0.18, -0.8>, <0.62, 0.70, 1.5> texture { HullDarkMetal } } } // Wings union { intersection { box { <-3.2, 0.38, -0.4>, <-0.55, 0.50, 1.55> } plane { <0.25, 0, 1>, 0.95 } plane { <-0.4, 0, 1>, 1.8 } texture { HullWhite } } 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 caps box { <-3.2, 0.38, 0.9>, <-2.85, 0.52, 1.55> texture { HullDarkMetal } } box { <2.85, 0.38, 0.9>, <3.2, 0.52, 1.55> texture { HullDarkMetal } } // A small blue accent on wings (thin stripe) box { <-3.2, 0.495, 0.15>, <-0.62, 0.505, 0.22> texture { StripeBluePaint } } box { <0.62, 0.495, 0.15>, <3.2, 0.505, 0.22> texture { StripeBluePaint } } } // Engine nacelles union { union { cylinder { <-1.55, 0.25, -1.2>, <-1.55, 0.25, 0.9>, 0.28 texture { HullDarkMetal } } sphere { <-1.55, 0.25, 0.9>, 0.28 texture { HullDarkMetal } } cone { <-1.55, 0.25, -1.2>, 0.28, <-1.55, 0.25, -1.7>, 0.18 texture { HullDarkMetal } } torus { 0.22, 0.04 rotate <90,0,0> translate <-1.55, 0.25, 0.95> texture { StripeBluePaint } } // Exhaust core + halo cone { <-1.55, 0.25, -1.70>, 0.16, <-1.55, 0.25, -2.25>, 0.02 texture { EngineCore } no_shadow } cone { <-1.55, 0.25, -1.65>, 0.22, <-1.55, 0.25, -2.55>, 0.02 texture { EngineHalo } no_shadow } } union { cylinder { <1.55, 0.25, -1.2>, <1.55, 0.25, 0.9>, 0.28 texture { HullDarkMetal } } sphere { <1.55, 0.25, 0.9>, 0.28 texture { HullDarkMetal } } cone { <1.55, 0.25, -1.2>, 0.28, <1.55, 0.25, -1.7>, 0.18 texture { HullDarkMetal } } torus { 0.22, 0.04 rotate <90,0,0> translate <1.55, 0.25, 0.95> texture { StripeBluePaint } } cone { <1.55, 0.25, -1.70>, 0.16, <1.55, 0.25, -2.25>, 0.02 texture { EngineCore } no_shadow } cone { <1.55, 0.25, -1.65>, 0.22, <1.55, 0.25, -2.55>, 0.02 texture { EngineHalo } 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 { HullDarkMetal } } rotate <0, -18, 0> rotate <6, 0, 0> translate <0, 0, 0> } object { Ship } // Keep a non-rendering catcher plane, but invisible plane { y, -20 texture { pigment { color rgb <0,0,0> } finish { ambient 0 diffuse 0 } } no_image }