Refactor outcome. Move processes of outcome to separated files, and leave the outcome class as clean as possible.
Normal export in glb format is been fixed.
Ambient occlusion baker is been temporarily removed.
The normals haven't fix yet, this commit is mainly preparing for the next coming commits about animation export.
The glTF text format abandoned for the binary format.
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.
Many source file name and data type are prefixed by "skeleton" before, now all are refactored.
The class MeshResultContext represents the outcome of mesh generation before, now we have material, pose and animation, so we just rename it as Outcome.
Shortcuts implementation now use QShortcut instead of using the raw key event.
Besides, hold spacebar to temporarily enter drag mode also implemented in this commit, this is very useful in zoom mode.
Before we use a tricky way to share mouse event between model render widget and model edit widget, which forward the event from render widget to edit widget. This will cause some problem, such as the scroll bar of edit widget would not work when it covered by the render model.
Now the mouse event is totally disabled in the render widget, and when there is a need we forward it from edit widget.
Curve editor has been removed from this commit.
Instead of let user edit customized curve for motion, we provider presets. It's much more easy to add motion than before.
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.
Before, app crash on some machines as been reported in #15 and #16, and cannot easily be reproduced on other machines, such as a virtual box guest system, which make it very hard to trace the root cause.
Now, the offline render is totally removed from the code base, instead of offline-render to image then show the image, we can directly show the parts model in the parts tree using normal opengl widget, and the result looks better than before.
This is the second version of auto-rig, differing from the first version, the user should pick up a rig type, unless no rig will be generated. Currently, only supports Tetrapod without tail. Export as glTF format to test this feature.
This commit also achive better quality quads than before.
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.
If multiple nodes or end effector node been selected and rotate, the behaves remain the same as before, however, if single node in the middle been selected and rotated, all the children of this node will be rotated. This could be useful to rotate the tail or leg from joint.
This is useful for making hole surface. For example, without subtraction, it's difficult to make a bucket like mesh, now, you just need to copy and paste the nodes, invert it from the Parts List Panel Context Menu, then down scale and move up a little bit.
This is an experiment test of animation clip generation. Mark leg and spine nodes to enable it or check it with the latest mosquito.ds3 example;
Skeleton offset is been fixed in this commit.
- 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
User can mark selected nodes as specified body location explictly. This will help the rigging step generating more reasonable result, also prepared for the future animation clip generation.
- Implement CCD (Cyclic Coordinate Descent) IK (Inverse Kinematics) algorithm
- Add end-effector pulling operation, this would be useful when you want to pull a group of nodes in line to align straight or mimic curl.
In the previous version, the nodes get selected and copied, without lost selection after new nodes pasted.
This commit fix this problem. Now, the old nodes lose selection while new pasted nodes gettting selected.
This feature will make the following use case much easier:
Extrude:
Select some nodes, copy, paste then scale.
The symmetry feature is not funtional when there is no turnaround reference sheet loaded.
This should fix the problem by load a empty background image.
Thanks @xtvjxk123456 for addressed this issue, https://github.com/huxingyi/dust3d/issues/6
This is mainly for resolving the baking time consuming issue when running in software OpenGL.
Compare to normal OpenGL which would only take seconds to bake, software OpenGL take minutes to bake a complex model.
Separating the baking phase would allow the user to export the result without baking.
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.
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.
- Add End-Round Type Toggle to Parts List Panel (Thanks @Alistair401 for proposing this feature).
- Add Parts Color Picker to Parts List Panel.
- Add Parts List Panel Context Menu to facilitate multiple parts visible toggle.
- Add Material Export to Export Menu.
- Prepare the source code for the auto skeleton exporter and uv unwrapper.
ALT + LEFT BUTTON: Rotate rendered model
ALT + SHIFT + LEFT BUTTON: Move rendered model
Thanks @Zireael07 and @glasyalabolas for proposing this feature.
Closes#4
> Another problem is your model seems to have an inverted Z export.
> by https://www.reddit.com/user/Skullfurious
Node coord system: Screen
Mesh generation coord system:
x-axis: --- Main Profile (Red) --->
z-axis: --- Side Profile (Green) --->
y-axis: UP
Thanks the follow reddit users:
https://www.reddit.com/user/Skullfurious
Tab key press switch the profile of selection, this makes the item more easy to be selected on the other profile and then switch to this profile to edit, while the item is very hard to be selected in this profile.
Now can check part from part list widget, double click it will check the whole part to graphics view, and also, if the part's node or edge been hovered or checked, the first one's part will be highlighted in the part list.
Jezzasoft
Font family: Myriad Pro Bold
Font size: 32px
Dust3D
Font family: Klavika Bold
Font size: 48px
GIMP:
Font color: black
Adjust brightness and Contrast
Contrast: -50