by Graf Zahl » Sat May 23, 2020 5:30 am
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.
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.