From 865a13335bec8e7f308397cc9206f9571a0ba1e8 Mon Sep 17 00:00:00 2001 From: jonathan Date: Thu, 29 Jan 2026 11:00:13 +0100 Subject: [PATCH] Added multisampling to shader --- scenes/blockout_room.tscn | 7 ++++--- scenes/main_render.gdshader | 22 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/scenes/blockout_room.tscn b/scenes/blockout_room.tscn index 12759b7..25b3cac 100644 --- a/scenes/blockout_room.tscn +++ b/scenes/blockout_room.tscn @@ -85,15 +85,15 @@ density = 0.1 [sub_resource type="Environment" id="Environment_dp7jk"] tonemap_mode = 3 +ssao_enabled = true glow_enabled = true glow_normalized = true glow_intensity = 1.43 glow_strength = 1.04 glow_bloom = 0.16 -volumetric_fog_enabled = true [sub_resource type="Curve" id="Curve_gcpng"] -_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.055555545, 0.022194743), 0.984991, 0.984991, 0, 0, Vector2(0.30246913, 0.3828606), 1.409688, 1.409688, 0, 0, Vector2(0.5864197, 0.6313193), 1.2172475, 1.2172475, 0, 0, Vector2(0.882716, 0.94389635), 1.9908764, 1.9908764, 0, 0, Vector2(1, 1), 0.063336894, 0.0, 0, 0] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.26234567, 0.14241672), 0.0, 0.0, 0, 0, Vector2(0.5092592, 0.3427866), 0.0, 0.0, 0, 0, Vector2(0.79320985, 0.6313193), 0.0, 0.0, 0, 0, Vector2(0.87962955, 0.96794075), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.063336894, 0.0, 0, 0] point_count = 6 [sub_resource type="CurveTexture" id="CurveTexture_5747v"] @@ -102,7 +102,8 @@ curve = SubResource("Curve_gcpng") [sub_resource type="ShaderMaterial" id="ShaderMaterial_gcpng"] shader = ExtResource("9_k5i88") shader_parameter/target_tex_size = Vector2(427, 240) -shader_parameter/color_steps = 24.0 +shader_parameter/sample_count = 1 +shader_parameter/color_steps = 16.0 shader_parameter/color_curve = SubResource("CurveTexture_5747v") [sub_resource type="ViewportTexture" id="ViewportTexture_dp7jk"] diff --git a/scenes/main_render.gdshader b/scenes/main_render.gdshader index 5bc37b4..61d41f2 100644 --- a/scenes/main_render.gdshader +++ b/scenes/main_render.gdshader @@ -1,6 +1,7 @@ shader_type canvas_item; uniform vec2 target_tex_size = vec2(1280,720); +uniform int sample_count:hint_range(1, 20) = 1; uniform float color_steps:hint_range(1.0, 255.0, 1.0); uniform sampler2D color_curve; @@ -10,12 +11,31 @@ void vertex() { // Called for every vertex the material is visible on. } +vec2 spiralPoint(float t, float spacing) +{ + float b = spacing / (2.0 * PI); + float r = b * t; + + return vec2( + r * cos(t), + r * sin(t) + ); +} + void fragment() { //vec2 texSize = vec2(textureSize(TEXTURE,0)); // For performance reasons, this function should be avoided as it always performs a full texture read. When possible, you should pass the texture size as a uniform instead. //texSize = texSize / 4.; ivec2 intUv = ivec2(target_tex_size * UV); vec2 flooredUv = vec2(intUv) / target_tex_size; - vec3 fullColor = texture(TEXTURE,flooredUv).rgb; + vec2 uvPixelWidth = 1. / target_tex_size; + + vec3 fullColor = vec3(0); + for(int i = 0;i