One other note of importance before getting started. ALWAYS save
all your objects before you run qemLOSS3! You can prevent any permanent
loss by assuring that you have saved any work before running the plugin!
Load the Lightwave cow object and then run the qemLOSS3 plugin. Just accept all the defaults by clicking on the OK button. Browse around so you are viewing the front side of the qemLOSS3 reduced cow in layer 2, and you will find some surfaces that appear to have separated. It's not real easy to see, but the first image below shows separation between the CowEyes surface and the head, and if you look even closer there is some separation between the head and the CowHorns surface.
This separation demonstrates a problem with boundary vertices. The vertices
that are relocated along both boundaries of the seams are boundary vertices
because those surfaces DID NOT share the vertices along their borders.
The vertices along the edges of these surfaces in the original object are
duplicated, and therefore the edges around these surfaces are not considered
surface borders. You can verify this by switching back to the original
object in layer 1, select all the CowHorns (334 polygons) or the CowEyes
(34 polygons), and then choose Display->Sel Conn. These surfaces
are not connected to any others. The edges where the horns and eyes touch
(but don't connect to) the head, are considered boundary edges.
![]() |
![]() |
| Boundary vertices can cause
seams, even with a large Boundary Weight value |
Eliminate the problem by
converting the boundary vertices into surface border vertices. |
Obviously, the default value for Boundary Weight does not restrict those boundaries enough to prevent these seams. You can try to eliminate those seams by increasing the Boundary Weight, but even with an extremely high value, you will probably still get some separation. A large Boundary Weight value may help restrict the movement of those vertices, but even the slightest amount of movement will cause the seams to appear.
To eliminate these types of seams at a boundary, I prefer the following technique. Make sure you are in layer 1 with the original Cow object, Unselect All of the polygons, and choose Tools->Merge->Automatic. This results in a message stating that 87 points have been eliminated, which were those duplicate points that lied along the boundary edges between the CowEyes, CowHorns, and CowHooves surfaces. This merging process has converted the boundary edges into surface borders that are shared with the CowHide surface. Confirm that all surfaces have been connected, except the CowTail object (which continues to be stubborn :-). Now run qemLOSS3 on the merged, near-seamless object. The newly reduced cow in layer 3 is shown in the second image above, and you can see the surface borders are preserved, and the separation in the first image no longer exists. If you want any of the surfaces to be disconnected again, just select all the polygons that use that surface, Cut, then Paste. Neighboring surfaces will have been reduced together, but following the cut and paste they will no longer be connected.
The Boundary Weight existed in
the first version of qemLOSS, and the Surface
Border Weight was added in qemLOSS2. I find that I can control the
edges of surface borders better than boundary edges with the weighting
parameters provided (that's why it was added :-). So if at all possible,
I prefer to merge as many points as possible in my original object, then
separate them by surface name using the Cut and Paste technique following
the reduction. A little more experimenting with the Surface
Border Weight parameter is discussed in the next portion of the tutorial.
The Surface Border Weight in qemLOSS3 provides a little control over how the vertices and polygons that share surface borders will be reduced. Border vertices in the entire object can be weighted so they are less likely to be re-located very far from the original vertices, thereby preserving the shape of the surface borders. The surface borders between the CowHorns and the head in the 3 images below, show how this weighting works.
Go back to layer 1, and run the qemLOSS3 plugin again. Change
the Surface Border Weight to 0, and
click on OK. This should leave you in layer 4, and an overhead view of
the cow's head should look like the second image below. When the surface
border weight is 0, border vertices are completely free to move to the
most optimum location for preserving the quality of the shape throughout
the entire object, just like any other vertex in the object. But any shapes
defined by the border vertices will possibly be destroyed. It's evident
by looking at the rear portion of the horns in the second image below,
the 0 weighted border in the second image does not preserve the shape of
the border edge at all. The default weight of 100 (third image, or layer
3 if you have been following along closely :-), the border edge shape more
closely matches the original.
![]() |
![]() |
![]() |
| Original object | Surface border weight
set to 0 |
Surface border weight
set to 100 |
The surface border between the CowHide and the CowUdder, underneath the cow also show the effects of the weighting parameter. I'll spare everyone from pictures of the cow's udder :-), but turn the cow over and flip back and forth between layers 3, 4, and 1. The "straight" front portion of the border between the 2 surfaces demonstrate the effects of the parameter as well.
But as most things in life, there are trade-offs. If a large number
is used for the Surface Border Weight
parameter, more triangles will be needed along every surface border in
able to preserve the border shapes. This means that other portions of your
object may suffer because so many of the triangles are being used to preserve
surface borders, leaving fewer triangles for the non-border areas. So you
will probably want to experiment with the weight parameters, hopefully
finding a nice compromise between overall quality of the reduction process
and the preservation of your border shapes.