Commit Graph

120 Commits (cb192bdaa6522da5245bbd0ffa85ab0526d071c1)

Author SHA1 Message Date
huxingyi cb192bdaa6 Change to single instance with multiple windows 2020-04-04 10:24:05 +09:30
Jeremy Hu 4eddbaa2b7 Fix negative skinning weight 2020-03-11 21:33:41 +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 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 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 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