Commit Graph

198 Commits (9274da1bab65ea3ebc0ff3c51bed9531cf73611e)

Author SHA1 Message Date
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 5c51e5b848 Support OpenMP on Ubuntu 2020-01-01 19:38:11 +09:30
Jeremy Hu 083b78bcdc Support OpenMP on Windows 2020-01-01 18:45:41 +09:30
Jeremy Hu e17d636d62 Support OpenMP on Mac 2020-01-01 17:21:44 +09:30
Jeremy Hu 1e1cc8d453 Update windows CI to Visual Studio 2017
Visual studio 2015 is not work well with Eigen
2020-01-01 14:01:43 +09:30
Jeremy Hu 3b4d4ddc52 Update libigl and eigen
libigl: v2.1.0
eigen: 3.3.7

Old version of eigen will cause QuadriFlow crash on windows becase of this bug:
https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1634
2019-12-31 21:16:33 +09:30
Jeremy Hu 9e42d8ee7d Pack pdb only on unstable branch 2019-12-31 11:35:06 +09:30
Jeremy Hu 6e75d0210d Add force_debug_info config 2019-12-31 09:12:08 +09:30
Karl Robillard f60bf65837 dust3d.pro: Put object & moc files in their own directories to cleanup build. 2019-12-29 14:03:41 -05:00
Jeremy Hu 6875bee519 Fix build 2019-12-28 17:06:15 +09:30
Jeremy Hu dd628b6af7 Integrate QuadriFlow
https://github.com/hjwdzh/QuadriFlow
2019-12-28 14:51:59 +09:30
Jeremy Hu e9113ec822 Update download link 2019-12-25 10:41: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 7aaac5af07 Implement image skeleton extractor 2019-12-21 16:20:36 +09:30
Jeremy Hu 6fc2101212 Update download link 2019-12-15 14:53:08 +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 dae8fcdfc7 Update download link to 1.0.0-beta.27 2019-11-08 08:19:47 +09:30
Jeremy Hu d5d46b8337 Remove remote IO protocol 2019-11-07 08:34:23 +09:30
Jeremy Hu bdae2af62f Update download link to 1.0.0-beta.26 2019-11-03 14:10:19 +09:30
Jeremy Hu 305921b0b1 Update download link to 1.0.0-beta.25 2019-10-20 11:40:49 +09:30
huxingyi fa53462a3c Update download link to 1.0.0-beta.24 2019-10-06 16:29:43 +09:30
huxingyi 9e6b42ffac Fix optimized compiling options for windows 2019-10-06 13:51:45 +09:30
Jeremy Hu 00c05e8cb0 Add triangle islands link algorithm 2019-09-30 23:58:04 +09:30
Jeremy Hu 17cb1cb059 Introduce bullet3 to support ragdoll procedural animation 2019-09-22 00:00:27 +09:30
Jeremy Hu 02a2b39c58 Update download link to 1.0.0-beta.23 2019-08-19 22:38:13 +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 dacff70eaa Use Eigen to do vector math on UV 2019-08-10 23:12:08 +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 fe49613d3b Update download link to 1.0.0-beta.22 2019-07-28 06:56:38 +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 a7758fcccd Rename quickjs folder to indicate it's modified 2019-07-21 23:42:53 +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 74fda4b2f0 Update download link to 1.0.0-beta.21 2019-07-11 23:42:49 +09:30
Jeremy Hu 3ee492f623 Fix build 2019-07-09 08:20:09 +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 d65feb2b60 Update download link to 1.0.0-beta.20 2019-07-07 23:07:37 +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 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 2aa2f79a72 Update download link to 1.0.0-beta.19 2019-06-26 22:21:39 +09:30
Jeremy Hu 6445f453c5 Output file line number to debug log in release mode 2019-06-25 21:50:02 +09:30
Jeremy Hu 17f5293a4c Update download link to 1.0.0-beta.18 2019-06-13 08:45:48 +09:30
Jeremy Hu ace93d0d9f Update logo 2019-06-13 00:08:47 +09:30
Jeremy Hu 0b18da76ea Add bone name converter but not enable yet. 2019-06-10 15:49:35 +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 7c068466e8 Update download link to 1.0.0-beta.17 2019-05-26 13:09:04 +09:30
Jeremy Hu bb19489ee1 Add base plane constrain settings
Mesh layout and thickness adjustment are depend on base plane calculation. In this build, the base plane calculation could be limited to front plane, side plane, and so on, compare to without any limitation in previous implementation.
2019-05-20 23:08:01 +09:30
Jeremy Hu 8f5368a43f Add user defined cut face
Extruding shape is totally customizable now, it's not limit to predefined shapes.
2019-05-19 12:51:38 +09:30
Jeremy Hu fcfe51a28a Support customizable extruding face: Quad, Pentagon, Hexagon, and Triangle 2019-05-05 22:19:26 +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 7677a404e6 Update download link to 1.0.0-beta.16 2019-03-10 12:58:20 +09:30
Jeremy Hu bc3109def9 Prepare 1.0.0-beta.16 2019-03-10 11:26:54 +09:30
Jeremy Hu 7bcf00d471 Upgrade CGAL 4.11.1 to 4.13 2019-03-03 18:22:18 +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 02bb32391e Add cut face customizing.
This commit introduce a new tool, allow user to customize the face template for automatical extruding.
2019-02-24 23:12:23 +09:30
Jeremy Hu 3e1fde4260 Fix build 2019-02-19 20:51:12 +09:30
Jeremy Hu 4bdbdd496a Introduce new mesh generator: nodemesh
Remove meshlite, introduce nodemesh: https://github.com/huxingyi/nodemesh
Now, all the codebase move to C++, no rust language dependency.
2019-02-18 22:27:18 +09:30
Jeremy Hu 8ace5b43de Fix triangulation of uv unwrapping 2019-01-24 23:57:47 +09:30
Jeremy Hu 4d1be408a9 Add application icon for mac 2018-12-26 20:48:02 +09:30
Jeremy Hu ff65a24f32 Fix node scaling with keyboard on add mode
Node scaling only worked with mouse on add mode before, now should be also working with keyboard.
2018-12-15 23:11:02 +09:30
Jeremy Hu 7fe87b2dee Fix double click selection in pose editor
Double click should select connected items only, not select all.
2018-12-11 21:25:55 +09:30
Jeremy Hu 9a5d6df106 Add contributor #25 2018-12-08 13:04:37 +09:30
Jeremy Hu fa8fe5d479 Fix AppImage #23 #24 2018-12-04 21:21:02 +09:30
Jeremy Hu 251e1f5a6e Fix toolbar icon size #19 2018-12-03 22:56:20 +09:30
Jeremy Hu 08b20e4d5b Fit right sub widget size #19 2018-12-02 23:16:04 +09:30
Jeremy Hu 5704525505 Fit toolbar button size #19 2018-12-02 22:02:34 +09:30
Jeremy Hu 221d6d0784 Fix jpeg plugin missing #22 2018-12-02 15:26:36 +09:30
Jeremy Hu 2c8b32978a Add contributors 2018-12-02 08:30:32 +09:30
Jeremy Hu 4981d2d078 Release 1.0.0-beta.5 2018-12-02 08:25:30 +09:30
Jeremy Hu f0334c3eec Fix crash on uvunwrapping #18 2018-12-01 23:21:53 +09:30
Jeremy Hu 25b68d2a71 Release 1.0.0-beta.3 2018-12-01 14:56:17 +09:30
Jeremy Hu 7a244c2a16 Release 1.0.0-beta.2 2018-12-01 14:14:53 +09:30
Jeremy Hu 96486f33be Change version number to 1.0.0-beta 2018-12-01 10:56:23 +09:30
huxingyi 889c11ecef Add new combine mode: Inflation
This mode turn the component to functional nodes instead of mesh construction. The mesh generated before this component will be proportional deformed.
2018-11-15 22:01:20 +08:00
huxingyi ab97615bea Add "combineMode" configuration for component to replace the "inverse" attribute
Currently, only support "Normal" and "Inversion" modes, "Normal" means normal mesh union, "Inversion" means mesh diff, it behaves like subtract itself from the previous mesh.
2018-11-14 21:21:45 +08:00
Jeremy Hu 2c8975b1cd Unify rig type of generic and tetrapod as animal
Marks also reduced to four types: Neck, Limb, Tail and Joint.
2018-11-07 00:26:19 +08:00
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 a4aefdd308 Make a abstract class for document: SkeletonDocument
This is mainly for reusing the SkeletonGraphicsEditWidget for other purpose, such as the new pose editor.
2018-11-03 16:09:42 +08:00
Jeremy Hu 1c17e25b69 Add new rig type: Generic
The difference between tetrapod and generic is that, with tetrapod, all the bones need to be generated are know before mark, so if some marks are missing, there would be a message prompted; with generic, you can mark what ever marks as you wish, and the algorithm is try to create a spine and the limbs growing on the spine, that means, the generated skeleton would be some kind of creature.
2018-11-01 23:24:06 +08:00
Jeremy Hu 79200827f5 Cleanup
Refactor outcome. Move processes of outcome to separated files, and leave the outcome class as clean as possible.
Normal export in glb format is been fixed.
Ambient occlusion baker is been temporarily removed.
2018-10-27 07:04:45 +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 637356e895 Fix undo
Add a crc64 hash check for history keeping to avoid repeated snapshot.
Besides, before, there is a logic error in the undo implementation, which recover the most recent snapshot from undo stack, so user need undo twice and at the second undo get the expected result. This incorrect behavior got fixed.
2018-10-25 14:27:59 +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
Jeremy Hu ee20aff397 Improve shortcuts
Shortcuts implementation now use QShortcut instead of using the raw key event.
Besides, hold spacebar to temporarily enter drag mode also implemented in this commit, this is very useful in zoom mode.
2018-10-24 21:44:21 +08:00
Jeremy Hu d663876c5c Rewrite the motion manager
Curve editor has been removed from this commit.
Instead of let user edit customized curve for motion, we provider presets. It's much more easy to add motion than before.
2018-10-23 22:57:47 +08:00
Jeremy Hu 6f471e7678 Smooth normal based on angle
Currently, if the angle of two faces are less than 60 degrees, the normal is not averaged.
This feature greatly boost the realistic look of the model.
2018-10-20 16:42:29 +08:00
Jeremy Hu f0783e2a1e Add fbx support (1/2)
Add dependencies for fbx format exporter.
2018-10-17 11:06:45 +08:00
Jeremy Hu a4a734a67b Repleace the uv unwrapping library with simpleuv
https://github.com/huxingyi/simpleuv
2018-10-15 23:02:31 +08:00
Jeremy Hu 1623d7d782 Update to the latest thekla_atlas 2018-10-11 08:56:09 +08:00
Jeremy Hu 5f2a46be9c Avoid unnecessary mesh regeneration while only texture map changed 2018-10-09 17:17:44 +08:00
Jeremy Hu 7eb5a325a0 Add MetalicRoughness material manager
Besides adding the PBR material manager, this commit hide some unnecessary features such as toggle wireframes and toggle normal smooth.
Add a regenerate button to indicate mesh is generating by showing a spiner, user can click this button to regenerate if the final result is not good.
Please note that, we generate the texture map by default compared to before we only generate texture map when user export glTF result. Current uvunwrap library cann't handle bad mesh very well, so it will crash on the wires model.
2018-10-09 10:19:12 +08:00
Jeremy Hu 997d9efd75 Fix build 2018-10-02 13:18:35 +08:00
Jeremy Hu b02ffedb9d Merge branch 'curveeditor' 2018-10-02 13:09:04 +08:00
Jeremy Hu ee92472027 Add motion manager
Added motions tab, hermite curve editor, quaternion overshoot blend and so on.
2018-10-02 12:59:30 +08:00
Jeremy Hu dbb23b9029 Rename library name meshlite to meshlite_ffi 2018-09-28 10:45:39 +08:00
Jeremy Hu 6ffbdc9c7b Add mesh seam combine algorithm
Not enable by default, should enable the weldEnabled in the SkeletonDocument class.
2018-09-22 18:31:02 +08:00
Jeremy Hu e22a6de6cb Add poses list view
Added Add, modify, delete, copy, and paste poses. The paste menu for nodes not show up also got fixed in this commit.
2018-09-21 15:10:18 +08:00