crystall said:MfA said:AFAIK Kribi is a semi-stochastic raytracer BTW.
I didn't knew that, Eric is really tight lipped about his project usually
Well Im reading between the lines a bit.
crystall said:MfA said:AFAIK Kribi is a semi-stochastic raytracer BTW.
I didn't knew that, Eric is really tight lipped about his project usually
Well Im reading between the lines a bit.
Scali said:You mean your index-buffer maps 1:1 to the pixelbuffer/zbuffer/etc?
So you can theoretically have a different shader for each pixel?
I've seen a few implementations that use a tree for each scanline, which stores the spans of triangles. This basically replaces the zbuffer altogether, and in most cases you'll have spans of (much?) more than 1 pixel on a scanline, so it's more efficient.
But perhaps you chose for a per-pixel buffer because you expect that there will be too many triangles to make a tree-approach efficient?
Why on earth would you do them multiple times? (with the possible exception of rasterization setup (but that can be a space/time tradeoff).Nick said:Doesn't that become very complex when there are many polygons and render states? It also seems like a lot of things are done multiple times. Like transformation, lighting, clipping, rasterization setup, etc.
You have to render one tile at a time. So for every tile you have to transform, light, clip and rasterize. For polygons that span multiple tiles this will be done multiple times.Simon F said:Why on earth would you do them multiple times? (with the possible exception of rasterization setup (but that can be a space/time tradeoff).
Nick said:You have to render one tile at a time. So for every tile you have to transform, light, clip and rasterize. For polygons that span multiple tiles this will be done multiple times.
The only alternative I see is processing all vertices in the scene, and storing them in extra vertex buffers. But this wastes memory and most of all bandwidth. And isn't one of the primary goals of tile rendering to reduce bandwidth?
So... you resolve visibility information as soon as possible, only storing the minimum information needed for visible polygons per tile? I think it starts getting through to me. Cool approach!crystall said:You don't need to store vertices, only polygon information is relevant to the rasterization and shading process. At least in my implementation. It's basically an immediate-mode setuper and deferred rasterizer/shader
Nick said:So... you resolve visibility information as soon as possible, only storing the minimum information needed for visible polygons per tile? I think it starts getting through to me. Cool approach!
But that would be just plain stupid.Nick said:You have to render one tile at a time. So for every tile you have to transform, light, clip and rasterize. For polygons that span multiple tiles this will be done multiple times.Simon F said:Why on earth would you do them multiple times? (with the possible exception of rasterization setup (but that can be a space/time tradeoff).
Then show me the plain simple approach. Seriously, it's not all that trivial. There has to be a balance between memory usage, bandwidth, processing power and state management complexity.Simon F said:But that would be just plain stupid.
Nick said:Then show me the plain simple approach. Seriously, it's not all that trivial. There has to be a balance between memory usage, bandwidth, processing power and state management complexity.Simon F said:But that would be just plain stupid.