Re: WE NEED TUNNELS!
Posted: 01 Sep 2009, 08:20
I am pretty sure it's three things:
1. The tiles should be a lot larger, and not bother trying to be optimized in terms of fetch and sort (other than culling outside the frustrum), because it eats more CPU than it's worth, for typical use cases (i.e., practically nobody is building maps that use a lot of tiling, other than a few butt-ugly metal maps and a few of Forb's designs). I hardly even bother with compression, because it doesn't work well and the performance impact just isn't worth seeing a nice map turned into a mess.
IOW... instead of fetching hundreds of sectors and having to do all the calculations for figuring out what texture coordinates to use, etc., it should fetch big chunks, with big textures (1024s for 128 sectors, test to find sectors in frustum by doing ray collisions with cubes).
I can't prove that this will work better yet, and I expect to be told it won't, again. But what this little experiment seems to indicate, at least to me, is that geometry and texture throughput is not the problem. It's CPU getting wasted left and right on attempts at optimizing things that aren't actually getting used by the vast majority of maps.
I think that when JC wrote SMF, he was thinking we'd be happy with tileset textures, basically, and it just never worked out in terms of tradeoffs- the kinds of maps we want to build, vs. what the engine is designed to do, are in conflict.
2. The ROAM algorithm needs to get finished. I was rather disappointed how small of an impact it made on total performance, but it's an optimization, and hopefully along the way somebody will write a callin for Lua so that people like me who want to play around with alternative rendering schemas can fetch the ROAM'd heightmap.
3. The size of the heightmap resolution is an issue in terms of cost of the pathfinder (and a billion other things in this engine) vs. beauty. A properly implemented SMF, imo, would use a half-resolution heightmap, vs. current spec, and a normalmap / depthmap texture pass. It would look twice as good, and run faster as well.
I've said most of that several times though, and gotten nowhere. It's just Not Fun re-writing the map / pathfinder to be able to do stuff outside it's current specifications, and I can't blame people for not getting all that excited about it, without stronger arguments in favor of change.
1. The tiles should be a lot larger, and not bother trying to be optimized in terms of fetch and sort (other than culling outside the frustrum), because it eats more CPU than it's worth, for typical use cases (i.e., practically nobody is building maps that use a lot of tiling, other than a few butt-ugly metal maps and a few of Forb's designs). I hardly even bother with compression, because it doesn't work well and the performance impact just isn't worth seeing a nice map turned into a mess.
IOW... instead of fetching hundreds of sectors and having to do all the calculations for figuring out what texture coordinates to use, etc., it should fetch big chunks, with big textures (1024s for 128 sectors, test to find sectors in frustum by doing ray collisions with cubes).
I can't prove that this will work better yet, and I expect to be told it won't, again. But what this little experiment seems to indicate, at least to me, is that geometry and texture throughput is not the problem. It's CPU getting wasted left and right on attempts at optimizing things that aren't actually getting used by the vast majority of maps.
I think that when JC wrote SMF, he was thinking we'd be happy with tileset textures, basically, and it just never worked out in terms of tradeoffs- the kinds of maps we want to build, vs. what the engine is designed to do, are in conflict.
2. The ROAM algorithm needs to get finished. I was rather disappointed how small of an impact it made on total performance, but it's an optimization, and hopefully along the way somebody will write a callin for Lua so that people like me who want to play around with alternative rendering schemas can fetch the ROAM'd heightmap.
3. The size of the heightmap resolution is an issue in terms of cost of the pathfinder (and a billion other things in this engine) vs. beauty. A properly implemented SMF, imo, would use a half-resolution heightmap, vs. current spec, and a normalmap / depthmap texture pass. It would look twice as good, and run faster as well.
I've said most of that several times though, and gotten nowhere. It's just Not Fun re-writing the map / pathfinder to be able to do stuff outside it's current specifications, and I can't blame people for not getting all that excited about it, without stronger arguments in favor of change.