Commit Graph

352 Commits (95c3607996eece3e86f9b42e0f76c45c8734db01)

Author SHA1 Message Date
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
Jeremy Hu 8c0156bc7a Add example model: Bob
Add menu item "Open Example", open a default example model, called "bob.ds3".
Thanks to reddit user(bvanevery) for proposing this feature.
2019-03-01 22:34:46 +09:30
Jeremy Hu cbaccb0116 Add cut face chamfer tool. 2019-02-27 22:29:03 +09:30
Jeremy Hu 86978d0ac3 Add new cut face type: triangle 2019-02-27 08:25:29 +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 7491679425 Remove smooth operation from component mesh. 2019-02-23 22:40:11 +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 b86837b4b0 Add shortcut 'W' for toggling wireframe. 2019-02-23 10:11:56 +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 de133b0838 Hide whole model rotating buttons 2019-02-21 21:54:45 +09:30
Jeremy Hu 4922c669ba Add wireframe toggle back 2019-02-21 21:49:26 +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 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 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
Jeremy Hu 3f3134cc0e Fix typo 2018-12-29 09:32:53 +09:30
Jeremy Hu ef82f2cc6f Change background opacity of pose editor
When one pose consists of multiple frames, each frame will be hardly see when the opacity is 0.25, this commit change the opacity to 0.5 in pose editor, however, leave it as 0.25 in main modeling interface.
2018-12-16 14:59:22 +09:30
Jeremy Hu ff65a24f32 Fix node scaling with keyboard on add mode
Node scaling only worked with mouse on add mode before, now should be also working with keyboard.
2018-12-15 23:11:02 +09:30
Jeremy Hu 7fe87b2dee Fix double click selection in pose editor
Double click should select connected items only, not select all.
2018-12-11 21:25:55 +09:30
Jeremy Hu f19771fbb1 Fix minimum node radius 2018-12-09 12:20:15 +09:30
Jeremy Hu 251e1f5a6e Fix toolbar icon size #19 2018-12-03 22:56:20 +09:30
Jeremy Hu 08b20e4d5b Fit right sub widget size #19 2018-12-02 23:16:04 +09:30
Jeremy Hu 5704525505 Fit toolbar button size #19 2018-12-02 22:02:34 +09:30
Jeremy Hu ba218b7168 Make the font default size #19 2018-12-02 08:24:04 +09:30
Jeremy Hu ebe97adcde Export metallic, roughness and ambient occlusion map to fbx file 2018-11-28 12:30:03 +09:30
Jeremy Hu 0bee294c7f Put base name into texture image name as prefix 2018-11-28 11:19:22 +09:30
Jeremy Hu b60b9d8691 Embed textures(Color/Normal) to FBX 2018-11-28 00:14:56 +09:30
Jeremy Hu 1866e8fbda Export normal texture and ORM texture to glTF 2018-11-18 08:16:26 +08:00
Jeremy Hu aea7b0cb74 Switch the order of ORM combined texture
Red: Ambient Occlusion
Green: Roughness
Blue: Metallic
2018-11-18 07:30:26 +08:00
Jeremy Hu f6bafdb720 Fix typo 2018-11-18 07:02:12 +08:00
Jeremy Hu 538528d103 Fix normal tangent
Some tangents did not get calculate, this cause some uncolored triangles show in the rendered model, this commit fixed it.
2018-11-17 23:42:46 +08:00
Jeremy Hu 1853e45ea4 Remove model preview from export widget 2018-11-17 17:10:08 +08:00
Jeremy Hu e39acc9f25 Add normal map preview 2018-11-16 13:55:52 +08:00
Jeremy Hu 69d97c7780 Fix build 2018-11-16 07:13:15 +08:00
Jeremy Hu d48bea6248 Merge branch 'master' of https://github.com/huxingyi/dust3d 2018-11-16 07:01:53 +08:00
Jeremy Hu 7f5a47c074 Fix merged texture image
The merged texture image of metalness, roughness and ambient occlusion did not get saved in the document class, this commit fixed it.
2018-11-16 06:56:24 +08:00
huxingyi 9b56ce2dd3 Fix wheel event on windows
The mouse wheel event got triggered on multiple widgets at the same time, this will cause the rendered model been wrongly zoomed while the intention is resizing the nodes.
2018-11-15 22:33:56 +08:00
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
huxingyi ab97615bea Add "combineMode" configuration for component to replace the "inverse" attribute
Currently, only support "Normal" and "Inversion" modes, "Normal" means normal mesh union, "Inversion" means mesh diff, it behaves like subtract itself from the previous mesh.
2018-11-14 21:21:45 +08:00
huxingyi 753dfe9d8f Make the inverted component more obvious
Mark inverted components as blue to differentiate with normal components.
2018-11-14 11:11:31 +08:00
Jeremy Hu 1f8f7913a7 Improve mesh generation
Insert intermediate nodes automatically between nodes of long edges to avoid generating tiny area but long edge triangles.
2018-11-12 07:21:34 +08:00
Jeremy Hu 39cfe6537d Speed up document saving
If there are images need to be saved, such as the model turnaround reference sheet and texture images, the document saving may be slow because of image encoding to png, now, all the images are pre encoded when the first load, so the document saving could be speed up by avoid the cost of image encoding.
2018-11-11 21:08:13 +08:00
Jeremy Hu dff8e40ef8 Fix PBR material preview
The metallic and roughness texture not show up before, now should be ok if material is been set properly, however, export not done yet.
2018-11-11 17:13:46 +08:00
Jeremy Hu 4416c05bb5 Export translation to FBX 2018-11-11 11:14:49 +08:00
Jeremy Hu 9231ce9162 Fix pose setting: Height above ground level.
Root bone will have heightAboveGroundLevel parameter to indicate the distance between ground and foot. It's a relative value, comparing with the distance of the first spine head position and foot.
2018-11-11 00:05:49 +08:00
Jeremy Hu 205a9f512f Fix paste shortcut for pose editor 2018-11-10 08:21:07 +08:00
Jeremy Hu 69b0fbd68d Add switch chain side action for pose editor
It's very easy to place the wrong side limbs on the pose graphic editor, especially when the reference sheet is not clear. Switch chain side will switch the YZ for the paired chain which contains the selected node. For example, if you select one node from LeftLimb1, and choose the switch chain side from context menu, all the bones, has the name pattern LeftLimb1_Joint* and RightLimb1_Joint*, the YZ of origin will be swapped.
2018-11-10 07:56:58 +08:00
Jeremy Hu ddc837b47c Smooth first and last frame of pose sheet 2018-11-10 07:06:27 +08:00
Jeremy Hu 8a2298bfcb Smooth pose sheet
Simple smooth algorithm: average the frame transform with neiboring frames.
2018-11-09 23:42:20 +08:00
Jeremy Hu bbe36fde68 Change dialog save button action
Don't close dialog when save button got clicked
2018-11-09 23:07:26 +08:00
Jeremy Hu fff39b0835 Add multiple frames per pose support
Usually one pose consists of one frame, however, sometimes multiple frames per one reference sheet for a serial of action could be very useful, such as a sprite sheet. Multiple frames per pose is different with one motion, one motion could contains multiple poses. Currently, the duration of one frame is fixed to 0.042s, it's based on the 24 frames per second calculation.
2018-11-09 11:20:48 +08:00
Jeremy Hu a551995235 Fix inconsistent result between pose editor preview and motion generation
Each bone's head and tail positions are been kept in the pose parameters, that means there are repeated info and we can resolve the bone's head position from parent's tail position if there isn't any positions info been kept for one bone.
2018-11-08 16:01:25 +08:00
Jeremy Hu f0379740ca Fix wrong middle bone index 2018-11-07 23:46:26 +08:00
Jeremy Hu 73d4676675 Make spine bones in the middle of bind vertices vertically or horizontally 2018-11-07 23:12:40 +08:00
Jeremy Hu 01b164cdae Fit control bones in pose canvas
Add scale factor to make all the bones fit in the canvas of pose editor
2018-11-07 22:48:24 +08:00
Jeremy Hu 1543c1a6c7 Fix rig
Improve the quality of main body resolving.
2018-11-07 16:02:55 +08:00
Jeremy Hu 2c8975b1cd Unify rig type of generic and tetrapod as animal
Marks also reduced to four types: Neck, Limb, Tail and Joint.
2018-11-07 00:26:19 +08:00
Jeremy Hu d72738feb1 Fix build 2018-11-06 06:41:39 +08:00
Jeremy Hu 70f075a36e Rewrite pose editor
This commit include lots of changes for pose editor.
Before, we use buttons to represent the transform controller for bones;
Now, we use nodes and edges to represent the bones, just like the nodes and edges for representing the guide spheres for mesh generating. There are advantages by doing this. Firstly, The edit UI for both mesh and pose are unified, secondly, it is possible to set a reference sheet for pose editing now, this is very important.
This new pose editor is inspired by the Eadweard Muybridge's work.
2018-11-05 23:47:21 +08:00
Jeremy Hu a4aefdd308 Make a abstract class for document: SkeletonDocument
This is mainly for reusing the SkeletonGraphicsEditWidget for other purpose, such as the new pose editor.
2018-11-03 16:09:42 +08:00