#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.02, 0.03, 0.06> } // -------------------- Camera -------------------- camera { location <6.5, 3.2, -9.5> look_at <0.0, 0.7, 0.0> angle 38 } // -------------------- Lights -------------------- light_source { <9, 11, -9> color rgb <1.05, 1.00, 0.95> } light_source { <-11, 6.5, -1> color rgb <0.35, 0.50, 0.75> } light_source { <0, 18, 6> color rgb <0.20, 0.20, 0.25> } // subtle rim/back light light_source { <-6, 4, 12> color rgb <0.18, 0.22, 0.30> } // -------------------- Atmosphere -------------------- fog { distance 55 color rgb <0.03, 0.05, 0.09> fog_type 2 fog_offset 0.2 fog_alt 2.0 turbulence 0.2 } // -------------------- Starfield -------------------- #declare StarField = pigment { granite color_map { [0.00 color rgb <0,0,0>] [0.78 color rgb <0,0,0>] [0.90 color rgb <0.02,0.02,0.03>] [0.96 color rgb <0.65,0.70,0.85>] [1.00 color rgb <1.0,1.0,1.0>] } scale 0.35 } sphere { <0,0,0>, 200 hollow texture { pigment { StarField } finish { emission 0.9 diffuse 0 ambient 0 } } } // -------------------- Materials (textured) -------------------- // Panel lines for hull (procedural, fast) #declare HullPanelMask = pigment { crackle turbulence 0.15 metric 1.8 color_map { [0.00 color rgb <0.00,0.00,0.00>] [0.06 color rgb <0.00,0.00,0.00>] [0.08 color rgb <1.00,1.00,1.00>] [1.00 color rgb <1.00,1.00,1.00>] } scale <0.28, 0.14, 0.28> } #declare MicroNoise = normal { bumps 0.25 scale 0.03 } #declare BrushedNormalX = normal { average normal_map { [1.0 wrinkles 0.18 scale <0.02, 0.35, 0.02>] [1.0 bumps 0.10 scale 0.04] } } #declare MetalWhite_Textured = texture { pigment { average pigment_map { [0.85 color rgb <0.88, 0.90, 0.93>] [0.15 bozo color_map { [0.0 color rgb <0.80, 0.82, 0.86>] [0.6 color rgb <0.88, 0.90, 0.93>] [1.0 color rgb <0.92, 0.93, 0.95>] } scale 0.65 ] } } normal { average normal_map { [0.65 BrushedNormalX] [0.35 MicroNoise] } } finish { diffuse 0.45 specular 0.65 roughness 0.02 metallic reflection 0.12 conserve_energy } } #declare MetalDark_Textured = texture { pigment { average pigment_map { [0.80 color rgb <0.12, 0.14, 0.16>] [0.20 bozo color_map { [0.0 color rgb <0.08, 0.09, 0.10>] [0.7 color rgb <0.13, 0.15, 0.17>] [1.0 color rgb <0.18, 0.19, 0.21>] } scale 0.55 ] } } normal { MicroNoise } finish { diffuse 0.40 specular 0.70 roughness 0.025 metallic reflection 0.20 conserve_energy } } #declare AccentBlue_Textured = texture { pigment { average pigment_map { [0.85 color rgb <0.10, 0.38, 0.78>] [0.15 bozo color_map { [0.0 color rgb <0.06, 0.22, 0.55>] [0.7 color rgb <0.12, 0.38, 0.78>] [1.0 color rgb <0.20, 0.50, 0.92>] } scale 0.7 ] } } normal { bumps 0.15 scale 0.05 } finish { diffuse 0.55 specular 0.55 roughness 0.035 reflection 0.06 conserve_energy } } #declare HullPaint_WithPanels = texture { pigment { average pigment_map { [0.86 color rgb <0.88, 0.90, 0.93>] [0.14 HullPanelMask color rgb <0.70, 0.72, 0.76>] } } normal { average normal_map { [0.70 BrushedNormalX] [0.30 bumps 0.20 scale 0.04] } } finish { diffuse 0.46 specular 0.68 roughness 0.02 metallic reflection 0.13 conserve_energy } } // simple decal stripe (procedural), applied as an extra thin layer using a second object #declare StripePigment = pigment { gradient x color_map { [0.00 color rgbt <0,0,0,1>] [0.44 color rgbt <0,0,0,1>] [0.46 color rgb <0.08, 0.42, 0.86>] [0.54 color rgb <0.08, 0.42, 0.86>] [0.56 color rgbt <0,0,0,1>] [1.00 color rgbt <0,0,0,1>] } scale 1.0 } #declare DecalTexture = texture { pigment { StripePigment } finish { diffuse 0.65 specular 0.25 roughness 0.05 reflection 0.02 } } #declare GlassCanopy = texture { pigment { color rgbt <0.55, 0.82, 1.0, 0.78> } finish { diffuse 0.05 specular 0.90 roughness 0.008 reflection 0.18 conserve_energy } } #declare EngineGlow = texture { pigment { color rgb <0.25, 0.80, 1.0> } finish { emission 1.35 diffuse 0 ambient 0 } } #declare EngineGlowCore = texture { pigment { color rgb <0.80, 0.95, 1.0> } finish { emission 1.65 diffuse 0 ambient 0 } } // -------------------- Ship -------------------- #declare Ship = union { // Main fuselage cylinder { <0, 0.55, -2.2>, <0, 0.55, 2.1>, 0.55 texture { HullPaint_WithPanels } } cone { <0, 0.55, 2.1>, 0.55, <0, 0.55, 3.1>, 0.05 texture { HullPaint_WithPanels } } // nose cone { <0, 0.55, -2.2>, 0.55, <0, 0.55, -3.0>, 0.20 texture { MetalDark_Textured } } // tail taper // Top spine / dorsal ridge box { <-0.14, 0.97, -1.8>, <0.14, 1.15, 1.6> texture { MetalDark_Textured } } // Cockpit canopy sphere { <0, 1.05, 1.55>, 0.45 scale <1.25, 0.75, 1.05> texture { GlassCanopy } interior { ior 1.45 } } // Wing plate box { <-2.2, 0.46, -0.3>, <2.2, 0.54, 1.25> texture { MetalWhite_Textured } } // Wing edge accents box { <-2.2, 0.54, 0.95>, <2.2, 0.58, 1.10> texture { AccentBlue_Textured } } // Winglets (vertical fins) box { <-1.9, 0.54, -0.2>, <-1.65, 1.25, 0.55> texture { MetalDark_Textured } } box { < 1.65, 0.54, -0.2>, < 1.9, 1.25, 0.55> texture { MetalDark_Textured } } // Engine nacelles cylinder { <-1.55, 0.50, -1.25>, <-1.55, 0.50, 0.55>, 0.28 texture { MetalDark_Textured } } cylinder { < 1.55, 0.50, -1.25>, < 1.55, 0.50, 0.55>, 0.28 texture { MetalDark_Textured } } // Engine intakes (front rings) difference { cylinder { <-1.55, 0.50, 0.55>, <-1.55, 0.50, 0.75>, 0.30 texture { MetalWhite_Textured } } cylinder { <-1.55, 0.50, 0.54>, <-1.55, 0.50, 0.76>, 0.20 } } difference { cylinder { < 1.55, 0.50, 0.55>, < 1.55, 0.50, 0.75>, 0.30 texture { MetalWhite_Textured } } cylinder { < 1.55, 0.50, 0.54>, < 1.55, 0.50, 0.76>, 0.20 } } // Engine exhausts + glow (rear) difference { cylinder { <-1.55, 0.50, -1.55>, <-1.55, 0.50, -1.25>, 0.29 texture { MetalWhite_Textured } } cylinder { <-1.55, 0.50, -1.56>, <-1.55, 0.50, -1.24>, 0.17 } } difference { cylinder { < 1.55, 0.50, -1.55>, < 1.55, 0.50, -1.25>, 0.29 texture { MetalWhite_Textured } } cylinder { < 1.55, 0.50, -1.56>, < 1.55, 0.50, -1.24>, 0.17 } } cylinder { <-1.55, 0.50, -1.53>, <-1.55, 0.50, -1.35>, 0.16 texture { EngineGlow } } cylinder { < 1.55, 0.50, -1.53>, < 1.55, 0.50, -1.35>, 0.16 texture { EngineGlow } } // Glow core (nested, precisely centered) cylinder { <-1.55, 0.50, -1.50>, <-1.55, 0.50, -1.38>, 0.09 texture { EngineGlowCore } } cylinder { < 1.55, 0.50, -1.50>, < 1.55, 0.50, -1.38>, 0.09 texture { EngineGlowCore } } // Belly detail block (keel) box { <-0.18, 0.18, -1.2>, <0.18, 0.46, 0.5> texture { MetalDark_Textured } } // Small side accents on fuselage box { <-0.56, 0.63, -0.6>, <-0.50, 0.78, 0.9> texture { AccentBlue_Textured } } box { < 0.50, 0.63, -0.6>, < 0.56, 0.78, 0.9> texture { AccentBlue_Textured } } } // Decal stripe layer: a thin sleeve around fuselage (slightly larger radius) // Kept fast: one cylinder + one cone, aligned exactly to the fuselage. #declare StripeSleeve = union { cylinder { <0, 0.55, -1.9>, <0, 0.55, 1.8>, 0.551 texture { DecalTexture } } cone { <0, 0.55, 1.8>, 0.551, <0, 0.55, 2.55>, 0.22 texture { DecalTexture } } // position stripe to the ship's right side by rotating texture space texture { DecalTexture rotate <0,0,90> translate <0.0,0,0> } } union { object { Ship } object { StripeSleeve // Move stripe to sit off-center (like a manufactured livery band) rotate <0, 0, 0> translate <0.20, 0.00, 0.05> } rotate <0, -15, 0> translate <0, 0, 0> }