Commit Graph

355 Commits (d00c26ca084ac315ba74a48ab72711e72c6d560a)

Author SHA1 Message Date
Jeremy Hu d00c26ca08 Export motions to glTF(.glb)
Each motion will be exported as an animtion of glTF
2018-10-27 10:29:51 +08:00
Jeremy Hu db33a5e662 Adjust the example model: camel 2018-10-27 08:06:59 +08:00
Jeremy Hu 79200827f5 Cleanup
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.
2018-10-27 07:04:45 +08:00
Jeremy Hu 62632dc168 Fix material widget 2018-10-25 23:28:10 +08:00
Jeremy Hu 438c488f5a Support glTF binary format export
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.
2018-10-25 17:18:04 +08:00
Jeremy Hu 84607fba01 Expand the render model mouse control area
Click the middle mouse on the area out of the canvas can also rotate or move the render model.
2018-10-25 15:03:51 +08:00
Jeremy Hu 955ebce009 Fix build 2018-10-25 14:46:21 +08:00
Jeremy Hu 637356e895 Fix undo
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.
2018-10-25 14:27:59 +08:00
Jeremy Hu 208d2a0166 Cleanup
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.
2018-10-25 08:19:38 +08:00
Jeremy Hu dbc82fa8f1 Fix mini button display issue
The part highlight background hide the subdiv mini button before, this commit resolve it by move the highlight left a little bit.
2018-10-24 22:08:42 +08:00
Jeremy Hu ee20aff397 Improve shortcuts
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.
2018-10-24 21:44:21 +08:00
Jeremy Hu 71ccb2b71f Fix mouse handling for render model
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.
2018-10-24 16:54:18 +08:00
Jeremy Hu f2849a020f Fix qt warning
Try to call deleteLater on a nullptr would cause qt print warning message: "QCoreApplication::notify: Unexpected null receiver"
2018-10-24 06:51:33 +08:00
Jeremy Hu d663876c5c Rewrite the motion manager
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.
2018-10-23 22:57:47 +08:00
Jeremy Hu 09200c920d Fix rig result doesn't reset after document changed 2018-10-22 07:56:56 +08:00
Jeremy Hu 34e2ac1fef Export rig to fbx
Tested in Blender 2.79 and Unity 2017.4.1f1
2018-10-22 07:29:01 +08:00
Jeremy Hu 0320be1c15 Fix build 2018-10-20 21:58:20 +08:00
Jeremy Hu ec47c20919 Fix incorrect normal after texture auto unwrapped
glTF normal export temporarily disabled.
2018-10-20 21:30:59 +08:00
Jeremy Hu debdd79a7a Fix build 2018-10-20 17:29:57 +08:00
Jeremy Hu 6f471e7678 Smooth normal based on angle
Currently, if the angle of two faces are less than 60 degrees, the normal is not averaged.
This feature greatly boost the realistic look of the model.
2018-10-20 16:42:29 +08:00
Jeremy Hu 096c107775 Add fbx export support (2/3)
Currently, only mesh exported. Tested in Blender 2.79 and Unity 2017.4.1f1 Personal (64bit).
2018-10-20 13:07:11 +08:00
Jeremy Hu 02963ebf8b Calculate part preview in the same normal method with final model 2018-10-19 13:08:02 +08:00
Jeremy Hu 2f32158940 Replace the average normal with angle and area weighted normal
See details here: http://www.bytehazard.com/articles/vertnorm.html
2018-10-19 07:57:39 +08:00
Jeremy Hu 328f26429b Optimize deform
see 3ff01306d0
2018-10-18 15:43:58 +08:00
Jeremy Hu c06a23d52e Fix build 2018-10-17 12:53:18 +08:00
Jeremy Hu b2a77caffc Fix build 2018-10-17 12:35:15 +08:00
Jeremy Hu 660e3d6a58 Fix fbx build 2018-10-17 11:59:21 +08:00
Jeremy Hu 0608e2af1c Fix uv unwrapper
UV unwrapper may run into infinite loop if the parametrization failed with some infinite value.
2018-10-17 11:19:17 +08:00
Jeremy Hu f0783e2a1e Add fbx support (1/2)
Add dependencies for fbx format exporter.
2018-10-17 11:06:45 +08:00
Jeremy Hu 7fbdf6a8bd Remove thekla_atlas
Now, we have our own automatic uv unwrapping library: simpleuv
thekla_atlas works good on good mesh, however, sometimes, it crashs and cann't handle bad cases very well.
2018-10-16 08:09:04 +08:00
Jeremy Hu 7fa29dcc48 Fix texture generation 2018-10-16 08:04:08 +08:00
Jeremy Hu 7e0591de6b Fix build 2018-10-16 00:21:05 +08:00
Jeremy Hu 640b84b2f2 Fix build 2018-10-15 23:22:49 +08:00
Jeremy Hu a4a734a67b Repleace the uv unwrapping library with simpleuv
https://github.com/huxingyi/simpleuv
2018-10-15 23:02:31 +08:00
Jeremy Hu a81a5daaca Not generate texture by default
Because of thekla_atlas crash on some meshs, need improve or find a alternative for uv unwrap.
2018-10-11 16:03:23 +08:00
Jeremy Hu 4ea497caf8 Fix unnecessary mesh regeneration while locked 2018-10-11 10:49:44 +08:00
Jeremy Hu 4c6dc1594f Fix texture cann't unselect 2018-10-11 10:40:35 +08:00
Jeremy Hu 1623d7d782 Update to the latest thekla_atlas 2018-10-11 08:56:09 +08:00
Jeremy Hu a2770ecd8e Change texture painter clip expand joint style to round from miter 2018-10-10 22:42:55 +08:00
Jeremy Hu eeff771a3b Optimize texture generating time 2018-10-09 21:01:04 +08:00
Jeremy Hu 5f2a46be9c Avoid unnecessary mesh regeneration while only texture map changed 2018-10-09 17:17:44 +08:00
Jeremy Hu 73d20da08f Make better result to seamless texture
Fix parts vertices' connectivity in the uv unwrapping code.
2018-10-09 15:05:20 +08:00
Jeremy Hu 7eb5a325a0 Add MetalicRoughness material manager
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.
2018-10-09 10:19:12 +08:00
Jeremy Hu 308bc48c54 Add author @anderejd from meshlite library 2018-10-05 23:58:00 +08:00
Jeremy Hu 7de9b61de7 Remove generated trivial seam triangles 2018-10-05 23:54:12 +08:00
Jeremy Hu c2a54069f5 Thanks to @JoeyDeVries for his website https://learnopengl.com 2018-10-05 15:50:02 +08:00
Jeremy Hu 9c0da8f38f Replace the render with PBR
In this commit, another PBR render, come from website: https://learnopengl.com/PBR, also included as shaders/pbr-joey.frag
2018-10-05 15:37:01 +08:00
Jeremy Hu f7b5fb1c6a Add PBR support
Now can configure metalness and roughness for parts, however, the PBR render isn't enabled in the code currently.
2018-10-04 20:51:01 +08:00
Jeremy Hu 5c25d7d4f8 Move shader from source code to separated folder 2018-10-03 13:52:35 +08:00
Jeremy Hu 997d9efd75 Fix build 2018-10-02 13:18:35 +08:00