[Verse-dev] geometry organisation

Eskil Steenberg eskil at obsession.se
Wed Sep 8 11:45:17 CEST 2004


Hi

>
>This is mainly a question to exkil.
>I need some Information how do you think about the geometry structures in
>verse.
>Basicly we have a vertexlist, and a polygonlist that references the
>vertexlist. So far ok. But we don't have any information about what is a
>mesh and where does the next one start. That would really be important to
>know for any compression algorithm. Could i assume that one geometry node
>contains one mesh, or at least one polygon layer is one mesh? If not its
>really hard to figure out where a geometry starts and where it ends...! In
>Verse it's not really defined because you wanted an open system - thats good
>in most cases - but for that special one it is deadly.
>Maybe you could add some guide (or some kind of rules) in the spec how to
>create a mesh and how not. At the moment i have no idea how to solve this...
>maybe we can find a way at least within the uni-verse project.
>  
>
Im assuming that when you mean two meshes you mean two parts of geometry 
in the same node that are not connected.

Only the layer with id 1 should be used to reference nodes. no other.

So here is why there is no such support in verse. There are a number of 
additional things that people suggest that we should add to the geometry 
node the most common ones are:

-BSPTree
-OcTree
-Edge neighbor reference (my personal favorite! it would have made Loq 
easier!)
-Tri/Quad strips

Now they are all very use full. But the problem becomes keeping the 
structure intact.. If we would add any of thees we would have to require 
all clients that upload them to make sure they are properly stored. (in 
other words: if we add BSPTree every loader has to be able to generate a 
BSPTree). An other problem is that the server have to test the id the 
data is correct and that can take a lot of time.  And then obviously 
there is the problem that even the tiniest change can upset the data 
structure giving us a  bandwidth problem.

Here is an example i found in collada 
(https://collada.org/public_forum/welcome.php)

Collada is a interchangeable file format by sony that can store both 
polygons and strips.

Assuming that we write a 3d engine that favors strips, that uses collada 
files. We get the problem that even if the format supports strips we 
dont know if the applications that output it (say maya, max...) really 
generates strips.  And even if they do we dont know if the strips are 
any good. So the best thing to do is to take all the strips and polygons 
and put them together and generate strips in the engine. then and only 
then you have complete control of the strips.

So to me this solution is not very good because it makes the format 
bigger and gives people more work.

Any guide of suggestion in the spec on how to store the geometry would 
not be useful if the client could not trust that information.

If i understand your problem you could note that i have actually 
implemented a function in Loq Airou that select all connected polygons, 
its called "Fill selection" you can find my very simple solution in the 
Loq source. If you need it i can break it out for you.

E







More information about the Verse-dev mailing list