Commit Graph

123 Commits (5b7c9dbc448079b3e0d21a9b046d8def4bdfc9e8)

Author SHA1 Message Date
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 713935adb5 Save cut face transforms 2019-07-03 07:19:18 +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 6fc65df6e2 Fix invalid cut face calculation cause infinite loop 2019-06-10 21:25:09 +09:30
Jeremy Hu 63d32781c1 Fix branch wrapping #32
In this commit, the wrapping algorithm consider the position of neighbor's neighbor, so the cut normal of branch nodes would looks more natural. This commit also fix the radius calculation of the branch face.
Thanks @KeepFenDou for pointing out this issue.
2019-05-28 23:49:50 +09:30
Jeremy Hu 938b6d5d6f Add color solubility setting
If one part configured color solubility, the generated color texture seam between the neighbor parts will be gradient filled using this part's color with the specified solubility.

Demo: https://twitter.com/jeremyhu2016/status/1132159910815227904
2019-05-26 08:54:24 +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 fc341986c0 Fix texture glitchs 2019-05-12 17:45:07 +09:30
Jeremy Hu fcfe51a28a Support customizable extruding face: Quad, Pentagon, Hexagon, and Triangle 2019-05-05 22:19:26 +09:30
Jeremy Hu 69b371adb9 Fix base normal 2019-03-09 23:30:19 +09:30
Jeremy Hu 4ac83a9626 Speed up mesh generating
Use CGAL inexact kernel for mesh combination.
2019-03-08 23:26:01 +09:30
Jeremy Hu 8f5bbfd758 Fix crash on linux 2019-03-08 20:25:24 +09:30
Jeremy Hu 499c3f439a Use CGAL triangulation
Replace triangulation algorithm with CGAL triangulate_faces, the quality of generated mesh improved a lot.
This commit also reduced max uv packer times.
2019-03-07 22:43:41 +09:30
huxingyi 2d841fb58b Fix build on ubuntu 2019-03-03 14:44:48 +08:00
Jeremy Hu ae32a4693b Remove comments. 2019-02-27 23:08:39 +09:30
Jeremy Hu cbaccb0116 Add cut face chamfer tool. 2019-02-27 22:29:03 +09:30
Jeremy Hu 2b44576f22 Fix cut face base normal. 2019-02-26 22:54:58 +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 b2fdb7f4e8 Fix cut rotation 2019-02-23 00:03:04 +09:30
Jeremy Hu d866e0147b Add cut rotation tool
Cut rotation tool allow user to adjust the generated face's rotation.
Convex hull wrapping tool removed in this commit.
2019-02-22 08:18:15 +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 3f3134cc0e Fix typo 2018-12-29 09:32:53 +09:30
Jeremy Hu f0334c3eec Fix crash on uvunwrapping #18 2018-12-01 23:21:53 +09:30
Jeremy Hu a2a5b774aa Fix uvunwrap
The As-Rigid-As-Possible method of parametrization sometimes failed, so added Least-Squares-Conformal-Maps method as a fallback option.
2018-11-29 11:55:55 +09:30
Jeremy Hu f6bafdb720 Fix typo 2018-11-18 07:02:12 +08:00
huxingyi 724e745f2e Update meshlite_ffi
Fix radius setting for single node
2018-11-14 13:27:36 +08:00
Jeremy Hu 955ebce009 Fix build 2018-10-25 14:46:21 +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 096c107775 Add fbx export support (2/3)
Currently, only mesh exported. Tested in Blender 2.79 and Unity 2017.4.1f1 Personal (64bit).
2018-10-20 13:07:11 +08:00
Jeremy Hu 328f26429b Optimize deform
see 3ff01306d0
2018-10-18 15:43:58 +08:00
Jeremy Hu c06a23d52e Fix build 2018-10-17 12:53:18 +08:00
Jeremy Hu b2a77caffc Fix build 2018-10-17 12:35:15 +08:00
Jeremy Hu 660e3d6a58 Fix fbx build 2018-10-17 11:59:21 +08:00
Jeremy Hu 0608e2af1c Fix uv unwrapper
UV unwrapper may run into infinite loop if the parametrization failed with some infinite value.
2018-10-17 11:19:17 +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 7fbdf6a8bd Remove thekla_atlas
Now, we have our own automatic uv unwrapping library: simpleuv
thekla_atlas works good on good mesh, however, sometimes, it crashs and cann't handle bad cases very well.
2018-10-16 08:09:04 +08:00
Jeremy Hu 7fa29dcc48 Fix texture generation 2018-10-16 08:04:08 +08:00
Jeremy Hu 7e0591de6b Fix build 2018-10-16 00:21:05 +08:00
Jeremy Hu 640b84b2f2 Fix build 2018-10-15 23:22:49 +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 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 308bc48c54 Add author @anderejd from meshlite library 2018-10-05 23:58:00 +08:00
Jeremy Hu 9c0da8f38f Replace the render with PBR
In this commit, another PBR render, come from website: https://learnopengl.com/PBR, also included as shaders/pbr-joey.frag
2018-10-05 15:37:01 +08:00
Jeremy Hu dbb23b9029 Rename library name meshlite to meshlite_ffi 2018-09-28 10:45:39 +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 e0621edff1 Fix deform width 2018-09-03 17:16:40 +08:00
Jeremy Hu df9c8e8e3c Add wrap button to enable use controlled convex hull generation for part.
This feature could be useful to generate complex mesh as part.
2018-08-31 12:54:32 +08:00
Jeremy Hu 4fa276c9e2 Remove g++-4.9 requirement 2018-06-27 08:19:14 +08:00
Jeremy Hu c4505ba788 Add intermediate bone remover.
- Remove intermediate bones when user marked leg nodes
- Add flags to toggle gltf comment and normal output
- Fix face normal
- Adjust the skeleton bone mesh radius
2018-06-01 12:38:16 +08:00
Jeremy Hu 03e81e0cdb Fix single node deform 2018-05-12 07:19:04 +08:00
huxingyi db0f0b3ed2 Fix ubuntu build 2018-05-10 23:18:22 +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
Jeremy Hu 1376af237b Add auto uv unwrapping.
Use https://github.com/Thekla/thekla_atlas to generate the texture.
This commit still have some issues, some faces not satisfy thekla_atlas in some cases.

- Add texture preview widget.
- Fix single node black color issue.
- Export texture in .gltf file.
- Fix node order random issue in mesh generation.
2018-05-08 00:08:19 +08:00
Jeremy Hu 3fef6c4463 Add auto-generated skeleton(skinned mesh) and glTF exporter.
And added a CONTRIBUTORS file to list the users who have done great work to help Dust3D become better, thank you!

@Alistair401
@hdu
@shadowndacorner
@Skullfurious
@RSDuck
@xtvjxk123456
@Zireael07
@glasyalabolas
@dlpatri

PS. please feel free to make a pull request or email me to change the ID or contact info listed in the CONTRIBUTORS file, and if you are mistakenly been missed in the file, please MUST edit this file and make a PR or email me.
2018-04-30 19:31:09 +08:00
Jeremy Hu 9643920515 Fix UI too small and crash on bad mesh problem.
The model generating speed may become slightly slower than the previous version because of the extra checks.

This closes #1, and closes #3
2018-04-23 08:10:01 +08:00
Jeremy Hu f1b219333f Fix deform 2018-04-18 00:14:31 +08:00
Jeremy Hu ce41e654fb Add thickness parameter for part.
It's showed as mini button on part list widget, this parameter can be use to make fish body like mesh.
2018-04-17 21:13:32 +08:00
Jeremy Hu 9fc345e1e3 Update meshlite dll 2018-04-16 19:07:06 +08:00
Jeremy Hu a201d09535 Change subdiv from global to cut face, this makes the final result far much better 2018-04-16 08:58:04 +08:00
Jeremy Hu b7499199c8 Add meshlite dll download script 2018-04-15 23:17:09 +08:00
Jeremy Hu ba61019b5b Fix mesh hole 2018-04-15 23:15:29 +08:00
Jeremy Hu 44a8ca6351 Add part mirror 2018-04-15 20:11:51 +08:00
huxingyi 6bd08068b2 Fix qt pro for windows 2018-04-13 06:03:42 -07:00
Jeremy Hu 8ee0dee3db Remove carve and other no-use deps 2018-04-08 16:05:12 +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
Jeremy Hu 09d21e8935 Add skeleton snapshot support (Prepare for undo/redo feature) 2018-03-26 20:41:46 +08:00
Jeremy Hu 425962921e Add carve library to support better mesh boolean operations 2018-03-17 17:21:17 +08:00
Jeremy Hu 20f4b669bb Add icons 2018-03-13 20:49:24 +08:00