NIF File Format Documentation

NIF Objects | Compound Types | Enum Types | Basic Types | File Versions

NiTriShapeData

Holds mesh data using a list of singular triangles.

Attributes

Name Type Arg Arr1 Arr2 Cond Description FromTo
From NiObject
From NiGeometryData
Unknown ID int Unknown identifier. Always 0 10.2.0.0
Num Vertices ushort Number of vertices. For NiPSysData this is max particles.
Keep Flags byte Used with NiCollision objects when OBB or TRI is set. 10.1.0.0
Compress Flags byte Unknown. 10.1.0.0
Has Vertices bool Is the vertex array present? (Always non-zero.)
Vertices Vector3 Num Vertices hasVertices != 0 The mesh vertices.
Num UV Sets byte Texture flags in lower byte. 10.0.1.0
TSpace Flag byte Methods for saving binormals and tangents saved in upper byte. 10.0.1.0
Has Normals bool Do we have lighting normals? These are essential for proper lighting: if not present, the model will only be influenced by ambient light.
Normals Vector3 Num Vertices hasNormals != 0 The lighting normals.
Binormals Vector3 Num Vertices (hasNormals != 0) && (tspaceFlag & 240) Unknown. Binormal & tangents? has_normals must be set as well for this field to be present. 10.1.0.0
Tangents Vector3 Num Vertices (hasNormals != 0) && (tspaceFlag & 240) Unknown. Binormal & tangents? 10.1.0.0
Center Vector3 Center of the bounding box (smallest box that contains all vertices) of the mesh.
Radius float Radius of the mesh: maximal Euclidean distance between the center and all vertices.
Has Vertex Colors bool Do we have vertex colors? These are usually used to fine-tune the lighting of the model.

Note: how vertex colors influence the model can be controlled by having a NiVertexColorProperty object as a property child of the root node. If this property object is not present, the vertex colors fine-tune lighting.

Note 2: set to either 0 or 0xFFFFFFFF for NifTexture compatibility.
Vertex Colors Color4 Num Vertices hasVertexColors != 0 The vertex colors.
Num UV Sets byte Texture flags in lower byte. 4.2.2.0
TSpace Flag byte Methods for saving binormals and tangents saved in upper byte. 4.2.2.0
Has UV bool Do we have UV coordinates?

Note: for compatibility with NifTexture, set this value to either 0x00000000 or 0xFFFFFFFF.
4.0.0.2
UV Sets TexCoord Num UV Sets Num Vertices The UV texture coordinates. They follow the OpenGL standard: some programs may require you to flip the second coordinate.
UV Sets TexCoord Num UV Sets Num Vertices The UV texture coordinates. They follow the OpenGL standard: some programs may require you to flip the second coordinate.
Consistency Flags ConsistencyType Consistency Flags 10.0.1.0
Additional Data Ref<NiAdditionalGeometryData> Unknown. 20.0.0.4
From NiTriBasedGeomData
Num Triangles ushort Number of triangles.
From NiTriShapeData
Num Triangle Points uint Num Triangles times 3.
Has Triangles bool Do we have triangle data? 10.1.0.0
Triangles Triangle Num Triangles Triangle data. 10.0.1.2
Triangles Triangle Num Triangles hasTriangles != 0 Triangle face data. 10.0.1.3
Num Match Groups ushort Number of shared normals groups. 3.1
Match Groups MatchGroup Num Match Groups The shared normals. 3.1

Parent Of