You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RobloxMesh should have a new property std::vector<RobloxMesh> lodMeshes, bool isHighQualityLodMesh, bool isLodMesh, RobloxMesOptimizer(enum) optimizedBy`
In v3, there is special data at the "end" of the data (i.e. after all the other data, meaning after the vertices and faces). It is a series of uint32s, or more simply just a uint32 array. It can be a uint16 instead if sizeof_LOD (found in the mesh header) != sizeof(uint32). It has numLODs elements (numLODs was also detailed in the mesh header.) This series represents ranges in the face array where certain faces belong to certain meshes. So, if it is {0, 1000, 2000, 3000} (sizeof(ranges) ALWAYS % 2 == 0) then main mesh is faces 0-1000, 1st LOD mesh is 1000-2000, and 2nd LOD mesh is 2000-3000.
V4 does a semi similar approach. It has a property detailing the simplifier used on the included LOD meshes, which can be None, Unknown, RbxSimplifer, and ZeuxMeshOpt. We can use ASSIMP post-processing for "Unknown", and reverse engineer for the RbxSimplifier algorithm (I believe it is just optimizeMesh somewhere in the Rendering code?) and mesh opt is an open source library we can already use. sizeof_LOD is omitted so we can safely assume the face range array will be uint32. Besides rearranging LOD data in the mesh, there is now an additional byte (0-255) telling how many HQ LODs are in the mesh. This is just metadata.
V5 is just V4 with FACS data at the end. No modification to LODs
No description provided.
The text was updated successfully, but these errors were encountered: