View full documentation at https://github.com/sharpen3d/openvat
Encode vertex animated textures (VATs) from your animated mesh for use in game engines and VFX. Bake any type of vertex animation: animated modifiers, animated geometry nodes, simulations, armature, shape keys, and more.
Exports an optimized VAT, a mesh with VAT-compatible additional UV set, JSON remapping data (to inform engine shaders), and optionally exports relative vertex normals in a secondary (VNRM) texture.
Install the satellite Unity package via Unity's Package manager for openVAT auto-import and setup tools for unity. Add via git with this URL - https://github.com/sharpen3d/openvat-unity.git
-See README in documentation for more details on Engine Usage.
Running the tool automatically sets up the newly-created VAT on an included geometry node method to decode the VAT and provides an example implementation and instant preview to check the quality of the generated information.
Encoding directly from dependency graph vertex information, this vertex encoding method is fast, accurate, and extremely powerful. Geometry node animations and simulations can be captured and exported accurately to game engines. Relative color space in RGB is remapped to MIN-MAX per-channel to represent the best-possible use of spectral information in RGB.
VATs are typically used for CPU optimization in game engines. With careful implementation in engine shaders, effects such as clothing simulations, complex character/creature animation, interactive/animated environmental effects and more can be driven by VAT on GPU.
This extension requests the following permission:
Import/export VAT data from/to disk (in a location you specify)
You do not need to specify supported platforms if same build is used for all of them. Specification exists for add-ons that have different builds for each platform
Testing this on Suzanne subdivided 3 times (31k vertices), and adding simple geometry nodes modifier that adds noise movement to vertices, and pressing generate freezes and couple of minutes later I have to close Blender.
Also what is up with output directory being a string? What am I supposed to even write there? Folder name? Use subtype='DIRPATH' and correctly set path to whatever uses sets there.
Hey everyone,
Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.
Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.
Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.
Thanks for understanding, and feel free to reach out if you have any questions.
Hey guys, I have a number of improvements coming. @nickberckley what was your frame range set to for encoding? 31k verts is a high number depending on frame count (each vert on each frame represents a pixel). It will for sure take a long time to encode this, much more than 2mins, because this is an extreme case unless only encoding a few frames
I assume it was default frame range, so 250 frames
So this means encoding at 4096x4096 at a minimum even if you did not include normals handling. Maybe I need better documentation in general about exactly where and how this should be used - production examples. It still should encode but you would need to wait a significant amount of time depending on the strength of your system
Sign in to comment.
Ready for review