# NIF File Format Documentation

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

## NiEnvMappedTriShapeData

Holds mesh data using a list of singular triangles.

### Attributes

Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To
--- | --- | --- | --- | --- | --- | --- | --- | ---
From NiObject
From NiGeometryData
Unknown Int | int |  |  |  |  | Unknown identifier. Always 0. | 10.2.0.0 |
Num Vertices | ushort |  |  |  | !IsDerivedType(NiPSysData::TYPE) | Number of vertices. |  |
Num Vertices | ushort |  |  |  | IsDerivedType(NiPSysData::TYPE) | Number of vertices. |  |
BS Max Vertices | ushort |  |  |  | IsDerivedType(NiPSysData::TYPE) | Bethesda uses this for max number of particles in NiPSysData. |  |
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 | The mesh vertices. |  |
Num UV Sets | ushort |  |  |  |  | Flag for tangents and bitangents in upper byte. Texture flags in lower byte. |  |
BS Num UV Sets | ushort |  |  |  |  | Bethesda's version of this field for nif versions 20.2.0.7 and up. Only a single bit denotes whether uv's are present. For example, see meshes/architecture/megaton/megatonrampturn45sml.nif in Fallout 3. |  |
Skyrim Material | SkyrimHavokMaterial |  |  |  | !IsDerivedType(NiPSysData::TYPE) | Material | 20.2.0.7 |
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 | The lighting normals. |  |
Tangents | Vector3 |  | Num Vertices |  | hasNormals && ((numUvSets & 61440) || (bsNumUvSets & 61440)) | Tangent vectors. | 10.1.0.0 |
Bitangents | Vector3 |  | Num Vertices |  | hasNormals && ((numUvSets & 61440) || (bsNumUvSets & 61440)) | Bitangent vectors. | 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. |  |
Unknown 13 shorts | short |  | 13 |  |  | Unknown, always 0? | 20.3.0.9 | 20.3.0.9
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 | The vertex colors. |  |
Num UV Sets | ushort |  |  |  |  | The lower 6 (or less?) bits of this field represent the number of UV texture sets. The other bits are probably flag bits. For versions 10.1.0.0 and up, if bit 12 is set then extra vectors are present after the normals. |  | 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 & 63 | 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 |
Consistency Flags | ConsistencyType |  |  |  | !IsDerivedType(NiPSysData::TYPE) | Consistency Flags | 10.0.1.0 |
Additional Data | Ref<AbstractAdditionalGeometryData> |  |  |  |  | Unknown. | 20.0.0.4 |
Additional Data | Ref<AbstractAdditionalGeometryData> |  |  |  | !IsDerivedType(NiPSysData::TYPE) | 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 | 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 |
From NiEnvMappedTriShapeData

### Parent Of