Submitted by , posted on 07 August 2003
Image Description, by
Here are some screenshots, which show the project I'm currently
working on. It's a first preview of a Landscape Engine with
Hierarchical Voxel Spacing.
The main idea is to put voxel boxes of different resolutions around
the observer; all with same resolution, but different scale.
So, here on the images, the volumes are all 64x64x64, whereas
the next higher scaled one is always twice the lower one.
I used 4 of this boxes in the two upper images; so the size
of the displayed Volume is (64 * 2 ^ 4)3 = 512x512x512.
The inner (smallest) Box has to be updated most often, the higher
sized ones only if necessary. So because the farer ones are rarely
updated, they could be stored in the graphic-card memory as
displaylists; currently all triangle-data is just stored in vertex-arrays.
It might look like Peter Venis Iehova-Engine, but it does not require
to have highest detail-level polygons between the different voxel
resolution stages. (middle image on the right side)
Also is it possible to update the voxelvolumes while runtime;
the update is too slow for animations, but it will be possible to
walk through fractal landscapes with infinite size without any
updating of the voxelboxes is therefore done in an extra thread.
Another advantage of this design is that almost all data, of the
voxel-volumes and the geometry, can be reused, if a box needs to be
The current implementation is a little bit slow, because it is
not yet optimized for speed.
The calculation for transforming the voxels in polygons is done
very simple (middle image on the right side), so no marching cubes
was necessary for this. Afterwards, the mesh is smoothed several
times to remove the Lego-Look, and connected Triangles are searched
to generate Strips for faster rendering.
All Screenshots were taken on an AMD 1500+,GF4 4400, Linux/Debian
I've put some more screenshots on my homepage, but it's too early
for a Demo, so stay tuned
- Sven Forstmann - http://islands.cjb.net -