This commit is contained in:
Arctis-Fireblight
2025-08-27 23:18:33 -05:00
177 changed files with 1631 additions and 967 deletions

View File

@@ -66,6 +66,7 @@ Ref<Material> Material::get_next_pass() const {
void Material::set_render_priority(int p_priority) {
ERR_FAIL_COND(p_priority < RENDER_PRIORITY_MIN);
ERR_FAIL_COND(p_priority > RENDER_PRIORITY_MAX);
render_priority = p_priority;
if (material.is_valid()) {
@@ -1640,7 +1641,7 @@ void fragment() {)";
float px_size = max(0.5 * dot(msdf_size, dest_size), 1.0);
float d = msdf_median(albedo_tex.r, albedo_tex.g, albedo_tex.b);
if (msdf_outline_size > 0.0) {
float cr = clamp(msdf_outline_size, 0.0, msdf_pixel_range / 2.0) / msdf_pixel_range;
float cr = clamp(msdf_outline_size, 0.0, (msdf_pixel_range / 2.0) - 1.0) / msdf_pixel_range;
d = min(d, albedo_tex.a);
albedo_tex.a = clamp((d - 0.5 + cr) * px_size + 0.5, 0.0, 1.0);
} else {
@@ -3222,6 +3223,11 @@ void BaseMaterial3D::set_stencil_mode(StencilMode p_stencil_mode) {
return;
}
if (p_stencil_mode == StencilMode::STENCIL_MODE_OUTLINE || p_stencil_mode == StencilMode::STENCIL_MODE_XRAY) {
ERR_FAIL_COND_EDMSG(get_render_priority() >= RENDER_PRIORITY_MAX,
vformat("Cannot use stencil mode Outline or Xray, when render priority is RENDER_PRIORITY_MAX(%d).", RENDER_PRIORITY_MAX));
}
stencil_mode = p_stencil_mode;
_prepare_stencil_effect();
_queue_shader_change();