Level of Detail

Started by
6 comments, last by aDasTRa 24 years, 1 month ago
I am starting to write a 3d game engine and want to implement dynamic polygon reduction. Does anyone have any suggestions about how I should set up my models? I really have no idea where to start... Thanx <(o)>
<(o)>
Advertisement
Try here: http://research.microsoft.com/~hoppe/
either, make multiple detail level versions of the files (loading them all up) and switch (ie use a flag), or store them in some sort of sline, or solid form, and generate polygonal forms, at run time (I have done neither of htese, but read about both) i am also interested in writing a 3d engine, in DJGPP with Allegro, interested in collaborating?
mbbx9dm2@stud.man.ac.uk
either, make multiple detail level versions of the files (loading them all up) and switch (ie use a flag), or store them in some sort of splines, or solid form, and generate polygonal forms, at run time (I have done neither of htese, but read about both) i am also interested in writing a 3d engine, in DJGPP with Allegro, interested in collaborating?
mbbx9dm2@stud.man.ac.uk
I don''t know how much you know about implementing 3D engines, but if this is your first try then I suggest you put the LOD on the shelf for now. Read about it and understand it, but don''t try to incorporate it into your engine because there are more important stuff that needs to work first.

If you are versed in the field of 3D engines then don''t let me stop you.
Thanks for your suggestions (and the url). I have written 3d graphics code before, so I''m not totally ignorant. I''ve just never tried to implement anything like this and was (and still is somewhat) lost about what to do...

<(o)>
<(o)>
I have never read nothing about polygonal objects and LOD...of course there are a lot of docs about terrain rappresentation and LOD but for objects...

However I think that it''s difficult to reduce a generic polygonal mesh in run-time.
One solution is to store every level of detail as different objects and select the LOD by the distance you''re seeing the object.

For istance, when you create a resized texture for mipmap application you do not simply reduce the sample rate but you have to filter the image with linear or Gaussian filters (to avoid aliasing)...

If the mesh you want to reduce has a simmetric aspect (spheres,cilinders,...) it''s quite simple (and fast?) to ''resample'' it.
If the mesh is complex (a body, a tree,...) I think it''s a very difficult task and it''s impossible to perform a real-time face reduction.

However there are some games that are going to use LOD in objects but I think that they dont perform it in real-time
and there is not the need (we love speed, not memory)
I think also that the LOD reduction is generated manually...

A question: what engine type you''re going to use? BSP,portals or something else ?

See my post in ''Graphics Programming and Theory''
TITLE: >if (3D_engine != portals ) new_engine = ?<
DATE : >March 10, 2000<

I used a strange title to capture attention but it seems that nobody has problems with 3D engines

IpSeDiXiT
Simplifying Surfaces with Color and Textures using Quadric Error Metrics (pdf ? MB) by M Garland and P Heckbert
New Quadric Metric for Simplifying Meshes with Appearance Attributes (pdf 2 MB) by Hugues Hoppe

The two papers above speak of realtime LOD on arbitrary triangle meshes. The second paper is more recent and presents a similar but slightly different algorithm than the first.

Basically the algorithms does a preprocessing pass where the vertices and triangles are sorted in order of the first to be removed when reducing detail. In the runtime rendering of the meshes they test to see if the meshes should be simplified or if they can increase the detail, if so the changes are made.

These are both very fast algorithms and they don''t require that much more memory than the same mesh without LOD information. They can even use less memory than with several models with different LOD, as proposed by Andrea.

There is a drawback to using automatic algorithms though. With static level of detail you can make larger changes to the topology of the mesh, for example merge the fingers into one block or remove small details like jewelry. The automatic process cannot do this as it has no understandig of what the mesh represents. Because of this the results from these algorithms can some strange effects (aliasing) that might not be desirable.


This topic is closed to new replies.

Advertisement