Releases: OpenDroneMap/Obj2Tiles
Releases · OpenDroneMap/Obj2Tiles
v1.4.0
Highlights
- Added a new
VertexMediansplit strategy and--split-strategyparameter for more balanced mesh tiling (#92). - Improved the mesh simplification algorithm for better LOD generation (#91, #23).
- Added
--localparameter and fixed coordinate scaling issues (#92, #73).
Added / Changed
- Added new
VertexMediansplit strategy that partitions meshes based on vertex median position, producing more evenly distributed tiles (#92). - Added
--split-strategyparameter to select the mesh splitting method at runtime (#92). - Added
--localparameter 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
- Updated simplification algorithm by @HeDo88TH in #91
- New mesh split strategy and fixes by @HeDo88TH in #92
Full Changelog: v1.3.0...v1.4.0
v1.3.0
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
usemtldirectives with no subsequent faces.
Added / Changed
- Added fan triangulation for quad and n-gon faces (
fwith 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 throwingNotSupportedException(#64). - The default material inserted by
ObjParsernow carriesName = "default"so thatGetMaterialIndexOrDefaultresolves 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 requiredsegs.Length == 3instead 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 amap_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 exceed1.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 trailingusemtldirectives without subsequent faces (#54). - Fixed orphan
usemtlentries inObjMesh.ReadFilethat caused a mismatch betweenSubMeshMaterialsandSubMeshIndices, crashingWriteFile. - Fixed various nullable reference warnings throughout the codebase.
Full Changelog: v1.2.0...v1.3.0
v1.2.0
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
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
- @dknezevic made their first contribution in #78
- @tgdflav made their first contribution in #74
Full Changelog: v1.0.13...v1.1.0
v1.0.13
What's Changed
- Changes to support coordinate system that use units other than meters. by @andreiveselov in #52
- added support for meshes with diffuse AND normal map by @charly-perspectives in #51
- Minor improvements by @HeDo88TH in #56
- Consider remapping uv range [0, 1] to image pixel range [0, w-1] (or [0, h-1]) in MeshT.BinPackTextures by @EzioHelios in #57
- Y up translation by @dashenxian in #63
- Support texture coordinates greater than1 by @dashenxian in #62
- Target .NET 8.0 by @amiuhle in #70
- Minor improvements, refactor and cleanup by @HeDo88TH in #71
- Update linux-arm.pubxml to build arm ELF in 64bit by @cjgarson in #72
New Contributors
- @andreiveselov made their first contribution in #52
- @charly-perspectives made their first contribution in #51
- @EzioHelios made their first contribution in #57
- @dashenxian made their first contribution in #63
- @amiuhle made their first contribution in #70
- @cjgarson made their first contribution in #72
Full Changelog: v1.0.12...v1.0.13
v1.0.12
Update publish .net version
v1.0.11
Fixed bug in texture packing
v1.0.10
Version bump to v1.0.10
v1.0.9
Version bump to v1.0.9
v1.0.8
Merge pull request #13 from HeDo88TH/master Various fixes and improvements