Submitted by , posted on 11 June 2001
Image Description, by
Just another terrain engine.
Nothing special to say for now
... only that is adaptive quad tree based and it uses the "GeoMipMap"
technique (done several months before the white paper with the same
name). I use DX vertex buffers to store the patches. They are stored in
a special way, so the rendering performance does not suffer much on
cards without T&L .
You can see the dynamic lighting. I use the method presented by Klaus
Hartmann ("Texture Synthesis for Terrain" paper) to generate the vertex
normals (however, i modified it, so the grid spacing is no more needed).
The texture is dynamically generated. I use the hardware to blend the
different base textures. The terrain does not look so good (detailed) if
close to it. The problem is the texture size (512x512). I am working on
that problem. In the previous versions, i used a software blender
(sampler), but it was slow (30 sec for 2048x texture). Now, the problem
is the Blt operation needed to copy the blended texture from the back
buffer to the texture surface. It's very slow (~1.3 seconds). Rendering
to texture is not really an option, textures use to much memory.
I spent months searching for good texturing solution (big terrain +
detailed texture + LOD terrain support), but no luck for now. If you can
help me in this domain, don't hesitate. .... oh, i use detailed texture
too (not on the screen shot), but it's slows the frame rate as much as
50% (single pass multitexturing). Maybe, it's because i use the hole
fill rate and any additional operations impacts the performance.
Speaking performance, here some info : the current screen was taken with
the terrain with full detail (the Hmap is the Grand Canyon 513x513 from
Gamasutra ROAM article), 524288 triangles , directional light, 32 bit ,
resolution ~900x640 (windowed, but same performance with 1024x768) = 15
fps. But, there is no optimizations, i use borland VCL, many controls ,
and the program is full with other stuff (garbage, or not so).
My system is an overclocked celeron 300a ->450 , GeForce2 GTS 64MB
I know, there is no sky. Do i need it really ? Yea, sure ..but later ...
If you have questions ..don't hesitate.