Hello everyone! I got another build for you!
The new mesh GPU upload mechanism is in! This replaces the older mechanism with one where we generate all the GPU data on FrooxEngine side and upload it through low level API's - this completely changes how meshes are pushed into the GPU.
With latest prerelease it seems that things are working pretty well and there's no remaining issues that I'd consider blockers for this.
It's not only an important part of the splittening (with the major push for the split now being the next part), but should help with performance right now too!
Notably large mesh uploads are now split over multiple frames, so they should not hitch as much. There are still going to be other sources of hitches, but this should help some!
Big thanks to everyone who helped us test and catch bugs in prerelease: @epiceaston197, @zyro1331, @luxkitty, @lecloutpanda, @euphieeuphoria, @ohzee, @rabbuttz, @epsilion.cat, @kazu0617, @nytra, @bredo, CheesecakeCG, @dustysprinkles, @jackthefoxotter, @jvyden4, @bluetera, alexderpyfox, @j4.lc, @modernballoonie, @karasutengu, @kyuvulpes, @jasonmo
If any more issues pop up, please still make reports, we'll get them cleaned up in subsequent builds.
There are other things too like the GrabbableSaveBlock component! This lets you prevent items from being saved for gameplay purposes - it's NOT a security feature! Read the description for it to learn more please.
New Features:
- Added GrabbableSaveBlock (requested by @jackthefoxotter issue #2950, implemented by @probableprime)
-- When added to a slot, it will block the ability to save items that are grabbed through context menu, inventory browser or contact window
-- This features is **NOT** permission system feature and is not designed to provide security or prevent asset theft
-- It is designed for gameplay mechanics/items when you want to control how an item is saved. As an example, you might add the component to all the cards within a deck of playing cards, but you would not add it to the box. This would prevent you from saving individual cards, encouraging you to remember to save the box.
- Added byte, sbyte, short & ushort vector types to the core engine
-- These are currently mostly used for internal operations and low level byte data wrangling
- Added "Reset bones to bind poses" to SkinnedMeshRenderer
-- This will reset the bone poses to their bind pose of the current mesh
-- The bones must not be driven for this to work
Optimizations:
- Reworked GPU mesh upload mechanism to use signular buffer & low level API (as part of the spilttening, issue #2429)
-- FrooxEngine is now responsible for generating mesh buffers for the GPU, allowing more control over the process & skipping duplicated validations and checks on Unity side
-- This speeds up the mesh uploads, improving latency for dynamic meshes in a number of cases
-- Large uploads are now spread over multiple frames, reducing hitches when loading heavy meshes (like avatars with lots of blendshapes). Note that this means the meshes might take longer to load, as a tradeoff for a hitch, but this is expected to be improved once the split happens
-- Skinned mesh bounds update method has been moved from Unity side to FrooxEngine side as well and includes a custom algorithm for static bounds computation
Locale:
- Merged Japanese locale update by @.aesc
- Merged German locale update by @muppeq
- Merged French locale update by @j4.lc
Fixes:
- Fixed all string constant nodes having invisible names (reported by @art0007i, issue #177, fixed by @probableprime)
[ 2025-05-30 00:18:56 CET ] [ Original post ]