Method and system for accessibility and control of parameters in scenegraphs
11734881 · 2023-08-22
Assignee
Inventors
- Ralph Andrew Silberstein (Grass Valley, CA, US)
- David Sahuc (Nevada, CA, US)
- Donald Johnson Childers (Grass Valley, CA, US)
Cpc classification
G06T2219/2012
PHYSICS
International classification
Abstract
A method and system for providing access to and control of parameters within a scenegraph includes redefining components or nodes' semantic within a scenegraph. The set of components or nodes (depending on the scenegraph structure) are required to enable access from the Application User Interface to selected scenegraph information. In one embodiment, a user interface is generated for controlling the scenegraph parameters. In addition, constraints can be implemented that allow or disallow access to certain scenegraph parameters and restrict their range of values.
Claims
1. A system for generating a user interface to modify a hierarchical data structure, the system comprising: a feature identifier configured to parse the hierarchical data structure to identify a feature identifier associated with at least one component or node of the hierarchical data structure; a user interface generator configured to automatically generate a user interface that includes a widget that is based on the identified feature identifier and that is configured to control a modifiable parameter of the at least one component or node; a control linking module configured to link the generated user interface to the hierarchical data structure, such that an operation of the user interface automatically modifies the modifiable parameter of the at least one component or node; and a parameter controller configured to automatically adjust the modifiable parameter based on the operation of the widget in the generated user interface, wherein the user interface displays a name for the at least one component or node that is different than the identified at least one feature identifier, and wherein the user interface generator is further configured to determine a field value type for the modifiable parameter of the at least one component or node, and to automatically generate the user interface with the widget that includes the modifiable parameter that is configured to be modified based on the determined field value type.
2. The system according to claim 1, wherein the hierarchical data structure is a scenegraph that comprises a scenegraph description language and the identified at least one feature identifier is syntactically restricted in grammar when the scenegraph is generated in the scenegraph description language.
3. The system according to claim 2, wherein the syntactically restricted at least one feature identifier comprises no spaces and no specific characters.
4. The system according to claim 2, wherein user control for the modifiable parameter is not embedded in the scenegraph description language of the scenegraph.
5. The system according to claim 1, further comprising a control constraint module configured to determine whether the hierarchical data structure provides a generic field type and uses a largest domain in the hierarchical data structure to identify the at least one feature identifier when the hierarchical data structure does not provide the generic field type.
6. The system of claim 1, further comprising a video display configured to concurrently display a rendering of the hierarchical data structure and the generated user interface.
7. A system for generating a user interface to modify a hierarchical data structure, the system comprising: a feature identifier configured to parse the hierarchical data structure to identify a feature identifier associated with at least one component or node of the hierarchical data structure; a user interface generator configured to automatically generate a user interface that includes a widget that is based on the identified feature identifier and that is configured to control a modifiable parameter of the at least one component or node; and a parameter controller configured to automatically adjust the modifiable parameter based on the operation of the widget in the generated user interface, wherein the user interface displays a name for the at least one component or node that is different than the identified at least one feature identifier.
8. The system according to claim 7, wherein the user interface generator is further configured to determine a field value type for the modifiable parameter of the at least one component or node, and to automatically generate the user interface with the widget that includes the modifiable parameter that is configured to be modified based on the determined field value type.
9. The system according to claim 7, further comprising a control linking module configured to link the generated user interface to the hierarchical data structure, such that an operation of the user interface automatically modifies the modifiable parameter of the at least one component or node.
10. The system according to claim 7, wherein the hierarchical data structure is a scenegraph that comprises a scenegraph description language and the identified at least one feature identifier is syntactically restricted in grammar when the scenegraph is generated in the scenegraph description language.
11. The system according to claim 10, wherein the syntactically restricted at least one feature identifier comprises no spaces and no specific characters.
12. The system according to claim 10, wherein user control for the modifiable parameter is not embedded in the scenegraph description language of the scenegraph.
13. The system according to claim 7, further comprising a control constraint module configured to determine whether the hierarchical data structure provides a generic field type and uses a largest domain in the hierarchical data structure to identify the at least one feature identifier when the hierarchical data structure does not provide the generic field type.
14. The system of claim 7, further comprising a video display configured to concurrently display a rendering of the hierarchical data structure and the generated user interface.
15. A system for generating a user interface to modify a hierarchical data structure, the system comprising: a user interface generator configured to generate a user interface for modifying a parameter of at least one component or node of the hierarchical data structure; and a parameter controller configured to modify the parameter of the at least one component or node of the hierarchical data structure based on one or more inputs received by the generated user interface to modify the parameter, wherein the user interface generator is further configured to adapt a feature identifier in one syntax of the hierarchical data structure into a name in another syntax according to which at least one of a grammatical composition or character string of the feature identifier is modified to be comprehensible on the user interface for identification of associated functionality of the user interface.
16. The graphics modeling system according to claim 15, further comprising a feature identification module configured to identify the feature identifier of the at least one component or node of the hierarchical data structure.
17. The graphics modeling system according to claim 16, wherein the feature identification module is further configured to determine a field value type for the parameter, and wherein the user interface generator is further configured to automatically generate the user interface with a widget that includes an interface for modifying the parameter based on the determined field value type.
18. The graphics modeling system according to claim 15, wherein the hierarchical data structure comprises a scenegraph description language and the feature identifier is syntactically restricted in grammar in the scenegraph description language, with the syntactically restricted feature identifier having no spaces and no specific characters.
19. The graphics modeling system according to claim 15, wherein the user interface generator is further configured to automatically generate the user interface with a widget for modifying the parameter.
20. The graphics modeling system according to claim 19, wherein the user interface generator automatically generates the user interface with the widget that displays a name for the parameter that is different than the feature identifier.
21. The graphics modeling system of claim 15, further comprising a video display configured to concurrently display a rendering of the hierarchical data structure and the generated user interface.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7) It should be understood that the drawings are for purposes of illustrating the concepts of the invention and are not necessarily the only possible configuration for illustrating the invention. To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.
DETAILED DESCRIPTION OF THE INVENTION
(8) Many standards for a scenegraph description have been defined including VRML (Virtual Reality Modeling Language), X3D (eXtensible 3D), MPEG-4 Systems, COLLADA and Java3D. Such standards use either a textual representation or XML. In addition, several proprietary standards also exist (e.g., Microsoft DirectX format, NVIDIA NVSG, etc.). In all of these representations however, the primary means for enabling user interaction is to either integrate all interactions (sensors) and behaviors within the scenegraph to embed the whole model in a super-structure (e.g. prototype in VRML/X3D), or to develop a specific application using the scenegraph Application Interface (referred to as EM—External Application Interface—in VRML, SAI—Scene Access Interface—in X3D, DirectX is the interface for the Microsoft format and MPEG-J is the interface in MPEG-4 Systems).
(9) Describing the entire interaction and control within the scenegraph, as in the first listed solution, requires a rendering engine for the scenegraph to include an Execution engine to process the animations and interactions events (see description in the VRML handbook). This is because the Application User Interface in these cases does not have knowledge of the scenegraph. As such, specific source code must be developed in order to extract data from the Scenegraph and in order to give a user access to them. The second solution described above includes using a prototype as defined in VRML/X3D (see VRML handbook). This solution, as described in the VRML handbook is “A protection mechanism that allows an author to limit what can be done to an object”. The problem, however, is that this “prototype node” technique does not allow: 1) profiles management; 2) easy limitation of values for parameters (the only possible way is to use scripts in this case); and 3) it does not provide for any easy containment for creating a User Interface to control fields (i.e., there is no real name given to the parameters besides an identifier name for processing events in the Execution engine, and the prototype technique only helps in interactions between objects (nodes) within the scenegraph, not the user). In addition, using this technique does not allow for the simple addition of new parameters to be presented to the user since the “prototype node” hides the actual scenegraph structure from the user.
(10) The third technique described above uses a Scenegraph Access Interface (SA1) such as X3D specifications for the SAL Such Interfaces are either bound to a language, (i.e., VRML EAI is a Java binding). The technique here is then to develop a specific User Interface to get access to the scenegraph information. This technique allows access to any member of the scenegraph. However, accessing all the fields means the user must know the whole scenegraph structure and have knowledge of all its structural elements (nodes, fields, etc). Moreover, names in the scenegraph might not be clear enough to a user, due to the name of their grammatical composition, e.g. the space character is not allowed.
(11) Embodiments of the present invention can apply to any existing scenegraph description language (e.g., textual or XML), provided the implementation matches the chosen scenegraph file format grammar. A parser can then decide to treat or not treat the nodes defined by the present principles, allowing or not allowing the feature of the present invention. The application can also choose not to display the User Interface controls defined by the present principles. For example, not treating the new feature of the present invention would be very straight forward on the parsing side, as all nodes have bounds, sometimes represented as brackets (e.g., {’ and ‘)’) or XML tag brackets (e.g., ‘<node>’ and ‘</node>’). The parser then only needs to ignore the complete feature declaration in the scenegraph, limited to its brackets.
(12) Embodiments of the present invention include a set of additional components or nodes (depending on the scenegraph structure) needed to enable the access to the selected scenegraph information from the Application User Interface without modifying the original scenegraph description. The new components or nodes enable the redefining of the targeted scenegraph information's semantic to be presentable to the user, for example, with a comprehensible name and modifier on the user interface. This information can then be controlled through a newly created Graphical Interface widgets provided to the user through their graphical user interface. For example, in one embodiment of the present invention, Feature Identifiers can be represented with matching closing and opening brackets, defined in compliance with the scenegraph grammar. In addition, Profiles Identifiers can be represented by a list of strings or identifiers describing the profiles. A profile can include a user, for example, describing access rights, or platform, for example, describing capabilities and/or profile. Containment of those profile identifier strings can be application dependent, or either a name description or a numeric value. If this list of strings is empty, all defined controls will be available to all users or platforms. Certain implementations of alternate embodiments of the present invention, however, may not use this information at all (i.e., instances in which profiles are not present on a platform, such like a decoder STB—Set Top Box—), while other embodiments can manage profiles at a separate layer in the application (i.e., in the case of static profiles in a platform, like a switcher). Embodiments of the present invention can further include a List of controlled items in the scenegraph for each of them.
(13) The identifiers in the scenegraph include a list of strings or identifiers which define the targeted information in the scenegraph and are usually composed of the node's name definition or identifier and the node's field's name or identifier to be controlled. If an identifier is not found at the current parsing level in the scenegraph, its control should not be activated. The application can then retrieve the field value type (e.g., float, integer) as a result of its definition in the scenegraph. This field is essentially a list of strings that allow grouped modification, for example, several color fields at the same time, under a single User Interface component. It is therefore necessary that the fields listed are of the same type.
(14) Embodiments of the present invention can further include a name appearing on the application User Interface. This will usually be different from the identifier name mentioned in the previous paragraph, as usually identifiers in a scenegraph are syntactically restricted in the grammar (no space or specific character) and may not present an appropriate description (i.e., these identifiers are usually automatically generated by the graphics modeling tool).
(15) In accordance with embodiments of the present invention, a reset or factory value can include a value to set the parameter when a “reset” or “factory default” button is activated on the User Interface. This value may be different from the value in the scenegraph itself, since the scenegraph stores values at a specific instant. Even further, minimum and maximum values can be included which define a range of values valid for the parameter. The minimum and maximum values define limits for the User Interface controls.
(16) The Application of embodiments of the present invention can further include a Step Increment, which corresponds to a stepwise increment (absolute value) to apply to a parameter (positively or negatively) on the User Interface by, for example, pushing a ‘+’ or ‘−’ button, and defined Profiles for which this control is enabled. That is, selected profiles identifiers (e.g., those listed above or other application defined identifiers) for which this control is enabled can be listed here.
(17) In one embodiment of the present invention, all values are represented in the field type numeric domain. If the chosen scenegraph does not provide a generic field type, for representing, for example, Floating values and Booleans, the largest domain can be used to define those parameters. For example, a float representation can be used and the value can be cast as an integer or boolean. In accordance with embodiments of the present invention, all values can be an array of numbers, as many parameters can be composed of more than one element or component, for example, a color with RGB values (Red, Green and Blue). If the number of elements/components making up the controlled field and the number of elements/components contained in the minimum, maximum, reset and increment values differ, only the minimum number of elements on those latter values matching the number of elements/components in the controlled field shall be used. For example, if the controlled field represents a RGB color with 3 components and the “reset” value is defined as “[1.0 1.0 1.0 1.0]”, the system will only use the 3 first elements and leave the last one unused.
(18) If the node in which the controlled field is contained is destroyed during the execution of the scenegraph, the User Interface control linked to this node can be deactivated or destroyed as well. Embodiments of the present invention also allow controlled items to be grouped. This allows for the grouping of a list of parameters on the User Interface in a more natural way, for example, a “car” composed of “wheels”, or allows for an override of the scenegraph natural hierarchical structure for presenting the information to the user. This grouping feature can be named as well, and can recursively contain other groups.
(19) Embodiments of the present invention can be implemented on any existing scenegraphs, with the only restrictions being those inherent to each scenegraph model. For example, VRML 2.0 does not provide a generic field type, thus only “SFFloat” can be used as the largest domain.
(20) For example, a VRML 2.0 nodes implementation of the present invention can be represented as follows:
(21) TABLE-US-00001 Control Profiles( Filed MF String profiles [ ] )
The “ControlProfiles” nodes can be discarded if profiles are defined at the application layer.
(22) TABLE-US-00002 ControlGroup { field SFString name “car” field MFNode items [ ] )
(23) The “items” field can contain a list of “ControlItems” (see below) or other “ControlGroup” nodes. The “name” field defines the group name to be presented to the user, for example, “car”. The “profiles” field as presented overrides the profile designation on the individual items in the “items” list, allowing the profile to easily control the whole group.
(24) TABLE-US-00003 ControlItem { field MFString identifiers [ ] field SFString name “” field MFFloat resetValue [ ] field MFFloat minValue [ ] field MFFloat maxValue [ ] field MFFloat stepIncrement [ ] field MFString profiles [ ] }
In the embodiment described above, the “profiles” list contains a list of profiles as defined by the “ControlProfiles” node or application-dependent values.
(25) In an alternate embodiment of the present invention, a PROTO structure concept within VRML 2.0 implementation can be represented as follows:
(26) TABLE-US-00004 CONTROLGROUP [ field MFString profiles [ ] field fieldtypename “name” IS [identifiers] [resetValue] [minValue] [maxValue] [stepIncrement] [profiles] ] { # Internal Scenegraph section }
(27) In yet an alternate embodiment of the present invention, an X3D nodes implementation of the present invention can be represented as follows:
(28) TABLE-US-00005 <ControlGroup name=”” profiles=[ ]> <ControlItem identifiers=[ ] name=”” resetValue=[ ] minValue=[ ] maxValue=[ ] stepIncrement=[ ] profiles=[ ]/> </ControlGroup>
(29)
(30) In one embodiment of the present invention, the application 112 can directly embed the create controls module 116 to add the user controls. This can be useful for a content creator to verify correct execution and rendering of the scenegraph and its corresponding controls.
(31)
(32) TABLE-US-00006 Shape { Geometry Cube { } Appearance Appearance { material DEF MAT Material { } } } ControlGroup { name “Cube” items ControlItem { identifiers “MAT diffuseColor” name “Color” resetValue [ 0.0 0.0 0.0 ] minValue [ 0.0 0.0 0.0 ] maxValue [ 1.0 1.0 1.0 ] stepIncrement [ 0.1 0.1 0.1 ] profiles [“”] } }
(33) As depicted in the example above, the application 112 uses the Control Item to establish a binding between the name “Color” from the Control Group “Cube” and the scenegraph field “diffuseColor”, part of the “MAT” node, which type is SFColor in the VRML 2.0 specifications, and thus functionally supports the desired controls (i.e., 3 editable fields for Red, Green, and Blue color levels). This is shown by the controls window 204 in
(34)
(35) At step 304, once redefined the selected information in the scenegraph is accessed in accordance with the redefined elements. The method then proceeds to step 306.
(36) At step 306, when the selected information has been accessed, means are provided to control the selected information.
(37)
(38)
(39) The various aspects, implementations, and features may be implemented in one or more of a variety of manners, even if described above without reference to a particular manner or using only one manner. For example, the various aspects, implementations, and features may be implemented using, for example, one or more of a method, an apparatus, an apparatus or processing device for performing a method, a program or other set of instructions, an apparatus that includes a program or a set of instructions, and a computer readable medium.
(40) An apparatus may include, for example, discrete or integrated hardware, firmware, and software. As an example, an apparatus may include, for example, a processor, which refers to processing devices in general, including, for example, a microprocessor, an integrated circuit, or a programmable logic device. As another example, an apparatus may include one or more computer readable media having instructions for carrying out one or more processes.
(41) A computer readable medium may include, for example, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory (“RAM”), or a read-only memory (“ROM”). A computer readable medium also may include, for example, formatted electromagnetic waves encoding or transmitting instructions. Instructions may be, for example, in hardware, firmware, software, or in an electromagnetic wave. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a computer readable medium having instructions for carrying out a process.
(42) Having described preferred embodiments for a method and system for providing access to and control of parameters within a scenegraph (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the invention disclosed which are within the scope and spirit of the invention as outlined by the appended claims. While the forgoing is directed to various embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof.