shader_type spatial; render_mode blend_add,unshaded,depth_test_disabled; uniform sampler2D tex_main : source_color; uniform bool is_billboard; void vertex() { if (is_billboard){ vec3 billboard_offset = VERTEX; VERTEX.xz = normalize(INV_VIEW_MATRIX[0].xz) * billboard_offset.x + normalize(INV_VIEW_MATRIX[2].xz) * billboard_offset.z; VERTEX.y = billboard_offset.y; } } void fragment() { vec4 col = texture(tex_main, UV); ALBEDO = COLOR.rgb * col.r; ALPHA = COLOR.a * col.r; }