Commit Graph

548 Commits (2495969f875121bc25b4ea824d54a0767c61526c)

Author SHA1 Message Date
Jeremy Hu 178e2296ea Hide export window before save
Thanks Memo Mind for the suggestion.
2020-02-27 22:40:07 +09:30
Jeremy Hu a0f15780b5 Fix transparency 2020-02-27 22:32:59 +09:30
Jeremy Hu 6e2c1286a3 Add texture size preference setting 2020-02-27 20:23:50 +09:30
Jeremy Hu c4639d77ae Fix alphaMode of glb exporting
Only export alphaMode as BLEND when there are transparent parts.
2020-02-27 19:27:09 +09:30
Jeremy Hu 8842739fd8 Fix rig 2020-02-19 20:35:16 +09:30
Jeremy Hu 1c3ec0c05a Fix build 2020-02-09 21:50:02 +09:30
Jeremy Hu 287d3f4d2e Rewrite rig generator
Before this commit, the body parts are segmented by face connectivity. In this commit, the body parts are segmented by nodes connectivity. Disconnected nodes are combined before segmentation at the endpoint from the nearest neighbor parts’ node.
2020-02-09 20:42:14 +09:30
Jeremy Hu 6c01c0d07b Remove grided mesh builder
This feature was been designed to make cloth mesh, however, it's not work as planned and is been replaced by the cloth simulation.
2020-01-18 21:54:54 +09:30
Jeremy Hu 9ca0102b52 Fix component renaming 2020-01-18 17:43:24 +09:30
Jeremy Hu a7f22efd1b Optimize cloth simulation 2020-01-18 15:31:10 +09:30
Jeremy Hu 2e047e3d26 Add iteration setting for cloth simulation 2020-01-18 12:34:31 +09:30
Jeremy Hu 21fd758c48 Fix faces to nodes projector 2020-01-17 22:14:55 +09:30
Jeremy Hu 1844a897c4 Add more poly count options for remesh 2020-01-17 19:45:58 +09:30
Jeremy Hu 8775a09fa3 Fix vertex source node resolving after remesh 2020-01-17 18:24:27 +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 58e01ca349 Optimize parts tree
Delay a little bit to reload the children of component to avoid the UI freeze issue.
2020-01-14 23:29:40 +09:30
Jeremy Hu 8db7266158 Reduce edge count for cloth simulation 2020-01-14 22:23:28 +09:30
Jeremy Hu 9f625f07ae Fix crash on MesaGL 2020-01-14 21:38:57 +09:30
Jeremy Hu d71fe65f22 Fix cloth settings 2020-01-14 08:15:42 +09:30
Jeremy Hu 5a59abdca4 Optimize cloth mesh simulation by enable tbb. 2020-01-13 22:54:09 +09:30
Jeremy Hu cff5cff6bc Change parts tree menu trigger method
Left mouse single press will popup short version of context menu
2020-01-13 20:50:37 +09:30
Jeremy Hu 89d49d488d Add force and offset settings for cloth simulation 2020-01-12 22:18:44 +09:30
Jeremy Hu 8ffef700c4 Add hang effect for cloth simulation 2020-01-09 23:52:33 +09:30
Jeremy Hu 44cd33d799 Add stiffness setting for cloth simulation 2020-01-09 23:30:46 +09:30
Jeremy Hu c4882dec1f Add isotropic remesh preprocess to cloth simulation 2020-01-09 08:37:14 +09:30
Jeremy Hu 579fa24e1c Add cloth simulation
Integrate FastMassSpring, implemented by Samer Itani(@sam007961),
Original paper: "Fast Simulation of Mass-Spring Systems" by Liu, T., Bargteil, A. W., Obrien, J. F., & Kavan, L.
2020-01-08 23:46:56 +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 66ac0b3b7f Add remesh polycount configure 2020-01-05 00:20:10 +09:30
Jeremy Hu 8c6a9fef29 Mark remeshed component as Uncombined 2020-01-04 22:19:03 +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
Jeremy Hu ee53e3ed4f Improve mesh generation
1. All components recombined regardless of color groups
2. Contour main view contribute to x-coord only when width and height is different (Offset greater than radius)
3. Fix generating indicator
2020-01-02 22:06:43 +09:30
Jeremy Hu f2093bd42a Optimize remesh (2)
Update isotropic remesh target edge length
2020-01-02 17:29:04 +09:30
Jeremy Hu 7f517386f0 Optimize remesh
Introduce isotropic remesh before QuadriFlow
This will unify the edge length of all the faces before the mesh got subdived in QuadriFlow
2020-01-02 14:31:04 +09:30
Jeremy Hu 3ebc2cca6b Show wireframe by default
Toggle wireframe would cause crash on linux/MesaGL, only show wireframes on Windows and MacOS by default.
2020-01-02 08:03:33 +09:30
Jeremy Hu 14b65e193b Improve Marker pen
Take front view contour into calculation for x-axis.
2020-01-02 07:58:33 +09:30
Karl Robillard c251d4aa21 documentwindow: Add top level menu accelerators and a few File shortcuts.
- Remove routing of Ctrl+S shortcut through skeletongraphicswidget.
2019-12-31 21:55:02 +09:30
Karl Robillard 7a65725c41 skeletondocument.h: Fix compiler warnings for GCC 9.2.1. 2019-12-31 21:55:02 +09:30
Jeremy Hu 103ca74458 Fix crash 2019-12-30 19:58:26 +09:30
Karl Robillard fc85ded323 Save documentWindowSize in settings to preserve window size between runs. 2019-12-29 14:47:24 -05:00
Karl Robillard d02331d1e7 documentwindow: Add Quit menu item. 2019-12-29 13:53:51 -05:00
Jeremy Hu 191dbacd89 Implement component remesh 2019-12-29 18:22:35 +09:30
Jeremy Hu dd628b6af7 Integrate QuadriFlow
https://github.com/hjwdzh/QuadriFlow
2019-12-28 14:51:59 +09:30
Jeremy Hu 9f55f738f3 Implement marker pen
This commit introduce a new feature: Marker Pen
It allow user to quick draw a contour of the side view and got nodes automatically generated
2019-12-25 08:54:49 +09:30
Jeremy Hu 7a5065865a Set OpenGL core profile shader as default 2019-12-22 21:37:42 +09:30
Jeremy Hu e394e3fa2a Hide regenerate button on export widget
There is no need to regenerate as the result mostly is the same
2019-12-22 13:30:10 +09:30
Jeremy Hu d185f7e07a Remove disabled and cut face parts from final result. 2019-12-21 16:33:35 +09:30
Jeremy Hu 7aaac5af07 Implement image skeleton extractor 2019-12-21 16:20:36 +09:30
Jeremy Hu d218789d83 Add mesh recombiner optional edge loop optimization
This optimization would make two combining edge loops move closer.
The vertex postion been updated, this will affect the quad recovery and triangle source resolver, so this optimization is been commented out currently.
2019-12-18 23:46:52 +09:30
Jeremy Hu 745c96eeb9 Include error mesh in final result 2019-12-15 12:52:24 +09:30
Jeremy Hu 40a6968599 Enable three nodes branch on gridded part 2019-12-15 11:44:04 +09:30
Jeremy Hu 0f7735e93a Fix build 2019-12-15 09:27:51 +09:30
Jeremy Hu 22373b1ed7 Implement grid mesh builder 2019-12-14 22:58:14 +09:30
Jeremy Hu 839e081d10 Fix pose editor 2019-11-09 17:45:49 +09:30
Jeremy Hu 9f12f03d58 Fix interpolation for motion generation 2019-11-08 23:35:27 +09:30
Jeremy Hu e2ca6ec5fa Fix countershaded configure 2019-11-08 17:55:50 +09:30
Jeremy Hu 59fc43f900 Fix countershading mirror 2019-11-07 23:31:03 +09:30
Jeremy Hu 5c34ae61ce Add part countershading setting
Countershaded parts will be belly white colored.
2019-11-07 21:38:47 +09:30
Jeremy Hu d5d46b8337 Remove remote IO protocol 2019-11-07 08:34:23 +09:30
Jeremy Hu 6b3fe2b04b Update motion interpolation editor 2019-11-06 20:20:00 +09:30
Jeremy Hu f351cc28e3 Fix color solubility setting for texture generation 2019-11-04 08:25:17 +09:30
Jeremy Hu 657d93ca99 Fix texture rotation 2019-11-04 07:26:30 +09:30
Jeremy Hu ac61cee164 Add pixmap cache during texture generator 2019-11-04 00:01:13 +09:30
Jeremy Hu 67881213f4 Fix transparent setting for color texture 2019-11-03 21:20:00 +09:30
Jeremy Hu 0c7cde80b2 Fix default normal texture 2019-11-03 20:43:52 +09:30
Jeremy Hu 8585e8a763 Update screenshot and changelogs 2019-11-03 12:42:58 +09:30
Jeremy Hu 0abaa707f5 Add tile scale setting for texture generator 2019-11-03 09:45:20 +09:30
Jeremy Hu 9a587fc895 Fix color copy 2019-11-02 18:51:29 +09:30
Jeremy Hu 416ada241d Change subdivision algorithm and fix example models 2019-11-02 16:42:05 +09:30
Jeremy Hu 1d3c4142d4 Support transparent texture
Add alpha channel support for color texture. The transparency is supported in render preview, export texture preview and glTF exporter.
2019-11-02 12:13:23 +09:30
Jeremy Hu 9e1e632ae7 Remove undo hash check 2019-10-26 10:29:24 +09:30
Jeremy Hu 29f988aa7b Add main window menu for auto colorize 2019-10-26 07:47:31 +09:30
Jeremy Hu db9d8c04c0 Add auto colorize from reference image
Thanks @enzyme69 for the idea.
2019-10-25 23:41:17 +09:30
Jeremy Hu 12a95f2e8e Fix undo on part tree widget 2019-10-21 21:51:57 +09:30
Jeremy Hu c084e28676 Update widget icon and preview image size 2019-10-20 08:28:41 +09:30
Jeremy Hu 82df4d5a87 Add model rotation toggle button 2019-10-19 22:44:36 +09:30
Jeremy Hu b7cb4ed18a Add mini buttons to set rotation degrees 2019-10-19 12:38:59 +09:30
Jeremy Hu dd371387a4 Add shortcut key O
Toggle render flat shading
2019-10-19 11:37:23 +09:30
Jeremy Hu 8e7d1ceb05 Add shortcut key C
Toggle part chamfer state
2019-10-19 10:16:00 +09:30
Jeremy Hu b6b5e67fad Change key H behaviour
Before: only toggle hovered part's visibility
After: when there is no part been hovered, all nodes will be toggled
2019-10-19 10:01:27 +09:30
Jeremy Hu c7ba9ef1a9 Add shortcut key F
Bring the part widget of current hovered part to visible area
2019-10-19 08:21:23 +09:30
Jeremy Hu 2b70f34d16 Auto scroll to selected part widget 2019-10-19 08:02:24 +09:30
Jeremy Hu e370bd5392 Add auto scroll to new added component 2019-10-18 23:50:55 +09:30
Jeremy Hu 74f5a081e3 Support rigging for uncombined mesh. 2019-10-03 08:21:38 +09:30
Jeremy Hu 00c05e8cb0 Add triangle islands link algorithm 2019-09-30 23:58:04 +09:30
Jeremy Hu c79ba9ee7c Fix texture generation 2019-09-22 13:25:43 +09:30
Jeremy Hu a5bfe83cea Add authoring tool's version info to .obj file #42
Thanks @lewislepton for the suggestion.
2019-09-22 07:42:11 +09:30
Jeremy Hu 17cb1cb059 Introduce bullet3 to support ragdoll procedural animation 2019-09-22 00:00:27 +09:30
Jeremy Hu ee94913c62 Limit the zoom size of the rendered widget 2019-08-21 08:29:50 +09:30
Jeremy Hu c4da15eb9e Add batch color paste #36
Thanks @SatishGodaPearl for the suggestion.
Closes #36
2019-08-20 23:59:08 +09:30
Jeremy Hu e725bdba8c Fix angle calculation 2019-08-19 21:09:21 +09:30
Jeremy Hu 85f1251082 Fix hollow thickness UI 2019-08-18 22:48:55 +09:30
Jeremy Hu 9ed4c29b39 Add hollow thickness parameter 2019-08-18 21:32:39 +09:30
Jeremy Hu 0077986201 Adjust brush gradient fill factor 2019-08-18 14:51:10 +09:30
Jeremy Hu 3701002fac Fix default deforming scale 2019-08-18 14:28:27 +09:30
Jeremy Hu adadab65ea Remove temporary deforming maps 2019-08-18 10:43:48 +09:30
Jeremy Hu 95c3607996 Fix paint mode 2019-08-17 21:02:18 +09:30
Jeremy Hu 1d0f2450df Add deforming map painter
- Short cut 'D' changed meaning: from drag mode to paint mode, drag mode icon removed, but still can use space bar to invoke drag mode.
- Brush painter directly paint on part deforming map, use shift key plus mouse wheel to change the brush size, also use shift key to change paint mode(Pull/Push).
2019-08-17 19:43:11 +09:30
Jeremy Hu da6861f6aa Fix build 2019-08-13 07:48:21 +09:30
Jeremy Hu 42f243746e Speed up mesh generation
Cache intermediate combination mesh for generation.
2019-08-12 22:47:11 +09:30
Jeremy Hu dc33e2f11c Add setTexelSize api for simpleuv 2019-08-10 23:33:49 +09:30
Jeremy Hu dacff70eaa Use Eigen to do vector math on UV 2019-08-10 23:12:08 +09:30
Jeremy Hu 13db7ee97b Add check UV 2019-08-10 07:57:26 +09:30
Jeremy Hu a6b9ac7bf1 Scale UV by area ration 2019-08-09 22:03:42 +09:30
Jeremy Hu f5a70dfd9e Segment UV by normal 2019-08-09 19:56:31 +09:30
Jeremy Hu bde3c01da0 Add 3d mouse picker 2019-08-08 20:54:33 +09:30
Jeremy Hu bc3fae63e3 Add deform map
Deform whole part according to a height map, gray(127) represent unchanged, white represent expanding, black represent shrinking.
2019-08-03 19:51:27 +09:30
Jeremy Hu f3f77bc3a8 Fix default button on Windows #41
Thanks to @joshcamas
2019-08-01 07:24:58 +09:30
Jeremy Hu e2b221533b Fix example meerkat model and disable debug output in command line 2019-07-29 17:49:01 +09:30
Jeremy Hu 7a12f78984 Fix poser failure because of incorrect translated rig bone name in Simplified Chinese. 2019-07-29 17:33:35 +09:30
Jeremy Hu 2cd3aee520 Add procedural tree to example menu 2019-07-27 17:21:45 +09:30
Jeremy Hu a833232d3c Exposure document.canvas to javascript api 2019-07-27 10:37:07 +09:30
Jeremy Hu 1f34b95776 Fix script variable inputs 2019-07-26 16:35:41 +09:30
Jeremy Hu 9261b7ca5e Add THREE.Vector3 and THREE.Ququaternion from three.js 2019-07-26 14:15:33 +09:30
Jeremy Hu af792a9bdc Add javascript variable inputs: Float, Int, Check, Color, Select 2019-07-26 10:50:32 +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 2c072fc083 Change script editor's text color and add new js api: document.attribute 2019-07-23 07:02:43 +09:30
Jeremy Hu fd7dbb2024 Optimize cut face endpoints sort algorithm 2019-07-22 18:24:55 +09:30
Jeremy Hu 54b1c95270 document.createVariable return float instead of string 2019-07-22 17:32:35 +09:30
huxingyi f2cc4a11e1 Fix quickjs windows build 2019-07-20 04:57:26 -07:00
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 aec5acd793 Improve intermediate nodes generation
Added Intermediates nodes sometimes will make the whole part’s mesh failed to generate. This commit add a fallback option, when mesh failed to generate, the generator will try again without the intermediate nodes added.

This feature is inspired from Nico J. Dolloso’s model (https://twitter.com/nicodoll).
2019-07-20 12:12:24 +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 ab5e53fb54
Fix build error on Raspberry PI 3 Model B+ 2019-07-09 18:12:08 +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 7c66e6b5d0 Sort cut face list by x position of center 2019-07-08 07:33:39 +09:30
Jeremy Hu 58b6c7d1d9 Fix build 2019-07-07 20:40:24 +09:30
Jeremy Hu 8d315e3c64 Optimize intermediate nodes cut normal.
Before this commit, the cut normal of intermediate nodes doesn't consider the original nodes' travesal direction. This will cause self intersection in some cases.
2019-07-07 20:25:42 +09:30
Jeremy Hu eb91a8a16c Prepare for cut face offset modifier 2019-07-07 15:57:58 +09:30
Jeremy Hu 820aa90406 Rename Vertex to ShaderVertex
Fix crash on hiding nodes after removing node
2019-07-04 19:06:50 +09:30
Jeremy Hu ad244c4659 Save nodes cut faces 2019-07-03 08:37:46 +09:30
Jeremy Hu 713935adb5 Save cut face transforms 2019-07-03 07:19:18 +09:30
Jeremy Hu 969a25b697 Fix crash in cut face nodes ordering
The comparison function of std::sort requires only return true when first is less than second, this is the rule of "strict weak ordering".
2019-06-29 19:12:45 +09:30
Jeremy Hu 6b8afd2493 Update language file name 2019-06-28 22:33:49 +09:30
Jeremy Hu 12fc351068 Add language: zh-CN 2019-06-27 22:14:33 +09:30
Jeremy Hu 0543e8a0be Fix default flat shading 2019-06-26 21:34:10 +09:30
Jeremy Hu 1d04e1771e Disable three nodes branch by default
Three nodes branch wrapping is very easy to fail, so disable by default.
2019-06-26 21:05:56 +09:30
Jeremy Hu 4689ed163a Sort material, pose, and motion list by name 2019-06-26 07:24:22 +09:30
Jeremy Hu 7a33fa2531 Remove neck direction match
The neck direction match is introduced for matching the human pose to a animal pose, however, current implementation will cause the neck pose not work as edited in pose editor.
2019-06-25 22:13:57 +09:30
Jeremy Hu a945612718 Fix part mesh generation variation
Before this commit, the node id and edge id changed when reload from file, then caused the uuid changing and affected the node processing order during mesh generation.
2019-06-25 21:07:17 +09:30
Jeremy Hu 83cb6383c1 Add new base normal option: Average
When this option enabled, the mesh generator will average all the base normals of nodes with radius as a weight.
2019-06-25 08:14:04 +09:30
Jeremy Hu 516df9a1b7 Add new pose setting: yTranslationScale
Normally, when pose been generated, foot is always been pulling to the ground by a y-translation. This setting could be used to scale the y-translation. It's usefull for birds fly kind of motion.
2019-06-19 22:27:38 +09:30
Jeremy Hu 3e29528ee0 Fix pose preview flicker 2019-06-19 06:36:11 +09:30
Jeremy Hu e5f45eef83 Fix pose preview 2019-06-18 08:16:59 +09:30
Jeremy Hu 56ddc1f8ee Add side visibility toggle button to pose editor 2019-06-17 22:19:08 +09:30
Jeremy Hu bc565923aa Add background blur adjustment slider to pose editor 2019-06-16 18:15:03 +09:30
Jeremy Hu 629c02adbe Fix multiple windows crash when preference change 2019-06-12 21:03:38 +09:30
Jeremy Hu 5443909c1d Add more built-in example models 2019-06-11 08:17:12 +09:30
Jeremy Hu 307965e3e8 Fix motion generator 2019-06-10 23:31:06 +09:30