Commit Graph

48 Commits (dc54723f847b8536d5ec3c5b647830b819e94e9f)

Author SHA1 Message Date
huxingyi 87f5136714 Fix memory leak [skip ci] 2020-04-11 17:21:52 +09:30
huxingyi 082b5ea1f1 Fallback to uncombined when component mesh is not combinable [skip ci] 2020-04-11 16:23:12 +09:30
huxingyi 808a21a863 Apply deform to imported mesh 2020-04-08 22:16:46 +09:30
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
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 2e047e3d26 Add iteration setting for cloth simulation 2020-01-18 12:34:31 +09:30
Jeremy Hu 8775a09fa3 Fix vertex source node resolving after remesh 2020-01-17 18:24:27 +09:30
Jeremy Hu 5a59abdca4 Optimize cloth mesh simulation by enable tbb. 2020-01-13 22:54:09 +09:30
Jeremy Hu 89d49d488d Add force and offset settings for cloth simulation 2020-01-12 22:18:44 +09:30
Jeremy Hu 44cd33d799 Add stiffness setting for cloth simulation 2020-01-09 23:30:46 +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 66ac0b3b7f Add remesh polycount configure 2020-01-05 00:20:10 +09:30
Jeremy Hu 191dbacd89 Implement component remesh 2019-12-29 18:22:35 +09:30
Jeremy Hu d185f7e07a Remove disabled and cut face parts from final result. 2019-12-21 16:33:35 +09:30
Jeremy Hu 745c96eeb9 Include error mesh in final result 2019-12-15 12:52:24 +09:30
Jeremy Hu 22373b1ed7 Implement grid mesh builder 2019-12-14 22:58:14 +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 42f243746e Speed up mesh generation
Cache intermediate combination mesh for generation.
2019-08-12 22:47:11 +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 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 eb91a8a16c Prepare for cut face offset modifier 2019-07-07 15:57:58 +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 fac78b5e56 Fix preference color setting 2019-06-08 17:27:13 +09:30
Jeremy Hu 7eef3f9455 Add back the smooth shading toggle menu
As @Toshiwoz suggested, there is still a need for flat shading.
2019-05-30 19:58:55 +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 5baf139cb6 Add "Uncombined" mode
Uncombined mode could be used to avoid generation of trivial triangles. However, the result will be none-watertight if there is an uncombined mode component.
2019-05-11 21:31:13 +09:30
Jeremy Hu 160d2aae5e Show part preview in red color when there is self intersection. 2019-02-23 13:36:24 +09:30
Jeremy Hu 8053d3c3fb Improve the quality of mesh parts bridging
First, split parts by combine mode, then sub group by color name, those parts which following in the same sub group will be bridged together.
2019-02-21 08:27:15 +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 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
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
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 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 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 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 1ab3d16bd4 Fix parts render crash
Before, app crash on some machines as been reported in #15 and #16, and cannot easily be reproduced on other machines, such as a virtual box guest system, which make it very hard to trace the root cause.
Now, the offline render is totally removed from the code base, instead of offline-render to image then show the image, we can directly show the parts model in the parts tree using normal opengl widget, and the result looks better than before.
2018-09-18 14:22:29 +08:00
Jeremy Hu 48bc8df5c3 Add auto-rig
This is the second version of auto-rig, differing from the first version, the user should pick up a rig type, unless no rig will be generated. Currently, only supports Tetrapod without tail. Export as glTF format to test this feature.

This commit also achive better quality quads than before.
2018-09-14 17:45:05 +08:00
Jeremy Hu 1988118179 Add smooth shading toggle 2018-09-07 20:51:33 +08:00
Jeremy Hu 3c2d4f7480 Add mesh smooth slider
This feature could be useful for smooth one component and soften the seam of combination,
This commit also include a crash fix about incorrect use of CGAL.
2018-09-06 23:04:59 +08:00
Jeremy Hu 623dda6ecf Replace parts list with parts tree and remove immature features 2018-08-27 16:50:40 +08:00
Jeremy Hu 078543b80e Add ambient occlusion baker.
- Add @ands 's lightmapper to generate ambient occlusion image.
- Refactor parts list UI.
- Add interpolated normal to .gltf export result.
- Remove bones preview and texture preview window(Integrated to export preview UI).
- Add export preview UI.
2018-05-10 17:16:22 +08:00
huxingyi d7fb742d7b Fix build 2018-05-07 10:16:58 -07:00
Jeremy Hu 331051879d Add parts color configure and round-able configure.
- Add End-Round Type Toggle to Parts List Panel (Thanks @Alistair401 for proposing this feature).
- Add Parts Color Picker to Parts List Panel.
- Add Parts List Panel Context Menu to facilitate multiple parts visible toggle.
- Add Material Export to Export Menu.
- Prepare the source code for the auto skeleton exporter and uv unwrapper.
2018-04-26 10:23:22 +08:00
Jeremy Hu 44a8ca6351 Add part mirror 2018-04-15 20:11:51 +08:00
Jeremy Hu b95276ec06 Change subdiv stratege: subdiv after union. 2018-04-11 14:15:11 +08:00
Jeremy Hu af451bd5ab Introduce new UI,
Introduce part list,
Add log viewer,
Add QtAwesome icons.
2018-04-07 16:44:39 +08:00