Commit Graph

412 Commits (c251d4aa21aadfbfe06938b561d394e26c7b7c86)

Author SHA1 Message Date
Jeremy Hu a5bfe83cea Add authoring tool's version info to .obj file #42
Thanks @lewislepton for the suggestion.
2019-09-22 07:42:11 +09:30
Jeremy Hu 17cb1cb059 Introduce bullet3 to support ragdoll procedural animation 2019-09-22 00:00:27 +09:30
Jeremy Hu ee94913c62 Limit the zoom size of the rendered widget 2019-08-21 08:29:50 +09:30
Jeremy Hu c4da15eb9e Add batch color paste #36
Thanks @SatishGodaPearl for the suggestion.
Closes #36
2019-08-20 23:59:08 +09:30
Jeremy Hu e725bdba8c Fix angle calculation 2019-08-19 21:09:21 +09:30
Jeremy Hu 85f1251082 Fix hollow thickness UI 2019-08-18 22:48:55 +09:30
Jeremy Hu 9ed4c29b39 Add hollow thickness parameter 2019-08-18 21:32:39 +09:30
Jeremy Hu 0077986201 Adjust brush gradient fill factor 2019-08-18 14:51:10 +09:30
Jeremy Hu 3701002fac Fix default deforming scale 2019-08-18 14:28:27 +09:30
Jeremy Hu adadab65ea Remove temporary deforming maps 2019-08-18 10:43:48 +09:30
Jeremy Hu 95c3607996 Fix paint mode 2019-08-17 21:02:18 +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 da6861f6aa Fix build 2019-08-13 07:48:21 +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 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 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 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 f3f77bc3a8 Fix default button on Windows #41
Thanks to @joshcamas
2019-08-01 07:24:58 +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 7a12f78984 Fix poser failure because of incorrect translated rig bone name in Simplified Chinese. 2019-07-29 17:33:35 +09:30
Jeremy Hu 2cd3aee520 Add procedural tree to example menu 2019-07-27 17:21:45 +09:30
Jeremy Hu a833232d3c Exposure document.canvas to javascript api 2019-07-27 10:37:07 +09:30
Jeremy Hu 1f34b95776 Fix script variable inputs 2019-07-26 16:35:41 +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 cc51fdafe0 Add menu: Check for Updates 2019-07-24 22:11:55 +09:30
Jeremy Hu 0b2653362a Support open/export from command line
Usage example(on MacOS):
    $ ./dust3d.app/Contents/MacOS/dust3d /Users/jeremy/Desktop/test.ds3 -o /Users/jeremy/Desktop/test.glb
    $ echo $?
2019-07-23 19:43:58 +09:30
Jeremy Hu 2c072fc083 Change script editor's text color and add new js api: document.attribute 2019-07-23 07:02:43 +09:30
Jeremy Hu fd7dbb2024 Optimize cut face endpoints sort algorithm 2019-07-22 18:24:55 +09:30
Jeremy Hu 54b1c95270 document.createVariable return float instead of string 2019-07-22 17:32:35 +09:30
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 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 ab5e53fb54
Fix build error on Raspberry PI 3 Model B+ 2019-07-09 18:12:08 +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 7c66e6b5d0 Sort cut face list by x position of center 2019-07-08 07:33:39 +09:30
Jeremy Hu 58b6c7d1d9 Fix build 2019-07-07 20:40:24 +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 820aa90406 Rename Vertex to ShaderVertex
Fix crash on hiding nodes after removing node
2019-07-04 19:06:50 +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 969a25b697 Fix crash in cut face nodes ordering
The comparison function of std::sort requires only return true when first is less than second, this is the rule of "strict weak ordering".
2019-06-29 19:12:45 +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 0543e8a0be Fix default flat shading 2019-06-26 21:34:10 +09:30
Jeremy Hu 1d04e1771e Disable three nodes branch by default
Three nodes branch wrapping is very easy to fail, so disable by default.
2019-06-26 21:05:56 +09:30
Jeremy Hu 4689ed163a Sort material, pose, and motion list by name 2019-06-26 07:24:22 +09:30
Jeremy Hu 7a33fa2531 Remove neck direction match
The neck direction match is introduced for matching the human pose to a animal pose, however, current implementation will cause the neck pose not work as edited in pose editor.
2019-06-25 22:13:57 +09:30
Jeremy Hu a945612718 Fix part mesh generation variation
Before this commit, the node id and edge id changed when reload from file, then caused the uuid changing and affected the node processing order during mesh generation.
2019-06-25 21:07:17 +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 516df9a1b7 Add new pose setting: yTranslationScale
Normally, when pose been generated, foot is always been pulling to the ground by a y-translation. This setting could be used to scale the y-translation. It's usefull for birds fly kind of motion.
2019-06-19 22:27:38 +09:30
Jeremy Hu 3e29528ee0 Fix pose preview flicker 2019-06-19 06:36:11 +09:30
Jeremy Hu e5f45eef83 Fix pose preview 2019-06-18 08:16:59 +09:30
Jeremy Hu 56ddc1f8ee Add side visibility toggle button to pose editor 2019-06-17 22:19:08 +09:30
Jeremy Hu bc565923aa Add background blur adjustment slider to pose editor 2019-06-16 18:15:03 +09:30
Jeremy Hu 629c02adbe Fix multiple windows crash when preference change 2019-06-12 21:03:38 +09:30
Jeremy Hu 5443909c1d Add more built-in example models 2019-06-11 08:17:12 +09:30
Jeremy Hu 307965e3e8 Fix motion generator 2019-06-10 23:31:06 +09:30
Jeremy Hu e145793af0 Fix neck direction match 2019-06-10 23:11:40 +09:30
Jeremy Hu be4f9fd014 Fix last spine position 2019-06-10 22:27:51 +09:30
Jeremy Hu ec1eace6bb Match the missing bone parameters 2019-06-10 18:55:35 +09:30
Jeremy Hu 033ea5f53e Change the spine bone naming convention
When there is tail bone, the spine bone start with "Spine01" and "Spine02", this is to make the spine bone name match with none-tail bones. Why "Spine01"? Because the bone chain is ordered by name, "Spine01" and "Spine02" come before "Spine1".
2019-06-10 16:12:08 +09:30
Jeremy Hu 0b18da76ea Add bone name converter but not enable yet. 2019-06-10 15:49:35 +09:30
Jeremy Hu 6ca06f4e80 Fix rig
Fix the left and right limbs pairing algorithm
2019-06-10 10:09:30 +09:30
Jeremy Hu de88930acb Adjust smooth threshold of animation generation 2019-06-09 20:40:24 +09:30
Jeremy Hu c568d18218 Change the behavior of multiple selected nodes scaling
Before this commit, the scaling only happen on one profile, this commit force the scaling on front view and side view at the same time.
2019-06-09 14:28:09 +09:30
Jeremy Hu fac78b5e56 Fix preference color setting 2019-06-08 17:27:13 +09:30
Jeremy Hu 4955e47d76 Update pose editor node radius 2019-06-07 08:09:46 +09:30
Jeremy Hu 026059960f Fix preferences color reset 2019-06-07 06:41:55 +09:30
Jeremy Hu 54b5a9ef5e Fix one frame pose duration issue in motion editor
This commit also remove height above ground settings.
2019-06-06 23:48:48 +09:30
Jeremy Hu 0cb574b6ea Fix user defined cut face flipped normal 2019-06-05 21:52:34 +09:30
Jeremy Hu 1bb14a82a6 Fix PBR material texture glitches 2019-06-02 10:48:03 +09:30
Jeremy Hu 292d2ce507 Add none endpoint cut face (ring) 2019-06-01 23:45:57 +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 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 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 b09df89da2 Fix build 2019-05-19 13:08:20 +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 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 d121632a98 Fix triangle extruding face center position. 2019-05-05 22:58:22 +09:30
Jeremy Hu fcfe51a28a Support customizable extruding face: Quad, Pentagon, Hexagon, and Triangle 2019-05-05 22:19:26 +09:30
Jeremy Hu 0a6736b9d2 Change RemoteIo bind ip from local host to any
This would allow other software to contact with Dust3D without limit on the same machine, however, the user still need to enable it by command line "-remoteio".
2019-03-31 09:57:18 +09:30
Jeremy Hu ea63a5ecd0 Fix missing library on windows 2019-03-31 06:45:52 +09:30
Jeremy Hu 278ac68ea6 Add Remote IO protocol specification
To enable Remote IO, run Dust3D with command line options: -remoteio
See details: http://docs.dust3d.org/en/latest/remote_io_protocol.html
2019-03-23 00:03:17 +09:30
Jeremy Hu b8c3557d9c Implement more commands for Remote IO (2) 2019-03-20 20:34:37 +09:30
Jeremy Hu 56312d0034 Implement more commands for Remote IO 2019-03-18 08:34:37 +09:30
Jeremy Hu 283df87c51 Implement notification of Remote IO 2019-03-17 23:34:12 +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 a1249f5fcb Fix material preview. 2019-03-16 15:32:45 +09:30
Jeremy Hu bc3109def9 Prepare 1.0.0-beta.16 2019-03-10 11:26:54 +09:30
Jeremy Hu e2f829d3ce Make chamfer tool as a separate tool
Remove cut template customiziation.
2019-03-10 07:40:39 +09:30
Jeremy Hu 26353d530a Support onion skin in pose editor
Also add more buttons to speed up the pose editing.
Thanks @Toshiwoz for proposing this feature.
2019-03-03 09:35:13 +09:30