MahNigga wrote:Stoopdapoop you're probably right, I just lod the fuck out of everything for the sake of it. More to change to smaller image files than model resolutions. I don't quite understand the adding more polies to make it cheaper to render though, care to explain?
Of course I'm right. I'm always right. And yeah, I can understand the want to change texture resolutions, but even so, you lose more than you gain on small inexpensive props like these.
And sure, I'll explain why more polygons can render faster than fewer polygons in some circumstances.
When it's time for your cpu to send polygons to your gpu, it has to batch them into one of several available types of "geometric primatives" These include the triangle fan, strip, indexed list, and un-indexed list. The fans and strips are very fast and and have almost no repeated data, so they're used often. Unfortunately most models require several of these primative objects to fully compose a model, and it takes time for the gpu to start and finish constructing a primative, so you want to try to fit your model into as few primatives as possible to minimize the amount of time spent switching primitives.
One way to ensure that polygons are assembled together is to make sure that they're all connected and part of the same smoothing group. So instead of having several discontinuous meshes in a model, which saves on raw polygon count, you could connect them and allow them to be shaded together, which saves on primitive assembly, shading, and a small amount of ram (and is therefore faster.
Now I'm not saying that he should connect all the polies and make them all part of the same smoothing group, this would be an example of a pretty extreme micro-optimization and the model is already free anyway. I'm just saying that if raw performance was key, then you could save some draw time(ON THE GPU ONLY) by doing it that way.
It's important to note that ANY optimizations that are done to that model will be moot, because as I said, it takes longer to switch states in the driver(on the cpu) than it does to actually render the model(on the gpu). So putting more strain on the CPU(in the form of LODs) in order to save work for the GPU is pretty senseless in this particular case, considering that the CPU is already the bottleneck for all inexpensive models.
MahOtherNigga wrote:It´s not like it´s a model that will be placed only once. Let´s suppose he puts 60 of those in a map and that its polycount is 500. The game would be rendering a constant amount of 30K polygons (About the same than 2 gmans and 2 alyx being rendered altogether).
Now imagine that you take a flat screenshot of it and make an alpha channel texture that looks just like it and make the lod model based on that. This lod model will be have 4 polygons which multiplied by the amount of copies (60) it would be 240.
GPU performance is a lot more complicated than figuring out how many polygons are in a scene. In fact, when working on practical models and scenes, it's one of the least important aspects. You make it seem like 2 gmans and 2 alyx's is a lot, but that's only like 8-9 common infected. But there's a serious problem with your example, you shouldn't have 60 of
ANY PROP in
ANY PVS. DirectX 9 shits all over its self when you have too many discrete models in a scene, you'd be much better off batching those things into groups of 3 or 4, that will actually save you rendering time. Doesn't matter if you have 60 5 polygon models, or 60 1000 polygon models.
And source does not have a limit on the number of polygons found in studio models. That "too many verts in frame" error only applies to brush verts, not model verts.
Back when I was a noob I would drop a bunch of these models...(note the polycount)
into a scene and wonder why my framerate was barely affected. Little did I know that polycount was only a small piece of the performance puzzle.
And gary, correct me if I'm wrong but I don't think that rendering models using the fast path is an automatic optimization, I think it's pretty explicit which models get fast pathed.