Re: [Algorithms] Terrain performance comparrisons
Brought to you by:
vexxed72
|
From: Jonathan B. <jo...@nu...> - 2003-07-29 18:56:59
|
I think Charles has the right viewpoint here...
Tony Cox wrote:
> This is all true, but the guy who is working on the renderer wants to
> make the best renderer they can. They're not in a position to fix many
> of the other issues you mention.
...
> It's definitely true that you should focus your resources on what gives
> you the biggest customer impact, but it's also true that in a reasonably
> sized team there is going to be some partitioning of skills and
> expertise. So, if you can't bring all of your resources to bear on your
> top problem, you do the next best thing, and bring resources to bear on
> the problems you can do something about.
If game development were modular, this would be true. But game
development isn't like that. When you tell your graphics guy to go work
on a more complicated LOD algorithm, all of the following things happen;
many of the effects are small, but you put them all together and they
can't be ingored:
* You increase the load on QA
* You increase the number of bugs that slip through QA/code-fixing
into the final distribution
* You increase the load on your designers, who need to adapt their work
practices to the character of the LOD algorithm
* You increase build times, thus decreasing productivity for all programmers
* You increase your executable size
* You probably increase your heap memory usage / fragmentation
* You decrease the longevity of your engine prior to re-writes (maybe
not an issue for console guys)
* You remove the ability of that programmer to perform other graphics
speed / quality work. (i.e. there is an opportunity cost)
* You make the graphics code harder for other graphics programmers to
understand and modify, creating a dependency bottleneck that will crop up
later in the development cycle.
These things above (QA load, designer load, runtime memory) are all
finite resources, and they are resources that are inevitably stretched to
their limits during every game development cycle. These resources are
definitely contended for by all of the items that Charles listed in his
"big terrain" example. So where are you going to spend them?
Aside from all this is the basic fact that the technical components in a
game are not orthogonal. Your LOD system *will* interact with the
rest of your engine, and the more complicated it is, the more problems
you will have. Once you decide to add some complexity anywhere into
an engine, you end up paying for that complexity every single day until
you ship.
A failure to appreciate these facts is, I think, a big contributor in
why so many developers flounder.
Let's look at this in a slightly different way: most graphics LOD algorithms
are focused on decreasing the number of triangles/sec needed to display
the scene. But triangles/sec is the single most abundant,
uncontended-for resource in all of game development. So WTF are
we putting all this energy there?
-Jonathan.
|