Skip to content

Commit

Permalink
Update 4.5.5
Browse files Browse the repository at this point in the history
  • Loading branch information
nimadez committed Oct 27, 2024
1 parent 13a7844 commit 83f6ca6
Show file tree
Hide file tree
Showing 10 changed files with 496 additions and 300 deletions.
26 changes: 11 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@

[Changelog](https://github.com/nimadez/voxel-builder/releases)<br>
[Installation](https://github.com/nimadez/voxel-builder#installation)<br>
[Documentation](https://github.com/nimadez/voxel-builder/wiki)<br>
[Known Issues](https://github.com/nimadez/voxel-builder#known-issues)<br>
[FAQ](https://github.com/nimadez/voxel-builder#faq)
[FAQ](https://github.com/nimadez/voxel-builder#faq)<br>
[Bug Report](https://github.com/nimadez/voxel-builder/issues)

## Features

**File I/O**
- Save and load JSON [?](https://github.com/nimadez/voxel-builder/wiki/File-Format)
- Save and load JSON
- Import MagicaVoxel VOX
- Export to GLB, GLTF, OBJ, STL [?](https://github.com/nimadez/voxel-builder/wiki/project)
- Export to GLB, GLTF, OBJ, STL
- Local storages, snapshots, quicksave, undo

**Model and Paint**
- High performance voxel engine
- Generators *(terrain, cube, sphere, isometric...)*
- Interactive modeling toolsets [?](https://github.com/nimadez/voxel-builder/wiki/model)
- Interactive modeling toolsets
- Symmetric drawing and painting
- Color groups and voxel transforms

Expand All @@ -36,18 +36,18 @@

**Voxelization**
- Fast BVH voxelization
- 3D model voxelizer [?](https://github.com/nimadez/voxel-builder/wiki/Voxelization)
- 3D model voxelizer
- Image voxelizer

**Export Meshes**
- Bake voxels to editable meshes [?](https://github.com/nimadez/voxel-builder/wiki/export)
- Bake voxels to editable meshes
- Bake voxels by color groups
- Unbake meshes to voxels
- Unbake exported GLB to voxels
- glTF compatible editor

**Extensibility**
- ES modules
- WebSockets client [?](https://github.com/nimadez/voxel-builder/wiki/WebSocket-Client)
- WebSockets client
- User startup project
- Blender importer script

Expand Down Expand Up @@ -141,8 +141,7 @@ How to run Blender importer script?

## History
```
↑ The face-normal probe jumps to the portal
↑ Core initialization!
↑ Core initialization
↑ Rendering was left to three and three-gpu-pathtracer
↑ ES6 (the original index.html playground was moved)
↑ x1.5 faster startup (2s to 300ms)
Expand All @@ -158,9 +157,6 @@ How to run Blender importer script?
↑ 2019 - I wrote a playground for learning Babylon.js
```

Version 4.3.9 *(BJS 7 - Three r168)*<br>
<img src="media/devshot_43.jpg" width="581">

Version 3.0.0 *(BJS 4)* to 4.2.2 *(BJS 6)*<br>
![screenshot](media/devshots.jpg?raw=true "Screenshot")

Expand All @@ -179,7 +175,7 @@ Code released under the [MIT license](https://github.com/nimadez/voxel-builder/b
- [Sketchfab](https://sketchfab.com/)
- [KhronosGroup](https://github.com/KhronosGroup/)
- [Shadertoy](https://www.shadertoy.com/)
- [vengi](https://mgerhardy.github.io/vengi/)
- [vengi](https://vengi-voxel.github.io/vengi/)
#
- [Allen Hastings](https://www.linkedin.com/in/allenhastings)
- [David Catuhe](https://twitter.com/deltakosh)
Expand Down
Binary file removed media/devshot_43.jpg
Binary file not shown.
Binary file modified media/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "voxel-builder",
"version": "4.5.4",
"version": "4.5.5",
"description": "Voxel-based 3D modeling application",
"main": "electron.js",
"scripts": {
Expand Down
Binary file modified src/assets/appicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 32 additions & 22 deletions src/index.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ engine.init().then(eng => {
CORE.tool.init();

CORE.renderTarget.init();
CORE.faceNormalProbe.init();

CORE.preferences.finish(startTime);

Expand Down
4 changes: 2 additions & 2 deletions src/manifest.webmanifest

Large diffs are not rendered by default.

46 changes: 0 additions & 46 deletions src/modules/bakery/bakery.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,52 +66,6 @@ class Bakery {
}
}
}

bakePick(voxel, scale) {
this.dispose();

if (voxel.visible) {
this.constructFacePick(voxel, VEC6_HALF[0], VEC6_ONE[0], 0, PIH, scale);
this.constructFacePick(voxel, VEC6_HALF[1], VEC6_ONE[1], 0, -PIH, scale);
this.constructFacePick(voxel, VEC6_HALF[2], VEC6_ONE[2], -PIH, 0, scale);
this.constructFacePick(voxel, VEC6_HALF[3], VEC6_ONE[3], PIH, 0, scale);
this.constructFacePick(voxel, VEC6_HALF[4], VEC6_ONE[4], 0, 0, scale);
this.constructFacePick(voxel, VEC6_HALF[5], VEC6_ONE[5], 0, Math.PI, scale);
}
}

constructFacePick(voxel, position, nearby, rotX, rotY, scale) {
const idx = builder.getIndexAtPosition(voxel.position.add(nearby));
if (idx === undefined) {
const plane = pool.constructPlaneFast();
plane.position = voxel.position.add(position);
plane.rotation.x = rotX;
plane.rotation.y = rotY;
plane.scaling.scaleInPlace(scale);
plane.layerMask = 0x00000000;
//plane.renderingGroupId = 1;
//plane.sideOrientation = BABYLON.Material.CounterClockWiseSideOrientation;
this.planes.push(plane);
} else {
if (voxel.color !== builder.voxels[idx].color) { // visibility support
const plane = pool.constructPlaneFast();
plane.position = voxel.position.add(position);
plane.rotation.x = rotX;
plane.rotation.y = rotY;
plane.scaling.scaleInPlace(scale);
plane.layerMask = 0x00000000;
//plane.renderingGroupId = 1;
//plane.sideOrientation = BABYLON.Material.CounterClockWiseSideOrientation;
this.planes.push(plane);
}
}
}

dispose() {
for (const plane of this.planes)
plane.dispose();
this.planes = [];
}
}

export const bakery = new Bakery();
Loading

0 comments on commit 83f6ca6

Please sign in to comment.