Comments (3)
Proposed solution:
tl;dr - a.merge(b)
is replaced by mergeDocuments(a, b)
. The generator string of the target document will be kept when merging, along with other root-level properties. For more granular control, the new copyToDocument(target, source, sourceProperties)
function may be used instead.
from gltf-transform.
I'm not aware of any precedent for comma-separated generator strings, and I'm hesitant to invent one... I think this is kind of what XMP's 'ingredient' concept was made for, but it's complicated and subjective enough (discussed in #1367) that I don't think glTF Transform should try to do that in merge() automatically.
Is this a problem for your use case? My hunch is that your application knows better than glTF Transform can know, whether one generator string should win, or whether concatenating them is meaningful... It might be best to assign the generator string directly in the script above.
In terms of the default behavior — I'm tempted to say that the original generator string on the document should be kept, and not modified in a merge, which feels more semantically defensible than last-document-in-wins.
One could also argue that the generator should be "glTF Transform". ;)
from gltf-transform.
The comma-separated list was just an overly suggestive attempt to "retain all information" (with the obvious caveats).
I'd also agree that keeping the generator of the target document when merging in others could make more sense. (And that's what I assumed to happen ... but... fixed it...). Justifications for that could be...
- the order in which documents are merged into a target should not matter
- the document that others are merged in is usually generated by glTF-Transform (if it was created from scratch)
But I don't have a strong opinion about the solution. Knowing what the behavior is allows users to set the generator as they see fit, and I just wanted to bring it up. (So the issue could be closed if there's no strong reason to change anything).
from gltf-transform.
Related Issues (20)
- Serialization format for transforms HOT 2
- Roadmap for '@gltf-transform/view' package
- Quantization creates invalid skinning weights for CesiumMan.glb HOT 3
- Support transforms reporting a 'skip' result
- Minor glitch in documentation typings HOT 1
- implements meshoptimizer -sv HOT 1
- sharp error HOT 9
- Improving website credits
- CLI 'validate' command should use exit codes and stderr properly
- optimize removes leaf nodes with --prune-leaves false HOT 2
- Support Morph Targets in '@gltf-transform/view' package
- Remove skin bind matrices HOT 2
- CLI optimize command takes very long but reports it ran in < 200ms HOT 4
- Support KHR_animation_pointer HOT 2
- platform-io: glb with unknown chunk not supported HOT 3
- Support Full Collection Hierarchy option (Blender >= 4.2.x) HOT 1
- Feature Request: Write `JSONDocument` to GLB-formatted Uint8Array HOT 1
- Feature Request: Splitting a GLB File into Multiple Smaller GLB Files HOT 3
- Updating spotlight's definition, detaches the spotlight target.
- Using --pattern with negation on glb's doesn't seem to be possible HOT 2
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-transform.