feat: add tutorial section
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
// Spotlight rect in viewport pixel coordinates
|
||||
// vec4(x, y, width, height) — set to vec4(0,0,0,0) to dim everything
|
||||
uniform vec4 spotlight = vec4(0.0, 0.0, 0.0, 0.0);
|
||||
uniform vec2 viewport_size = vec2(1366.0, 720.0);
|
||||
uniform float dim_alpha : hint_range(0.0, 1.0) = 0.72;
|
||||
uniform float padding : hint_range(0.0, 32.0) = 8.0;
|
||||
|
||||
void fragment() {
|
||||
bool has_spotlight = spotlight.z > 1.0 && spotlight.w > 1.0;
|
||||
|
||||
if (has_spotlight) {
|
||||
// Convert spotlight rect to UV space
|
||||
float left = (spotlight.x - padding) / viewport_size.x;
|
||||
float top = (spotlight.y - padding) / viewport_size.y;
|
||||
float right = (spotlight.x + spotlight.z + padding) / viewport_size.x;
|
||||
float bottom = (spotlight.y + spotlight.w + padding) / viewport_size.y;
|
||||
|
||||
bool in_hole = (UV.x >= left) && (UV.x <= right)
|
||||
&& (UV.y >= top) && (UV.y <= bottom);
|
||||
|
||||
if (in_hole) {
|
||||
COLOR = vec4(0.0, 0.0, 0.0, 0.0); // transparent — element shows through
|
||||
} else {
|
||||
COLOR = vec4(0.0, 0.0, 0.0, dim_alpha);
|
||||
}
|
||||
} else {
|
||||
COLOR = vec4(0.0, 0.0, 0.0, dim_alpha);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user