Page 2 of 2

Re: Software Renderer Mysteries

Posted: Tue Jan 13, 2015 6:55 am
by Baker
Very nice work! I got too involved/frustrated with clipping or the clipping that wasn't happening but actually was, and ended up infinitely sidetracked by other technical diversions (why are there so many of these? Well, for me there are far less now. But way more than I prefer.)

Re: Software Renderer Mysteries

Posted: Wed Jan 14, 2015 5:45 am
by qbism
I've learned a lot from the clipping discussions here and in the other thread, and banging around in the source, but I don't have much to contribute toward improving the solution.

What I can provide is bsp2 and 2bsp support. That was the mystery of gigantic maps... really just a file format. So far the bsp2 scenes have not broken software limitations on rendering frames. This is based on MH's notes and the quakespasm implementation, which very elegantly laid it out. I'm not ready to put forth a build yet but the code is on the sourceforge svn.

The bsp2 format is layered on the 'big map' format which is actually more complex, many data size changes and limit increases all over the place.

Here's one of the worst cases I could find of the single-pass transparency option: the green arrow shows missing slime through the grate, the red arrow shows missing grate (and slime). Image

Re: Software Renderer Mysteries

Posted: Sat Jan 17, 2015 11:37 pm
by mankrip
That's why multi pass is needed. It's very complicated to properly implement, but it's the only real solution.

The latest Makaqu release already has the proper code for turbulent surfaces. Alpha masked surfaces requires a different approach.

By the way, it seems the Half Life software renderer does translucent surfaces in a similar way as Makaqu - a single pass for each BSP entity. I've only played it this year, and it's interesting to see things in it that Makaqu does better, as well as things that Half Life improved in similar ways.

Re: Software Renderer Mysteries

Posted: Sun Jan 18, 2015 1:31 am
by qbism
Some recent maps have alpha textures mixed-in with the world. Does that mean two passes on the world bsp?

Re: Software Renderer Mysteries

Posted: Sun Jan 18, 2015 3:40 pm
by mankrip
No. Alpha masked surfaces needs a different renderer, separated from the regular BSP renderer.

Another pass in the BSP renderer isn't enough, and reinitializing the BSP renderer all the time would be much slower than needed.