It may help rendering some tricks but I honestly think that it is not worth the trouble. Having true polygons definitely has its advantages. Yes, it means that it can't handle some of the more elaborate tricks but Risen3D has proven that it is not impossible and with very little additional work the most common rendering tricks (holes with non-textured lower/upper linedef parts), self-referencing sectors) can be easily handled. And there aren't that many maps with those truly hideous tricks.randy wrote:Speaking of rendering tricks and OpenGL, I wonder why every OpenGL port of Doom has adopted the Quake way of doing things. IMO, Ken Silverman is the only one who got it right when he wrote Polymost. The primary difference between that and his original engine is that Polymost clips edges and software Build clips pixels. Floors and ceilings are still drawn as extensions of the walls, just like the software engine did it; there is no fundamental change to the way the scene is rendered.Graf Zahl wrote:The problem with this is that many of the old rendering tricks won't work anymore.
If somebody were to adopt that for Doom (which basically means ZDoom, since Polymost is not GPL, so it can't be used with GPL ports), you wouldn't need to rebuild nodes, and every software trick would automatically work without any extra effort.
Anyway, most GL ports have problems not because they use polygons but because there are no means to analyze and handle the rendering tricks:
-Vavoom and ZDoomGL completely lack any code whatsoever to do it and screw up abysmally when they encounter such a map
-Doomsday can handle some basic self-referencing sector stuff but it is really limited
-PrBoom uses the GLU tesselator (which was unfortunately removed in 2.3.x thus making those GL versions utterly useless...) which means that it automatically handles all self referencing sector stuff and it has some primitive handling of non-textured holes
-Risen3D has the most complex analyzer so far and aside from some maps which have node-sensitive tricks it was able to handle everything I saw so far in a decent manner.
As for GL nodes, they aren't really necessary. PrBoom for example has used the GLU tesselator to create its flat polygons. GL nodes are certainly cleaner but IMO they create far too much overhead and quite frequently slow the renderer down.
The most annoying problem of software renderers are their clipping problems. From a quick look at this polymost stuff I can't tell how this would be handled (or how depth buffering is handled at all in it.)