Skip to content

Releases: LucasDower/ObjToSchematic

v0.7.1 Hotfix Release

10 Feb 21:13
ba161ad
Compare
Choose a tag to compare

⚠️ ObjToSchematic is now primarily a website, visit https://objtoschematic.com/ for the latest version.

Fixed some minor bugs from 0.7.0 release.

v0.7.0 Release

23 Jan 22:58
22b0656
Compare
Choose a tag to compare
+ Added material repairing. Material types are automatically inferred if no .mtl file is found.
  The new 'Materials' action lets you tweak the materials of the model instead of manually having to create/edit a .mtl file.
+ Added per-material texture sampling options for (1) UV wrapping i.e. CLAMP vs. REPEAT and (2) min/mag filtering i.e. NEAREST vs. LINEAR.
  Now operates on a per-material basis instead of for all materials.
+ Added new voxeliser with thicker walls (contributed by IceTank).
+ Added lighting calculations.
  (Expensive/slow) Will calculate the block lighting of the block mesh for a more accurate visualisation.
+ Added light threshold option.
  (Requires lighting to be enabled) Will place a light-source block if a part of the block mesh is darker than the chosen value.
+ Added constraint axis.
  Can now voxelise a mesh to a desired width or depth instead of just the height.
+ Added contextual averaging.
  When enabled (recommended), blocks are chosen based off of the average colour of the visible faces instead of all faces for more accurate conversions.
+ Added smoothness option.
  (This value is very sensitive.) The higher the smoothness value the higher the weight a block's 'smoothness' is used when choosing what block to convert a voxel into. Use this to remove noisey textured blocks.
+ Added camera smoothing and sensitivity settings to config file.
+ Added viewport background colour setting to config file.
+ Added smooth shading to mesh rendering.
+ Added fresnel effect to mesh rendering.
+ Added support for .tga textures.
+ Added rotation option when loading meshes.

* Updated atlas format to version 3, old atlases will need to be recreated.
* Can now type in values into sliders.
* Cursor style now updates when work is being done.
* Improved overall UI consistency.
* Changed some UI elements to checkboxes.
* Major refactor to block assigning.
* Minor optimisations to occlusion calculations.
* Fixed .mtl files with tab-indented material tags.
* Fixed material alpha factor for solid materials.
* Fixed no multisampling on BVH voxeliser.
* Fixed vertical UV texture sampling.
* Fixed multisampling samples only existing on the positive diagonal.
* Optimsed calculating voxel colour for solid materials.
* Fixed viewport camera rotating slower when devtools is open (contributed by 0-zen).
* Relaxed constraints for palette names.
* Various optimisations to reduce DOM updates.
* Fixed grass-like blocks being used when an opaque block is above (contributed by 0-zen).
* Optimised special blocks arrays being loaded once instead of each time a new BlockMesh is created.

- Removed 'Texture Filtering' voxelise option, now controlled on a per-material basis.

What's Changed

New Contributors

Full Changelog: v0.6.1...v0.7.0

v0.6.1 Hotfix Release

16 Oct 17:16
Compare
Choose a tag to compare

Fixed some minor bugs from 0.6.0 release.

  • Deleted test palettes and atlases.

v0.6.0 Release

07 Oct 02:06
7ccf006
Compare
Choose a tag to compare
+ Added worker thread - all heavy calculations are offloaded from the render thread to avoid lockups.
+ Added transparency support - can now import transparent materials and use transparent blocks.
+ Added 'colour accuracy' option to 'Assign' action - smaller values result in faster block assigning at the cost of accuracy.
+ Added `config.json` in `/res/` to control various settings.
+ Added option for controlling how influential the alpha value of a colour is in determining closest-colour.
+ Added end-to-end testing.
+ Added voxel overlap settings - control behaviour when multiple voxels are placed in the same location.
+ Added '.schem' exporter.
+ Added new dithering option: 'random' (strongly recommend using this over 'ordered' for a more natural look).
+ Added log files for client, worker, and headless runtimes (stored in /logs/).
+ Added nbt exporter for Minecraft structure blocks.
+ Added orthographic camera.
+ Added camera view snapping when using orthographic camera and aligned with one of the world axes.
+ Added axis grids when angle snapped.
+ Added progress bars and loading animations.
+ Added `RENDER_TRIANGLE_THRESHOLD` config option - if a mesh's triangle count exceeds this value the mesh is not rendered.
+ Added `MAXIMUM_IMAGE_MEM_ALLOC` config option.
+ Added chunk-based rendering for voxel meshes and block meshes.

* Increased maximum desired height from 320 to 380.
* Updated vanilla atlas and palette for Minecraft 1.19.
* Optimised exporters by switching to write streams.
* Optimised mesh/voxel mesh/block mesh render buffer generation.
* Optimised voxelising time, roughly 1.8x faster.
* Optimised voxelisers memory usage by removing mesh copies.
* Optimised .litematic exporter, roughly 15x faster.
* Overhauled headless script.
* Overhauled action output styling.
* Refactored atlas and palette handling.
* Refactored resource path handling.
* Fixed index component buffers allocating more memory than necessary.
* Refactored all internal block names to be namespaced.
* Fixed clay block id being incorrect in `blocks.json` (Thanks to LeGrandGeek).
* Added sorting to module imports.
* Fixed several cyclical dependencies.
* Updated some npm packages.

- Removed debug view options.
- Removed colour-space options.
- Removed unnecessary 'calculateNeighbours' option.
- Removed custom HashSet and HashMap implementations.

What's Changed

New Contributors

Full Changelog: v0.5.1...v0.6.0

v0.5.1 Release

15 May 19:54
Compare
Choose a tag to compare
  • Fixes for .obj parsing
  • Performance improvements for render buffers
  • Updates to default atlases and palettes
  • Other minor bug fixes

v0.5-alpha Release

31 Mar 20:35
Compare
Choose a tag to compare
v0.5-alpha Release Pre-release
Pre-release

Additions in 0.5

  • Load custom block palettes and texture atlases
    • Added custom tool scripts for building atlases and palettes
  • Major refactor for extendibility
    • New interfaces: IImporter, IVoxeliser, IBlockAssigner, IExporter
  • QoL editor impovements
    • Switch between Mesh/Voxel Mesh/Block Mesh rendering, zoom accessibility options, camera translation/centreing
    • Debug draw options: grid, wireframe, normal, voxel algorithm debug
  • Headless launch option
  • New voxelising algorithms
    • Normal-corrected ray-based (NCRB)
    • BVH-accelerated ray-based
  • Optimise construction of voxel mesh vertex buffers
  • Buffer refactor to support OES_element_index_uint WebGL extension (support for uint32 index buffers instead of uint16)

v0.4-alpha Release

17 Jan 19:29
Compare
Choose a tag to compare
v0.4-alpha Release Pre-release
Pre-release

Additions in 0.4

  • Block choice exported
    • Export to .litematic
  • Support for non-uniform block models (i.e. not all sides have same texture e.g. Oak Log, Crafting Table)
  • UI Redesign
  • Optimised ambient occlusion
  • Transition to ray-based voxelisation
  • Dithering

v0.3-alpha Release

20 Aug 15:17
Compare
Choose a tag to compare
v0.3-alpha Release Pre-release
Pre-release

Additions in 0.3

  • Faster voxel splitting
  • Ambient occlusion
  • Quality of life
    • Model PSR, height limit warnings
  • .mtl support for block choice
    • PNG support, JPEG support
  • Convert to TypeScript

v0.2-alpha Release

06 Jul 22:29
24aaa00
Compare
Choose a tag to compare
v0.2-alpha Release Pre-release
Pre-release

Added greedy voxel meshing for optimised rendering and added support for exporting to schematic files.

v0.1-alpha Release

04 Jul 15:38
Compare
Choose a tag to compare
v0.1-alpha Release Pre-release
Pre-release
Cleanup for 0.1 release