VR, Asset Import Pipeline and Performance Updates (Patreon)
Content
Hey all, it's that time of the month again! 😄
General
So, turns out VR is a little more taxing than I thought, so my performance improvements from last time weren't quite enough and I had to put some more time into general performance improvements to the Engine to ensure everything runs smoothly both in VR and without VR. I'm quite happy with the results this time though, so hopefully that closes that chapter once and for all:
(That's ~433 FPS on a medium-sized map on my GTX 1050 Ti)
Special thanks to WigWoo and DesireSFM for helping me test 😄!
glTF and MikuMikuDance asset support improvements
I've implemented basic support for glTF and MikuMikuDance models a while back, but I've now added some improvements on that front. The importer now support rigs, and all you have to do is copy the model/texture files to "Pragma/addons/imported/models", and they will automatically show up in the model asset browser (drag-and-drop should still work as well).
I've probably mentioned it before, but glTF is a standardized model format with built-in support for PBR, which makes the conversion of assets from modelling programs like Blender to Pragma very easy, all you have to do is export the model in Blender as glTF, then copy the glTF file over to Pragma.
This means that, for example, you can now easily get models from websites like SmutBase, convert them to glTF and import them into Pragma:
(Model Source: https://smutba.se/project/30892/)
The only major component missing are morph targets, but I should be able to get around to that very soon.
MikuMikuDance animations aren't supported yet, but rigs should work now.
Inverse Kinematics for VR
[Furry Content] https://pragma-engine.com/share/prelewd/vr_ik.webm
My previous IK system wasn't all that suited for realistic character model movement, so I've implemented a basic inverse kinematic system based on FABRIK, which enables the VR arm and upper body movement you can see in the video. It's still a work-in-progress and doesn't support constraint limits at the moment, which means it's easy to accidentally cause your limbs to bend the wrong way, but I'm satisfied will the results so far 😅.
There will be a new Prelewd update with the new changes some time next week. As for the Filmmaker, I'm still prioritizing the LuxCoreRender implementation right now (it'll save me a lot of headaches in the future), maybe after that I can finally get back to implementing the animating capabilities, that's been on my todo-list for way too long.
Anyway, thanks everyone! Bit of a short one this time, there's been a lot of internal Engine changes and updates as well, but they're not particularly interesting. You can check out the GitHub commit log if you really want to 😄: https://github.com/Silverlan/pragma/commits/v0.9.12