Archived

This topic is now archived and is closed to further replies.

Lithic

How are meshes better than triangle soup?

Recommended Posts

This seems like a simple question, but how is it better to use meshes which are several linked triangles than just having a collection of unlinked triangles? --===LITHIC===-- --===WWW.HaVoKsite.TK===--

Share this post


Link to post
Share on other sites
The collection is better anyway cause it''s very easy(and fast) to do modifications on the mesh.For example if i were using linked list with triangles to generate strips from them would be almost(if not fully) impossible.

"You losers better learn...NOONE CONTROLS OUR GOD DAMN LIFE!!!" - MANOWAR

Share this post


Link to post
Share on other sites
There''s really not that much difference between a mesh and poly soup. Unless you have something like a weighted skeletal structure, the mesh may well be represented as a bunch of separate polys. If you have something in a vertex buffer and an indexed triangle list, a mesh and soup are the same thing.
How do you mean linked triangles? What is the method of linking them?

Karg

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
the problem is poly soups generally assume that all the vertices are unique to each triangle, so you have memory issues. imagine a 1000*1000 quad terrain. you have 2 million triangles, and with a mesh you would have 1002001 vertices. with a soup you would have 6 million vertices, which is substantially more memory.

you also don''t get to batch your primitives with soups, so every vertex is sent across the agp bus, regardless of whether it is a duplicate of one that''s already been sent or not. this can majorly slow down high poly scenes.

james

Share this post


Link to post
Share on other sites
In general, a mesh data structure allows you to query for neighborhood relationships, such as: what triangles are adjacent to a vertex, or which triangle is on the other side of an edge, etc.

Also, you can easily make local changes to the surface, e.g. insert or remove triangles by splitting/collapsing an edge. This is extremely useful for e.g. mesh decimation / progressive meshes.

Some well-known data structures are e.g. ''winged edge'' and ''half edge'' representations.

Share this post


Link to post
Share on other sites