dumb ai
This commit is contained in:
@@ -1,34 +1,30 @@
|
||||
# Specification: Frosted Glass Background Effect
|
||||
# Specification: Frosted Glass Background Effect (REPAIR - TRUE GPU)
|
||||
|
||||
## Overview
|
||||
Implement a high-fidelity "frosted glass" (acrylic) background effect for all GUI panels and popups within the Manual Slop interface. This effect will use a GPU-resident shader to blur the content behind active windows, improving readability and visual depth while preventing background text from clashing with foreground UI elements.
|
||||
Implement a high-fidelity "frosted glass" (acrylic) background effect using a dedicated OpenGL pipeline. This implementation follows professional rendering patterns (downsampling, multi-pass blurring, and screen-space sampling) to ensure a smooth, milky look that remains performant on high-DPI displays.
|
||||
|
||||
## Functional Requirements
|
||||
- **GPU-Accelerated Blur:**
|
||||
- Implement a GLSL fragment shader (e.g., Gaussian or Kawase blur) within the existing `ShaderManager` pipeline.
|
||||
- The shader must sample the current frame buffer background and render a blurred version behind the active window's background.
|
||||
- **Global Integration:**
|
||||
- The effect must automatically apply to all standard ImGui panels and popups.
|
||||
- Integrate with `imgui.begin()` and `imgui.begin_popup()` (or via a reusable wrapper helper).
|
||||
- **Real-Time Tuning:**
|
||||
- Add controls to the **Live Shader Editor** to adjust the following parameters:
|
||||
- **Blur Radius:** Control the intensity of the Gaussian blur.
|
||||
- **Tint Intensity:** Control the strength of the "frost" overlay color.
|
||||
- **Base Opacity:** Control the overall transparency of the frosted layer.
|
||||
- **Persistence:**
|
||||
- Save frosted glass parameters to `config.toml` under the `theme` or `shader` section.
|
||||
- **Dedicated Background Pipeline:**
|
||||
- Render the animated "Deep Sea" background shader to an off-screen `SceneFBO` once per frame.
|
||||
- **Multi-Scale Downsampled Blur:**
|
||||
- Downsample the `SceneFBO` texture to 1/4 or 1/8 resolution.
|
||||
- Perform 2-pass Gaussian blurring on the downsampled texture to achieve a creamy "milky" aesthetic.
|
||||
- **ImGui Panel Integration:**
|
||||
- Each ImGui panel must sample its background from the blurred texture using screen-space UV coordinates.
|
||||
- Automatically force window transparency (`alpha 0.0`) when the effect is active.
|
||||
- **Real-Time Shader Tuning:**
|
||||
- Control blur radius, tint intensity, and opacity via the Live Shader Editor.
|
||||
- **Stability:**
|
||||
- Balanced style-stack management to prevent ImGui assertion crashes.
|
||||
- Strict 1-space indentation and class scope protection.
|
||||
|
||||
## Technical Implementation
|
||||
- **Shader Pipeline:** Use `PyOpenGL` to manage a dedicated background texture/FBO for sampling.
|
||||
- **Coordinate Mapping:** Ensure the blur shader correctly maps screen coordinates to the region behind the current ImGui window.
|
||||
- **State Integration:** Store tuning parameters in `App.shader_uniforms` and ensure they are updated every frame.
|
||||
- **FBO Management:** Persistent FBOs for scene, temp, and blur textures.
|
||||
- **UV Math:** `(window_pos / screen_res)` mapping to handle high-DPI scaling and vertical flipping.
|
||||
- **DrawList Callbacks:** (If necessary) use callbacks to ensure the background is ready before panels draw.
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] Panels and popups have a distinct, blurred background that clearly separates them from the content behind them.
|
||||
- [ ] Changing the "Blur Radius" slider in the Shader Editor immediately updates the visual frostiness.
|
||||
- [ ] The effect remains stable during window dragging and resizing.
|
||||
- [ ] No significant performance degradation (maintaining target FPS).
|
||||
|
||||
## Out of Scope
|
||||
- Implementing different blur types (e.g., motion blur, radial blur).
|
||||
- Per-panel unique blur settings (initially global only).
|
||||
- [ ] Toggling the effect does not crash the app.
|
||||
- [ ] Windows show a deep, high-quality blur of the background shader.
|
||||
- [ ] Blur follows windows perfectly during drag/resize.
|
||||
- [ ] The "Milky" look is highly visible even at low radii.
|
||||
|
||||
Reference in New Issue
Block a user