Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions indra/newview/gltf/llgltfloader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ static const glm::mat4 coord_system_rotationxy(
0.f, 0.f, 0.f, 1.f
);

static const S32 VERTICIES_LIMIT = USHRT_MAX - 2;
static const S32 VERTEX_SPLIT_SAFETY_MARGIN = 3 * 3 + 1; // 10 vertices: 3 complete triangles plus remapping overhead
static const S32 VERTEX_LIMIT = USHRT_MAX - VERTEX_SPLIT_SAFETY_MARGIN;

LLGLTFLoader::LLGLTFLoader(std::string filename,
S32 lod,
Expand Down Expand Up @@ -951,7 +952,7 @@ bool LLGLTFLoader::populateModelFromMesh(LLModel* pModel, const std::string& bas
}

// Indices handling
if (faceVertices.size() >= VERTICIES_LIMIT)
if (faceVertices.size() >= VERTEX_LIMIT)
{
// Will have to remap 32 bit indices into 16 bit indices
// For the sake of simplicity build vector of 32 bit indices first
Expand Down Expand Up @@ -1036,7 +1037,7 @@ bool LLGLTFLoader::populateModelFromMesh(LLModel* pModel, const std::string& bas
}
indices_16.push_back((U16)vert_index);

if (indices_16.size() % 3 == 0 && face_verts.size() >= VERTICIES_LIMIT - 1)
if (indices_16.size() % 3 == 0 && face_verts.size() >= VERTEX_LIMIT)
{
LLVolumeFace face;
face.fillFromLegacyData(face_verts, indices_16);
Expand Down
Loading