Commit Graph

300 Commits (5443909c1d5f6ad6d3d8ec3e9b33c83d1a4af145)

Author SHA1 Message Date
Jeremy Hu 0cecff71c7 Separate ambient occlusion baker to a different phase.
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.
2018-05-11 13:27:29 +08:00
huxingyi db0f0b3ed2 Fix ubuntu build 2018-05-10 23:18:22 +08:00
huxingyi 8a6a2a6640 Fix windows build 2018-05-10 03:21:24 -07:00
Jeremy Hu 078543b80e Add ambient occlusion baker.
- Add @ands 's lightmapper to generate ambient occlusion image.
- Refactor parts list UI.
- Add interpolated normal to .gltf export result.
- Remove bones preview and texture preview window(Integrated to export preview UI).
- Add export preview UI.
2018-05-10 17:16:22 +08:00
huxingyi d7fb742d7b Fix build 2018-05-07 10:16:58 -07:00
Jeremy Hu 1376af237b Add auto uv unwrapping.
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.
2018-05-08 00:08:19 +08:00
Jeremy Hu 3fef6c4463 Add auto-generated skeleton(skinned mesh) and glTF exporter.
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.
2018-04-30 19:31:09 +08:00
Jeremy Hu 331051879d Add parts color configure and round-able configure.
- 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.
2018-04-26 10:23:22 +08:00
Jeremy Hu d930ceec96 Add alt key to enable rendered model rotate and move.
ALT + LEFT BUTTON: Rotate rendered model
ALT + SHIFT + LEFT BUTTON: Move rendered model

Thanks @Zireael07 and @glasyalabolas for proposing this feature.

Closes #4
2018-04-23 10:14:32 +08:00
Jeremy Hu 9643920515 Fix UI too small and crash on bad mesh problem.
The model generating speed may become slightly slower than the previous version because of the extra checks.

This closes #1, and closes #3
2018-04-23 08:10:01 +08:00
Jeremy Hu ca1b938e2c Highlight all profiles when mouse hovered
Implement the feature as been proposed in this video:
https://www.youtube.com/watch?v=YBnEQk_5D70

Thanks Serapth and his amazing youtube channel - Gamefromscratch for proposed this feature

Serapth's Reddit: https://www.reddit.com/user/Serapth
Gamefromscratch Youtube Channel: https://www.youtube.com/channel/UCr-5TdGkKszdbboXXsFZJTQ
2018-04-21 08:23:27 +08:00
Jeremy Hu 71e1a51b43 Fix export y-flipped.
> 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
2018-04-20 20:00:57 +08:00
Jeremy Hu e9c0bf8a3c Fix overlapped nodes pick
> The circles representing nodes in the model get overlapped very easily and it can be hard to select individual ones
> @Alistair401

> For overlapping nodes, you can make it a bit better by selecting the node center nearest the mouse, rather than simply checking against the wider circle.
> @hdu

Thanks the following reddit users:

https://www.reddit.com/user/Alistair401
https://www.reddit.com/user/shadowndacorner
https://www.reddit.com/user/hdu
2018-04-20 15:38:08 +08:00
Jeremy Hu c61665c8a4 Add reference guide link to help menu 2018-04-18 21:18:10 +08:00
Jeremy Hu 06e5635a80 Fix graphics node visible state when recover from snapshot 2018-04-18 11:25:36 +08:00
Jeremy Hu b0bdfe3742 Add more shortcuts for part manipulation.
H: (H)idden
J: (J)join
L: (L)ock
B: (B)ox
M: (M)irror

When xyz pressed without ctrl modifer:
X: X-axis
Y: Y-axis
Z: Z-axis
2018-04-18 11:14:48 +08:00
Jeremy Hu a7d45a9458 Fix undo not added when operate on part list 2018-04-18 10:37:50 +08:00
Jeremy Hu 402ee09350 Add selection profile switch.
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.
2018-04-18 10:16:54 +08:00
Jeremy Hu fe11e097d9 Add check part and show part check status.
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.
2018-04-18 09:49:23 +08:00
Jeremy Hu f1b219333f Fix deform 2018-04-18 00:14:31 +08:00
Jeremy Hu ce41e654fb Add thickness parameter for part.
It's showed as mini button on part list widget, this parameter can be use to make fish body like mesh.
2018-04-17 21:13:32 +08:00
Jeremy Hu a1107b5412 Add xyz lock 2018-04-17 06:54:41 +08:00
Jeremy Hu dd976b7fc2 Adjust color theme for part list mini button to make a better visible effect 2018-04-16 20:06:48 +08:00
Jeremy Hu bdb893eb1d Add [align to center] action 2018-04-16 15:12:53 +08:00
Jeremy Hu a201d09535 Change subdiv from global to cut face, this makes the final result far much better 2018-04-16 08:58:04 +08:00
Jeremy Hu e9d0696be6 Reduce faces 2018-04-15 23:55:48 +08:00
Jeremy Hu ba61019b5b Fix mesh hole 2018-04-15 23:15:29 +08:00
Jeremy Hu 0d4c926476 Fix origin item position not get updated when window resized 2018-04-15 20:50:56 +08:00
Jeremy Hu a441c73f55 Add rendered model wireframe toggle action inside view mesh 2018-04-15 20:48:54 +08:00
Jeremy Hu 44a8ca6351 Add part mirror 2018-04-15 20:11:51 +08:00
Jeremy Hu 3295c1b767 Fix incorrect initial edit mode 2018-04-13 09:42:19 +08:00
Jeremy Hu 30971048de Add zoom/scale/rotate/move key 2018-04-13 09:27:28 +08:00
Jeremy Hu 8a6dd60450 Add editable check when select 2018-04-13 08:19:31 +08:00
Jeremy Hu 8c37bc06dc Add group rotation 2018-04-13 08:04:18 +08:00
Jeremy Hu 8773ddd7ef Fix group move 2018-04-12 22:35:50 +08:00
Jeremy Hu 47bb8b5f0b Add alt modifier for range selection 2018-04-12 21:24:51 +08:00
Jeremy Hu dbe7f1828d Add nodes connect 2018-04-12 20:46:13 +08:00
Jeremy Hu 2d5b6eca9b Add edge break 2018-04-12 20:27:21 +08:00
huxingyi 534c472b53 Fix build error on vc2017 2018-04-12 01:34:00 -07:00
Jeremy Hu 235233fe5d Add shortcuts(S: Select Mode / D: Drag Mode) 2018-04-11 23:15:38 +08:00
Jeremy Hu e1e4953dec Seperate model render view control and edit view control 2018-04-11 23:06:30 +08:00
Jeremy Hu f0e68d9f7a Change rendered model move button from left to middle 2018-04-11 20:49:00 +08:00
Jeremy Hu 5ac8968cee Keep part attributes while been splitted 2018-04-11 17:48:43 +08:00
Jeremy Hu c9efa79ddb Fix union mesh, add missing files. 2018-04-11 17:37:28 +08:00
Jeremy Hu 982ee45a16 Add part enable/disable 2018-04-11 17:19:27 +08:00
Jeremy Hu 2d9f64ebc2 Collect version info macros in one header file 2018-04-11 16:34:51 +08:00
Jeremy Hu 86afcd0e7e Fix boundingbox 2018-04-11 14:28:37 +08:00
Jeremy Hu b95276ec06 Change subdiv stratege: subdiv after union. 2018-04-11 14:15:11 +08:00
Jeremy Hu 28a95aedee Only allow item been selected when visible 2018-04-10 16:44:02 +08:00
Jeremy Hu 38fb0c022a Add main menu.
- Add about window,
- Add acknowlegements window,
- Add multiple documents support.
2018-04-10 15:59:20 +08:00
Jeremy Hu f47148a537 Cleanup and reset initial render angle 2018-04-09 23:10:23 +08:00
Jeremy Hu 2a7554b852 Make uncheckable menu items invisible 2018-04-09 22:37:20 +08:00
Jeremy Hu 62fdcbdced Add flip 2018-04-09 22:24:30 +08:00
Jeremy Hu 5e97e3d268 Add single node mesh 2018-04-09 19:13:34 +08:00
Jeremy Hu f49e88484f Add cut/copy/paste 2018-04-09 16:46:06 +08:00
Jeremy Hu de0075bab4 Add select all; fix undo. 2018-04-09 13:22:25 +08:00
Jeremy Hu b8e5d31169 Add context menu 2018-04-09 11:39:04 +08:00
Jeremy Hu cd6a973fe7 Fix repeat(no-further-actions) snapshot 2018-04-09 08:32:02 +08:00
Jeremy Hu 5407eedad7 Fix undo/redo 2018-04-09 07:42:59 +08:00
Jeremy Hu 35a62960ca Add undo/redo 2018-04-09 07:34:46 +08:00
Jeremy Hu 7b3540f0c1 Add multiple selection 2018-04-08 23:08:23 +08:00
Jeremy Hu 8ee0dee3db Remove carve and other no-use deps 2018-04-08 16:05:12 +08:00
Jeremy Hu 1c4515abd7 Finish part mini buttons 2018-04-08 09:30:55 +08:00
Jeremy Hu 8d558aa19f Add mini buttons for part list 2018-04-07 20:30:26 +08:00
Jeremy Hu 65b14200a5 Make part list more tidy 2018-04-07 19:51:33 +08:00
Jeremy Hu af451bd5ab Introduce new UI,
Introduce part list,
Add log viewer,
Add QtAwesome icons.
2018-04-07 16:44:39 +08:00
Jeremy Hu b99e0db0b2 Seperate the shader program and mesh binder to seperated source files 2018-04-02 14:05:06 +08:00
Jeremy Hu ec154633be Add logo.
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
2018-04-01 22:21:47 +08:00
Jeremy Hu d86004b46a Add toggleable options for generating 2018-03-30 22:05:47 +08:00
Jeremy Hu 01e8abf0cc Fix event conflicts between model and graphics view 2018-03-30 15:41:29 +08:00
Jeremy Hu 94cd279ef3 Render generated model in graphics viewer 2018-03-30 07:32:30 +08:00
Jeremy Hu f48d6bd5f5 Seperate mesh union as single source file 2018-03-29 17:10:59 +08:00
Jeremy Hu 53dfb62460 Generate coords around root joint 2018-03-29 16:01:57 +08:00
Jeremy Hu 9892d1bc2c Make cgal no-crash when fail 2018-03-29 14:27:31 +08:00
Jeremy Hu cac5c2094c Fix boolean operations 2018-03-29 14:10:17 +08:00
Jeremy Hu 7df312cff5 Add branch sperate joint wrap 2018-03-29 09:46:43 +08:00
Jeremy Hu 64ce4e6843 Add trival control of radius 2018-03-28 19:41:33 +08:00
Jeremy Hu 09d21e8935 Add skeleton snapshot support (Prepare for undo/redo feature) 2018-03-26 20:41:46 +08:00
Jeremy Hu 4c9767835f Export working model as obj 2018-03-20 15:56:49 +08:00
Jeremy Hu 4661e2bc94 Fix node group saving 2018-03-20 11:31:05 +08:00
Jeremy Hu a4cdb4e551 Make wireframe line more thick 2018-03-19 22:03:22 +08:00
Jeremy Hu 2aed6b768a Add wireframe render 2018-03-19 21:56:10 +08:00
Jeremy Hu f405ac0ede Add thickness support 2018-03-19 15:58:51 +08:00
Jeremy Hu 24fbff4218 Add node delete operation 2018-03-18 16:46:53 +08:00
Jeremy Hu de0fa135fb Add CGAL library to compare with Carve 2018-03-18 07:43:04 +08:00
Jeremy Hu 425962921e Add carve library to support better mesh boolean operations 2018-03-17 17:21:17 +08:00
Jeremy Hu a749324e79 Add mesh generation group 2018-03-16 11:06:51 +08:00
Jeremy Hu ff19efa188 Add project file(.ds3) reader and writer 2018-03-15 23:40:30 +08:00
Jeremy Hu 130ffdae79 Add parts loader and saver 2018-03-14 23:22:00 +08:00
Jeremy Hu 5dbff8b9e3 Add styled tab header 2018-03-14 14:43:16 +08:00
Jeremy Hu d3dfffcc59 Fix turnaround resize 2018-03-14 10:55:59 +08:00
Jeremy Hu 20f4b669bb Add icons 2018-03-13 20:49:24 +08:00
Jeremy Hu ce20e49883 Add turnaround image loader 2018-03-13 14:39:36 +08:00
Jeremy Hu 0ee18d41a8 Make skeleton UI more fluent 2018-03-12 21:40:42 +08:00
Jeremy Hu 5b597b0f0c Add skeleton to mesh generation(finished other side) 2018-03-12 17:41:16 +08:00
Jeremy Hu 14bce78a4a Add skeleton to mesh generation(finished one side) 2018-03-12 13:27:22 +08:00
Jeremy Hu d3e82ea306 Add skeleton edit UI 2018-03-12 00:02:15 +08:00
Jeremy Hu 283e76b1b6 Add base UI layout 2018-03-11 11:18:24 +08:00
Jeremy Hu 10a4a21183 Add base UI layout 2018-03-11 11:16:38 +08:00
Jeremy Hu 7d8e8c4bc5 Test QOpenGLWidget example with meshlite 2018-03-10 14:57:14 +08:00