默认红色描边,确保物体具有MeshInstance3D,shader放在Material Overlay栏即可。
shader_type spatial;
render_mode cull_front, depth_draw_always, unshaded;
uniform bool outline_enabled = false;
uniform vec4 outline_color : source_color = vec4(1.0, 0.0, 0.0, 1.0);
uniform float outline_size = 0.01;
void vertex() {
if (outline_enabled) {
VERTEX += NORMAL * outline_size;
}
}
void fragment() {
if (outline_enabled) {
ALBEDO = outline_color.rgb;
ALPHA = outline_color.a;
} else {
ALPHA = 0.0; // 透明,显示原始材质
}
}