Monday, August 14, 2006

I dunnit !



Finally sewed all the seams together! This screenshot shows a patch of 4x4 chunks.

features:



  • - chunked LOD

  • - 1 chunk = 64x64

  • - 4x4 chunks

  • - simple LOD algorithm (based on 2D distance from centre-of-chunk to camera, height does not count)

  • - 1 single texture for every chunk (to downsize demo and because I don't have texture mgmt)

  • - normally, one texture per chunk (no multi-texturing) with red edges to find chunk edges

  • - direct-mode passing of all data (no display lists, no vbo)

  • - 1 dynamic light, just to enhance landscape features a bit



keys:



  • - arrows = navigate

  • - CTRL+arrows: yaw/pitch

  • - Q/W = change the height (I'm on AZERTY, so you may need to press A/Z)

  • - A/Z = change FOV (same remark)

  • - D = print debug, including FPS

  • - T = toggle wireframe



Known issues:



  • - fps is calculated based on currentTimeMillis(), and is only updated every second (to compensate for lack of accuracy)

  • - popping

  • - performance (init is slow, + very inefficient storage of heightmap)

  • - ridiculous memory consumption



TODO:



  • - compare display lists / VBO

  • - geomorphing?

  • - multi-texturing (will allow pre-rendered lightmap)

  • - refactor my chunked code into something actually usable