25 lines
1.0 KiB
GDScript
25 lines
1.0 KiB
GDScript
extends Node3D
|
|
## Shared opaque boughs; decorative presentation without simulation state.
|
|
|
|
const WIND_SHADER := preload("res://world/jajce/materials/wind.gdshader")
|
|
|
|
|
|
func _ready() -> void:
|
|
var canopy := $Geometry/ConiferCanopy as MeshInstance3D
|
|
var material := ShaderMaterial.new()
|
|
material.shader = WIND_SHADER
|
|
material.set_shader_parameter("albedo", Color(0.28, 0.47, 0.33))
|
|
material.set_shader_parameter("painted_vertex_weight", 1.0)
|
|
material.set_shader_parameter("wind_strength", 0.055)
|
|
material.set_shader_parameter("wind_speed", 0.55)
|
|
material.set_shader_parameter("wind_phase", float(posmod(hash(global_position), 6283)) / 1000.0)
|
|
material.set_shader_parameter("wind_base_height", 0.45)
|
|
material.set_shader_parameter("wind_full_height", 3.1)
|
|
canopy.material_override = material
|
|
var trunk := $Geometry/ConiferTrunk as MeshInstance3D
|
|
var bark := StandardMaterial3D.new()
|
|
bark.vertex_color_use_as_albedo = true
|
|
bark.roughness = 0.95
|
|
bark.specular_mode = BaseMaterial3D.SPECULAR_DISABLED
|
|
trunk.material_override = bark
|