Re: [Algorithms] Storing sorted alpha-blended polygons
Brought to you by:
vexxed72
From: Ian B. <ian...@gt...> - 2001-03-16 18:02:09
|
> The PowerVR architecture isn't too bad. The above stuff _is_ hard & slightly > messy, but there are some nice advantages once you've solved them. Many have > already been mentioned. That's why the PowerVR is doing so well? Er...sorry for the sarcasm. Couldn't resist. ;) > It's worth pointing out that the new PowerVR cards only need to store all > the alpha tris this way. Opaque tris are just dealt with immediately. So > saying that this tri-storing overhead is inefficient compared with > conventional architectures isn't entirely fair - in conventional > architectures the overhead is in the app, which has to store & sort them, > rather than in the hardware, but it's still there. I was thinking of the multi-texture case. If you're trying to emulate a multi-texture operation via multiple passes with alpha blending, you don't need to batch up all the polygons and render them in order. The driver doesn't know this (without changing the interface), and would have to sort polygons that don't need to be. That's inefficient. > BeginScene() and EndScene() have been around forever. I knew someone was going to call me on this. Only recently has Microsoft been saying that there can only be one BeginScene()/EndScene() pair per rendering loop. When they enacted the rule (in DX6) MS told the app programmers that their apps would fail if they broke this rule. Unfortunately, driver writers couldn't enforce this rule because it'd break apps from previous DX versions. Break one app that is used in testing and you're driver isn't released. Now, these days things might be different but from my experience there's always been one app that throws a wrench in the machine. > Yes, but Dx used to have a renderstate you could turn on to enable > auto-sort. No-one ever did though. DX also had a renderstate for specular lighting when you couldn't pass vertex normals. ;) > The Kyro is a good card. It's not brilliant, it doesn't have hardware T&L > and all that, but there's nothing at all wrong with it. It supports 8 > textures at once, which is superb. It's a shame some of the wackier (but > cool) features like shadowing and volume modifiers aren't exposed through > the DX API any more. Just to be clear, I'm not bagging on any card or rendering architecture. If a card can handle auto-sorting alpha blended polygons *correctly* for *all* cases, I'll use it. I just wanted to explain why it hadn't been done before. Ian Bullard |