You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
504 lines
22 KiB
504 lines
22 KiB
#usda 1.0 |
|
( |
|
"WARNING: THIS FILE IS GENERATED BY usdGenSchema. DO NOT EDIT." |
|
) |
|
|
|
class "RenderSettingsBase" ( |
|
doc = """Abstract base class that defines render settings that |
|
can be specified on either a RenderSettings prim or a RenderProduct |
|
prim.""" |
|
) |
|
{ |
|
uniform token aspectRatioConformPolicy = "expandAperture" ( |
|
allowedTokens = ["expandAperture", "cropAperture", "adjustApertureWidth", "adjustApertureHeight", "adjustPixelAspectRatio"] |
|
doc = '''Indicates the policy to use to resolve an aspect |
|
ratio mismatch between the camera aperture and image settings. |
|
|
|
This policy allows a standard render setting to do something |
|
reasonable given varying camera inputs. |
|
|
|
The camera aperture aspect ratio is determined by the |
|
aperture atributes on the UsdGeomCamera. |
|
|
|
The image aspect ratio is determined by the resolution and |
|
pixelAspectRatio attributes in the render settings. |
|
|
|
- "expandAperture": if necessary, expand the aperture to |
|
fit the image, exposing additional scene content |
|
- "cropAperture": if necessary, crop the aperture to fit |
|
the image, cropping scene content |
|
- "adjustApertureWidth": if necessary, adjust aperture width |
|
to make its aspect ratio match the image |
|
- "adjustApertureHeight": if necessary, adjust aperture height |
|
to make its aspect ratio match the image |
|
- "adjustPixelAspectRatio": compute pixelAspectRatio to |
|
make the image exactly cover the aperture; disregards |
|
existing attribute value of pixelAspectRatio |
|
''' |
|
) |
|
rel camera ( |
|
doc = """The _camera_ relationship specifies the primary |
|
camera to use in a render. It must target a UsdGeomCamera.""" |
|
) |
|
uniform float4 dataWindowNDC = (0, 0, 1, 1) ( |
|
doc = """dataWindowNDC specifies the axis-aligned rectangular |
|
region in the adjusted aperture window within which the renderer |
|
should produce data. |
|
|
|
It is specified as (xmin, ymin, xmax, ymax) in normalized |
|
device coordinates, where the range 0 to 1 corresponds to the |
|
aperture. (0,0) corresponds to the bottom-left |
|
corner and (1,1) corresponds to the upper-right corner. |
|
|
|
Specifying a window outside the unit square will produce |
|
overscan data. Specifying a window that does not cover the unit |
|
square will produce a cropped render. |
|
|
|
A pixel is included in the rendered result if the pixel |
|
center is contained by the data window. This is consistent |
|
with standard rules used by polygon rasterization engines. |
|
\\ref UsdRenderRasterization |
|
|
|
The data window is expressed in NDC so that cropping and |
|
overscan may be resolution independent. In interactive |
|
workflows, incremental cropping and resolution adjustment |
|
may be intermixed to isolate and examine parts of the scene. |
|
In compositing workflows, overscan may be used to support |
|
image post-processing kernels, and reduced-resolution proxy |
|
renders may be used for faster iteration. |
|
|
|
The dataWindow:ndc coordinate system references the |
|
aperture after any adjustments required by |
|
aspectRatioConformPolicy. |
|
""" |
|
) |
|
uniform bool disableMotionBlur = 0 ( |
|
doc = """Disable all motion blur by setting the shutter interval |
|
of the targeted camera to [0,0] - that is, take only one sample, |
|
namely at the current time code.""" |
|
) |
|
uniform bool instantaneousShutter = 0 ( |
|
doc = """Deprecated - use disableMotionBlur instead. Override |
|
the targeted _camera_'s _shutterClose_ to be equal to the |
|
value of its _shutterOpen_, to produce a zero-width shutter |
|
interval. This gives us a convenient way to disable motion |
|
blur.""" |
|
) |
|
uniform float pixelAspectRatio = 1 ( |
|
doc = """The aspect ratio (width/height) of image pixels.. |
|
The default ratio 1.0 indicates square pixels.""" |
|
) |
|
uniform int2 resolution = (2048, 1080) ( |
|
doc = """The image pixel resolution, corresponding to the |
|
camera's screen window.""" |
|
) |
|
} |
|
|
|
class RenderSettings "RenderSettings" ( |
|
doc = """A UsdRenderSettings prim specifies global settings for |
|
a render process, including an enumeration of the RenderProducts |
|
that should result, and the UsdGeomImageable purposes that should |
|
be rendered. \\ref UsdRenderHowSettingsAffectRendering""" |
|
) |
|
{ |
|
uniform token aspectRatioConformPolicy = "expandAperture" ( |
|
allowedTokens = ["expandAperture", "cropAperture", "adjustApertureWidth", "adjustApertureHeight", "adjustPixelAspectRatio"] |
|
doc = '''Indicates the policy to use to resolve an aspect |
|
ratio mismatch between the camera aperture and image settings. |
|
|
|
This policy allows a standard render setting to do something |
|
reasonable given varying camera inputs. |
|
|
|
The camera aperture aspect ratio is determined by the |
|
aperture atributes on the UsdGeomCamera. |
|
|
|
The image aspect ratio is determined by the resolution and |
|
pixelAspectRatio attributes in the render settings. |
|
|
|
- "expandAperture": if necessary, expand the aperture to |
|
fit the image, exposing additional scene content |
|
- "cropAperture": if necessary, crop the aperture to fit |
|
the image, cropping scene content |
|
- "adjustApertureWidth": if necessary, adjust aperture width |
|
to make its aspect ratio match the image |
|
- "adjustApertureHeight": if necessary, adjust aperture height |
|
to make its aspect ratio match the image |
|
- "adjustPixelAspectRatio": compute pixelAspectRatio to |
|
make the image exactly cover the aperture; disregards |
|
existing attribute value of pixelAspectRatio |
|
''' |
|
) |
|
rel camera ( |
|
doc = """The _camera_ relationship specifies the primary |
|
camera to use in a render. It must target a UsdGeomCamera.""" |
|
) |
|
uniform float4 dataWindowNDC = (0, 0, 1, 1) ( |
|
doc = """dataWindowNDC specifies the axis-aligned rectangular |
|
region in the adjusted aperture window within which the renderer |
|
should produce data. |
|
|
|
It is specified as (xmin, ymin, xmax, ymax) in normalized |
|
device coordinates, where the range 0 to 1 corresponds to the |
|
aperture. (0,0) corresponds to the bottom-left |
|
corner and (1,1) corresponds to the upper-right corner. |
|
|
|
Specifying a window outside the unit square will produce |
|
overscan data. Specifying a window that does not cover the unit |
|
square will produce a cropped render. |
|
|
|
A pixel is included in the rendered result if the pixel |
|
center is contained by the data window. This is consistent |
|
with standard rules used by polygon rasterization engines. |
|
\\ref UsdRenderRasterization |
|
|
|
The data window is expressed in NDC so that cropping and |
|
overscan may be resolution independent. In interactive |
|
workflows, incremental cropping and resolution adjustment |
|
may be intermixed to isolate and examine parts of the scene. |
|
In compositing workflows, overscan may be used to support |
|
image post-processing kernels, and reduced-resolution proxy |
|
renders may be used for faster iteration. |
|
|
|
The dataWindow:ndc coordinate system references the |
|
aperture after any adjustments required by |
|
aspectRatioConformPolicy. |
|
""" |
|
) |
|
uniform bool disableMotionBlur = 0 ( |
|
doc = """Disable all motion blur by setting the shutter interval |
|
of the targeted camera to [0,0] - that is, take only one sample, |
|
namely at the current time code.""" |
|
) |
|
uniform token[] includedPurposes = ["default", "render"] ( |
|
doc = """The list of UsdGeomImageable _purpose_ values that |
|
should be included in the render. Note this cannot be |
|
specified per-RenderProduct because it is a statement of |
|
which geometry is present.""" |
|
) |
|
uniform bool instantaneousShutter = 0 ( |
|
doc = """Deprecated - use disableMotionBlur instead. Override |
|
the targeted _camera_'s _shutterClose_ to be equal to the |
|
value of its _shutterOpen_, to produce a zero-width shutter |
|
interval. This gives us a convenient way to disable motion |
|
blur.""" |
|
) |
|
uniform token[] materialBindingPurposes = ["full", ""] ( |
|
allowedTokens = ["full", "preview", ""] |
|
doc = '''Ordered list of material purposes to consider when |
|
resolving material bindings in the scene. The empty string |
|
indicates the "allPurpose" binding.''' |
|
) |
|
uniform float pixelAspectRatio = 1 ( |
|
doc = """The aspect ratio (width/height) of image pixels.. |
|
The default ratio 1.0 indicates square pixels.""" |
|
) |
|
rel products ( |
|
doc = """The set of RenderProducts the render should produce. |
|
This relationship should target UsdRenderProduct prims. |
|
If no _products_ are specified, an application should produce |
|
an rgb image according to the RenderSettings configuration, |
|
to a default display or image name.""" |
|
) |
|
uniform token renderingColorSpace ( |
|
doc = """Describes a renderer's working (linear) colorSpace where all |
|
the renderer/shader math is expected to happen. When no |
|
renderingColorSpace is provided, renderer should use its own default.""" |
|
) |
|
uniform int2 resolution = (2048, 1080) ( |
|
doc = """The image pixel resolution, corresponding to the |
|
camera's screen window.""" |
|
) |
|
} |
|
|
|
class RenderVar "RenderVar" ( |
|
doc = """A UsdRenderVar describes a custom data variable for |
|
a render to produce. The prim describes the source of the data, which |
|
can be a shader output or an LPE (Light Path Expression), and also |
|
allows encoding of (generally renderer-specific) parameters that |
|
configure the renderer for computing the variable. |
|
|
|
\\note The name of the RenderVar prim drives the name of the data |
|
variable that the renderer will produce. |
|
|
|
\\note In the future, UsdRender may standardize RenderVar representation |
|
for well-known variables under the sourceType `intrinsic`, |
|
such as _r_, _g_, _b_, _a_, _z_, or _id_. |
|
""" |
|
) |
|
{ |
|
uniform token dataType = "color3f" ( |
|
doc = "The type of this channel, as a USD attribute type." |
|
) |
|
uniform string sourceName = "" ( |
|
doc = """The renderer should look for an output of this name |
|
as the computed value for the RenderVar.""" |
|
) |
|
uniform token sourceType = "raw" ( |
|
allowedTokens = ["raw", "primvar", "lpe", "intrinsic"] |
|
doc = '''Indicates the type of the source. |
|
|
|
- "raw": The name should be passed directly to the |
|
renderer. This is the default behavior. |
|
- "primvar": This source represents the name of a primvar. |
|
Some renderers may use this to ensure that the primvar |
|
is provided; other renderers may require that a suitable |
|
material network be provided, in which case this is simply |
|
an advisory setting. |
|
- "lpe": Specifies a Light Path Expression in the |
|
[OSL Light Path Expressions language](https://github.com/imageworks/OpenShadingLanguage/wiki/OSL-Light-Path-Expressions) as the source for |
|
this RenderVar. Some renderers may use extensions to |
|
that syntax, which will necessarily be non-portable. |
|
- "intrinsic": This setting is currently unimplemented, |
|
but represents a future namespace for UsdRender to provide |
|
portable baseline RenderVars, such as camera depth, that |
|
may have varying implementations for each renderer. |
|
''' |
|
) |
|
} |
|
|
|
class RenderProduct "RenderProduct" ( |
|
doc = """A UsdRenderProduct describes an image or other |
|
file-like artifact produced by a render. A RenderProduct |
|
combines one or more RenderVars into a file or interactive |
|
buffer. It also provides all the controls established in |
|
UsdRenderSettingsBase as optional overrides to whatever the |
|
owning UsdRenderSettings prim dictates. |
|
|
|
Specific renderers may support additional settings, such |
|
as a way to configure compression settings, filetype metadata, |
|
and so forth. Such settings can be encoded using |
|
renderer-specific API schemas applied to the product prim. |
|
""" |
|
) |
|
{ |
|
uniform token aspectRatioConformPolicy = "expandAperture" ( |
|
allowedTokens = ["expandAperture", "cropAperture", "adjustApertureWidth", "adjustApertureHeight", "adjustPixelAspectRatio"] |
|
doc = '''Indicates the policy to use to resolve an aspect |
|
ratio mismatch between the camera aperture and image settings. |
|
|
|
This policy allows a standard render setting to do something |
|
reasonable given varying camera inputs. |
|
|
|
The camera aperture aspect ratio is determined by the |
|
aperture atributes on the UsdGeomCamera. |
|
|
|
The image aspect ratio is determined by the resolution and |
|
pixelAspectRatio attributes in the render settings. |
|
|
|
- "expandAperture": if necessary, expand the aperture to |
|
fit the image, exposing additional scene content |
|
- "cropAperture": if necessary, crop the aperture to fit |
|
the image, cropping scene content |
|
- "adjustApertureWidth": if necessary, adjust aperture width |
|
to make its aspect ratio match the image |
|
- "adjustApertureHeight": if necessary, adjust aperture height |
|
to make its aspect ratio match the image |
|
- "adjustPixelAspectRatio": compute pixelAspectRatio to |
|
make the image exactly cover the aperture; disregards |
|
existing attribute value of pixelAspectRatio |
|
''' |
|
) |
|
rel camera ( |
|
doc = """The _camera_ relationship specifies the primary |
|
camera to use in a render. It must target a UsdGeomCamera.""" |
|
) |
|
uniform float4 dataWindowNDC = (0, 0, 1, 1) ( |
|
doc = """dataWindowNDC specifies the axis-aligned rectangular |
|
region in the adjusted aperture window within which the renderer |
|
should produce data. |
|
|
|
It is specified as (xmin, ymin, xmax, ymax) in normalized |
|
device coordinates, where the range 0 to 1 corresponds to the |
|
aperture. (0,0) corresponds to the bottom-left |
|
corner and (1,1) corresponds to the upper-right corner. |
|
|
|
Specifying a window outside the unit square will produce |
|
overscan data. Specifying a window that does not cover the unit |
|
square will produce a cropped render. |
|
|
|
A pixel is included in the rendered result if the pixel |
|
center is contained by the data window. This is consistent |
|
with standard rules used by polygon rasterization engines. |
|
\\ref UsdRenderRasterization |
|
|
|
The data window is expressed in NDC so that cropping and |
|
overscan may be resolution independent. In interactive |
|
workflows, incremental cropping and resolution adjustment |
|
may be intermixed to isolate and examine parts of the scene. |
|
In compositing workflows, overscan may be used to support |
|
image post-processing kernels, and reduced-resolution proxy |
|
renders may be used for faster iteration. |
|
|
|
The dataWindow:ndc coordinate system references the |
|
aperture after any adjustments required by |
|
aspectRatioConformPolicy. |
|
""" |
|
) |
|
uniform bool disableMotionBlur = 0 ( |
|
doc = """Disable all motion blur by setting the shutter interval |
|
of the targeted camera to [0,0] - that is, take only one sample, |
|
namely at the current time code.""" |
|
) |
|
uniform bool instantaneousShutter = 0 ( |
|
doc = """Deprecated - use disableMotionBlur instead. Override |
|
the targeted _camera_'s _shutterClose_ to be equal to the |
|
value of its _shutterOpen_, to produce a zero-width shutter |
|
interval. This gives us a convenient way to disable motion |
|
blur.""" |
|
) |
|
rel orderedVars ( |
|
doc = """Specifies the RenderVars that should be consumed and |
|
combined into the final product. If ordering is relevant to the |
|
output driver, then the ordering of targets in this relationship |
|
provides the order to use.""" |
|
) |
|
uniform float pixelAspectRatio = 1 ( |
|
doc = """The aspect ratio (width/height) of image pixels.. |
|
The default ratio 1.0 indicates square pixels.""" |
|
) |
|
token productName = "" ( |
|
doc = """Specifies the name that the output/display driver |
|
should give the product. This is provided as-authored to the |
|
driver, whose responsibility it is to situate the product on a |
|
filesystem or other storage, in the desired location.""" |
|
) |
|
uniform token productType = "raster" ( |
|
doc = '''The type of output to produce. |
|
The default, "raster", indicates a 2D image. |
|
|
|
\\note In the future, UsdRender may define additional product |
|
types.''' |
|
) |
|
uniform int2 resolution = (2048, 1080) ( |
|
doc = """The image pixel resolution, corresponding to the |
|
camera's screen window.""" |
|
) |
|
} |
|
|
|
class RenderPass "RenderPass" ( |
|
apiSchemas = ["CollectionAPI:renderVisibility"] |
|
customData = { |
|
token[] apiSchemaOverridePropertyNames = ["collection:renderVisibility:includeRoot"] |
|
} |
|
doc = """A RenderPass prim encapsulates the necessary information |
|
to generate multipass renders. It houses properties for generating |
|
dependencies and the necessary commands to run to generate renders, as |
|
well as visibility controls for the scene. While RenderSettings |
|
describes the information needed to generate images from a single |
|
invocation of a renderer, RenderPass describes the additional information |
|
needed to generate a time varying set of images. |
|
|
|
There are two consumers of RenderPass prims - a runtime executable that |
|
generates images from usdRender prims, and pipeline specific code that |
|
translates between usdRender prims and the pipeline's resource scheduling |
|
software. We'll refer to the latter as 'job submission code'. |
|
|
|
\\anchor usdRender_renderVisibility |
|
The objects that are relevant to the render is specified via the |
|
renderVisibility collection (UsdCollectionAPI) and can be accessed via |
|
GetRenderVisibilityCollectionAPI(). This collection has includeRoot set to |
|
true so that all objects participate in the render by default. To render |
|
only a specific set of objects, there are two options. One is to modify the |
|
collection paths to explicitly exclude objects that don't participate in |
|
the render, assuming it is known; the other option is to set includeRoot to |
|
false and explicitly include the desired objects. These are complementary |
|
approaches that may each be preferable depending on the scenario. |
|
|
|
The name of the prim is used as the pass's name. |
|
""" |
|
) |
|
{ |
|
uniform bool collection:renderVisibility:includeRoot = 1 |
|
uniform string[] command ( |
|
doc = '''The command to run in order to generate |
|
renders for this pass. The job submission code can use |
|
this to properly send tasks to the job scheduling software |
|
that will generate products. |
|
|
|
The command can contain variables that will be substituted |
|
appropriately during submission, as seen in the example below |
|
with {fileName}. |
|
|
|
For example: |
|
command[0] = "prman" |
|
command[1] = "-progress" |
|
command[2] = "-pixelvariance" |
|
command[3] = "-0.15" |
|
command[4] = "{fileName}" # the fileName property will be substituted |
|
''' |
|
) |
|
uniform bool denoise:enable = 0 ( |
|
doc = "When True, this Pass pass should be denoised." |
|
) |
|
rel denoise:pass ( |
|
doc = """The The UsdRenderDenoisePass prim from which to |
|
source denoise settings. |
|
""" |
|
) |
|
uniform asset fileName ( |
|
doc = """The asset that contains the rendering prims or other |
|
information needed to render this pass. |
|
""" |
|
) |
|
rel inputPasses ( |
|
doc = """The set of other Passes that this Pass depends on |
|
in order to be constructed properly. For example, a Pass A |
|
may generate a texture, which is then used as an input to |
|
Pass B. |
|
|
|
By default, usdRender makes some assumptions about the |
|
relationship between this prim and the prims listed in inputPasses. |
|
Namely, when per-frame tasks are generated from these pass prims, |
|
usdRender will assume a one-to-one relationship between tasks |
|
that share their frame number. Consider a pass named 'composite' |
|
whose _inputPasses_ targets a Pass prim named 'beauty`. |
|
By default, each frame for 'composite' will depend on the |
|
same frame from 'beauty': |
|
beauty.1 -> composite.1 |
|
beauty.2 -> composite.2 |
|
etc |
|
|
|
The consumer of this RenderPass graph of inputs will need to resolve |
|
the transitive dependencies. |
|
""" |
|
) |
|
uniform token passType ( |
|
doc = """A string used to categorize differently structured |
|
or executed types of passes within a customized pipeline. |
|
|
|
For example, when multiple DCC's (e.g. Houdini, Katana, Nuke) |
|
each compute and contribute different Products to a final result, |
|
it may be clearest and most flexible to create a separate |
|
RenderPass for each. |
|
""" |
|
) |
|
rel renderSource ( |
|
doc = """The source prim to render from. If _fileName_ is not present, |
|
the source is assumed to be a RenderSettings prim present in the current |
|
Usd stage. If fileName is present, the source should be found in the |
|
file there. This relationship might target a string attribute on this |
|
or another prim that identifies the appropriate object in the external |
|
container. |
|
|
|
For example, for a Usd-backed pass, this would point to a RenderSettings |
|
prim. Houdini passes would point to a Rop. Nuke passes would point to |
|
a write node. |
|
""" |
|
) |
|
} |
|
|
|
class RenderDenoisePass "RenderDenoisePass" ( |
|
doc = """A RenderDenoisePass generates renders via a denoising process. |
|
This may be the same renderer that a pipeline uses for UsdRender, |
|
or may be a separate one. Notably, a RenderDenoisePass requires |
|
another Pass to be present for it to operate. The denoising process |
|
itself is not generative, and requires images inputs to operate. |
|
|
|
As denoising integration varies so widely across pipelines, all |
|
implementation details are left to pipeline-specific prims |
|
that inherit from RenderDenoisePass. |
|
""" |
|
) |
|
{ |
|
} |
|
|
|
|