Polygon Benchmarking
Blitz3D Forums/Blitz3D Programming/Polygon Benchmarking
| ||
Does anyone have a benchmark/maximum for the number of polygons that one should try to achieve/not exceed for today's games on today's average computers? By average, I mean computers that games are typically marketed for with respect to CPU, RAM, VRAM, etc. Any enlightenment in this area is most appreciated. Thanks, Joe 818-300-4756 |
| ||
Its not ya polygons that will get you, it's more likely the number of surfaces... |
| ||
Thanks Boiled Sweets! Congrats on your latest production! Do you or anyone else know how the number of relevant surfaces get counted?: 1) Is it based on the number of entity surfaces not hidden in the 3d world? 2) Is it based on the number of entity surfaces shown by the camera? 3) Does the current camera zoom impact the number of surfaces? 4) I assume each separate model attached to each entity counts as at least one surface? 5) etc... |
| ||
Thanks Boiled Sweets! Congrats on your latest production! Do you or anyone else know how the number of relevant surfaces get counted?: 1) Is it based on the number of entity surfaces not hidden in the 3d world? 2) Is it based on the number of entity surfaces shown by the camera? 3) Does the current camera zoom impact the number of surfaces? 4) I assume each separate model attached to each entity counts as at least one surface? 5) etc... |
| ||
Does ActiveTextures() command returns amount of used surfaces? |
| ||
I just tested ActiveTextures() (which I didn't even know about) and it returns I think only the textures that have been loaded and not the total number of surfaces. |
| ||
ActiveTextures??? When did that command show up? Not long ago, I guess, as there's no help file entry. |
| ||
..Activetextures???? |
| ||
ActiveTextures() is an uncommented command. |
| ||
What's it good for? |
| ||
It returns the number of used textures. But it is simpler to use the graphics memory commands to find out how many memory they use, because the number of textures is a quite useless information. ( this might be the reason why it is a uncommented command ) |
| ||
Basically, each texture equals a surface. To many of them and blitz will crawl along. That is why single surface particle system have been developed, to reduce the surface count. Some advice given previously was around 50-100 surfaces maximum. I'm using around 37 personally as a rough guildline. And around 40,000 polys per frame. Any surfaces which aren't showing at all, aren't rendered, so don't count. But, if even the smallest part of a mesh is in view, the whole mesh is rendered, along with how ever many surfaces it will contain. So, you don't need to worry about hiding entities that aren't in view. But, if you do hide an entity, no collision detection will be performed on it, which can speed up things :) Each mesh has at least one surface. Also, if you have a mesh that is completely covered by another, and both are in view, they both will be rendered. It's up to you to do any processing if you want :o) I'd imagine that if you used camera zoom, and entities went out of view, they wouldn't be rendered. Another thing that might slow stuff down is fill rate. I'm not 100% sure, but i think it's when say, you run up to a textured mesh, and it fills the screen. There's overdraw too, which is when you have alot of entities that have alpha applied to them. Again, i'm not 100% sure on that :o) |
| ||
Thanks Ross for all the details...very helpful. It does seem though that even if the entities are in the camera, they still hinder the FPS, but not as much as if they were in view. |