Computer graphics shader systems and methods
AssigneeNVIDIA Corporation
InventorsRolf Berteig, Thomas Driemeyer, Martin-Karl LeFrancois, Rolf Herken
Life of this patent
Estimating the term…
Abstract
Methods and systems are described that unite various shading applications under a single language, enable the simple re-use and re-purposing of shaders, facilitate the design and construction of shaders without need for computer programming, and enable the graphical debugging of shaders.
Claims33
In a computer graphics system for generating an image of a scene from a representation to which at least one instantiated phenomenon has been attached, the instantiated phenomenon comprising an encapsulated shader DAG comprising at least one shader node, the improvement comprising:
- a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders,
- a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment, and
- a software language useable by a human operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications,
- wherein:
- the software language is configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and
- the software language is operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language.
In a computer graphics system for enabling an operator to create a phenomenon, the phenomenon comprising an encapsulated shader DAG comprising at least one shader node, the computer graphics system comprising (A) a base shader node database configured to store a plurality of base shader nodes, each base shader node including a shader, and (B) a phenomenon creator configured to enable the operator to interconnect the base shader nodes from the base shader node database into a DAG, the phenomenon creator verifying that interconnections among the base shader nodes as provided by the operator comprise a DAG, the improvement wherein the phenomenon creator comprises:
- a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders, and
- a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment, and
- a software language useable by the operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications, the software language configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language.
In a computer graphics system for enabling an operator to generate, from a phenomenon, an instantiated phenomenon, the phenomenon comprising an encapsulated shader DAG comprising at least one shader DAG including at least one shader node, the computer graphics system comprising (A) a phenomenon database configured to store the phenomenon, and (B) a phenomenon editor configured to enable the operator to select the phenomenon and provide a value for at least one parameter associated with the at least one shader node, the improvement wherein the phenomenon editor comprises:
- a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders, and
- a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment, and
- a software language useable by the operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications, the software language configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language.
In a computer graphics system for generating an image of a scene from a representation to which at least one instantiated phenomenon has been attached, the instantiated phenomenon comprising an encapsulated shader DAG comprising at least one shader node, the computer graphics system comprising (A) a pre-processor configured to determine whether the at least one instantiated phenomenon requires a pre-processing operation in connection with the representation, and, if so, performing the pre-processing operation to generate a pre-processed representation of the scene, and (B) a renderer configured to generate a rendered image from the pre-processed representation of the scene, the improvement comprising:
- a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders, and
- a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment, and
- a software language useable by a human operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications, the software language configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language.
In a computer graphics system for generating an image of a scene from a representation to which at least one instantiated phenomenon has been attached, the instantiated phenomenon comprising an encapsulated shader DAG comprising at least one shader node, the improvement comprising:
- a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders,
- a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment,
- a software language useable by a human operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications, the software language configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language,
- at least one GUI library usable in connection with the metanode environment to generate a GUI operable to construct shader graphs and phenomena,
- an interactive, visual, real-time debugging environment in communication with the GUI, operable to (1) enable the user to detect and correct potential flaws in shaders, and (2) provide a viewing window in which a test scene with a shader, metanode, or phenomenon under test is constantly rendered, and
- a facility in communication with the compiler function, operable to convert the optimized software code for the selected hardware platform and selected shader language to machine code for selected integrated circuit instantiations, using a native compiler function for the selected shader language.
In a computer graphics system for generating an image of a scene from a representation to which at least one instantiated phenomenon has been attached, the instantiated phenomenon comprising an encapsulated shader DAG comprising at least one shader node, a method of enabling the generation of an image of a scene, the method comprising:
- configuring a metanode environment operable for the creation of metanodes, the metanodes comprising component shaders that can be combined to build more complex shaders,
- configuring a graphical user interface (GUI) in communication with the metanode environment and operable to manage the metanode environment to enable a user to construct shader graphs and phenomena using the metanode environment,
- providing a software language as an interface useable by a human operator and operable to manage the metanode environment, implement shaders and unify discrete shading applications, the software language configurable as a superset of a plurality of selected shader languages for selected hardware platforms, and operable to enable a compiler function to generate, from a single, re-usable description of a phenomenon expressed in the software language, optimized software code for a selected hardware platform in a selected shader language,
- providing at least one GUI library usable in connection with the metanode environment to generate a GUI operable to construct shader graphs and phenomena,
- configuring an interactive, visual, real-time debugging environment in communication with the GUI, operable to (1) enable the user to detect and correct potential flaws in shaders, and (2) provide a viewing window in which a test scene with a shader, metanode, or phenomenon under test is constantly rendered, and
- configuring a facility in communication with the compiler function, operable to convert the optimized software code for the selected hardware platform and selected shader language to machine code for selected integrated circuit instantiations, using a native compiler function for the selected shader language.
Dependencies are inferred from the claim text.