ObjToSchematic Changelog

What's new in ObjToSchematic 0.7.1

Feb 11, 2023
  • Fixed some minor bugs from 0.7.0 release.

New in ObjToSchematic 0.7.0 (Jan 23, 2023)

  • 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.

New in ObjToSchematic 0.6.1 (Oct 17, 2022)

  • Fixed some minor bugs from 0.6.0 release.

New in ObjToSchematic 0.6.0 (Oct 7, 2022)

  • 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.