Comments (4)
I like the duplicate detection, but that could be slow so a flag would be interesting here too. In general finding duplicate resources on a GLTF and simplifying could be a function on the toolkit.
As for performing LOD merging first, we could invert the order, but that also means we would have to perform changes in all affected LODs when packing, which can be a little tricky. I like having LOD merging be the last step.
I think my ideal solution would be to perform packing of LOD zero, then cache some hash of each resource when adding it to the final GLTF, and use these hashes to de-dupe when packing LODs. More specifically:
- Pack LOD 0, keep hashes of each resource
- For each other LOD
- Before packing a resource, check the hash table, and link to that or repack + add the new resource
- Then merge the LOD in the main doc
That way we won't have dupes + we only pack once, at the cost of hashing each file when packing (i.e. some optional param would be the map<resource hash, index of the final resource>.
What do you think @erikdahlstrom ?
from gltf-toolkit.
Sounds good to me. I think the merger needs a bit more work to deal with the case where only some resources are shared, especially wrt getting the right offsets for all the dependent fields in the glTF json.
I have the addition of the commandline flag on a branch, https://github.com/erikdahlstrom/glTF-Toolkit/tree/add_material_flag, I'd be happy to submit it as a pull-request if you want.
from gltf-toolkit.
Thanks! I think you should send as a PR when we have the hashing described above.
from gltf-toolkit.
Closed by #14
from gltf-toolkit.
Related Issues (20)
- crash HOT 3
- Packing crashes if the packed textures don't have the same size
- WindowsMRAsset Converter -replace-textures flag causes conversion to fail HOT 2
- Cant work with GLTF HOT 2
- NDEBUG missing from Release configuration? HOT 1
- LOD merge with tangents fails
- -replace-textures flag does not work
- WindowsMRAssetConverter Could not parse accessor 0 HOT 7
- Redundant textures in output after specular gloss -> metal rough conversion HOT 1
- NormalRoughnessMetallic packing needs to renormalize normals and compute roughness from normal variance
- Basic models from Pain3D: Can't place hologram HOT 1
- We couldn't load the selected model, Please try agian later HOT 1
- Project does not build in VS 2019
- Sample glTF files fail to load in Microsoft's own software HOT 1
- Existing mesh serializing
- "Cannot read the magic number"
- Need help with MSFT_LOD generation for Threejs HOT 4
- Need help with creating draco mesh straight from gltf-sdk
- Link to documentation dead
- This repo is missing important files HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gltf-toolkit.