Blender  V2.93
svm_types.h
Go to the documentation of this file.
1 /*
2  * Copyright 2011-2013 Blender Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __SVM_TYPES_H__
18 #define __SVM_TYPES_H__
19 
21 
22 /* Stack */
23 
24 /* SVM stack has a fixed size */
25 #define SVM_STACK_SIZE 255
26 /* SVM stack offsets with this value indicate that it's not on the stack */
27 #define SVM_STACK_INVALID 255
28 
29 #define SVM_BUMP_EVAL_STATE_SIZE 9
30 
31 /* Nodes */
32 
33 /* Known frequencies of used nodes, used for selective nodes compilation
34  * in the kernel. Currently only affects split OpenCL kernel.
35  *
36  * Keep as defines so it's easy to check which nodes are to be compiled
37  * from preprocessor.
38  *
39  * Lower the number of group more often the node is used.
40  */
41 #define NODE_GROUP_LEVEL_0 0
42 #define NODE_GROUP_LEVEL_1 1
43 #define NODE_GROUP_LEVEL_2 2
44 #define NODE_GROUP_LEVEL_3 3
45 #define NODE_GROUP_LEVEL_4 4
46 #define NODE_GROUP_LEVEL_MAX NODE_GROUP_LEVEL_4
47 
48 #define NODE_FEATURE_VOLUME (1 << 0)
49 #define NODE_FEATURE_HAIR (1 << 1)
50 #define NODE_FEATURE_BUMP (1 << 2)
51 #define NODE_FEATURE_BUMP_STATE (1 << 3)
52 #define NODE_FEATURE_VORONOI_EXTRA (1 << 4)
53 /* TODO(sergey): Consider using something like ((uint)(-1)).
54  * Need to check carefully operand types around usage of this
55  * define first.
56  */
57 #define NODE_FEATURE_ALL \
58  (NODE_FEATURE_VOLUME | NODE_FEATURE_HAIR | NODE_FEATURE_BUMP | NODE_FEATURE_BUMP_STATE | \
59  NODE_FEATURE_VORONOI_EXTRA)
60 
61 #define NODES_GROUP(group) ((group) <= __NODES_MAX_GROUP__)
62 #define NODES_FEATURE(feature) ((__NODES_FEATURES__ & (feature)) != 0)
63 
64 typedef enum ShaderNodeType {
65  NODE_END = 0,
156  /* NOTE: for best OpenCL performance, item definition in the enum must
157  * match the switch case order in svm.h. */
159 
165 
166 typedef enum NodeAttributeType {
174 
175 typedef enum NodeGeometry {
183 
184 typedef enum NodeObjectInfo {
191 
192 typedef enum NodeParticleInfo {
203 
204 typedef enum NodeHairInfo {
208  /* Fade for minimum hair width transiency. */
209  // NODE_INFO_CURVE_FADE,
213 
214 typedef enum NodeLightPath {
231 
232 typedef enum NodeLightFalloff {
237 
238 typedef enum NodeTexCoord {
248 
249 typedef enum NodeMix {
268  NODE_MIX_CLAMP /* used for the clamp UI option */
270 
271 typedef enum NodeMathType {
313 
314 typedef enum NodeVectorMathType {
319 
324 
329 
345 
346 typedef enum NodeClampType {
350 
351 typedef enum NodeMapRangeType {
357 
358 typedef enum NodeMappingType {
364 
365 typedef enum NodeVectorRotateType {
372 
378 
384 
385 typedef enum NodeConvert {
395 
396 typedef enum NodeMusgraveType {
403 
405 
412 
419 
420 typedef enum NodeWaveProfile {
425 
427 
428 typedef enum NodeGradientType {
437 
444 
445 typedef enum NodeVoronoiFeature {
452 
453 typedef enum NodeBlendWeightType {
457 
462 
463 typedef enum NodeTangentAxis {
468 
469 typedef enum NodeNormalMapSpace {
476 
477 typedef enum NodeImageProjection {
483 
484 typedef enum NodeImageFlags {
488 
493 
494 typedef enum NodeBumpOffset {
499 
500 typedef enum NodeTexVoxelSpace {
504 
505 typedef enum NodeAO {
506  NODE_AO_ONLY_LOCAL = (1 << 0),
507  NODE_AO_INSIDE = (1 << 1),
510 
511 typedef enum ShaderType {
517 
524 
525 /* Closure */
526 
527 typedef enum ClosureType {
528  /* Special type, flags generic node as a non-BSDF. */
530 
532 
533  /* Diffuse */
541 
542  /* Glossy */
555 
556  /* Transmission */
567 
568  /* Special cases */
572 
573  /* BSSRDF */
580 
581  /* Other */
583 
584  /* Volume */
588 
590 
593 
594 /* watch this, being lazy with memory usage */
595 #define CLOSURE_IS_BSDF(type) (type <= CLOSURE_BSDF_TRANSPARENT_ID)
596 #define CLOSURE_IS_BSDF_DIFFUSE(type) \
597  (type >= CLOSURE_BSDF_DIFFUSE_ID && type <= CLOSURE_BSDF_TRANSLUCENT_ID)
598 #define CLOSURE_IS_BSDF_GLOSSY(type) \
599  ((type >= CLOSURE_BSDF_REFLECTION_ID && type <= CLOSURE_BSDF_HAIR_REFLECTION_ID) || \
600  (type == CLOSURE_BSDF_HAIR_PRINCIPLED_ID))
601 #define CLOSURE_IS_BSDF_TRANSMISSION(type) \
602  (type >= CLOSURE_BSDF_REFRACTION_ID && type <= CLOSURE_BSDF_HAIR_TRANSMISSION_ID)
603 #define CLOSURE_IS_BSDF_BSSRDF(type) \
604  (type == CLOSURE_BSDF_BSSRDF_ID || type == CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID)
605 #define CLOSURE_IS_BSDF_SINGULAR(type) \
606  (type == CLOSURE_BSDF_REFLECTION_ID || type == CLOSURE_BSDF_REFRACTION_ID || \
607  type == CLOSURE_BSDF_TRANSPARENT_ID)
608 #define CLOSURE_IS_BSDF_TRANSPARENT(type) (type == CLOSURE_BSDF_TRANSPARENT_ID)
609 #define CLOSURE_IS_BSDF_MULTISCATTER(type) \
610  (type == CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID || \
611  type == CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID)
612 #define CLOSURE_IS_BSDF_MICROFACET(type) \
613  ((type >= CLOSURE_BSDF_MICROFACET_GGX_ID && type <= CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID) || \
614  (type >= CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID && \
615  type <= CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID) || \
616  (type == CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_FRESNEL_ID))
617 #define CLOSURE_IS_BSDF_MICROFACET_FRESNEL(type) \
618  (type == CLOSURE_BSDF_MICROFACET_MULTI_GGX_FRESNEL_ID || \
619  type == CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_FRESNEL_ID || \
620  type == CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID || \
621  type == CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID)
622 #define CLOSURE_IS_BSDF_OR_BSSRDF(type) (type <= CLOSURE_BSSRDF_PRINCIPLED_RANDOM_WALK_ID)
623 #define CLOSURE_IS_BSSRDF(type) \
624  (type >= CLOSURE_BSSRDF_CUBIC_ID && type <= CLOSURE_BSSRDF_PRINCIPLED_RANDOM_WALK_ID)
625 #define CLOSURE_IS_DISK_BSSRDF(type) \
626  (type >= CLOSURE_BSSRDF_CUBIC_ID && type <= CLOSURE_BSSRDF_BURLEY_ID)
627 #define CLOSURE_IS_VOLUME(type) \
628  (type >= CLOSURE_VOLUME_ID && type <= CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID)
629 #define CLOSURE_IS_VOLUME_SCATTER(type) (type == CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID)
630 #define CLOSURE_IS_VOLUME_ABSORPTION(type) (type == CLOSURE_VOLUME_ABSORPTION_ID)
631 #define CLOSURE_IS_HOLDOUT(type) (type == CLOSURE_HOLDOUT_ID)
632 #define CLOSURE_IS_PHASE(type) (type == CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID)
633 #define CLOSURE_IS_GLASS(type) \
634  (type >= CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID && type <= CLOSURE_BSDF_SHARP_GLASS_ID)
635 #define CLOSURE_IS_PRINCIPLED(type) (type == CLOSURE_BSDF_PRINCIPLED_ID)
636 
637 #define CLOSURE_WEIGHT_CUTOFF 1e-5f
638 
640 
641 #endif /* __SVM_TYPES_H__ */
#define CCL_NAMESPACE_END
NodeClampType
Definition: svm_types.h:346
@ NODE_CLAMP_RANGE
Definition: svm_types.h:348
@ NODE_CLAMP_MINMAX
Definition: svm_types.h:347
NodeEnvironmentProjection
Definition: svm_types.h:489
@ NODE_ENVIRONMENT_MIRROR_BALL
Definition: svm_types.h:491
@ NODE_ENVIRONMENT_EQUIRECTANGULAR
Definition: svm_types.h:490
NodeObjectInfo
Definition: svm_types.h:184
@ NODE_INFO_OB_INDEX
Definition: svm_types.h:187
@ NODE_INFO_MAT_INDEX
Definition: svm_types.h:188
@ NODE_INFO_OB_RANDOM
Definition: svm_types.h:189
@ NODE_INFO_OB_COLOR
Definition: svm_types.h:186
@ NODE_INFO_OB_LOCATION
Definition: svm_types.h:185
NodeMathType
Definition: svm_types.h:271
@ NODE_MATH_SINH
Definition: svm_types.h:301
@ NODE_MATH_SMOOTH_MIN
Definition: svm_types.h:310
@ NODE_MATH_TRUNC
Definition: svm_types.h:304
@ NODE_MATH_COSH
Definition: svm_types.h:302
@ NODE_MATH_SIGN
Definition: svm_types.h:297
@ NODE_MATH_DEGREES
Definition: svm_types.h:300
@ NODE_MATH_MODULO
Definition: svm_types.h:289
@ NODE_MATH_ABSOLUTE
Definition: svm_types.h:290
@ NODE_MATH_DIVIDE
Definition: svm_types.h:275
@ NODE_MATH_SINE
Definition: svm_types.h:276
@ NODE_MATH_ARCTAN2
Definition: svm_types.h:291
@ NODE_MATH_ARCCOSINE
Definition: svm_types.h:280
@ NODE_MATH_MULTIPLY_ADD
Definition: svm_types.h:308
@ NODE_MATH_POWER
Definition: svm_types.h:282
@ NODE_MATH_WRAP
Definition: svm_types.h:306
@ NODE_MATH_ARCTANGENT
Definition: svm_types.h:281
@ NODE_MATH_MINIMUM
Definition: svm_types.h:284
@ NODE_MATH_SQRT
Definition: svm_types.h:295
@ NODE_MATH_CEIL
Definition: svm_types.h:293
@ NODE_MATH_TANH
Definition: svm_types.h:303
@ NODE_MATH_GREATER_THAN
Definition: svm_types.h:288
@ NODE_MATH_ADD
Definition: svm_types.h:272
@ NODE_MATH_FRACTION
Definition: svm_types.h:294
@ NODE_MATH_EXPONENT
Definition: svm_types.h:298
@ NODE_MATH_LESS_THAN
Definition: svm_types.h:287
@ NODE_MATH_ARCSINE
Definition: svm_types.h:279
@ NODE_MATH_MAXIMUM
Definition: svm_types.h:285
@ NODE_MATH_LOGARITHM
Definition: svm_types.h:283
@ NODE_MATH_COMPARE
Definition: svm_types.h:307
@ NODE_MATH_INV_SQRT
Definition: svm_types.h:296
@ NODE_MATH_MULTIPLY
Definition: svm_types.h:274
@ NODE_MATH_PINGPONG
Definition: svm_types.h:309
@ NODE_MATH_ROUND
Definition: svm_types.h:286
@ NODE_MATH_FLOOR
Definition: svm_types.h:292
@ NODE_MATH_SUBTRACT
Definition: svm_types.h:273
@ NODE_MATH_COSINE
Definition: svm_types.h:277
@ NODE_MATH_SNAP
Definition: svm_types.h:305
@ NODE_MATH_TANGENT
Definition: svm_types.h:278
@ NODE_MATH_SMOOTH_MAX
Definition: svm_types.h:311
@ NODE_MATH_RADIANS
Definition: svm_types.h:299
NodeAttributeOutputType
Definition: svm_types.h:160
@ NODE_ATTR_OUTPUT_FLOAT
Definition: svm_types.h:162
@ NODE_ATTR_OUTPUT_FLOAT_ALPHA
Definition: svm_types.h:163
@ NODE_ATTR_OUTPUT_FLOAT3
Definition: svm_types.h:161
ShaderNodeType
Definition: svm_types.h:64
@ NODE_AOV_START
Definition: svm_types.h:153
@ NODE_TEX_IMAGE
Definition: svm_types.h:88
@ NODE_GEOMETRY
Definition: svm_types.h:76
@ NODE_CLOSURE_SET_WEIGHT
Definition: svm_types.h:70
@ NODE_EMISSION_WEIGHT
Definition: svm_types.h:72
@ NODE_VECTOR_TRANSFORM
Definition: svm_types.h:144
@ NODE_CLOSURE_HOLDOUT
Definition: svm_types.h:102
@ NODE_NORMAL_MAP
Definition: svm_types.h:136
@ NODE_SEPARATE_HSV
Definition: svm_types.h:141
@ NODE_SET_BUMP
Definition: svm_types.h:91
@ NODE_VERTEX_COLOR_BUMP_DX
Definition: svm_types.h:94
@ NODE_CLOSURE_VOLUME
Definition: svm_types.h:105
@ NODE_TEX_WHITE_NOISE
Definition: svm_types.h:129
@ NODE_TEX_MUSGRAVE
Definition: svm_types.h:124
@ NODE_MIX
Definition: svm_types.h:138
@ NODE_NORMAL
Definition: svm_types.h:130
@ NODE_INVERT
Definition: svm_types.h:137
@ NODE_SET_DISPLACEMENT
Definition: svm_types.h:85
@ NODE_DISPLACEMENT
Definition: svm_types.h:86
@ NODE_VALUE_V
Definition: svm_types.h:80
@ NODE_TEX_WAVE
Definition: svm_types.h:125
@ NODE_CLOSURE_EMISSION
Definition: svm_types.h:68
@ NODE_HAIR_INFO
Definition: svm_types.h:115
@ NODE_MATH
Definition: svm_types.h:107
@ NODE_TEX_ENVIRONMENT
Definition: svm_types.h:120
@ NODE_WAVELENGTH
Definition: svm_types.h:146
@ NODE_MIX_CLOSURE
Definition: svm_types.h:73
@ NODE_CLOSURE_BACKGROUND
Definition: svm_types.h:69
@ NODE_SEPARATE_VECTOR
Definition: svm_types.h:139
@ NODE_IES
Definition: svm_types.h:132
@ NODE_HSV
Definition: svm_types.h:101
@ NODE_VECTOR_CURVES
Definition: svm_types.h:134
@ NODE_CONVERT
Definition: svm_types.h:77
@ NODE_TEX_COORD_BUMP_DY
Definition: svm_types.h:97
@ NODE_LEAVE_BUMP_EVAL
Definition: svm_types.h:100
@ NODE_CAMERA
Definition: svm_types.h:119
@ NODE_MAPPING
Definition: svm_types.h:117
@ NODE_BRIGHTCONTRAST
Definition: svm_types.h:111
@ NODE_PRINCIPLED_VOLUME
Definition: svm_types.h:106
@ NODE_TEX_MAGIC
Definition: svm_types.h:126
@ NODE_END
Definition: svm_types.h:65
@ NODE_VERTEX_COLOR
Definition: svm_types.h:82
@ NODE_FRESNEL
Definition: svm_types.h:103
@ NODE_VALUE_F
Definition: svm_types.h:79
@ NODE_TEX_CHECKER
Definition: svm_types.h:127
@ NODE_PARTICLE_INFO
Definition: svm_types.h:114
@ NODE_OBJECT_INFO
Definition: svm_types.h:113
@ NODE_LAYER_WEIGHT
Definition: svm_types.h:104
@ NODE_TEX_VOXEL
Definition: svm_types.h:152
@ NODE_VECTOR_DISPLACEMENT
Definition: svm_types.h:87
@ NODE_CLAMP
Definition: svm_types.h:149
@ NODE_GEOMETRY_BUMP_DY
Definition: svm_types.h:84
@ NODE_VECTOR_MATH
Definition: svm_types.h:108
@ NODE_CLOSURE_SET_NORMAL
Definition: svm_types.h:98
@ NODE_ATTR_BUMP_DX
Definition: svm_types.h:92
@ NODE_LIGHT_FALLOFF
Definition: svm_types.h:131
@ NODE_VERTEX_COLOR_BUMP_DY
Definition: svm_types.h:95
@ NODE_TEX_BRICK
Definition: svm_types.h:128
@ NODE_AOV_COLOR
Definition: svm_types.h:154
@ NODE_MIN_MAX
Definition: svm_types.h:118
@ NODE_COMBINE_HSV
Definition: svm_types.h:142
@ NODE_ATTR
Definition: svm_types.h:81
@ NODE_TEX_COORD_BUMP_DX
Definition: svm_types.h:96
@ NODE_SHADER_JUMP
Definition: svm_types.h:66
@ NODE_CLOSURE_WEIGHT
Definition: svm_types.h:71
@ NODE_VECTOR_ROTATE
Definition: svm_types.h:143
@ NODE_COMBINE_VECTOR
Definition: svm_types.h:140
@ NODE_GAMMA
Definition: svm_types.h:110
@ NODE_TEX_IMAGE_BOX
Definition: svm_types.h:89
@ NODE_TANGENT
Definition: svm_types.h:135
@ NODE_TEX_GRADIENT
Definition: svm_types.h:122
@ NODE_AMBIENT_OCCLUSION
Definition: svm_types.h:151
@ NODE_WIREFRAME
Definition: svm_types.h:145
@ NODE_JUMP_IF_ONE
Definition: svm_types.h:75
@ NODE_CLOSURE_BSDF
Definition: svm_types.h:67
@ NODE_AOV_VALUE
Definition: svm_types.h:155
@ NODE_ATTR_BUMP_DY
Definition: svm_types.h:93
@ NODE_TEX_COORD
Definition: svm_types.h:78
@ NODE_BEVEL
Definition: svm_types.h:150
@ NODE_BLACKBODY
Definition: svm_types.h:147
@ NODE_MAP_RANGE
Definition: svm_types.h:148
@ NODE_GEOMETRY_BUMP_DX
Definition: svm_types.h:83
@ NODE_TEX_SKY
Definition: svm_types.h:121
@ NODE_RGB_CURVES
Definition: svm_types.h:133
@ NODE_TEX_NOISE
Definition: svm_types.h:90
@ NODE_ENTER_BUMP_EVAL
Definition: svm_types.h:99
@ NODE_JUMP_IF_ZERO
Definition: svm_types.h:74
@ NODE_TEX_VORONOI
Definition: svm_types.h:123
@ NODE_RGB_RAMP
Definition: svm_types.h:109
@ NODE_TEXTURE_MAPPING
Definition: svm_types.h:116
@ NODE_LIGHT_PATH
Definition: svm_types.h:112
NodeMusgraveType
Definition: svm_types.h:396
@ NODE_MUSGRAVE_MULTIFRACTAL
Definition: svm_types.h:397
@ NODE_MUSGRAVE_RIDGED_MULTIFRACTAL
Definition: svm_types.h:400
@ NODE_MUSGRAVE_HYBRID_MULTIFRACTAL
Definition: svm_types.h:399
@ NODE_MUSGRAVE_HETERO_TERRAIN
Definition: svm_types.h:401
@ NODE_MUSGRAVE_FBM
Definition: svm_types.h:398
NodeBumpOffset
Definition: svm_types.h:494
@ NODE_BUMP_OFFSET_DY
Definition: svm_types.h:497
@ NODE_BUMP_OFFSET_CENTER
Definition: svm_types.h:495
@ NODE_BUMP_OFFSET_DX
Definition: svm_types.h:496
NodeMapRangeType
Definition: svm_types.h:351
@ NODE_MAP_RANGE_STEPPED
Definition: svm_types.h:353
@ NODE_MAP_RANGE_SMOOTHERSTEP
Definition: svm_types.h:355
@ NODE_MAP_RANGE_SMOOTHSTEP
Definition: svm_types.h:354
@ NODE_MAP_RANGE_LINEAR
Definition: svm_types.h:352
NodeWaveBandsDirection
Definition: svm_types.h:406
@ NODE_WAVE_BANDS_DIRECTION_Z
Definition: svm_types.h:409
@ NODE_WAVE_BANDS_DIRECTION_DIAGONAL
Definition: svm_types.h:410
@ NODE_WAVE_BANDS_DIRECTION_Y
Definition: svm_types.h:408
@ NODE_WAVE_BANDS_DIRECTION_X
Definition: svm_types.h:407
NodeMappingType
Definition: svm_types.h:358
@ NODE_MAPPING_TYPE_POINT
Definition: svm_types.h:359
@ NODE_MAPPING_TYPE_VECTOR
Definition: svm_types.h:361
@ NODE_MAPPING_TYPE_TEXTURE
Definition: svm_types.h:360
@ NODE_MAPPING_TYPE_NORMAL
Definition: svm_types.h:362
NodeHairInfo
Definition: svm_types.h:204
@ NODE_INFO_CURVE_IS_STRAND
Definition: svm_types.h:205
@ NODE_INFO_CURVE_TANGENT_NORMAL
Definition: svm_types.h:210
@ NODE_INFO_CURVE_THICKNESS
Definition: svm_types.h:207
@ NODE_INFO_CURVE_INTERCEPT
Definition: svm_types.h:206
@ NODE_INFO_CURVE_RANDOM
Definition: svm_types.h:211
NodeAO
Definition: svm_types.h:505
@ NODE_AO_INSIDE
Definition: svm_types.h:507
@ NODE_AO_GLOBAL_RADIUS
Definition: svm_types.h:508
@ NODE_AO_ONLY_LOCAL
Definition: svm_types.h:506
NodeVectorTransformConvertSpace
Definition: svm_types.h:379
@ NODE_VECTOR_TRANSFORM_CONVERT_SPACE_OBJECT
Definition: svm_types.h:381
@ NODE_VECTOR_TRANSFORM_CONVERT_SPACE_WORLD
Definition: svm_types.h:380
@ NODE_VECTOR_TRANSFORM_CONVERT_SPACE_CAMERA
Definition: svm_types.h:382
NodeTangentAxis
Definition: svm_types.h:463
@ NODE_TANGENT_AXIS_Y
Definition: svm_types.h:465
@ NODE_TANGENT_AXIS_X
Definition: svm_types.h:464
@ NODE_TANGENT_AXIS_Z
Definition: svm_types.h:466
NodePrincipledHairParametrization
Definition: svm_types.h:518
@ NODE_PRINCIPLED_HAIR_NUM
Definition: svm_types.h:522
@ NODE_PRINCIPLED_HAIR_REFLECTANCE
Definition: svm_types.h:519
@ NODE_PRINCIPLED_HAIR_DIRECT_ABSORPTION
Definition: svm_types.h:521
@ NODE_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION
Definition: svm_types.h:520
NodeTexCoord
Definition: svm_types.h:238
@ NODE_TEXCO_VOLUME_GENERATED
Definition: svm_types.h:246
@ NODE_TEXCO_REFLECTION
Definition: svm_types.h:243
@ NODE_TEXCO_WINDOW
Definition: svm_types.h:242
@ NODE_TEXCO_OBJECT
Definition: svm_types.h:240
@ NODE_TEXCO_DUPLI_UV
Definition: svm_types.h:245
@ NODE_TEXCO_DUPLI_GENERATED
Definition: svm_types.h:244
@ NODE_TEXCO_CAMERA
Definition: svm_types.h:241
@ NODE_TEXCO_NORMAL
Definition: svm_types.h:239
ShaderType
Definition: svm_types.h:511
@ SHADER_TYPE_BUMP
Definition: svm_types.h:515
@ SHADER_TYPE_SURFACE
Definition: svm_types.h:512
@ SHADER_TYPE_VOLUME
Definition: svm_types.h:513
@ SHADER_TYPE_DISPLACEMENT
Definition: svm_types.h:514
NodeVoronoiFeature
Definition: svm_types.h:445
@ NODE_VORONOI_SMOOTH_F1
Definition: svm_types.h:448
@ NODE_VORONOI_N_SPHERE_RADIUS
Definition: svm_types.h:450
@ NODE_VORONOI_F1
Definition: svm_types.h:446
@ NODE_VORONOI_F2
Definition: svm_types.h:447
@ NODE_VORONOI_DISTANCE_TO_EDGE
Definition: svm_types.h:449
NodeGeometry
Definition: svm_types.h:175
@ NODE_GEOM_N
Definition: svm_types.h:177
@ NODE_GEOM_T
Definition: svm_types.h:178
@ NODE_GEOM_uv
Definition: svm_types.h:181
@ NODE_GEOM_P
Definition: svm_types.h:176
@ NODE_GEOM_Ng
Definition: svm_types.h:180
@ NODE_GEOM_I
Definition: svm_types.h:179
NodeParticleInfo
Definition: svm_types.h:192
@ NODE_INFO_PAR_SIZE
Definition: svm_types.h:199
@ NODE_INFO_PAR_LOCATION
Definition: svm_types.h:197
@ NODE_INFO_PAR_RANDOM
Definition: svm_types.h:194
@ NODE_INFO_PAR_VELOCITY
Definition: svm_types.h:200
@ NODE_INFO_PAR_INDEX
Definition: svm_types.h:193
@ NODE_INFO_PAR_ANGULAR_VELOCITY
Definition: svm_types.h:201
@ NODE_INFO_PAR_AGE
Definition: svm_types.h:195
@ NODE_INFO_PAR_LIFETIME
Definition: svm_types.h:196
@ NODE_INFO_PAR_ROTATION
Definition: svm_types.h:198
NodeWaveType
Definition: svm_types.h:404
@ NODE_WAVE_BANDS
Definition: svm_types.h:404
@ NODE_WAVE_RINGS
Definition: svm_types.h:404
NodeImageFlags
Definition: svm_types.h:484
@ NODE_IMAGE_COMPRESS_AS_SRGB
Definition: svm_types.h:485
@ NODE_IMAGE_ALPHA_UNASSOCIATE
Definition: svm_types.h:486
NodeVoronoiDistanceMetric
Definition: svm_types.h:438
@ NODE_VORONOI_EUCLIDEAN
Definition: svm_types.h:439
@ NODE_VORONOI_MANHATTAN
Definition: svm_types.h:440
@ NODE_VORONOI_CHEBYCHEV
Definition: svm_types.h:441
@ NODE_VORONOI_MINKOWSKI
Definition: svm_types.h:442
NodeSkyType
Definition: svm_types.h:426
@ NODE_SKY_PREETHAM
Definition: svm_types.h:426
@ NODE_SKY_NISHITA
Definition: svm_types.h:426
@ NODE_SKY_HOSEK
Definition: svm_types.h:426
NodeWaveProfile
Definition: svm_types.h:420
@ NODE_WAVE_PROFILE_TRI
Definition: svm_types.h:423
@ NODE_WAVE_PROFILE_SIN
Definition: svm_types.h:421
@ NODE_WAVE_PROFILE_SAW
Definition: svm_types.h:422
NodeTexVoxelSpace
Definition: svm_types.h:500
@ NODE_TEX_VOXEL_SPACE_WORLD
Definition: svm_types.h:502
@ NODE_TEX_VOXEL_SPACE_OBJECT
Definition: svm_types.h:501
NodeMix
Definition: svm_types.h:249
@ NODE_MIX_DIV
Definition: svm_types.h:255
@ NODE_MIX_SOFT
Definition: svm_types.h:266
@ NODE_MIX_CLAMP
Definition: svm_types.h:268
@ NODE_MIX_LIGHT
Definition: svm_types.h:258
@ NODE_MIX_MUL
Definition: svm_types.h:252
@ NODE_MIX_DIFF
Definition: svm_types.h:256
@ NODE_MIX_BURN
Definition: svm_types.h:261
@ NODE_MIX_SUB
Definition: svm_types.h:253
@ NODE_MIX_LINEAR
Definition: svm_types.h:267
@ NODE_MIX_DARK
Definition: svm_types.h:257
@ NODE_MIX_SAT
Definition: svm_types.h:263
@ NODE_MIX_COLOR
Definition: svm_types.h:265
@ NODE_MIX_SCREEN
Definition: svm_types.h:254
@ NODE_MIX_HUE
Definition: svm_types.h:262
@ NODE_MIX_BLEND
Definition: svm_types.h:250
@ NODE_MIX_OVERLAY
Definition: svm_types.h:259
@ NODE_MIX_DODGE
Definition: svm_types.h:260
@ NODE_MIX_VAL
Definition: svm_types.h:264
@ NODE_MIX_ADD
Definition: svm_types.h:251
NodeLightPath
Definition: svm_types.h:214
@ NODE_LP_ray_depth
Definition: svm_types.h:225
@ NODE_LP_shadow
Definition: svm_types.h:216
@ NODE_LP_backfacing
Definition: svm_types.h:223
@ NODE_LP_ray_glossy
Definition: svm_types.h:227
@ NODE_LP_camera
Definition: svm_types.h:215
@ NODE_LP_glossy
Definition: svm_types.h:218
@ NODE_LP_transmission
Definition: svm_types.h:221
@ NODE_LP_singular
Definition: svm_types.h:219
@ NODE_LP_diffuse
Definition: svm_types.h:217
@ NODE_LP_ray_diffuse
Definition: svm_types.h:226
@ NODE_LP_volume_scatter
Definition: svm_types.h:222
@ NODE_LP_ray_transmission
Definition: svm_types.h:229
@ NODE_LP_ray_length
Definition: svm_types.h:224
@ NODE_LP_ray_transparent
Definition: svm_types.h:228
@ NODE_LP_reflection
Definition: svm_types.h:220
ClosureType
Definition: svm_types.h:527
@ CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID
Definition: svm_types.h:546
@ CLOSURE_VOLUME_ID
Definition: svm_types.h:585
@ CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID
Definition: svm_types.h:559
@ CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID
Definition: svm_types.h:587
@ CLOSURE_BSDF_PHONG_RAMP_ID
Definition: svm_types.h:552
@ CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID
Definition: svm_types.h:550
@ CLOSURE_BSDF_DIFFUSE_RAMP_ID
Definition: svm_types.h:536
@ CLOSURE_BSSRDF_CUBIC_ID
Definition: svm_types.h:574
@ CLOSURE_BSDF_HAIR_PRINCIPLED_ID
Definition: svm_types.h:565
@ CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID
Definition: svm_types.h:537
@ CLOSURE_BSSRDF_GAUSSIAN_ID
Definition: svm_types.h:575
@ CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID
Definition: svm_types.h:562
@ CLOSURE_BSDF_DIFFUSE_ID
Definition: svm_types.h:534
@ CLOSURE_BSSRDF_BURLEY_ID
Definition: svm_types.h:577
@ CLOSURE_BSDF_PRINCIPLED_ID
Definition: svm_types.h:589
@ CLOSURE_BSDF_TRANSPARENT_ID
Definition: svm_types.h:571
@ CLOSURE_BSDF_ID
Definition: svm_types.h:531
@ CLOSURE_BSDF_DIFFUSE_TOON_ID
Definition: svm_types.h:539
@ CLOSURE_BSDF_MICROFACET_GGX_ID
Definition: svm_types.h:544
@ CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID
Definition: svm_types.h:558
@ CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID
Definition: svm_types.h:548
@ CLOSURE_BSDF_PRINCIPLED_SHEEN_ID
Definition: svm_types.h:538
@ CLOSURE_BSDF_HAIR_TRANSMISSION_ID
Definition: svm_types.h:566
@ CLOSURE_NONE_ID
Definition: svm_types.h:529
@ CLOSURE_BSDF_SHARP_GLASS_ID
Definition: svm_types.h:564
@ CLOSURE_BSDF_MICROFACET_BECKMANN_GLASS_ID
Definition: svm_types.h:561
@ CLOSURE_BSSRDF_RANDOM_WALK_ID
Definition: svm_types.h:578
@ CLOSURE_BSDF_REFRACTION_ID
Definition: svm_types.h:557
@ CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID
Definition: svm_types.h:570
@ CLOSURE_BSDF_MICROFACET_BECKMANN_ID
Definition: svm_types.h:547
@ CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID
Definition: svm_types.h:560
@ CLOSURE_BSSRDF_PRINCIPLED_ID
Definition: svm_types.h:576
@ CLOSURE_BSSRDF_PRINCIPLED_RANDOM_WALK_ID
Definition: svm_types.h:579
@ CLOSURE_HOLDOUT_ID
Definition: svm_types.h:582
@ CLOSURE_BSDF_OREN_NAYAR_ID
Definition: svm_types.h:535
@ NBUILTIN_CLOSURES
Definition: svm_types.h:591
@ CLOSURE_BSDF_GLOSSY_TOON_ID
Definition: svm_types.h:553
@ CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID
Definition: svm_types.h:545
@ CLOSURE_BSDF_BSSRDF_ID
Definition: svm_types.h:569
@ CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_FRESNEL_ID
Definition: svm_types.h:563
@ CLOSURE_BSDF_MICROFACET_MULTI_GGX_FRESNEL_ID
Definition: svm_types.h:549
@ CLOSURE_VOLUME_ABSORPTION_ID
Definition: svm_types.h:586
@ CLOSURE_BSDF_HAIR_REFLECTION_ID
Definition: svm_types.h:554
@ CLOSURE_BSDF_TRANSLUCENT_ID
Definition: svm_types.h:540
@ CLOSURE_BSDF_REFLECTION_ID
Definition: svm_types.h:543
@ CLOSURE_BSDF_ASHIKHMIN_VELVET_ID
Definition: svm_types.h:551
NodeVectorRotateType
Definition: svm_types.h:365
@ NODE_VECTOR_ROTATE_TYPE_AXIS
Definition: svm_types.h:366
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Z
Definition: svm_types.h:369
@ NODE_VECTOR_ROTATE_TYPE_AXIS_X
Definition: svm_types.h:367
@ NODE_VECTOR_ROTATE_TYPE_EULER_XYZ
Definition: svm_types.h:370
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Y
Definition: svm_types.h:368
NodeVectorTransformType
Definition: svm_types.h:373
@ NODE_VECTOR_TRANSFORM_TYPE_NORMAL
Definition: svm_types.h:376
@ NODE_VECTOR_TRANSFORM_TYPE_VECTOR
Definition: svm_types.h:374
@ NODE_VECTOR_TRANSFORM_TYPE_POINT
Definition: svm_types.h:375
NodeImageProjection
Definition: svm_types.h:477
@ NODE_IMAGE_PROJ_SPHERE
Definition: svm_types.h:480
@ NODE_IMAGE_PROJ_TUBE
Definition: svm_types.h:481
@ NODE_IMAGE_PROJ_BOX
Definition: svm_types.h:479
@ NODE_IMAGE_PROJ_FLAT
Definition: svm_types.h:478
NodeAttributeType
Definition: svm_types.h:166
@ NODE_ATTR_FLOAT
Definition: svm_types.h:167
@ NODE_ATTR_FLOAT3
Definition: svm_types.h:169
@ NODE_ATTR_RGBA
Definition: svm_types.h:171
@ NODE_ATTR_FLOAT2
Definition: svm_types.h:168
@ NODE_ATTR_FLOAT4
Definition: svm_types.h:170
@ NODE_ATTR_MATRIX
Definition: svm_types.h:172
NodeGradientType
Definition: svm_types.h:428
@ NODE_BLEND_QUADRATIC
Definition: svm_types.h:430
@ NODE_BLEND_DIAGONAL
Definition: svm_types.h:432
@ NODE_BLEND_EASING
Definition: svm_types.h:431
@ NODE_BLEND_RADIAL
Definition: svm_types.h:433
@ NODE_BLEND_SPHERICAL
Definition: svm_types.h:435
@ NODE_BLEND_QUADRATIC_SPHERE
Definition: svm_types.h:434
@ NODE_BLEND_LINEAR
Definition: svm_types.h:429
NodeTangentDirectionType
Definition: svm_types.h:458
@ NODE_TANGENT_RADIAL
Definition: svm_types.h:459
@ NODE_TANGENT_UVMAP
Definition: svm_types.h:460
NodeVectorMathType
Definition: svm_types.h:314
@ NODE_VECTOR_MATH_NORMALIZE
Definition: svm_types.h:328
@ NODE_VECTOR_MATH_LENGTH
Definition: svm_types.h:326
@ NODE_VECTOR_MATH_CROSS_PRODUCT
Definition: svm_types.h:320
@ NODE_VECTOR_MATH_CEIL
Definition: svm_types.h:332
@ NODE_VECTOR_MATH_MODULO
Definition: svm_types.h:333
@ NODE_VECTOR_MATH_ADD
Definition: svm_types.h:315
@ NODE_VECTOR_MATH_COSINE
Definition: svm_types.h:340
@ NODE_VECTOR_MATH_REFLECT
Definition: svm_types.h:322
@ NODE_VECTOR_MATH_WRAP
Definition: svm_types.h:338
@ NODE_VECTOR_MATH_REFRACT
Definition: svm_types.h:342
@ NODE_VECTOR_MATH_DOT_PRODUCT
Definition: svm_types.h:323
@ NODE_VECTOR_MATH_ABSOLUTE
Definition: svm_types.h:335
@ NODE_VECTOR_MATH_DIVIDE
Definition: svm_types.h:318
@ NODE_VECTOR_MATH_TANGENT
Definition: svm_types.h:341
@ NODE_VECTOR_MATH_DISTANCE
Definition: svm_types.h:325
@ NODE_VECTOR_MATH_FLOOR
Definition: svm_types.h:331
@ NODE_VECTOR_MATH_SNAP
Definition: svm_types.h:330
@ NODE_VECTOR_MATH_SINE
Definition: svm_types.h:339
@ NODE_VECTOR_MATH_FRACTION
Definition: svm_types.h:334
@ NODE_VECTOR_MATH_PROJECT
Definition: svm_types.h:321
@ NODE_VECTOR_MATH_MULTIPLY
Definition: svm_types.h:317
@ NODE_VECTOR_MATH_SCALE
Definition: svm_types.h:327
@ NODE_VECTOR_MATH_MAXIMUM
Definition: svm_types.h:337
@ NODE_VECTOR_MATH_FACEFORWARD
Definition: svm_types.h:343
@ NODE_VECTOR_MATH_SUBTRACT
Definition: svm_types.h:316
@ NODE_VECTOR_MATH_MINIMUM
Definition: svm_types.h:336
NodeWaveRingsDirection
Definition: svm_types.h:413
@ NODE_WAVE_RINGS_DIRECTION_Y
Definition: svm_types.h:415
@ NODE_WAVE_RINGS_DIRECTION_SPHERICAL
Definition: svm_types.h:417
@ NODE_WAVE_RINGS_DIRECTION_X
Definition: svm_types.h:414
@ NODE_WAVE_RINGS_DIRECTION_Z
Definition: svm_types.h:416
NodeBlendWeightType
Definition: svm_types.h:453
@ NODE_LAYER_WEIGHT_FACING
Definition: svm_types.h:455
@ NODE_LAYER_WEIGHT_FRESNEL
Definition: svm_types.h:454
NodeNormalMapSpace
Definition: svm_types.h:469
@ NODE_NORMAL_MAP_TANGENT
Definition: svm_types.h:470
@ NODE_NORMAL_MAP_WORLD
Definition: svm_types.h:472
@ NODE_NORMAL_MAP_BLENDER_WORLD
Definition: svm_types.h:474
@ NODE_NORMAL_MAP_BLENDER_OBJECT
Definition: svm_types.h:473
@ NODE_NORMAL_MAP_OBJECT
Definition: svm_types.h:471
NodeConvert
Definition: svm_types.h:385
@ NODE_CONVERT_IF
Definition: svm_types.h:392
@ NODE_CONVERT_CI
Definition: svm_types.h:389
@ NODE_CONVERT_CF
Definition: svm_types.h:388
@ NODE_CONVERT_VF
Definition: svm_types.h:390
@ NODE_CONVERT_VI
Definition: svm_types.h:391
@ NODE_CONVERT_FI
Definition: svm_types.h:387
@ NODE_CONVERT_IV
Definition: svm_types.h:393
@ NODE_CONVERT_FV
Definition: svm_types.h:386
NodeLightFalloff
Definition: svm_types.h:232
@ NODE_LIGHT_FALLOFF_QUADRATIC
Definition: svm_types.h:233
@ NODE_LIGHT_FALLOFF_LINEAR
Definition: svm_types.h:234
@ NODE_LIGHT_FALLOFF_CONSTANT
Definition: svm_types.h:235