Update Magnum to latest version that supports loading custom batch-optimized glTFs #1776
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation and Context
Updates Magnum to current master, and while at it also update all copies of CMake
Find
modules from it (which I need for a local build that uses system installation of Magnum).The most important new feature is that the code is now able to read batch-friendly glTFs produced by tools from the experimental batch renderer. In particular, those use the (provisional)
KHR_texture_ktx
extension to combine several textures into one large 2D array texture, and combine all meshes into one while referencing just sub-ranges of it from actual nodes, thus enabling a multi-draw workflow. Just for completeness, the produced batch-friendly glTF looks like this:And when opened, the custom extra information is exposed as such (
magnum-sceneconverter --info
on a composite file containing all 105 ReplicaCAD scenes and then some):In other words, this PR makes it possible to start integrating the batch renderer implementation directly into Habitat main, with only the Galakhtic project having to rely on a custom branch to be able to produce the files (glTF export is still being developed in a Magnum branch).
Other things worth mentioning:
CgltfImporter
plugin is now called just GltfImporter, as the 3rd party parser code got removed from underneat, to make addition of new features and support of custom extensions a matter of hours instead of weeksextras
import isn't limited to just the glTF files produced by the batch renderer tools, but to any other files. Floorplanner assets, for example, supply various annotations and tags in those.*TextureLayer
attribute to support texture arrays*.webp
files. WebP is capable of producing a 25%-34% smaller file than JPEG in a comparable lossy quality, and ~25% smaller lossless file than a PNG. Including support in glTF via theEXT_texture_webp
extension. Not enabled in Habitat at the moment.How Has This Been Tested
My CIs pass, hopefully this one too.
Types of changes