I posted this some time ago in the beginner's forum but I got no reply, so I guess it's an advanced topic.
We know that vendors are claiming two ways to increase performance:
1- Front to back rendering. Increases performance by using early z-cull, decreasing the needed fillrate.
2- Good state change management. Increases performance by less stalling the pipelines.
Now, as I see it, those two methods are in some way conflicting so I would like to hear some opinions about that. As I see it, (2) will be best (if not now, in the not so distant future) but I cannot be sure.
Another thing I would like to get some comments is the using of a z-only first pass. In this way, the overdraw caused by using (2) would be significantly reduced. Does someone experimented with this?
The nice idea is that by using (2) we may be able to use occlusion queries (a topic which was posted some time ago) immediatly after having rendered the 'nearest z', so the queries will hopefully terminate before we complete the 'shade for real' pass.
BTW, by using (2) we can get a faster application stage (state management can be done once, while front-to-back sorting cannot), which however, is not so important considering most CPUs are quite fast right now (but memory bandwith is not, and this **may** be a plus).
I hope I have explained me well enough. What is your opinion on that? As you may have noticed, I have mixed feelings about this.
Thank you in advance!
[This message has been edited by Obli (edited 05-12-2003).]