Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Feb 10:31
· 126 commits to master since this release

Highlights

  • Fixed tiles generating without textures/colors for materials with only diffuse color (Kd) and no texture map.
  • Added support for quad and n-gon faces via fan triangulation.
  • OBJ files with line elements (l) are now processed without errors.
  • Negative/out-of-range UV coordinates are now wrapped instead of throwing an exception.
  • Fixed crash caused by orphan usemtl directives with no subsequent faces.

Added / Changed

  • Added fan triangulation for quad and n-gon faces (f with 4+ vertices) in the splitting-stage OBJ parser (MeshUtils.LoadMesh), resolving issues with models exported from Blender and other tools (#60).
  • UV coordinates outside the [0, 1] range are now wrapped via modulo instead of throwing an "Invalid texture coordinates" exception (#35).
  • Line elements (l) are now gracefully skipped instead of throwing NotSupportedException (#64).
  • The default material inserted by ObjParser now carries Name = "default" so that GetMaterialIndexOrDefault resolves it correctly in the glTF converter.
  • Material lookup in the glTF converter (Converter.cs) now searches by name instead of relying solely on the index, which could diverge when the default material is inserted at index 0 (#36).
  • Fixed the vn (vertex normals) parser branch that incorrectly required segs.Length == 3 instead of >= 4.
  • Bumped assembly/file version to 1.3.0.
  • Improved nullable annotations across ObjMesh, CommonUtils, MeshT, Material, and other classes to eliminate compiler warnings.
  • Significantly expanded the test suite with new test classes: ObjParsingTests, MtlParsingTests, BoundsTests, SplitMultiAxisTests, RecurseSplitTests, ObjMeshParsingTests, ObjParserGltfTests, and corresponding test data files.
  • Updated publish profiles.

Fixed

  • Fixed tiles generating without texture when the OBJ material uses only Kd (diffuse color) without a map_Kd (texture map) — the glTF output was incorrectly falling back to a grey default material (#36).
  • Fixed "Invalid texture coordinates" exception when UV coordinates are negative or exceed 1.0, common with 3ds Max exports and UDIM workflows (#35).
  • Fixed "Element not supported: 'l ...'" exception when OBJ files exported from Blender contain line elements (#64).
  • Fixed first LOD level not writing tiles during the splitting stage when quads/n-gons were present in the OBJ file (#60).
  • Fixed "The number of sub-mesh material names does not match the count of sub-mesh index arrays" crash caused by trailing usemtl directives without subsequent faces (#54).
  • Fixed orphan usemtl entries in ObjMesh.ReadFile that caused a mismatch between SubMeshMaterials and SubMeshIndices, crashing WriteFile.
  • Fixed various nullable reference warnings throughout the codebase.

Full Changelog: v1.2.0...v1.3.0