MaterialX 1.39.1
Loading...
Searching...
No Matches
GenOptions.h
Go to the documentation of this file.
1//
2// Copyright Contributors to the MaterialX Project
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#ifndef MATERIALX_GENOPTIONS_H
7#define MATERIALX_GENOPTIONS_H
8
11
13
15
16MATERIALX_NAMESPACE_BEGIN
17
20{
27
33};
34
37{
40
44
48};
49
52{
55
58
61};
62
65{
68
71};
72
75class MX_GENSHADER_API GenOptions
76{
77 public:
78 GenOptions() :
79 shaderInterfaceType(SHADER_INTERFACE_COMPLETE),
80 fileTextureVerticalFlip(false),
81 addUpstreamDependencies(true),
82 libraryPrefix("libraries"),
83 emitColorTransforms(true),
84 hwTransparency(false),
85 hwSpecularEnvironmentMethod(SPECULAR_ENVIRONMENT_FIS),
86 hwDirectionalAlbedoMethod(DIRECTIONAL_ALBEDO_ANALYTIC),
87 hwTransmissionRenderMethod(TRANSMISSION_REFRACTION),
88 hwSrgbEncodeOutput(false),
89 hwWriteDepthMoments(false),
90 hwShadowMap(false),
91 hwAmbientOcclusion(false),
92 hwMaxActiveLightSources(3),
93 hwNormalizeUdimTexCoords(false),
94 hwWriteAlbedoTable(false),
95 hwWriteEnvPrefilter(false),
96 hwImplicitBitangents(true)
97 {
98 }
99 virtual ~GenOptions() { }
100
101 // TODO: Add options for:
102 // - shader gen optimization level
103 // - graph flattening or not
104
107
113
118
123
127
132
136
143
147
151
155
159
163
167
171
175
182
186
190
194};
195
196MATERIALX_NAMESPACE_END
197
198#endif
Cross-platform support for file and search paths.
HwDirectionalAlbedoMethod
Method to use for directional albedo evaluation.
Definition: GenOptions.h:52
@ DIRECTIONAL_ALBEDO_TABLE
Use a table look-up for directional albedo.
Definition: GenOptions.h:57
@ DIRECTIONAL_ALBEDO_MONTE_CARLO
Use Monte Carlo integration for directional albedo.
Definition: GenOptions.h:60
@ DIRECTIONAL_ALBEDO_ANALYTIC
Use an analytic approximation for directional albedo.
Definition: GenOptions.h:54
HwSpecularEnvironmentMethod
Method to use for specular environment lighting.
Definition: GenOptions.h:37
@ SPECULAR_ENVIRONMENT_NONE
Do not use specular environment maps.
Definition: GenOptions.h:39
@ SPECULAR_ENVIRONMENT_FIS
Use Filtered Importance Sampling for specular environment/indirect lighting.
Definition: GenOptions.h:43
@ SPECULAR_ENVIRONMENT_PREFILTER
Use pre-filtered environment maps for specular environment/indirect lighting.
Definition: GenOptions.h:47
HwTransmissionRenderMethod
Method to use for transmission rendering.
Definition: GenOptions.h:65
@ TRANSMISSION_OPACITY
Use opacity for transmission rendering.
Definition: GenOptions.h:70
@ TRANSMISSION_REFRACTION
Use a refraction approximation for transmission rendering.
Definition: GenOptions.h:67
ShaderInterfaceType
Type of shader interface to be generated.
Definition: GenOptions.h:20
@ SHADER_INTERFACE_REDUCED
Create a reduced interface with uniforms only for the inputs that has been declared in the shaders no...
Definition: GenOptions.h:32
@ SHADER_INTERFACE_COMPLETE
Create a complete interface with uniforms for all editable inputs on all nodes used by the shader.
Definition: GenOptions.h:26
Macros for declaring imported and exported symbols.
A generic file path, supporting both syntactic and file system operations.
Definition: File.h:27
Class holding options to configure shader generation.
Definition: GenOptions.h:76
bool fileTextureVerticalFlip
If true the y-component of texture coordinates used for sampling file textures will be flipped before...
Definition: GenOptions.h:112
unsigned int hwMaxActiveLightSources
Sets the maximum number of light sources that can be active at once.
Definition: GenOptions.h:174
bool emitColorTransforms
Enable emitting colorspace transform code if a color management system is defined.
Definition: GenOptions.h:135
bool hwWriteEnvPrefilter
Enables the generation of a prefiltered environment map.
Definition: GenOptions.h:189
bool hwAmbientOcclusion
Enables ambient occlusion rendering for HW shader targets.
Definition: GenOptions.h:170
bool hwShadowMap
Enables shadow mapping for HW shader targets.
Definition: GenOptions.h:166
bool hwSrgbEncodeOutput
Enables an sRGB encoding for the color output on HW shader targets.
Definition: GenOptions.h:158
string targetDistanceUnit
Define the target distance unit.
Definition: GenOptions.h:122
HwTransmissionRenderMethod hwTransmissionRenderMethod
Sets the method to use for transmission rendering for HW shader targets.
Definition: GenOptions.h:154
string targetColorSpaceOverride
An optional override for the target color space.
Definition: GenOptions.h:117
bool addUpstreamDependencies
Sets whether to include upstream dependencies for the element to generate a shader for.
Definition: GenOptions.h:126
HwSpecularEnvironmentMethod hwSpecularEnvironmentMethod
Sets the method to use for specular environment lighting for HW shader targets.
Definition: GenOptions.h:146
bool hwTransparency
Sets if transparency is needed or not for HW shaders.
Definition: GenOptions.h:142
HwDirectionalAlbedoMethod hwDirectionalAlbedoMethod
Sets the method to use for directional albedo evaluation for HW shader targets.
Definition: GenOptions.h:150
ShaderInterfaceType shaderInterfaceType
Sets the type of shader interface to be generated.
Definition: GenOptions.h:106
bool hwImplicitBitangents
Calculate fallback bitangents from existing normals and tangents inside the bitangent node.
Definition: GenOptions.h:193
bool hwWriteDepthMoments
Enables the writing of depth moments for HW shader targets.
Definition: GenOptions.h:162
bool hwNormalizeUdimTexCoords
Sets whether to transform texture coordinates to normalize uv space when UDIMs images are bound to an...
Definition: GenOptions.h:181
FilePath libraryPrefix
The standard library prefix, which will be applied to calls to emitLibraryInclude during code generat...
Definition: GenOptions.h:131
bool hwWriteAlbedoTable
Enables the writing of a directional albedo table.
Definition: GenOptions.h:185