feat: adjustable ambient lighting via ImGui sliders
- SceneUBO expanded: added vec4 ambientColor at offset 400 - UBO size: 448 → 464 bytes - Fragment shader: ambient from UBO instead of hardcoded constant - VulkanRenderer: AmbientColor property (default 0.01, 0.01, 0.02) - ImGui: R/G/B sliders for ambient (0.0-0.5 range) - Packed at offset 400 after 4 shadowParams (64 bytes at 336)
This commit is contained in:
@@ -281,14 +281,21 @@ class Program
|
||||
var bias = vkRenderer.ShadowBias;
|
||||
var sampleRadius = vkRenderer.ShadowSampleRadius;
|
||||
var farPlane = vkRenderer.ShadowFarPlane;
|
||||
var ambient = vkRenderer.AmbientColor;
|
||||
|
||||
ImGui.SliderFloat("Shadow Bias", ref bias, 0.0001f, 0.1f, "%.4f");
|
||||
ImGui.SliderFloat("Sample Radius", ref sampleRadius, 0.001f, 0.1f, "%.4f");
|
||||
ImGui.SliderFloat("Far Plane", ref farPlane, 10.0f, 120.0f, "%.1f");
|
||||
ImGui.Separator();
|
||||
ImGui.Text("Ambient Light");
|
||||
ImGui.SliderFloat("Ambient R", ref ambient.X, 0.0f, 0.5f, "%.3f");
|
||||
ImGui.SliderFloat("Ambient G", ref ambient.Y, 0.0f, 0.5f, "%.3f");
|
||||
ImGui.SliderFloat("Ambient B", ref ambient.Z, 0.0f, 0.5f, "%.3f");
|
||||
|
||||
vkRenderer.ShadowBias = bias;
|
||||
vkRenderer.ShadowSampleRadius = sampleRadius;
|
||||
vkRenderer.ShadowFarPlane = farPlane;
|
||||
vkRenderer.AmbientColor = ambient;
|
||||
|
||||
ImGui.Text($"Current: bias={bias:F4} radius={sampleRadius:F4} far={farPlane:F1}");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user