shader_type spatial;
render_mode cull_back;
uniform float morph_t : hint_range(0.0, 1.0) = 1.0;
uniform vec3 lod_color : source_color = vec3(0.4, 0.5, 0.3);
void vertex() {
// Coarse position packed in CUSTOM0.xyz (chunk-local, RGBA_FLOAT)
vec3 pos_coarse = CUSTOM0.xyz;
// Coarse normal in CUSTOM1.xyz (RGBA_FLOAT)
vec3 normal_coarse = CUSTOM1.xyz;
// Interpolate between coarse (parent LOD) and fine (current LOD)
VERTEX = mix(pos_coarse, VERTEX, morph_t);
NORMAL = normalize(mix(normal_coarse, NORMAL, morph_t));
}
void fragment() {
ALBEDO = lod_color;
}