RE: [Algorithms] Mesh Decimation with Attributes.
Brought to you by:
vexxed72
From: Andrew V. <av...@in...> - 2003-02-20 17:10:05
|
I don't really need a VIPM scheme, just something that generates discrete lods - the lods don't have to be related, although I guess the option might be nice... Ok, so for vertices surrounded by a single wedge, it all works fine, but for vertices with multiple wedges, what about just saying that for a given collapse, calculate the new vertex pos and wedge using the quadric (or picking one of the existing ones, whatever), and just setting all the faces that share the vertex to use that single wedge? This way you can get rid of discontinuities (although you may not want to...) Any idea if that would look any good?! -----Original Message----- From: gda...@li... [mailto:gda...@li...] On Behalf Of Tom Forsyth Sent: 20 February 2003 16:47 To: gda...@li... Subject: RE: [Algorithms] Mesh Decimation with Attributes. Hoppe's concept of "wedges" is what most of us think of as a "vertex", i.e. psoition, normal, UVs, etc all rolled into one object. The way I do stuff is that you don't store verts/wedges, you store a bunch of vertices with duplicate positions, and store notes between all of them that they're "proximal" (it's just a circular linked list, each vertex points to the next). I never try to find "optimal midpoints" at all. They usually don't improve the image quality significantly, and they completely break any VIPM scheme you have going on. Just pick one the of vertices to bin, and collapse it onto the other one. Keeps things simple. The range of collapses that can be performed with proximal verts is very limited, as you've discovered. Basically, the operations that can be performed are: -Any non-prox vert can be collapsed onto a vert with proxes. -Any vertex (V1) that has exactly one prox vert (call it Vp1) can be collapsed onto a vertex (V2) with a proximal vertex (Vp2) _that shares a triangle edge with Vp1_. Because then you can work out how to pair them up. And that's it. Any other collapses lead you scratching your head wondering how to calculate the error metric and how to match texture coordinates up. It does mean artists have to be careful about the number of seams they have in models, because although collapses can be done _along_ seams, you can't ever get rid of seams. Tom Forsyth - Muckyfoot bloke and Microsoft MVP. This email is the product of your deranged imagination, and does not in any way imply existence of the author. > -----Original Message----- > From: Andrew Vidler [mailto:av...@in...] > Sent: 20 February 2003 16:27 > To: gda...@li... > Subject: [Algorithms] Mesh Decimation with Attributes. > > > Hi, > > I'm currently trying to implement a mesh decimation system based on > error-quadrics, specifically, those defined in "New Quadric Error > Metric for Simplifying Meshes with Appearance Attributes" by Hughes > Hoppe. I'm using the mesh representation from the paper, i.e. you > have lists of > vertices, wedges and triangles, each triangles holds indices to 3 > wedges, each wedge holds an index to a vertex. A vertex is just a > position while a wedge contains all the attribute information, normal, > colour, uvs etc... > > I completely understand the basic system described in most of the > papers, where you just have a position to worry about, but I'm getting > a bit stuck working out where the wedges might fit in... > > As I understand it, a solving a quadric will give you an approximation > to the optimal (in some sense) position and set of attributes for the > vertex that you are collapsing an edge to. But...If, as is quite often > the case, I have multiple wedges surrounding > a vertex pair that I want to contract, solving the relevant quadric > gives me a vertex position and attribs (essentially a vertex and a > wedge). > This implies that the new vertex has only one wedge, yet before I > contracted the vertex pair, they might have had many different wedges? > > Hope that's clear - not sure how else to describe it!! > > What am I doing/thinking wrong? > > TIA, > > Andrew Vidler. > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. The > most comprehensive and flexible code editor you can use. Code faster. > C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. > www.slickedit.com/sourceforge > _______________________________________________ > GDAlgorithms-list mailing list GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > ------------------------------------------------------- This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. The most comprehensive and flexible code editor you can use. Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. www.slickedit.com/sourceforge _______________________________________________ GDAlgorithms-list mailing list GDA...@li... https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=6188 |