All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
spec.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef USDRENDER_SPEC_H
25 #define USDRENDER_SPEC_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdRender/api.h"
31 #include "pxr/usd/usdRender/settingsBase.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdRender/tokens.h"
35 
36 #include "pxr/base/gf/frustum.h"
37 
38 
39 #include "pxr/base/vt/value.h"
40 
41 #include "pxr/base/gf/vec3d.h"
42 #include "pxr/base/gf/vec3f.h"
43 #include "pxr/base/gf/matrix4d.h"
44 
45 #include "pxr/base/tf/token.h"
46 #include "pxr/base/tf/type.h"
47 
48 PXR_NAMESPACE_OPEN_SCOPE
49 
50 class UsdRenderSettings;
51 
54 struct UsdRenderSpec {
56  struct Product {
82  std::vector<size_t> renderVarIndices;
85  };
87  struct RenderVar {
92  std::string sourceName;
93  TfToken sourceType;
96  };
98  std::vector<Product> products;
100  std::vector<RenderVar> renderVars;
107 };
108 
120 USDRENDER_API
123  UsdTimeCode time,
124  std::vector<std::string> const& namespaces);
125 
126 PXR_NAMESPACE_CLOSE_SCOPE
127 
128 #endif
Basic type for a vector of 2 int components.
Definition: vec2i.h:61
GfRange2f dataWindowNDC
The data window, in NDC terms relative to the aperture.
Definition: spec.h:79
bool instantaneousShutter
If set to true, disables motion blur.
Definition: spec.h:64
Specification of a product. See UsdRenderProduct.
Definition: spec.h:56
USDRENDER_API UsdRenderSpec UsdRenderComputeSpec(UsdRenderSettings const &settings, UsdTimeCode time, std::vector< std::string > const &namespaces)
Computes the specification of the render settings.
A map with string keys and VtValue values.
Definition: dictionary.h:61
TfToken name
The name of the product, which uniquely identifies it.
Definition: spec.h:60
std::vector< size_t > renderVarIndices
The render vars used by this product, as indices into the top-level renderVars array.
Definition: spec.h:82
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:89
A self-contained specification of render settings.
Definition: spec.h:54
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:85
SdfPath renderVarPath
The path of this render var, which uniquely identifies it.
Definition: spec.h:89
VtArray< TfToken > materialBindingPurposes
List of material binding purposes.
Definition: spec.h:104
TfToken type
The type of product, ex: &quot;raster&quot;.
Definition: spec.h:58
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:287
A UsdRenderSettings prim specifies global settings for a render process, including an enumeration of ...
Definition: settings.h:63
TfToken dataType
The value data type of the variable, as a USD type name.
Definition: spec.h:91
GfVec2i resolution
The pixel resolution of the product.
Definition: spec.h:66
float pixelAspectRatio
The pixel aspect ratio as adjusted by aspectRatioConformPolicy.
Definition: spec.h:68
Basic type for a vector of 2 float components.
Definition: vec2f.h:63
std::vector< RenderVar > renderVars
The full list of render vars requested by products in this render.
Definition: spec.h:100
VtArray< TfToken > includedPurposes
List of purposes to use to filter scene contents.
Definition: spec.h:102
std::vector< Product > products
The full list of products requested by this render.
Definition: spec.h:98
TfToken aspectRatioConformPolicy
The policy that was applied to conform aspect ratio mismatches between the aperture and image...
Definition: spec.h:71
Basic type: 2-dimensional floating point range.
Definition: range2f.h:64
VtDictionary extraSettings
Any extra settings values discovered in requested namespaces.
Definition: spec.h:84
GfVec2f apertureSize
The camera aperture size as adjusted by aspectRatioConformPolicy.
Definition: spec.h:73
SdfPath cameraPath
Path to the primary UsdGeomCamera camera to use for this product.
Definition: spec.h:62
Specification of a render variable (aka AOV). See UsdRenderVar.
Definition: spec.h:87