Shaders: RDCharacter: parameter refactor and diffuse modulation consolidation#1011
Merged
BenLubar merged 5 commits intoReactiveDrop:reactivedrop_betafrom Jan 15, 2026
Merged
Conversation
Reorganize and group SHADER_PARAM declarations in character_dx9.cpp into coherent sections (misc, base, bump, envmap, phong, detail, proxy). This is a structural refactor for readability and maintainability only.
Previously, diffuse modulation was applied only to the diffuse lighting terms while other shading paths—such as self-illumination, night vision, and Phong-based effects—continued to use the unmodulated base color. This led to inconsistent material appearance and visual artifacts when per-instance color overrides (e.g., rendercolor or proxy-driven modulation) were used. This change applies diffuse modulation to the base color itself before any shading calculations, ensuring that all subsequent lighting and shading paths operate on the fully modulated color. The visual output is now consistent, and the shader behavior aligns with the intended use of diffuse modulation as a persistent per-instance color modification.
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.
Shaders: RDCharacter: parameter refactor and diffuse modulation consolidation
Description
This PR introduces structural and functional improvements to the
RDCharactershader:This caused inconsistent material appearance and visual artifacts when per-instance color overrides (for example
rendercoloror proxy driven modulation) were used.Now, diffuse modulation is applied directly to the base color before any shading calculations, ensuring all subsequent lighting and shading paths operate on the fully modulated color. Visual output is consistent, aligning shader behavior with the intended use of diffuse modulation as a persistent per-instance color modification.
SHADER_PARAMdeclarations incharacter_dx9.cppinto coherent sections: misc, base, bump, envmap, phong, detail, proxy.Additional Changes Included in this PR
Added default parameters and streamlined argument construction for shader compilation automation.
Excludes additional generated and local files to reduce noise in commits.
Testing / Verification
.gitignorechanges verified to correctly ignore generated/local files.