Lighting engine overhaul - #3423
Closed
EricsonWillians wants to merge 26 commits into
Closed
Conversation
Updated README to reflect NeoDoom branding and features.
…RINFO Implement extended SBARINFO mugshot syntax to support custom dimensions and positioning for high-resolution status bar faces, enabling proper scaling of non-standard mugshot graphics. Changes: - Extended SBARINFO parser to accept Width and Height parameters * Modified ParseSBarInfo() to handle TK_FloatConst tokens * Added support for 5 numeric parameters: Accuracy, X, Y, Width, Height * Implemented replace/merge logic for duplicate state definitions - Added native functions for mugshot dimension and position retrieval * Implemented GetMugShotWidth/Height/X/Y() in DBaseStatusBar * Added fallback logic to query specific face states (e.g., "STFST") * Exposed functions to ZScript via DEFINE_ACTION_FUNCTION_NATIVE - Updated Standard HUD (ZScript) to use custom mugshot properties * Modified DoomStatusBar::DrawMainBar() to retrieve custom dimensions * Implemented proper scaling via DrawTexture() Box parameter * Added support for custom X/Y positioning from SBARINFO definitions - Fixed DrawTexture scaling logic * Corrected argument order: Box parameter (5th) for target dimensions * Removed manual scale calculation (was causing invisible mugshots) * Restored DI_ITEM_OFFSETS flag for proper texture alignment Technical Details: - FMugShotState now stores Width, Height, X, Y coordinates - Parser handles mixed identifier/numeric parameter lists - Fallback to default coordinates (143, 168) when not specified - Compatible with LumpForge TOML mugshot configuration format Fixes: - Mugshots now render at correct size (e.g., 24x29 instead of 248x314) - Custom positioning works in both SBARINFO and Standard HUD - Prevents "invisible mugshot" issue from incorrect scaling Example SBARINFO syntax: mugshot "STFST", 5, health, 143, 169, 24, 32;
- Renamed build executable to `biaseddoom`. - Updated CMake configuration: - Renamed options `NEODOOM_ENABLE_GLTF` -> `BIASEDDOOM_ENABLE_GLTF` - Renamed macros and definitions to use `BIASEDDOOM_` prefix. - Updated build scripts (`supreme-build.sh`, `clean-build.sh`) and tool scripts. - Replaced all "NeoDoom" references in source code comments, headers, and string literals. - Updated all documentation files ([README.md](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/README.md:0:0-0:0), `docs/`, `GLTF_*.md`) to reflect the new name. - Added [CHANGELOG.md](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/CHANGELOG.md:0:0-0:0) to track project history. - Added disclaimer regarding AI-generated code to `README.md`.
- Implemented new atmosphere modes: Toxic, Hellfire, and Cyberpunk. - Moved atmosphere shader logic to 'present.fp' to apply effects globally, including the status bar and menus. - Added 'gl_atmosphere_intensity' and 'gl_atmosphere_contrast' CVARs to allow users to fine-tune effect strength and look. - Exposed new parameters via "Atmosphere Intensity" and "Atmosphere Contrast" sliders in the Post-Process menu. - Refactored 'PresentUniforms' to include new parameters and removed obsolete 'TonemapUniforms' struct. - Resolved build errors related to missing 'GLsync' types and shader uniform definitions.
…eline Introduces a comprehensive suite of post-processing effects to simulate CRT monitor characteristics and NTSC signal artifacts. These effects are implemented as a distinct layer in the [present.fp](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/wadsrc/static/shaders/pp/present.fp:0:0-0:0) shader, allowing them to stack with existing atmosphere modes. Key Features: - **CRT Distortion**: Implements efficient pincushion distortion with a new 'Zoom' (Overscan) control to mitigate black corner artifacts. - **Advanced Scanlines**: Procedural scanline generation with decoupled density, opacity, and sharpness controls. Supports both soft, interpolated scanlines and sharp, pixel-grid aligned scanlines. - **Phosphor Masks**: Introduces multiple CRT emulation modes: - Mode 1: Standard Scanlines. - Mode 2: Aperture Grille (Vertical RGB stripes). - Mode 3: Shadow Mask (Dot triad pattern). - **NTSC Artifacts**: Simulates composite signal degradation including chromatic aberration (fringing) and color bleeding. - **Menu Integration**: Fully exposed all parameters in "Display Options -> Post Processing". Technical Implementation: - **C++ / CVARs**: Added `gl_crt_*` and `gl_ntsc_*` CVARs to [hw_postprocess_cvars.cpp](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/src/common/rendering/hwrenderer/postprocessing/hw_postprocess_cvars.cpp:0:0-0:0). - **Uniforms**: Extended [PresentUniforms](cci:2://file:///home/ericsonwillians/workspace/BiasedDoom/src/common/rendering/hwrenderer/postprocessing/hw_postprocess.h:683:0-743:1) structure in [hw_postprocess.h](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/src/common/rendering/hwrenderer/postprocessing/hw_postprocess.h:0:0-0:0) to pass dynamic float/int parameters to the shader. - **Backends**: Updated both [gles_postprocess.cpp](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/src/common/rendering/gles/gles_postprocess.cpp:0:0-0:0) (OpenGLES) and [vk_postprocess.cpp](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/src/common/rendering/vulkan/renderer/vk_postprocess.cpp:0:0-0:0) (Vulkan) to populate and bind the new uniforms during the presentation pass. - **Shaders**: significant logic additions to [present.fp](cci:7://file:///home/ericsonwillians/workspace/BiasedDoom/wadsrc/static/shaders/pp/present.fp:0:0-0:0) to handle coordinate distortion, mask generation, and signal blending. New CVARs: - `gl_crt_mode` (0-3): Off, Standard, Aperture Grille, Shadow Mask. - `gl_crt_distortion` (Float): Strength of physical screen curvature. - `gl_crt_zoom` (Float): Overscan factor to crop distortion borders. - `gl_crt_scanline` (Float): Opacity of scanlines. - `gl_crt_scanline_density` (Float): Multiplier for scanline frequency relative to resolution. - `gl_crt_scanline_sharpness` (Float): Hardness of the scanline sine wave profile. - `gl_crt_mask_intensity` (Float): Opacity of the aperture/shadow mask overlay. - `gl_ntsc_mode` (0/1): Toggle for NTSC signal simulation.
Add a user-friendly release path via tools/release.sh, including draft and prerelease dispatch support, and route the release script through Release workflow inputs. - Update release workflow metadata handling to accept prerelease flag and pass it through publish step. - Improve version bump/trigger flow in tools/release.sh with explicit helper command output. - Synchronize top-level README release instructions with the streamlined command workflow. - Propagate VERSIONSTR into macOS bundle version fields so launcher-visible version metadata updates consistently.
Escape delimiters in the VERSIONSTR update command so bump script runs reliably under release automation.
- Fix vertical door lookup in BuildUDMF to match door seam index consistently. - Add bounds guard before dereferencing Grid[j][i] in vertical door path. - Prevent invalid wall texture pointer usage that could cause runtime SIGSEGV during PROCMAP generation.
Expand graphics presets with playable VHS, evil, fog, CRT, and horror variants. Add configurable lighting style controls and wire them through OpenGL, Vulkan, GLES, and material shaders. Expose the new preset and lighting controls in the options menus.
Add renderer-level controls for dynamic light range, falloff softness, wrap lighting, indirect bounce, and shadow strength across OpenGL, Vulkan, and GLES paths. Expose the new lighting controls in the menus and tune lighting presets to use the stronger configurable model.
Expand the dedicated lighting preset list and tune each preset around the new range, softness, wrap, indirect bounce, and shadow strength controls. Update post-processing preset lighting styles so every themed preset family explicitly uses the enhanced dynamic lighting model.
Make the vignette controls activate the post-processing path with a useful default strength instead of silently doing nothing at zero strength. Replace the old corner-only vignette curve with a viewport-shaped mask across desktop, stereo, and GLES present shaders so the effect is clearly visible and scalable.
Member
|
PR seems to have been made by mistake, it appears to be for a forked project. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.