LOD models for large distant objects.
That is a technology I am still investigating. I suppose the principle is easy, but not always simple to implement.
- My world is voxel based. It is difficult to optimize, leading to a need for near cut-off, or the number of triangles grow quickly.
- The world is totally dynamic, so I can't do much offline computations.
- The game is client/server. Even if LOD would improve the possible view range, the volume of data requested from the server may grow too much and turn out to be the bottle neck. Local client caching is used to reduce this problem.
- One way to implement LOD for a cube based geometry could be to merge a 2x2x2-set of cubes into a single, bigger cube. Technically not hard, but difficult to do seamless. Some kind of mipmap-like technology may be needed, but I don't know how that would be done.
- Impostors can be used, and I do that to some extent for trees already. Possibly, they can also be used for bigger chunks of blocks.
ok, i see what you're talking about, the WHOLE thing is voxel based. Wow! Lots of triangles there!
i take it the world is stored as voxels and converted to triangles for drawing.
basically a roll your own version of LOD for voxels analogous to roll you own LOD for meshes would be something like:
the same way that a LOD mesh is simply a low rez version of another mesh, you'd have low rez voxel maps, say as powers of 2 resolution, almost like mipmaps. like you said, you need to come up with a slick way to generate the low rez voxel maps (possibly procedurally from the hi rez ones, yeah i know, realtime deformation, you'd have to recompute every time the land changed). when you draw, you draw with the highest rez map out to a certain distance, then switch to the next highest rez, and draw further out, etc. you might need to come up with some trick to make the cut off between areas of different rez less noticeable but if you keep those distances kind of far from the camera they may not be too noticeable. and only then use a BIT of fog (not pea soup! <g>) to help hide the cutoff.
in the end, it may be that trying to do a triangle intensive deformable voxel system on top of client server will not yield the desired effect on today's hardware (specifically the client server bandwidth bottleneck).
networked games really need to be designed entirely around the data packet size. how much info you can transmit per frame determines EVERYTHING, from how deformable the environment can be to how many characters you can have active at once. Selection of all game subsystems (graphics engine type, etc) must be done based on bandwidth requirements of the system above all other considerations.
i take it that the normal thing to do in voxels these days its to just draw as much as possible at one resolution with no LOD.
are there any titles out there that use voxel and some LOD or have the desired look (single player or networked)?
IE are there any existing examples of what your shooting for?
"DirectX is like a belt fed machine gun, where every texture change is like hand loading in a new belt of ammo. worse, every mesh (vb) is a new belt of ammo, and a texture is like breaking the gun down, and setting it up again elsewhere, then loading it, then spraying triangles again. so you want to setup the gun once, string all your belts together, load it once, then just spray."
Rockland Software Productions
"Building PC games since 1988"