Pixel or Vertex more important, looking forward?

Vertex or Pixel Shading Prowess of greater importance?

  • Pixel Shading

    Votes: 0 0.0%
  • Balance between the two

    Votes: 0 0.0%
  • or, like me, have no clue

    Votes: 0 0.0%

  • Total voters
    232
By the way I tend to agree (with my limited knowledge) with the "pixel shaders for now" type of opinions, until of course more sophisticated APIs and hardware arrives.

Sweeney at least doesn't seem to indicate something vastly different for the U3 engine:

PS 3.0 utilizes a wide range of optimizations, from 64-bit frame-buffer blending to looping and dynamic conditionals for rendering multiple light interactions in a single pass without requiring a combinatorical explosion of precompiled shaders.

Our pixel shaders in the Unreal Engine 3 demos are typically 50-200 instructions in length, and are composed from a wide range of artist-controlled components and procedural algorithms.

Our vertex shaders are quite simple nowadays, and just perform skeletal blending and linear interpolant setup on behalf of the pixel shaders. All of the heavy lifting is now on the pixel shader side -- all lighting is per-pixel, all shadowing is per-pixel, and all material effects are per-pixel.

Once you have the hardware power to do everything per-pixel, it becomes undesirable to implement rendering or lighting effects at the vertex level; such effects are tessellation-dependent and difficult to integrate seamlessly with pixel effects.
 
Ailuros said:
Tim Sweeney said:
Our pixel shaders in the Unreal Engine 3 demos are typically 50-200 instructions in length, and are composed from a wide range of artist-controlled components and procedural algorithms.
Tim was probably talking about games made by his company instead of UE3 licensees. Where did you get that quote of his from btw?

In any case, my thinkings and Tim's probably has basic similiarities -- the concentration should be on "visual impact" on the various platforms available, currently or next-gen. And that means stretching pixel shading. Not vertex shading. Only time and education will tell whether this is right in the eyes of the folks that matter wrt this -- the PC games buying public.

Horses for courses, IOW, when it comes to what constitutes "better PC image quality".
 
In the short term (2-3 years?), I think we'll continue to need an increase in pixel shading speed. Recent per pixel rendering techniques (normal mapping, shadow mapping, and parallax mapping) will become more mainstream in games, requiring IHVs to continue to tune the pixel pipe. Even as we move towards a unified shader model, Mult-Core CPUs will allow game developers (and drivers) to efficiently to offload geometry processing onto the CPU, leaving the GPU to strictly process pixels.

If (and hopefully when) games begin to render the highly tesselated scenes that are rendered only in CG movies today, we will again see the need for efficient programmable vertex shading. This is however a long way off IMO and problably requires a whole new thinking in game development.
 
Even as we move towards a unified shader model, Mult-Core CPUs will allow game developers (and drivers) to efficiently to offload geometry processing onto the CPU, leaving the GPU to strictly process pixels.

I hope not. I already considered Doom3 a huge step in the wrong direction, since its CPU-based geometry processing limits it to very low polycounts.
Even worse, Doom3 left the vertexprocessing potential of modern cards untapped. On the modern cards with 4 or even 6 vertexshader units, we can process a lot more geometry than games are currently using.
3DMark05 will explore the other extreme... Massive polycount. I wonder how well current cards are going to handle that.
 
Reverend said:
Ailuros said:
Tim Sweeney said:
Our pixel shaders in the Unreal Engine 3 demos are typically 50-200 instructions in length, and are composed from a wide range of artist-controlled components and procedural algorithms.
Tim was probably talking about games made by his company instead of UE3 licensees. Where did you get that quote of his from btw?

U3 is a game that´s going to be released either in late 2005 or early 2006 from what it looks today isn´t it? I don´t see anything more advanced hitting the shelves in the meantime, unless CroTeam is up to some completely unexpected surprises.

The quote is from the B3D´s last interview with...uhhmm wait why am I telling YOU that? <shrugs>. I apologize for forgetting to include the necessary link. Is it too late now?

:oops:

http://www.beyond3d.com/interviews/sweeneyue3/
 
Even worse, Doom3 left the vertexprocessing potential of modern cards untapped.

The game isn´t already what I´d call screamingly fast; I can´t imagine how it would perform on recent hardware, would the polycount be by a lot higher.

On the modern cards with 4 or even 6 vertexshader units, we can process a lot more geometry than games are currently using.

How about Far Cry? With maximum details and 2xAA/4xAF in 1280 the game is on the edge of playability with the 6800. Despite some shortcomings of the engine, I don´t think I´d be too fond of the idea to have to knock down details or play in a low resolution with blurry textures on a newly purchased high end card.

Personally I´d rather prefer the route the future seems to indicate with WGF and the possibility of advanced HOS/adaptive on chip tesselation, which also means that geometry units aren´t still advanced and/or flexible enough.

3DMark05 will explore the other extreme... Massive polycount. I wonder how well current cards are going to handle that.

Albeit worm warned in the another thread, that the results shown from a 6800 are from a completely unoptimized beta, I wonder how much higher the final scores will be. Twice as high maybe? Still doesn´t sound too promising to me.
 
Ailuros said:
The game isn´t already what I´d call screamingly fast; I can´t imagine how it would perform on recent hardware, would the polycount be by a lot higher.

That's my point, it could have been faster and/or had higher polycount if more geometry processing was offloaded to the vertexshaders.

How about Far Cry? With maximum details and 2xAA/4xAF in 1280 the game is on the edge of playability with the 6800. Despite some shortcomings of the engine, I don´t think I´d be too fond of the idea to have to knock down details or play in a low resolution with blurry textures on a newly purchased high end card.

I don't know FarCry very well, I don't know if it pushes enough polys to keep the vertexshaders busy all the time. I'm just saying that most games generally aren't, and that includes Doom3, most probably HalfLife2, and pretty much everything released before them.

Personally I´d rather prefer the route the future seems to indicate with WGF and the possibility of advanced HOS/adaptive on chip tesselation, which also means that geometry units aren´t still advanced and/or flexible enough.

As I said before, we all do. But it just isn't realistic at the moment. We will at least have to wait for the next generation of videocards, which may be 2 years away, or even more. Until then, all we have is vertexshaders, and as I say, I think the cards with 4 or 6 of them, have more power than is being used in most games.

3DMark05 using very high polycount could mean a few things... Either they are using the power that has been available in the high-end cards already... or they expect this power to go up in the near future. After all, 3DMark05 is supposed to be an indication of future games, so if 3DMark05 uses high polycount, they apparently have reason to believe that future games are going to use high polycount. And since future games are still going to have to run at interactive framerate, apparently there is or will be hardware that is capable of this.
 
I don't know FarCry very well, I don't know if it pushes enough polys to keep the vertexshaders busy all the time. I'm just saying that most games generally aren't, and that includes Doom3, most probably HalfLife2, and pretty much everything released before them.
I imagine that the reason for this is the fact that vertex processing is harder to scale well. It is easier to provide a few levels of pixel shader support and let the user scale their resolution than it is to offer higher poly count models for users with more advanced cards (because the artist effort involved is huge). This is where HOS and adaptive tesselation will help of course but (AFAIK) there isn't anything useful out there yet (i.e. that's available on older cards and doesn't need CPU processing, which would be too expensive with the poly counts in modern games). So how do you make a game that takes full advantage of the vertex power of modern 3d hardware while still scaling to be playable on a GF4-MX?
 
Well, obviously, you don't. This is why I've been aching for a very long time for IHV's to come forward with robust HOS solutions. I once thought that nVidia's RT patches support was robust enough, but it turned out to require way too much pre-processing in the driver to be useable. And ATI's N-patches are not flexible enough. So there just isn't any way we're going to see maximal usage of vertex shader units until a generation or two after a robust HOS solution comes to bear.
 
Scali said:
That's my point, it could have been faster and/or had higher polycount if more geometry processing was offloaded to the vertexshaders.

The problem with this statement is that you are assuming the game should be designed with the NV4x and R4xx in mind, with their relatively powerful vertex shading units. It was only towards the very end of development of Doom3 that Carmack even got his hands on the NV40.
 
I hate helping to turn this into another Doom3 thread but, Scali, John (and id and Activision) made a decision to have big considerations for GF4MX owners. I assume you don't know this, so here it is from me. Doom3 isn't 3DMark, period.
 
oh god....dont give me this bullshit about doom 3 is held back by current video cards. its held back because developers program with the lowest common denominator in mind. if doom 3 was designed for the ground up for r420 or nv40(hell even the r300) it would look much better than it does, and run as good or better than it does.

dunno about the 6800, but the r420 breezes thru far cry at the aforementioned settings.

not a single game even pushes the full limits of what a 9800 can do. its all the backwards compatible code and ancient slow methods of rendering that slow down the cards. notice how in every game scaling down the graphics involves nothing more than lowering the resolution, blurring the textures, turning off a few trivial effects. you have the same extremely low poly models and bland sprite filled bacrounds.

until a developer actually codes a game with a powerful video card in mind, and not as an afterthought we will be stuck in this graphics rut
 
thats exactly the reason i stuck with my 9800 pro. why would i pay 500 bucks to run the same games with the same low detail everything at a higher res with more aa and af? its a waste of money. its funny not a single game has even apporached the graphical quality of the last 3 game test in 3dmark03 when the top cards breeze thru them, and the last gen cards run them admirably
 
hovz said:
dunno about the 6800, but the r420 breezes thru far cry at the aforementioned settings.


For the record:

1280*960*32
4xAA/4xAF, SM3.0 path, 61.73 FW

Research: 43.09
Regulator: 37.71
Training: 40.65
Volcano: 42.65

If you set in the game:

e_vegetation_sprites_distance_ratio = 100

and run a demo than you get in average rates about the following:

Average Tri/Sec: 11141941, Tri/Frame: 346156

Peak values in that case as in triangles per frame exceed the 800.000 mark.

And you'll lose another 15-20% to the above.

The 6800 is a tad more competent as the 9800XT in FarCry. It was an example for measurements; get over it.

not a single game even pushes the full limits of what a 9800 can do. its all the backwards compatible code and ancient slow methods of rendering that slow down the cards. notice how in every game scaling down the graphics involves nothing more than lowering the resolution, blurring the textures, turning off a few trivial effects. you have the same extremely low poly models and bland sprite filled bacrounds.

LOD or texture quality does have a huge impact on performance, sometimes even a bigger one than poly count. You'll lose twice as much in Far Cry from optimized to unoptimized AF, then you'll lose from sprites to no sprites and there the average triangle rate per frame doubles.

thats exactly the reason i stuck with my 9800 pro. why would i pay 500 bucks to run the same games with the same low detail everything at a higher res with more aa and af? its a waste of money. its funny not a single game has even apporached the graphical quality of the last 3 game test in 3dmark03 when the top cards breeze thru them, and the last gen cards run them admirably

I might get an average of 50fps in Mother Nature, but that's in 1024*768*32 no AA, no AF and the minimum framerate is way too low. You seem to have a weird fetish with breezes I might add.
 
Scali said:
Ailuros said:
The game isn´t already what I´d call screamingly fast; I can´t imagine how it would perform on recent hardware, would the polycount be by a lot higher.

That's my point, it could have been faster and/or had higher polycount if more geometry processing was offloaded to the vertexshaders.

Ever noticed that you have a way too intense obsession with just one game? Apparently I'm not the only one that notices it.

I don't know FarCry very well, I don't know if it pushes enough polys to keep the vertexshaders busy all the time. I'm just saying that most games generally aren't, and that includes Doom3, most probably HalfLife2, and pretty much everything released before them.

HL2 isn't released yet and thus until close investigation rather a moot point. Details about poly counts per frame are in my former post, and those are even modest.

As I said before, we all do. But it just isn't realistic at the moment. We will at least have to wait for the next generation of videocards, which may be 2 years away, or even more. Until then, all we have is vertexshaders, and as I say, I think the cards with 4 or 6 of them, have more power than is being used in most games.

Obviously developers set their priorities for a reason. Sweeney's explanation above makes perfect sense to me. If you turn the application into something that's too tesselation dependant, you'll end up taxing the CPU too much and overall game performance will turn into crud. And please let's skip the tired Doom3 point; the engine was eons in development and is in relative terms more than outdated.

There's also CroTeam out there for the record and that's merely one example.

3DMark05 using very high polycount could mean a few things... Either they are using the power that has been available in the high-end cards already... or they expect this power to go up in the near future. After all, 3DMark05 is supposed to be an indication of future games, so if 3DMark05 uses high polycount, they apparently have reason to believe that future games are going to use high polycount. And since future games are still going to have to run at interactive framerate, apparently there is or will be hardware that is capable of this.

Of course is it supposed to be an indication for future games. For which timeframe is the key question. 2006 or later could easily mean NV60/R600. All indications this far point at WGF compliance for those.
 
Reverend said:
I hate helping to turn this into another Doom3 thread but, Scali, John (and id and Activision) made a decision to have big considerations for GF4MX owners. I assume you don't know this, so here it is from me. Doom3 isn't 3DMark, period.

As I said many times before, you can have BOTH paths. Heck, I do it in my engine too. Vertexshaders if they're faster, CPU if they're not faster, or not available.
Now stop bothering me, you know I'm right, I've explained it dozens of times before. Why do you have to keep bringing up old points that were discussed before?
 
I'm bothering you? These are text on a monitor, not words shouted or whispered in your ear.

Ah wtf, guess I'll have to take the advice I give to some here about you.
 
Ailuros said:
Ever noticed that you have a way too intense obsession with just one game? Apparently I'm not the only one that notices it.

Excuse me, but many people bring up Doom3 in discussions about graphics. Not because they're obsessed, but because Doom3 is one of the latest and greatest games.
And just because people don't agree with the criticism I have on Doom3/Carmack, doesn't mean I'm wrong.

HL2 isn't released yet and thus until close investigation rather a moot point. Details about poly counts per frame are in my former post, and those are even modest.

Yes, but I see that it's mostly about vegetation. If you take a single mesh model, and insert extra polys in it, you can get a whole lot more mileage out of the vertexcache and things, than with a set of sprites and other low-poly meshes.

Obviously developers set their priorities for a reason. Sweeney's explanation above makes perfect sense to me. If you turn the application into something that's too tesselation dependant, you'll end up taxing the CPU too much and overall game performance will turn into crud.

What exactly does the CPU have to do with adding polys to meshes at modeling time? Or what are you talking about?
As for Sweeney, a few years ago he believed we would be back to software rendering by now. UE3.0 is a nice product, but let's just say I don't think Sweeney is a big visionnaire.

Of course is it supposed to be an indication for future games. For which timeframe is the key question. 2006 or later could easily mean NV60/R600. All indications this far point at WGF compliance for those.

Based on earlier 3DMarks, it will probably be a timeframe of about 1-2 years. Look at eg Battle of Proxycon -> Doom3.
After that, we'll probably get a 3DMark for WGF, at around the same time the hardware is becoming available.
So I suspect this 3DMark is supposed to fill the gap between now and WGF, so NV50/R500, and by the time NV60/R600 arrive, there will be a new 3DMark, which will actually use the new WGF features too.

Another thing about 3DMark is that it can generally run okay (30 fps or more) if you have the fastest card available at that time. This was true for 3DMark2000 with a GF2Ultra, for 3DMark2001 with a GF3, for 3DMark03 with a 9700Pro, and I suspect this one to run okay on a 6800U or X800XTPE.
 
MfA said:
Meh, I prefer front to back rendering over temporal coherence with screen based occlusion culling ... much more generally applicable. Worst case it culls just as much, 99% of the time it does better.

What? The purpose of occlusion cullinng is generally to render less triangles, not reduce shading workload. Early z-tests take care of that. Just doing occlusion testing in front to back order is NOT faster than exploiting temporal coherence since you can do both at the same time. Occlusion tests are not free. I can be fairly certain of that, since I actually implemented and tested both of those approaches (and a couple more to boot).

If you actually want more complex worlds, not the blocky levels we see today, you generally need some kind of occlusion culling, although good LOD can get you really far..
 
Back
Top