* fixbug:"debug error, reason: The material 'Material_MR' has not been compiled to include the required GLSL or SPIR-V chunks for the vertex shader (variant=5, filtered=5)",Because the member variable mVariantFilter is not initialized, random values will appear on Windows 10 or others platform, which eventually causes some variants to be filtered out by this mVariantFilter. * fix:Fix morph target loading for accessors without buffer_view Morph targets were not working because ResourceLoader skipped all accessors without buffer_view. For morph targets, the data can be accessed directly via cgltf_accessor_unpack_floats(). This fix properly unpacks and uploads morph target vertex data to the GPU, enabling blendshapes and facial deformation to work correctly. Steps to Reproduce 1、In Unity (2022.3.11): Create a Prefab with Blend Shapes (Morph Targets) and an Animator to control them (e.g., an animation clip that makes the eyes squint). 2、Export: Use the UnityGLTF tool to export the model as a .glb file (including the Animator and Morph Target tracks). 3、In Filament: Load and play the animation. 4、Result: The skeletal animation (bone-based) may play, but the Morph Target effect (squinting) is missing or static.
gltfio
gltfio is a loader library that consumes gltf or glb content and produces Filament
objects. For usage details, see the docstring for AssetLoader.
gltfio has two plug-in interfaces, TextureProvider and MaterialProvider. Filament ships with
several ready-to-go implementations described below.
MaterialProvidercreates Filament materials in response to certain glTF requirements.- UbershaderProvider loads pre-built materials.
JitShaderProviderbuilds materials at run time using thefilamatlibrary.
TextureProvidercreates and populates FilamentTextureobjects.StbProvideruses the STB library to read PNG and JPEG files.Ktx2Provideruses the BasisU library to read KTX2 files.
UbershaderProvider
UbershaderProvider is a ready-to-go implementation of the MaterialProvider interface that should
be used in applications that need fast startup times. There is no material compilation that
occurs at run time, but the shaders might be relatively large and complex.
At load time, the ubershader loader consumes an ubershader archive which is a precompiled set of materials bundled with formal descriptions of the glTF features that they support.
The uberz command line tool consumes a list of .spec and .filamat files and produces a single
.uberz file. For details on these two file formats, see the README in libs/uberz.