Commit Graph

115 Commits (cc0db997a4059a164133943c489b2fc4892fa750)

Author SHA1 Message Date
Jeremy Hu cc0db997a4 Fix vector uninitialized 2019-12-31 21:35:31 +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 103ca74458 Fix crash 2019-12-30 19:58:26 +09:30
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 22373b1ed7 Implement grid mesh builder 2019-12-14 22:58:14 +09:30
Jeremy Hu 416ada241d Change subdivision algorithm and fix example models 2019-11-02 16:42:05 +09:30
Jeremy Hu 4bd14b935d Average cut face edge length 2019-11-01 22:03:10 +09:30
Jeremy Hu 17cb1cb059 Introduce bullet3 to support ragdoll procedural animation 2019-09-22 00:00:27 +09:30
Jeremy Hu e725bdba8c Fix angle calculation 2019-08-19 21:09:21 +09:30
Jeremy Hu 9ed4c29b39 Add hollow thickness parameter 2019-08-18 21:32:39 +09:30
Jeremy Hu adadab65ea Remove temporary deforming maps 2019-08-18 10:43:48 +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 d27c3fb313 Update nodes ordering algorithm 2019-08-14 17:56:15 +09:30
Jeremy Hu d672e0688f Change nodes sort algorithm
Before, the nodes sort algorithm is not stable across different platform, this commit is trying to fix it.
2019-08-13 22:32:36 +09:30
Jeremy Hu 30fbfad8f9 Change scale factor during subdivision 2019-08-13 07:29:14 +09:30
Jeremy Hu 471a324bb3 Add UV island padding 2019-08-11 22:27:02 +09:30
Jeremy Hu 877ef1ff4c Fix build 2019-08-10 23:51:38 +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 b840482050 New improvement on UV unwrapping
Automatically try rotating each island on 5, 15, 20, 25, 30, 35, 40, 45 degrees, and choose the best rotation.
2019-08-10 12:24:47 +09:30
Jeremy Hu 96f676cae0 Improve UV quality
Now there are more pieces been generated during unwrapping but the overall quality is better than before.
2019-08-10 10:31:23 +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 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 e2b221533b Fix example meerkat model and disable debug output in command line 2019-07-29 17:49:01 +09:30
Jeremy Hu 0f411d3bd9 Fix inconsistent base normal when shape is too straight 2019-07-27 14:12:07 +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 3e82ee597e Add local average base normals
The base normal of each node will be averaged by sum of all the neighbors' base normal.
2019-07-22 19:10:37 +09:30
Jeremy Hu 930b7ad4a6 Fix quickjs build on linux 2019-07-22 07:44:16 +09:30
Jeremy Hu a7758fcccd Rename quickjs folder to indicate it's modified 2019-07-21 23:42:53 +09:30
huxingyi 48540e297d Fix quickjs crash on windows 2019-07-21 05:22:10 -07:00
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 013c671451 Fix intermediate nodes generation 2019-07-11 22:22:44 +09:30
Jeremy Hu 81fec2ed44 Update intermediate nodes filling threshold edge length 2019-07-11 20:50:34 +09:30
Jeremy Hu 3c2b60a8cc Fix mesh failure when direction of two nodes parallel to z axis 2019-07-11 19:54:52 +09:30
Jeremy Hu f7b865f18b Fix intermediate cut face 2019-07-11 19:25:52 +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 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