Skip to content

Releases: OpenDroneMap/Obj2Tiles

v1.4.0

17 Mar 08:45

Choose a tag to compare

Highlights

  • Added a new VertexMedian split strategy and --split-strategy parameter for more balanced mesh tiling (#92).
  • Improved the mesh simplification algorithm for better LOD generation (#91, #23).
  • Added --local parameter and fixed coordinate scaling issues (#92, #73).

Added / Changed

  • Added new VertexMedian split strategy that partitions meshes based on vertex median position, producing more evenly distributed tiles (#92).
  • Added --split-strategy parameter to select the mesh splitting method at runtime (#92).
  • Added --local parameter to support local (non-georeferenced) coordinate systems (#92).
  • Updated the mesh simplification algorithm with improved vertex decimation and refactored options (#91, #23).
  • Removed dead code and cleaned up internal structure (#91).
  • Updated README documentation.
  • Expanded test suite for the new split strategies and simplification logic.

Fixed

  • Fixed coordinate scaling issues that caused incorrect tile placement (#92, #73).
  • Fixed a recursion bug in the mesh splitting pipeline (#92).
  • Fixed a bug in the split strategy logic that could produce incorrect partitions (#91).

Merged PRs

Full Changelog: v1.3.0...v1.4.0

v1.3.0

16 Feb 10:31

Choose a tag to compare

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

v1.2.0

12 Feb 08:44

Choose a tag to compare

What's Changed

  • Repacking textures with bleed ring. by @dknezevic in #85
  • Added support for vertex colors by @HeDo88TH in #88
  • Upgraded to .NET 10 — All projects, CI workflows, and publish profiles now target .NET 10.0.

Full Changelog: v1.1.0...v1.2.0

v1.1.0

23 Aug 00:08
56b236b

Choose a tag to compare

What's Changed

  • Taking into account missing tiles on lower LODs by @dknezevic in #78
  • fixed exception when loading obj with texture coordinates but no material assigned by @tgdflav in #74
  • Fix copy file behavior: Using trimmed line to get file path in Utils.cs by @EzioHelios in #58
  • Ensure GLB data is padded to 8-byte alignment so that validation checks pass by @dknezevic in #80
  • Housekeeping by @HeDo88TH in #83

New Contributors

Full Changelog: v1.0.13...v1.1.0

v1.0.13

06 Nov 09:10
359d1df

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.0.12...v1.0.13

v1.0.12

03 Apr 19:55

Choose a tag to compare

Update publish .net version

v1.0.11

24 Oct 11:04

Choose a tag to compare

Fixed bug in texture packing

v1.0.10

14 Sep 11:38

Choose a tag to compare

Version bump to v1.0.10

v1.0.9

05 Aug 10:32

Choose a tag to compare

Version bump to v1.0.9

v1.0.8

19 Jul 09:45
1f6c065

Choose a tag to compare

Merge pull request #13 from HeDo88TH/master

Various fixes and improvements