[0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in E1L1
Moderator: Raze Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
[0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in E1L1
When standing on the ledge below the billboard where you get the rocket launcher, on occasion you can see the health sprite through the wall:
Save state in exact position attached. This issue doesn't seem to occur in EDuke32.
Save state in exact position attached. This issue doesn't seem to occur in EDuke32.
- Attachments
-
- save0000.dsave
- (251.42 KiB) Downloaded 30 times
- sinisterseed
- Posts: 1349
- Joined: Tue Nov 05, 2019 6:48 am
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
I think this might be related to a major rendering issue I found in older builds where sprites render through walls, most noticeable in key parts of DC.
Lemme dig out the screenshot... there: https://m.imgur.com/NdpeEIL
Doesn't occur in EDuke32.
Lemme dig out the screenshot... there: https://m.imgur.com/NdpeEIL
Doesn't occur in EDuke32.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
I think this is a problem with how the projection is set up. Apparently the scene depth is not deep enough and at this distance starts getting clipped.
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
Since lowskill didn't provide a save file from that spot, here's mine: https://www.dropbox.com/transfer/AAAAAL ... GZ4F235pvo
- sinisterseed
- Posts: 1349
- Joined: Tue Nov 05, 2019 6:48 am
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
Oh I did, privately .markanini wrote:Since lowskill didn't provide a save file from that spot, here's mine: https://www.dropbox.com/transfer/AAAAAL ... GZ4F235pvo
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
Just wanted to add an update that at least for me, this is hardware-specific. This does not happen on my work laptop with Intel graphics, only my home PC with an NVIDIA GeForce GTX 970. Just updated to the newest drivers again and same issue.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
Strange. I think this is related to some ill-advised hackery the renderer does to avoid z-fighting. EDuke did some tweaks to this code in 2017 which upon verification did some really bad stuff - another map where sprites bled through other things is the Hollywood sign in World Tour. I partially reverted the tweaks an it seems to behave much better now.
Of course this isn't a fix - the entire implementation of the sprite renderer is quite a bit broken right now, but only a complete rewrite may be able to fix that...
Of course this isn't a fix - the entire implementation of the sprite renderer is quite a bit broken right now, but only a complete rewrite may be able to fix that...
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
Thanks for taking a look. I can confirm it's much better now and I can't see that health vial, but I do still see the outline of the clock. It seems to be exasperated by how high your resolution is. I play at 4K and when I switch to window mode or scale down in some way, it's not visible.
At least the cause and a solution is known. Great to also see some recent action as well as it's been a bit quiet in recent times, I hope all's well in your world
At least the cause and a solution is known. Great to also see some recent action as well as it's been a bit quiet in recent times, I hope all's well in your world
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
The problem here is insufficent resolution of the depth buffer combined with a poor approach to render sprites - and the higher the resolution gets, the lower the depth resolution in the distance will become . To do it right it would have to separate flat, wall and face sprites - rendering non-translucent flat and wall sprites in the solid geometry pass and then the face sprites along with translucent walls without depth write in strictly sorted order, like GZDoom does. But since Polymost has nothing that matches sane solid geometry it's not easy to pull off.
I really don't get it why, even after so many years, nobody has ever tried to fix the depth buffer problem, the values being stored in there are abysmally inappropriate for the task and yet, even modern hardware slavishly sticks to what's thoroughly broken.
I really don't get it why, even after so many years, nobody has ever tried to fix the depth buffer problem, the values being stored in there are abysmally inappropriate for the task and yet, even modern hardware slavishly sticks to what's thoroughly broken.
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
I guess these issues will be something that gets sorted throughout the passage of time. Will you be able to make Polymost into what it needs to be, or is the idea to just get it workable on the unified backend and write something new that gets these things right from the start?
My own hypothesis is that the community is smaller and they've had people come and go from it. Icecoldduke has done/is doing some preliminary work on converting Polymer D3D12/Vulkan here, but this is also the 4-5th time he's started some kind of renderer work for EDuke32 and there's considerable doubt that he'll be available for the long haul to see this effort through as well.
My own hypothesis is that the community is smaller and they've had people come and go from it. Icecoldduke has done/is doing some preliminary work on converting Polymer D3D12/Vulkan here, but this is also the 4-5th time he's started some kind of renderer work for EDuke32 and there's considerable doubt that he'll be available for the long haul to see this effort through as well.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
The way Polymost mangles its geometry will always present a major issue, mainly because the code is totally incomprehensible with all that fixed point voodoo math.
Regarding Icecolduke, I'll certainly take a look at his code - but the main issue is that it's Vulkan-DX12 only which for retro games is too high a target.
For now I am trying to piece the unified backend back together without breaking the renderer like last time. At least I was able to get back the improvements to the sound system, like supporting music playlists, but unfortunately some of the earliest work in that branch, i.e. the palette translation management has some serious issues which block merging most of the rest of the branch. So for now I'm trying to merge in the non-renderer parts just to reduce the working surface for later. TBH, if I can get the ZScript compiler back in it'd be enough to start work on porting the menus and status bars to a more modern backing implementation.
The renderer refactoring will definitely have to wait until after the next release.
Regarding Icecolduke, I'll certainly take a look at his code - but the main issue is that it's Vulkan-DX12 only which for retro games is too high a target.
For now I am trying to piece the unified backend back together without breaking the renderer like last time. At least I was able to get back the improvements to the sound system, like supporting music playlists, but unfortunately some of the earliest work in that branch, i.e. the palette translation management has some serious issues which block merging most of the rest of the branch. So for now I'm trying to merge in the non-renderer parts just to reduce the working surface for later. TBH, if I can get the ZScript compiler back in it'd be enough to start work on porting the menus and status bars to a more modern backing implementation.
The renderer refactoring will definitely have to wait until after the next release.
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
For what it's worth, the backend_unification branch in its current state while far from perfect, was rather playable; at least for Duke 3D which is what I mainly tested on it. I'm glad all the efforts there weren't in vain though and most/all but the renderer parts were able to be unified
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
I made a few mistakes in that branch, transitioning parts too early, before they were fully operational. The plan is still to get away from the makeshift backend I initially wrote for Polymost because that one is not extensible at all, but it needs to be done more carefully. Right now I just try to get the features in I need for fixing the sky rendering. For that I need the texture manager working at least.
- mjr4077au
- Posts: 829
- Joined: Sun Jun 16, 2019 9:17 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Gosford NSW, Australia
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
All in good time, thank you for explaining the processes to me as I find it all very fascinating
- sinisterseed
- Posts: 1349
- Joined: Tue Nov 05, 2019 6:48 am
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
- Contact:
Re: [0.4.2-4d45117] [Duke 3D] Sprite visible behind wall in
That's probably because "it just works" .Graf Zahl wrote:I really don't get it why, even after so many years, nobody has ever tried to fix the depth buffer problem, the values being stored in there are abysmally inappropriate for the task and yet, even modern hardware slavishly sticks to what's thoroughly broken.
No, like, really, I don't know what eduke does here, but it must do something since I've never managed to experience this in it.