[Blood:CP, newrenderer] Badly rendered doors
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.
-
-
- Posts: 376
- Joined: Mon Jun 27, 2016 7:26 pm
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
[Blood:CP, newrenderer] Badly rendered doors
On the Castle level of Blood: Cryptic Passage, there are two doors which are not rendered correctly by the new renderer. When both are closed, a non-existent floor and ceiling appears between them. Here's a saved game showing the issue.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
This setup makes the triangulation fail. When closed, the doors partially go into the neighboring sector which result in a bogus sector segment being created between them.
With things like this it is becoming clearer why nobody has ever managed to design a functional polygonal Build renderer - the entire engine design makes it far too easy to construct maps that make it fail.
With things like this it is becoming clearer why nobody has ever managed to design a functional polygonal Build renderer - the entire engine design makes it far too easy to construct maps that make it fail.
-
- Posts: 1349
- Joined: Tue Nov 05, 2019 6:48 am
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
Re: [Blood:CP, newrenderer] Badly rendered doors
That, and until not too long ago there were also no ports for Blood and the other games, and some of the existing ones were not good (thinking of stuff such SWP here).
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
Yeah, and the only new renderer that was ever attempted was Polymer, but that would totally break down on non-Duke games, because it was written with limited assumptions.
The problem is just that the Build engine allows an incredible amount of sloppy level design and if you don't construct your renderer on the precise principles on how Build works it will glitch out.
Granted, in Doom it was possible to create edge cases that just can't work - but they are just that: edge cases used in a small number of maps. These days most mappers avoid exploiting render glitches because they know that a large number of users will be using ports that can't handle them properly.
But that's not the case for Build. Here these edge cases are actual engine features! What good is a new renderer if it has problems with Blood's standard door feature? This just encourages a map setup that makes the triangulator fold.
The problem is just that the Build engine allows an incredible amount of sloppy level design and if you don't construct your renderer on the precise principles on how Build works it will glitch out.
Granted, in Doom it was possible to create edge cases that just can't work - but they are just that: edge cases used in a small number of maps. These days most mappers avoid exploiting render glitches because they know that a large number of users will be using ports that can't handle them properly.
But that's not the case for Build. Here these edge cases are actual engine features! What good is a new renderer if it has problems with Blood's standard door feature? This just encourages a map setup that makes the triangulator fold.
-
- Posts: 422
- Joined: Fri Dec 22, 2017 1:53 am
- Graphics Processor: ATI/AMD (Modern GZDoom)
Re: [Blood:CP, newrenderer] Badly rendered doors
So what's the future of the newrenderer?
-
- Posts: 13883
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: [Blood:CP, newrenderer] Badly rendered doors
While I can't speak for Graf I don't imagine it's going to be given up that easily. Since the code mostly comes from GZDoom there's a hint of familiarity about it that makes it much easier to work with than Polymost and much more likely that it will ever receive bug fixes as well. (In fact if it gets to be in a mature enough state it's likely that Polymost will be shitcanned entirely)
Unfortunately, in order to be compatible with most maps thrown at it GZDoom's renderer required hack after hack after hack after hack to support a lot of the effects that became so common in Doom maps in the 90's and 00's, and for Raze this unfortunately will be no different.
Unfortunately, in order to be compatible with most maps thrown at it GZDoom's renderer required hack after hack after hack after hack to support a lot of the effects that became so common in Doom maps in the 90's and 00's, and for Raze this unfortunately will be no different.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
We already knew that this would be tricky. While Doom has a lot of hacks, they were never part of the original design, but accidents due to rendering shortcuts.
In Build, on the other hand, many of the quirks were officially documented and advertised as features, so they not only show up in some user maps, but also in the main campaigns of the released games. So they are a lot more widespread and need to be handled properly instead of adding more hacks.
In Build, on the other hand, many of the quirks were officially documented and advertised as features, so they not only show up in some user maps, but also in the main campaigns of the released games. So they are a lot more widespread and need to be handled properly instead of adding more hacks.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
There were two issues here, both with colinear, overlapping lines.
First, the ZDoom node builder used to triangulate sectors where a simpler approach fails, cannot deal with these and creates phantom subsectors, so the lines have to be culled before running the node builder.
Second, the wall sorter in the renderer didn't have any checks for colinear lines at all and simply bailed out with an error, resulting in random order.
If two bunches have a colinear section, any attempt to sort them traditionally will fail. The only other chance is to examine the sectors being referenced and use them to determine order.
First, the ZDoom node builder used to triangulate sectors where a simpler approach fails, cannot deal with these and creates phantom subsectors, so the lines have to be culled before running the node builder.
Second, the wall sorter in the renderer didn't have any checks for colinear lines at all and simply bailed out with an error, resulting in random order.
If two bunches have a colinear section, any attempt to sort them traditionally will fail. The only other chance is to examine the sectors being referenced and use them to determine order.
-
-
- Posts: 376
- Joined: Mon Jun 27, 2016 7:26 pm
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
Re: [Blood:CP, newrenderer] Badly rendered doors
Unfortunately, this "fix" seems to have caused a regression at the start of the second level of Shadow Warrior: Twin Dragon ($tank.map): Part of the road under the pickup truck on the opposite side of the road disappears when the pickup truck stops moving.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
Fortunately this was just a typo in one of the code paths.
-
- Posts: 422
- Joined: Fri Dec 22, 2017 1:53 am
- Graphics Processor: ATI/AMD (Modern GZDoom)
Re: [Blood:CP, newrenderer] Badly rendered doors
Duke3D blood footprints now flicker too.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
That has nothing to do with this commit.
-
-
- Posts: 376
- Joined: Mon Jun 27, 2016 7:26 pm
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
Re: [Blood:CP, newrenderer] Badly rendered doors
These fixes seem to have caused yet another regression: There's a missing floor and ceiling triangle on the second level of 500 millilitres of /vr/. Here's a saved game where the missing triangle is.
EDIT: This is the commit which caused the aforementioned missing triangle.
On the other hand, I can imagine how difficult it is to make a polygonal renderer for the Build engine, since I faced a fair number of challenges in writing the 3D view for jsdoom.
EDIT: This is the commit which caused the aforementioned missing triangle.
On the other hand, I can imagine how difficult it is to make a polygonal renderer for the Build engine, since I faced a fair number of challenges in writing the 3D view for jsdoom.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
Please do not post new bugs in already closed threads. That can often lead to them being overlooked due to how the forum marks unread content.
-
- Lead GZDoom+Raze Developer
- Posts: 49204
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [Blood:CP, newrenderer] Badly rendered doors
Well, this was something else. This map opens that door by collapsing a sector into nothing. There were two lines left with zero length and they were throwing the triangulation off. Removing these lines before doing any work fixes it again.