-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Heretic: small visual improvements #1117
Conversation
This approach is same to Crispy Doom, and it's working as it should.
Same approach as in R_DrawFuzzColumn.
For (2), does the translucency effect in Heretic depend on the pixels above or below the current one (like fuzz) or is that just left over from the Doom code? The reason I ask is that I encountered a similar problem for Strife and the fix was very simple. |
Oh, it does, really seems to be a leftover. Thanks @ceski-1, your approach is far simpler. |
Co-Authored-By: ceski <[email protected]>
Adopted from commit: 0ab96c0#diff-385affd7076e37a2aa4b0e489fff3bbe8a4ee5fff3cc62f41655c4ee9d92457e Co-Authored-By: Michael Day <[email protected]>
I also added smooth flat scrolling code from Crispy Hexen. Thanks @mikeday0, this implementation is far simpler and better than one I wrote few years ago, as no external calculations and assumed speeds are needed, and it works fine with 36-59 fps. However, unlike Hexen, here in Heretic visual scrolling effect is limited to east only direction. Should I keep it such conservative way, or should I extend scrolling to any direction? Really don't know which is better. 🫢 |
Scrolling is any direction is possible, but almost immediately this happens: This is because of Raven's scrolling implementation itself is not exactly "scrolling", but reading flat lump contents, shifting it and adding interpolated offsets in uncapped mode. And that's why flowing water flats are having 65x64 size. To fix it, lump contents must remain same, and instead scrolling offsets must be shifted. Doable, but will require some extra work like proper speed formulas and external scroll deltas, since we need to modify offsets not every frame tic, but every game tic. This could also fix barely notable jittering effect when flat passes full 64 pixel scroll. However, I have double checked GZDoom, and only east-direction scrolling is implemented there, so probably it is worth to leave scrolling "as is" for some mapping and cross-port standards. Jittering is barely noticeable and literally requires starring to scrolling texture. Guess it's all done in this PR. Small idea for future: externalize |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very welcome additions, thank you very much!
Re fractionaltic: yes, please. |
This is a small collection of small visual improvements. Nothing critical, until you'll see them or know about them. 🙃 To clarify:
1. Weapons drawn 1 pixel too high when player is idle. Fixes notable moving weapon for one pixel down even while small movement/momentum. Formula
FRACUNIT / 4
comes directly from Doom and it's working fine.2. Fix 1px gap between translucent PSPrite and STbar. Fixes missing one pixel line above status bar for translucent columns.
3. Allow translucent weapons to be affected by invul colormap. Just a small vanilla oversight, fix does not affect sky of course.