Software Renderer Mysteries
Re: Software Renderer Mysteries
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.)
The night is young. How else can I annoy the world before sunsrise? Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
Re: Software Renderer Mysteries
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).
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).
Re: Software Renderer Mysteries
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.
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
Some recent maps have alpha textures mixed-in with the world. Does that mean two passes on the world bsp?
Re: Software Renderer Mysteries
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.
Another pass in the BSP renderer isn't enough, and reinitializing the BSP renderer all the time would be much slower than needed.