< Previous | Contents | Manuals Home | Boris FX | Next >

Mesh Vertex Numbering

When you are sending meshes back and forth between SynthEyes and other applications, especially for animated vertex deformations, you may want to have the exact same vertex numbering in the SynthEyes export as was present when the mesh was imported, so the vertex caches exported from SynthEyes can be applied directly to your original mesh.

What the Heck?: This is an advanced topic. If the discussion so far doesn't make sense to you, if this isn't a problem you have, then you can just skim this section. (It will help guide you on whether or not to delete vertex normals when importing.)

SynthEyes stores meshes using a scheme where each vertex position has at most a single normal and/or a single texture coordinate, which means that vertices

may be duplicated/renumbered when meshes are imported. For example, along the edges of a cube, vertices may have two different normals, one for each side. Such vertices are duplicated into two copies, with the same position, each with a single normal. This results in rapid processing and display for typical use in SynthEyes.

If your object is facet-shaded (instead of smooth-shaded) upon export from your application, it can result in inefficient processing in SynthEyes, as SynthEyes honors the not-so-significant face normals. It can result in much larger meshes (3-4x more vertices) and prevent smooth vertices from being generated. If at all possible, supply per-vertex normals, or none at all (SynthEyes builds face normals automatically if needed.)

To address this, when an OBJ is imported, SynthEyes may ask you if you want to strip the normals from the object. If there will be a large change in the number of vertices resulting from the import, this typically indicates that per-face normals were supplied, so deleting them is a good idea. You can then generate smooth per-vertex normals, or allow SynthEyes to efficiently generate its own per-face normals. (The Filmbox importer simply ignores per-facet normals automatically.)

If your workflow calls for passing meshes into SynthEyes then back out and into your application, and you then expect to have the same exact vertex numbering, you will have to be selective in your work, as follows.

Some SynthEyes importers and exporters use additional data from the time of import to be able to recreate the original vertex numbering upon export.

Important : At present, the .obj reader and "Mesh as A/W .obj" and Filmbox importers and exporters are the ones that use original-vertex information. In other cases, such as Alembic and Blender, it is not necessary.

The original-numbering information is preserved automatically by the .obj and FBX importers. (Meshes imported into pre-1600 SynthEyes versions will not have this information; the mesh must be reloaded.) You can verify that a mesh has original- numbering information by using the Mesh Information script.

When you rely on any same-numbering workflow, you must be careful not to add or remove vertices in SynthEyes, as this will create an inconsistency with the mesh on your other application!

When you export meshes, if the exporter supports the original-numbering information you will have an option to use it or not, via the "Use original numbering" checkbox.

If a mesh was built inside SynthEyes so that it does not have original-numbering information, you also have an option ("No repeating vertices") to eliminate repeating vertices/normals/texture coordinates, for the benefit of downstream applications that may create seams if redundant vertices are present.

If a mesh doesn't have it already, we highly recommend creating Smooth Vertex Normals (per-vertex normals) for the benefit of downstream applications. While exporters will create per-face normals for the benefit of some downstream applications that crash without normals, per-face normals cause inefficient processing.

As you see, SynthEyes supports a variety of options to maximize compatibility with upstream and downstream applications. There's a little complexity to that, but if you keep an eye on the Mesh Information output and think about what is happening, you should be able to pretty readily understand what is happening and how to get SynthEyes to do what you want.

©2024 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.