Integrate gauges into cockpit dashboard
This commit is contained in:
1 parent
0b79bf9b82
commit
53288b48c8
7 files changed
+213
-17
No files matched your search
@@ -17,6 +17,7 @@ var rubber: Material
|
||||
var gauge_face: StandardMaterial3D
|
||||
var gauge_glass: StandardMaterial3D
|
||||
var needle_paint: StandardMaterial3D
|
||||
var instrument_screen: ShaderMaterial
|
||||
var warm_emission: StandardMaterial3D
|
||||
|
||||
|
||||
@@ -65,6 +66,7 @@ func _init() -> void:
|
||||
)
|
||||
gauge_glass = _glass_material()
|
||||
needle_paint = _plain_material(Color(0.68, 0.055, 0.022), 0.12, 0.44)
|
||||
instrument_screen = _screen_material()
|
||||
warm_emission = _emissive_material(Color(0.96, 0.52, 0.18), 2.4)
|
||||
|
||||
|
||||
@@ -167,6 +169,30 @@ func _glass_material() -> StandardMaterial3D:
|
||||
return material
|
||||
|
||||
|
||||
func _screen_material() -> ShaderMaterial:
|
||||
var shader := Shader.new()
|
||||
shader.code = """
|
||||
shader_type spatial;
|
||||
render_mode diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
void fragment() {
|
||||
vec2 centered = UV - vec2(0.5);
|
||||
float vignette = 1.0 - smoothstep(0.28, 0.72, length(centered));
|
||||
float scanline = 0.94 + 0.06 * sin(UV.y * 720.0);
|
||||
float edge = mix(0.68, 1.0, vignette);
|
||||
vec3 phosphor = vec3(0.025, 0.105, 0.11) * edge * scanline;
|
||||
ALBEDO = phosphor;
|
||||
EMISSION = phosphor * 0.38;
|
||||
METALLIC = 0.08;
|
||||
ROUGHNESS = 0.18;
|
||||
SPECULAR = 0.82;
|
||||
}
|
||||
"""
|
||||
var material := ShaderMaterial.new()
|
||||
material.shader = shader
|
||||
return material
|
||||
|
||||
|
||||
func _emissive_material(color: Color, energy: float) -> StandardMaterial3D:
|
||||
var material := StandardMaterial3D.new()
|
||||
material.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
|
||||
|
||||
Reference in new issue
Block a user