< Previous | Contents | Manuals Home | Boris FX | Next >
Mesh Re-Numbering
The original vertex, normal, and texture indices for each resulting vertex can be stored and used to reconstruct the original numbering, by suitable importers and exporters.
Note: Only the Filmbox and OBJ importers currently store this information; only the OBJ and Filmbox exporters currently export it (though the resulting FBX files are widely usable).
It is common for there to be multiple vertices at a single XYZ position, with different UV coordinates or normals. To get unique XYZ vertices, use the ToUniqueVertexMap, FromUniqueVertexMap, etc functions to generate/emulate that on the fly, especially for constructed, primitive, or modified meshes. The Filmbox and OBJ exporters can do this, for example code consult the OBJ exporter (mshobj.szl).
The following functions are all for Mesh objects:
.ClearOriginalNormalNumbers() Removes any existing original normal number
data.
.ClearOriginalNumbers() Removes any existing original number data
(vertex, normal, and texture).
.ClearOriginalTextureNumbers() Removes any existing original texture number
data.
.ClearOriginalVertexNumbers() Removes any existing original vertex number
data.
.FromOriginalNormalMap() Returns a read-only list with one element for
each original normal. That element is the number of any of the vertices created from the original normal. See also ToOriginalNormalMap, nOriginalNormal, OriginalNormal, etc.
.FromOriginalTextureMap() Returns a read-only list with one element for
each original texture coordinate. That element is the number of any of the vertices created from the original texture coordinate. See also ToOriginalTextureMap, nOriginalTexture, OriginalTexture, etc.
.FromOriginalVertexMap() Returns a read-only list with one element for
each original vertex. That element is the number of any of the vertices created from the original vertex. See also ToOriginalVertexMap, nOriginalVertex, OriginalVertex, etc.
.FromUniqueNormalMap() Returns a read-only list with one element for
each unique normal. That element is the number of any of the vertices with the same normal. See also ToUniqueNormalMap, nUniqueNormal, etc.
.FromUniqueTextureMap() Returns a read-only list with one element for
each unique texture coordinate. That element is the number of any of the vertices with the same texture coordinate. See also ToUniqueTextureMap, nUniqueTexture, etc.
.FromUniqueVertexMap() Returns a read-only list with one element for
each unique vertex. That element is the number of any of the vertices with the same position. See also ToUniqueVertexMap, nUniqueVertex, etc.
.hasOriginalNormalNumbers() Has stored original normal index numbers
from import; the number matches the number of vertices present.
.hasOriginalTextureNumbers() Has stored original texture index numbers
from import; the number matches the number of vertices present.
.hasOriginalVertexNumbers() Has stored original vertex numbers from
import; the number matches the number of vertices present.
.nOriginalNormal The number of stored original normal indices from the importer. Read-only. (This number
must match the number of current vertices for that information to be usable.)
.nOriginalTexture The number of stored original texture indices from the importer. Read-only. (This number must match the number of current vertices for that information to be usable.)
.nOriginalVertex The number of stored original vertex numbers from the importer. Read-only. (This number must match the number of current vertices for that information to be usable.)
.nUniqueNormal The number of unique normals, ie discarding redundant normals. Read-only. See ToUniqueNormalMap(), FromUniqueNormalMap().
.nUniqueTexture The number of unique texture coordinates, ie discarding redundant texture coordinates.
Read-only. See also ToUniqueTextureMap(), FromUniqueTextureMap().
.nUniqueVertex The number of unique vertices, ie discarding redundant vertices that occupy the same location. Read-only. See also RepeatedVertexLoops(), ToUniqueVertexMap(), FromUniqueVertexMap(), and UpdateVertexMaps().
.OriginalNormal(v) Returns the original normal index for the given vertex, as stored by the importer. See also HasOriginalVertexNumbers, OriginalVertexMap and SetOriginalVertex.
.OriginalTexture(v) Returns the original texture index for the given vertex, as stored by the importer. See also HasOriginalVertexNumbers, OriginalVertexMap and SetOriginalVertex.
.OriginalVertex(v) Returns the original vertex index for the given vertex, as stored by the importer. See also HasOriginalVertexNumbers, OriginalVertexMap and SetOriginalVertex.
.RepeatedVertexLoops() Returns a read-only list that has a vertex
number for each vertex. If list[v] is 0 (illegal), the vertex v is not repeated. If list[v] is nonzero, it is another vertex number at the exact same xyz location. The vertex number can be chased from one to another until arriving back at the original location, at which chasing should be stopped! See also
NUniqueVertex(), ToUniqueVertexMap(), and FromUniqueVertexMap().
.SetOriginalNormal(v, v0) Sets the original normal index for the given
vertex v to v0. Call UpdateOriginalMaps after making changes.
.SetOriginalTexture(v, v0) Sets the original texture index for the given
vertex v to v0. Call UpdateOriginalMaps after making changes.
.SetOriginalVertex(v, v0) Sets the original vertex number for the given
vertex v to v0. Call UpdateOriginalMaps after making changes.
.ToOriginalNormalMap() Returns a read-only list of the original normal
indices for each vertex, as stored by the importer. See also SetOriginalNormal(), FromOriginalNormalMap().
.ToOriginalTextureMap() Returns a read-only list of the original vertex
numbers for each vertex, as stored by the importer. See also SetOriginalTexture(), FromOriginalTextureMap().
.ToOriginalVertexMap() Returns a read-only list of the original vertex
numbers for each vertex, as stored by the importer. See also SetOriginalVertex(), FromOriginalVertexMap().
.ToUniqueVertexMap() Returns a read-only list with an element for
each vertex, giving a unique vertex number. There will be fewer unique vertex numbers, see NUniqueVertex(), FromUniqueVertexMap(), RepeatedVertexLoops(), and UpdateVertexMaps().
.ToUniqueNormalMap() Returns a read-only list of a unique normal
index for each vertex. See also FromUniqueNormalMap().
.ToUniqueTextureMap() Returns a read-only list of a unique texture
vertex index for each vertex. See also FromUniqueTextureMap().
.ToUniqueVertexMap() Returns a read-only list of a unique vertex
index for each vertex. See also FromUniqueVertexMap().
.UpdateOriginalMaps() Causes the original-vertex/normal/texture-
index maps information to be updated after it has been changed, ie via SetOriginalNormal/Texture/Vertex().
.UpdateVertexMaps() Forces the unique and repeated-vertex
information to be recalculated after vertices have been changed, added, or removed, ie for RepeatedVertexLoops(), ToUniqueVertexMap(), FromUniqueVertexMap(), nUniqueVertex, etc.
©2023 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.