Commit Graph

29 Commits (29b7f13460d04d1264d4f12ebdfb4e61fbe64b91)

Author SHA1 Message Date
huxingyi 63cbfa83a5 Support importing another Dust3D document as a part
- Add example model: Backpacker
    To demonstrate the importing function
- Add menu: Reverse
    Reverse selected edges. The direction of edge decide the base normal of
    generated mesh.
- Refactor stroke mesh builder
    Remove recursive calls, more consistant generated result
- Add menu: Import
2020-04-08 08:45:20 +09:30
huxingyi cb192bdaa6 Change to single instance with multiple windows 2020-04-04 10:24:05 +09:30
huxingyi 61532fe00c Add auto saving
The document will be auto saved at AppDataLocation every 10 seconds if
any change happened, and
will be deleted when document window closed normally.
Naming conversion: "yyyyMMdd-hhmmss-{guid}.d3b", file
type "d3b" means "(D)ust(3)D (B)ackup".
Each time, when app start, the auto saved files will be checked, the latest
one will be loaded automatically.
This feature is mainly for save the file before crash.

Thanks Marcus Hilsdorf for his suggestion of this feature.
2020-04-03 23:23:54 +09:30
Jeremy Hu 55e657852c Add menu: Export as Image
New feature: Exporting rendered model as png.
A offscreen render been introduced for generating normal and depth maps, which are been generated for toon shader edge detection.
2020-04-02 20:09:57 +09:30
Jeremy Hu ec80f7bacd Fix quickjs build on win64
Add back script system and fix build error on windows 64 bit system.
2020-01-16 22:37:16 +09:30
Jeremy Hu 7ade61ab65 Add rendered model color toggle 2020-01-05 14:35:07 +09:30
Jeremy Hu 846270fa80 Add rendered model auto rotation
Toggle rotation from menu view
2020-01-05 08:08:16 +09:30
Jeremy Hu 2d05583937 Integrate Instant-Meshes
1. Drop windows 32bit support
Add windows 64bit support.

2. Remove Script(quickjs) support
The current integrated quickjs is a very old version which doesn’t support windows 64bit system. In the future, (TODO)WebAssembly should be integrate as plugin system.

3. Integrate Instant-Meshes
Instant-Meshes take less than 1 second on all three platforms.

4. Remove QuadriFlow
Current implementation of QuadriFlow is too slow (take about 5 seconds on the example model) to do realtime remeshing.
2020-01-04 19:59:10 +09:30
Karl Robillard d02331d1e7 documentwindow: Add Quit menu item. 2019-12-29 13:53:51 -05:00
Jeremy Hu 22373b1ed7 Implement grid mesh builder 2019-12-14 22:58:14 +09:30
Jeremy Hu 29f988aa7b Add main window menu for auto colorize 2019-10-26 07:47:31 +09:30
Jeremy Hu 82df4d5a87 Add model rotation toggle button 2019-10-19 22:44:36 +09:30
Jeremy Hu 13db7ee97b Add check UV 2019-08-10 07:57:26 +09:30
Jeremy Hu bde3c01da0 Add 3d mouse picker 2019-08-08 20:54:33 +09:30
Jeremy Hu cc51fdafe0 Add menu: Check for Updates 2019-07-24 22:11:55 +09:30
Jeremy Hu 0b2653362a Support open/export from command line
Usage example(on MacOS):
    $ ./dust3d.app/Contents/MacOS/dust3d /Users/jeremy/Desktop/test.ds3 -o /Users/jeremy/Desktop/test.glb
    $ echo $?
2019-07-23 19:43:58 +09:30
Jeremy Hu 63d92e7682 Add JavaScript support
This commit introduce JavaScript as nodes generation script, to procedurally generate input nodes, which usually should draw by user on the canvas.

Powered by QuickJS (https://bellard.org/quickjs/)
2019-07-20 14:04:53 +09:30
Jeremy Hu d38737e2cb Fix mesh preview flashback
Before this commit, outdated textured preview will override the updated untextured preview. From user's perspective, sometimes, the mesh preview flashback for a short time span, although it will finally been updated to the latest.
2019-07-10 21:39:46 +09:30
Jeremy Hu 31d627bca9 Support user defined cut face per each node
Before this commit, the user defined cut face can only be set for whole part. Now each node could been configured a separate cut face and rotation.
2019-07-09 08:06:07 +09:30
Jeremy Hu 5443909c1d Add more built-in example models 2019-06-11 08:17:12 +09:30
Jeremy Hu 4ab76b1d76 Add preferences setting and change the behavior of shift key on scale radius 2019-06-01 22:42:53 +09:30
Jeremy Hu 283df87c51 Implement notification of Remote IO 2019-03-17 23:34:12 +09:30
Jeremy Hu ceeccc7211 Start implementation of Remote IO
Finished server creation, implemented two commands: listwindow, selectwindow
Ideally, all the UI should be possible manipulated by remote IO, a local TCP/IP connection, this could be useful to make a VR front end for Dust3D.
2019-03-17 15:53:39 +09:30
Jeremy Hu bc3109def9 Prepare 1.0.0-beta.16 2019-03-10 11:26:54 +09:30
Jeremy Hu 8c0156bc7a Add example model: Bob
Add menu item "Open Example", open a default example model, called "bob.ds3".
Thanks to reddit user(bvanevery) for proposing this feature.
2019-03-01 22:34:46 +09:30
Jeremy Hu b65205a48c Add tool button tips especially when failed to generate mesh #20
This commit add tips for buttons, to show what the function of the button.
Also, fixed a issue, there was no useful infos to tell user when the mesh was failed to generate, now user should see a warning icon with tips to show why the preview disappear.

Thanks the following contributors:
@RubenSandwich <https://github.com/RubenSandwich>
boynet <https://dust3d.discourse.group/u/boynet>
fornclake <https://www.reddit.com/user/fornclake>
2019-01-07 22:33:42 +09:30
Jeremy Hu 70f075a36e Rewrite pose editor
This commit include lots of changes for pose editor.
Before, we use buttons to represent the transform controller for bones;
Now, we use nodes and edges to represent the bones, just like the nodes and edges for representing the guide spheres for mesh generating. There are advantages by doing this. Firstly, The edit UI for both mesh and pose are unified, secondly, it is possible to set a reference sheet for pose editing now, this is very important.
This new pose editor is inspired by the Eadweard Muybridge's work.
2018-11-05 23:47:21 +08:00
Jeremy Hu 438c488f5a Support glTF binary format export
The normals haven't fix yet, this commit is mainly preparing for the next coming commits about animation export.
The glTF text format abandoned for the binary format.
2018-10-25 17:18:04 +08:00
Jeremy Hu 208d2a0166 Cleanup
Many source file name and data type are prefixed by "skeleton" before, now all are refactored.
The class MeshResultContext represents the outcome of mesh generation before, now we have material, pose and animation, so we just rename it as Outcome.
2018-10-25 08:19:38 +08:00