docs(shaders): fix 3 [nerv] config refs (fx_enabled, scanline_alpha)
This commit is contained in:
@@ -42,9 +42,9 @@ The [NERV Technical Console](https://en.wikipedia.org/wiki/Nerv) theme (`src/the
|
||||
|
||||
- **Black Void Palette:** Near-black backgrounds with sharp, high-contrast accents.
|
||||
- **Zero-Rounding Geometry:** No rounded corners on panels, buttons, or frames. Sharp rectangles.
|
||||
- **CRT Scanlines:** A repeating horizontal line overlay applied via the `custom_background` callback. The scanline intensity is configurable via `config.toml` → `[nerv].scanline_alpha`.
|
||||
- **Status Flickering:** The active tier indicator and other "operational status" elements flicker at a low frequency (configurable rate) to simulate a tactical display.
|
||||
- **Alert Animations:** When MMA state transitions to "blocked" or "error", a red border pulse animation runs for ~1.5 seconds.
|
||||
- **CRT Scanlines:** A repeating horizontal line overlay drawn into the foreground draw list by `CRTFilter.render(width, height)` in `src/theme_nerv_fx.py:8-65`. Alphas are hard-coded (0.08 major / 0.04 minor) — not config-driven.
|
||||
- **Status Flickering:** `StatusFlicker.get_alpha()` in `src/theme_nerv_fx.py:67-73` returns a hard-coded 3.18 Hz sine (angular frequency 20.0 rad/s). Not wired into a production caller as of 2026-06-10.
|
||||
- **Alert Animations:** `AlertPulsing.update(status)` at `src/theme_nerv_fx.py:79-83` activates the red border pulse for any `status.lower().startswith("error")`; the pulse persists for the duration of that status (no auto-decay).
|
||||
|
||||
### Implementation Files
|
||||
|
||||
@@ -54,10 +54,10 @@ The [NERV Technical Console](https://en.wikipedia.org/wiki/Nerv) theme (`src/the
|
||||
|
||||
### Activation
|
||||
|
||||
The NERV theme is selected via the GUI's theme picker (User Menu → Theme → NERV). When activated, `theme_nerv.py` swaps the active color set, geometry style, and font. The FX layer is enabled/disabled via the `[nerv].fx_enabled` config flag.
|
||||
The NERV theme is selected via the GUI's theme picker (NERV is one of the built-in syntax palettes in the multi-theme TOML system). When activated, `theme_nerv.apply_nerv()` swaps the active color set and zero-rounding geometry. The FX layer's `CRTFilter.enabled` is toggled per-frame by the caller of `theme_2.render_post_fx(crt_enabled=...)` — there is no `[nerv].fx_enabled` config key.
|
||||
|
||||
### Performance Considerations
|
||||
|
||||
CRT scanlines use the FBO pipeline and run at full window resolution. On a 1920×1080 display, the scanline pass adds ~1-2ms per frame. For lower-end GPUs, reduce `[nerv].scanline_alpha` (cheaper blending) or disable FX entirely (`[nerv].fx_enabled = false`).
|
||||
CRT scanlines run at full window resolution via `CRTFilter.render()`'s draw-list calls (no FBO/shader pass in the current implementation). On a 1920×1080 display, the per-frame cost is on the order of 1-2ms. For lower-end GPUs, the only knob is `CRTFilter.enabled` (set by the caller of `theme_2.render_post_fx(crt_enabled=...)`); the scanline alpha and noise density are hard-coded in `src/theme_nerv_fx.py`.
|
||||
|
||||
See [guide_nerv_theme.md](guide_nerv_theme.md) (placeholder; written in Task 10) for the full theme API, configuration keys, and customization options.
|
||||
|
||||
Reference in New Issue
Block a user