上传日期:2004-07-11 19:11:18
上 传 者xlhucn
说明:  快速三维显示CLOD模型,不同于BunnyLLOD模型,对3D有兴趣的网友可以做做比较!
(CLOD rapid 3-D display model, which is different from BunnyLLOD model 3 D pairs are interested in the discussion can do it more!)

Program (0, 2000-01-19)
Program\DynamicLOD.exe (77824, 2000-01-19)
Program\GLUT32.DLL (154624, 1997-12-11)
Program\Height.raw (262144, 1999-07-24)
readme.txt (6770, 2000-01-19)
Source (0, 2000-01-19)
Source\3dmaths.c (5252, 2000-01-19)
Source\3dmaths.h (1006, 2000-01-19)
Source\AXBSP.C (10183, 1999-11-24)
Source\AXBSP.H (1045, 1999-11-25)
Source\DynamicLOD.dsp (5032, 2000-01-19)
Source\DynamicLOD.dsw (543, 2000-01-19)
Source\Frustum.c (6979, 2000-01-19)
Source\Frustum.h (1131, 2000-01-19)
Source\Glut (0, 2000-01-19)
Source\Glut\glut.txt (19, 2000-01-19)
Source\Height.raw (262144, 1999-07-24)
Source\main.c (10693, 2000-01-19)
Source\Quadtree.c (33809, 2000-01-19)
Source\Quadtree.h (604, 2000-01-19)
Source\Roam.c (101787, 2000-01-19)
Source\roam.h (746, 2000-01-19)
Source\Terrain.c (2162, 2000-01-19)
Source\Terrain.h (443, 2000-01-19)

---------------------------------------------------- Quadtree and ROAM based Continuous Level of Detail ---------------------------------------------------- Simple Demonstration Program with source code by Chris Cookson (until July 2000) release 1.1 / Jan-2000 MSVC++ conversion ---------------------------------------------------- I have decided to release my implementations of two continuous level of detail terrain algorithms, to hopefully give other people an insight into possible ways of implementing them. System Requirements ------------------- Pentium compatible processor, OpenGL. I have tested on a 200Mhz Cyrix 6x86 with no 3D card (original development machine!) and an AMD-K62 450 with a Matrox G400 3D card, with no problems. The Algorithms -------------- The two algorithms are taken from separate research papers, which can be obtained from [1] Quadtree based top-down mesh refinement This algorithm is detailed in "Real-Time Generation of Continuous Levels of Detail for Height Fields" by Stefan Rottger et al. It operates using a quadtree hierarchical structure that refines the mesh top-down according to a subdivision criterion that takes into account the distance from the viewer and the surface roughness. You can find my implementation in "quadtree.c" [2] Real-time Optimally Adapting Meshes (ROAM) This algorithm is detailed in "ROAMing Terrain: Real-time Optimally Adapting Meshes" by Mark Duchaineau et al. It operates using a neat binary triangle structure that eliminates mesh discontinuity problems and can be implemented to take advantage of frame coherency. It has become quite popular recently, particularly as it is used in the forthcoming game "Tread Marks" ( My implementation is located in "roam.c" The Source Code --------------- Firstly, the code is messy. Very messy. But it is liberally commented (sometimes random thought processes..) which I think could just help someone if they are stuck on how to implement some parts of these algorithms. This is the main reason I'm releasing the code - to hopefully help someone, somewhere. I haven't made too much of an effort to clean up the source, so large portions are commented out (check out roam.c), but you should be able to get the general idea of how it works. Secondly, the code is not incredibly optimized altough the underlying algorithms are all pretty sound. I wrote it just to play around with some ideas, not to create a super-fast visually stunning demo (that's my next project! :). I'm sure there are plenty of useful routines (eg. priority queues, frustum clipping) that could be used in other projects. Thirdly, it's the very first OpenGL application I ever wrote, so please bear that in mind! (ie. watch out for very un-optimal/ stupid OpenGL use) The source code uses OpenGL and GLUT, and was written using the free LCC-WIN32 compiler. The source has now been converted to compile under MS Visual C++ 6, which I guess is what most people use (Thanks to Ben Discoe for this). It should still compile under LCC, although I haven't tested this. The source requires GLUT to be installed, and loads in glut.h from the "glut\" directory off the main source directory. Download the glut release (dll's, includes and libs) from Highlights of the code include: (quadtree.c) * Neat triangle fan drawing * Frustum culling (roam.c) * Frame coherent implementation of ROAM * Incremental frustum culling * Efficient priority queue implementation * On the fly triangle strip generation (but sadly, now broken :) The terrain is loaded in from "terrain.raw" (in the program subdir). You will need to copy this file i ... ...