-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should we keep one or more mesh,camera,light per node. #13
Comments
I would rename node to transform. It was a mistake in collada to use node (discussed this at the time, but was too late to change) , as it is too much a reference to a scene graph, where node is a base type - and all kind of objects with conflicting behavior are created from this type. -----Original Message----- Reply to this email directly or view it on GitHub: |
Hum, sorry I don't get the conflict you are referring to. |
The conflict is a design conflict. -- Remi On Tue, Mar 19, 2013 at 4:15 PM, Fabrice Robinet
|
I believe it is easier to grasp that node carries a node a transform, than having a transform which is not only a matrix but carries also a mesh. I know there are some famous precedents who did that but I never found that explicit. |
Well, that is if you have them carry anything .. which is back to your an instance can point to a transform -- Remi On Tue, Mar 19, 2013 at 4:21 PM, Fabrice Robinet
|
Well, I believe you should propose to reformat an existing JSON with your proposal to see how it would look. |
I'm open to seeing example JSON for @RemiArnaud's propsoal, but I otherwise agree with @fabrobinet about the naming and structure. As for the original question, I also considered only mapping one
Given this, I decided to keep the one-to-many mapping. I'm open to additional discussion though. As for I don't see why As for |
@pjcozzi lights and camera are part of the scene graph because their transform is impacted by transform of the node / and higher level nodes they are attached too. Then I agree, light will be tied to materials tied also, just like for material parameters, light parameters will update technique. I need to draft something here. will enter an issue about light specifically. |
@pjcozzi for one to many relationships. A advise to have a single light and camera per node:
I concluded for mesh, an array was fine. That way (when not flattening..) you don't end up with an artificially bigger scene graph. Came to that too: "Containing an array, instead of a single mesh, does not significantly increase the complexity of the schema, spec, or application code. |
@fabrobinet This sounds fine:
As for lights, I'll need to see the whole material draft first, but I could see having multiple lights in a node for all the same reasons of having multiple meshes, but I'm not sure in practice how often it will be used - or even how often the model's lights will be used compared to the scene's lights. I guess many engines will use both. |
I see a lot of mention of 'scene graph' that I don't understand. I see no need to have a scene graph, and certainly would not like to call what we have a scene graph. Yes, cameras, lights ... all have a position, given by a transform (a TRS) that can either be absolute (no parent) or relative. Yes, multiple objects of different type may have the same position in space. But unlike with a scene graph it does not matter if that position is given by the same transform or not. What is certain is that multiple objects sharing the same transformation will all be at the same place. In a scenegraph, we would create a node object of type group, this would have a list of nodes that all contain one geometry and has the property to not have its own transformation. Here I would simply say that several objects may have the same transform. This parenting changes at run-time. An object kinetic becomes dynamic and is detached from his transform hierarchy to become managed through its dynamic constraints, and they may very well be attached back to its transformed hierarchy. Having the object pointing to its transform could be a good way to go. But before I propose something, I want to ask if we are designing a transmission format or a run-time format? Are we imposing a style of how the engine must be programmed, or just a way to transmit the information: If the later - then we should be concise and complete. It should be directly usable (as proof of concept) by an application but that's a lower priority. |
No we are not building a run-time format, just a run-time friendly format. We should not be imposing how engines treat the content. That being said, hierarchy needs to be represented in order for us to preserve the intent of the author, otherwise a group of transformations can not be animated. r/e cameras - We should not stray from COLLADA with the library concept e.g. libraries of cameras. Libraries are dictionaries, a good file format needs those. And Patrick, cameras need transform information because they are placed in space and potentially animated. I personally like Fabrice's scheme for the hierarchy. It's not perfect: node-as-transform is based on the history of scene graph type of designs, vs. transform-as-component, which is a more modern game design concept. But everyone understands it. |
I'm fine either way, but wanted to make sure we have this discussion. ++ If we are going with nodes where things are attached to, why not simply ++ If we are going with transforms and for each 'object' that need a position, id of the transform to use. |
I don't like that idea. (Separating out transforms) I prefer a transform belonging to a node. I do agree with your comment that it should be a list of objects, not a list of meshes, list of cameras, etc. Just list the child nodes. A node can contain a mesh, or a camera, or a light. Just like most of the other systems I've seen. That's my preference. |
Renamed scene graph to node hierarchy in 583087e |
This has been resolved already.
I'll reflect these changes in the converter. |
@fabrobinet is the converter updated now? Is this just a spec issue? |
converter not yet updated. |
pushed in dev-2 branch for now acdce2c |
converter fix: now on master. |
Schema is up to date. @fabrobinet can we close this? |
…ta-v2.0 EXT_feature_metadata: Update implicit IDs, remove statistics
Latest updates by Alexey
No description provided.
The text was updated successfully, but these errors were encountered: