You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As I wrote up how #88 could simplify node references, I wanted to confirm that we really do need the indirection of allowing profiles to target model-specific node names vs. simply defining well-known names for these glTF nodes.
For example, here is a current component definition for an "xr-standard-thumbstick" component:
However, imagine that the rendering library simply observes the model to have the following nodes:
(any name)
xr-standard-thumbstick-pressed-min
xr-standard-thumbstick-pressed-max
xr-standard-thumbstick-pressed-value
(any name)
xr-standard-thumbstick-xaxis-min
xr-standard-thumbstick-xaxis-max
xr-standard-thumbstick-xaxis-value
(any name)
xr-standard-thumbstick-yaxis-min
xr-standard-thumbstick-yaxis-max
xr-standard-thumbstick-yaxis-value
(any name)
xr-standard-thumbstick-label
At that point, the rendering library can know purely by convention how to articulate the "xr-standard-thumbstick" component of that input source and find its label node.
Profiles could still define custom components such as "a-button", which would then follow the same pressed naming convention:
(any name)
a-button-pressed-min
a-button-pressed-max
a-button-pressed-value
Do you see ways in which this kind of convention could limit how model authors lay out their models? For example, have you encountered cases where a thumbstick's "default", "touched" and "pressed" states won't all articulate the same glTF nodes?
If not, moving to a convention-based system could greatly simplify the asset profile schema, and remove many points of naming divergence across profiles. This could avoid bugs later on where alternate rendering libraries end up taking dependencies on what they believed to be naming conventions in the profiles they looked at (e.g. they observe the trigger is often called "SELECT") but which we'd reserved the right to indirect through the profile (e.g. they end up with a controller where it's called "TRIGGER"). We'd still reserve the right to add in any necessary overrides down the line, while avoiding indirection in advance that may not be needed.
Thoughts?
The text was updated successfully, but these errors were encountered:
This change is intended to address issues #88 and #89. Standard naming
conventions are defined for all nodes named by the asset profile and are
populated by default by the asset package build step. These names can be
overridden by values in the asset's profile.json
This change is intended to address issues #88 and #89 by defining default naming conventions for all nodes necessary to utilize and associated asset. These default names are automatically populated into the merged profile during the package build step unless overridden by asset's JSON file.
This change is intended to address issues #88 and #89 by defining default naming conventions for all nodes necessary to utilize and associated asset. These default names are automatically populated into the merged profile during the package build step unless overridden by asset's JSON file.
As I wrote up how #88 could simplify node references, I wanted to confirm that we really do need the indirection of allowing profiles to target model-specific node names vs. simply defining well-known names for these glTF nodes.
For example, here is a current
component
definition for an"xr-standard-thumbstick"
component:However, imagine that the rendering library simply observes the model to have the following nodes:
xr-standard-thumbstick-pressed-min
xr-standard-thumbstick-pressed-max
xr-standard-thumbstick-pressed-value
xr-standard-thumbstick-xaxis-min
xr-standard-thumbstick-xaxis-max
xr-standard-thumbstick-xaxis-value
xr-standard-thumbstick-yaxis-min
xr-standard-thumbstick-yaxis-max
xr-standard-thumbstick-yaxis-value
xr-standard-thumbstick-label
At that point, the rendering library can know purely by convention how to articulate the
"xr-standard-thumbstick"
component of that input source and find its label node.Profiles could still define custom components such as
"a-button"
, which would then follow the samepressed
naming convention:a-button-pressed-min
a-button-pressed-max
a-button-pressed-value
Do you see ways in which this kind of convention could limit how model authors lay out their models? For example, have you encountered cases where a thumbstick's
"default"
,"touched"
and"pressed"
states won't all articulate the same glTF nodes?If not, moving to a convention-based system could greatly simplify the asset profile schema, and remove many points of naming divergence across profiles. This could avoid bugs later on where alternate rendering libraries end up taking dependencies on what they believed to be naming conventions in the profiles they looked at (e.g. they observe the trigger is often called "SELECT") but which we'd reserved the right to indirect through the profile (e.g. they end up with a controller where it's called "TRIGGER"). We'd still reserve the right to add in any necessary overrides down the line, while avoiding indirection in advance that may not be needed.
Thoughts?
The text was updated successfully, but these errors were encountered: