Blender V2.61 - r43446
Defines | Typedefs | Enumerations

svm_types.h File Reference

Go to the source code of this file.

Defines

#define SVM_STACK_SIZE   64
#define SVM_STACK_INVALID   255
#define CLOSURE_IS_BSDF(type)   (type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)
#define CLOSURE_IS_VOLUME(type)   (type >= CLOSURE_VOLUME_ID && type <= CLOSURE_VOLUME_ISOTROPIC_ID)
#define CLOSURE_IS_EMISSION(type)   (type == CLOSURE_EMISSION_ID)
#define CLOSURE_IS_HOLDOUT(type)   (type == CLOSURE_HOLDOUT_ID)
#define CLOSURE_IS_BACKGROUND(type)   (type == CLOSURE_BACKGROUND_ID)

Typedefs

typedef enum NodeType NodeType
typedef enum NodeAttributeType NodeAttributeType
typedef enum NodeGeometry NodeGeometry
typedef enum NodeLightPath NodeLightPath
typedef enum NodeTexCoord NodeTexCoord
typedef enum NodeMix NodeMix
typedef enum NodeMath NodeMath
typedef enum NodeVectorMath NodeVectorMath
typedef enum NodeConvert NodeConvert
typedef enum NodeDistanceMetric NodeDistanceMetric
typedef enum NodeNoiseBasis NodeNoiseBasis
typedef enum NodeWaveType NodeWaveType
typedef enum NodeMusgraveType NodeMusgraveType
typedef enum NodeWoodType NodeWoodType
typedef enum NodeBlendType NodeBlendType
typedef enum NodeBlendAxis NodeBlendAxis
typedef enum NodeMarbleType NodeMarbleType
typedef enum NodeStucciType NodeStucciType
typedef enum NodeVoronoiColoring NodeVoronoiColoring
typedef enum NodeBlendWeightType NodeBlendWeightType
typedef enum ShaderType ShaderType
typedef enum ClosureType ClosureType

Enumerations

enum  NodeType {
  NODE_END = 0, NODE_CLOSURE_BSDF = 100, NODE_CLOSURE_EMISSION = 200, NODE_CLOSURE_BACKGROUND = 300,
  NODE_CLOSURE_SET_WEIGHT = 400, NODE_CLOSURE_WEIGHT = 500, NODE_MIX_CLOSURE = 600, NODE_JUMP = 700,
  NODE_TEX_IMAGE = 1000, NODE_TEX_SKY = 1100, NODE_GEOMETRY = 1200, NODE_LIGHT_PATH = 1300,
  NODE_VALUE_F = 1400, NODE_VALUE_V = 1500, NODE_MIX = 1600, NODE_ATTR = 1700,
  NODE_CONVERT = 1900, NODE_FRESNEL = 2000, NODE_EMISSION_WEIGHT = 2100, NODE_TEX_GRADIENT = 2200,
  NODE_TEX_VORONOI = 2300, NODE_TEX_MUSGRAVE = 2400, NODE_TEX_WAVE = 2500, NODE_TEX_MAGIC = 2600,
  NODE_TEX_NOISE = 3000, NODE_SHADER_JUMP = 3100, NODE_SET_DISPLACEMENT = 3200, NODE_GEOMETRY_BUMP_DX = 3300,
  NODE_GEOMETRY_BUMP_DY = 3400, NODE_SET_BUMP = 3500, NODE_MATH = 3600, NODE_VECTOR_MATH = 3700,
  NODE_MAPPING = 3800, NODE_TEX_COORD = 3900, NODE_TEX_COORD_BUMP_DX = 4000, NODE_TEX_COORD_BUMP_DY = 4100,
  NODE_ADD_CLOSURE = 4200, NODE_EMISSION_SET_WEIGHT_TOTAL = 4300, NODE_ATTR_BUMP_DX = 4400, NODE_ATTR_BUMP_DY = 4500,
  NODE_TEX_ENVIRONMENT = 4600, NODE_CLOSURE_HOLDOUT = 4700, NODE_LAYER_WEIGHT = 4800, NODE_CLOSURE_VOLUME = 4900,
  NODE_SEPARATE_RGB = 5000, NODE_COMBINE_RGB = 5100, NODE_HSV = 5200, NODE_CAMERA = 5300,
  NODE_INVERT = 5400, NODE_NORMAL = 5500, NODE_GAMMA = 5600, NODE_TEX_CHECKER = 5700
}
enum  NodeAttributeType { NODE_ATTR_FLOAT = 0, NODE_ATTR_FLOAT3 }
enum  NodeGeometry {
  NODE_GEOM_P = 0, NODE_GEOM_N, NODE_GEOM_T, NODE_GEOM_I,
  NODE_GEOM_Ng, NODE_GEOM_uv
}
enum  NodeLightPath {
  NODE_LP_camera = 0, NODE_LP_shadow, NODE_LP_diffuse, NODE_LP_glossy,
  NODE_LP_singular, NODE_LP_reflection, NODE_LP_transmission, NODE_LP_backfacing
}
enum  NodeTexCoord { NODE_TEXCO_OBJECT, NODE_TEXCO_CAMERA, NODE_TEXCO_WINDOW, NODE_TEXCO_REFLECTION }
enum  NodeMix {
  NODE_MIX_BLEND = 0, NODE_MIX_ADD, NODE_MIX_MUL, NODE_MIX_SUB,
  NODE_MIX_SCREEN, NODE_MIX_DIV, NODE_MIX_DIFF, NODE_MIX_DARK,
  NODE_MIX_LIGHT, NODE_MIX_OVERLAY, NODE_MIX_DODGE, NODE_MIX_BURN,
  NODE_MIX_HUE, NODE_MIX_SAT, NODE_MIX_VAL, NODE_MIX_COLOR,
  NODE_MIX_SOFT, NODE_MIX_LINEAR
}
enum  NodeMath {
  NODE_MATH_ADD, NODE_MATH_SUBTRACT, NODE_MATH_MULTIPLY, NODE_MATH_DIVIDE,
  NODE_MATH_SINE, NODE_MATH_COSINE, NODE_MATH_TANGENT, NODE_MATH_ARCSINE,
  NODE_MATH_ARCCOSINE, NODE_MATH_ARCTANGENT, NODE_MATH_POWER, NODE_MATH_LOGARITHM,
  NODE_MATH_MINIMUM, NODE_MATH_MAXIMUM, NODE_MATH_ROUND, NODE_MATH_LESS_THAN,
  NODE_MATH_GREATER_THAN
}
enum  NodeVectorMath {
  NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_SUBTRACT, NODE_VECTOR_MATH_AVERAGE, NODE_VECTOR_MATH_DOT_PRODUCT,
  NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_NORMALIZE
}
enum  NodeConvert { NODE_CONVERT_FV, NODE_CONVERT_CF, NODE_CONVERT_VF }
enum  NodeDistanceMetric {
  NODE_VORONOI_DISTANCE_SQUARED, NODE_VORONOI_ACTUAL_DISTANCE, NODE_VORONOI_MANHATTAN, NODE_VORONOI_CHEBYCHEV,
  NODE_VORONOI_MINKOVSKY_H, NODE_VORONOI_MINKOVSKY_4, NODE_VORONOI_MINKOVSKY
}
enum  NodeNoiseBasis {
  NODE_NOISE_PERLIN, NODE_NOISE_VORONOI_F1, NODE_NOISE_VORONOI_F2, NODE_NOISE_VORONOI_F3,
  NODE_NOISE_VORONOI_F4, NODE_NOISE_VORONOI_F2_F1, NODE_NOISE_VORONOI_CRACKLE, NODE_NOISE_CELL_NOISE
}
enum  NodeWaveType { NODE_WAVE_SINE, NODE_WAVE_SAW, NODE_WAVE_TRI }
enum  NodeMusgraveType {
  NODE_MUSGRAVE_MULTIFRACTAL, NODE_MUSGRAVE_FBM, NODE_MUSGRAVE_HYBRID_MULTIFRACTAL, NODE_MUSGRAVE_RIDGED_MULTIFRACTAL,
  NODE_MUSGRAVE_HETERO_TERRAIN
}
enum  NodeWoodType { NODE_WAVE_BANDS, NODE_WAVE_RINGS }
enum  NodeBlendType {
  NODE_BLEND_LINEAR, NODE_BLEND_QUADRATIC, NODE_BLEND_EASING, NODE_BLEND_DIAGONAL,
  NODE_BLEND_RADIAL, NODE_BLEND_QUADRATIC_SPHERE, NODE_BLEND_SPHERICAL
}
enum  NodeBlendAxis { NODE_BLEND_HORIZONTAL, NODE_BLEND_VERTICAL }
enum  NodeMarbleType { NODE_MARBLE_SOFT, NODE_MARBLE_SHARP, NODE_MARBLE_SHARPER }
enum  NodeStucciType { NODE_STUCCI_PLASTIC, NODE_STUCCI_WALL_IN, NODE_STUCCI_WALL_OUT }
enum  NodeVoronoiColoring { NODE_VORONOI_INTENSITY, NODE_VORONOI_CELLS }
enum  NodeBlendWeightType { NODE_LAYER_WEIGHT_FRESNEL, NODE_LAYER_WEIGHT_FACING }
enum  ShaderType { SHADER_TYPE_SURFACE, SHADER_TYPE_VOLUME, SHADER_TYPE_DISPLACEMENT }
enum  ClosureType {
  CLOSURE_BSDF_ID, CLOSURE_BSDF_DIFFUSE_ID, CLOSURE_BSDF_OREN_NAYAR_ID, CLOSURE_BSDF_TRANSLUCENT_ID,
  CLOSURE_BSDF_REFLECTION_ID, CLOSURE_BSDF_REFRACTION_ID, CLOSURE_BSDF_GLASS_ID, CLOSURE_BSDF_TRANSPARENT_ID,
  CLOSURE_BSDF_MICROFACET_GGX_ID, CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_ID, CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID,
  CLOSURE_BSDF_WARD_ID, CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, CLOSURE_BSDF_WESTIN_SHEEN_ID,
  CLOSURE_BSSRDF_CUBIC_ID, CLOSURE_EMISSION_ID, CLOSURE_DEBUG_ID, CLOSURE_BACKGROUND_ID,
  CLOSURE_HOLDOUT_ID, CLOSURE_SUBSURFACE_ID, CLOSURE_VOLUME_ID, CLOSURE_VOLUME_TRANSPARENT_ID,
  CLOSURE_VOLUME_ISOTROPIC_ID, NBUILTIN_CLOSURES
}

Define Documentation

#define CLOSURE_IS_BACKGROUND (   type)    (type == CLOSURE_BACKGROUND_ID)

Definition at line 303 of file svm_types.h.

Referenced by shader_eval_background().

#define CLOSURE_IS_BSDF (   type)    (type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)

Definition at line 299 of file svm_types.h.

Referenced by shader_bsdf_blur(), and shader_bsdf_sample().

#define CLOSURE_IS_EMISSION (   type)    (type == CLOSURE_EMISSION_ID)

Definition at line 301 of file svm_types.h.

Referenced by shader_emissive_eval().

#define CLOSURE_IS_HOLDOUT (   type)    (type == CLOSURE_HOLDOUT_ID)

Definition at line 302 of file svm_types.h.

Referenced by shader_holdout_eval().

#define CLOSURE_IS_VOLUME (   type)    (type >= CLOSURE_VOLUME_ID && type <= CLOSURE_VOLUME_ISOTROPIC_ID)

Definition at line 300 of file svm_types.h.

Referenced by shader_volume_eval_phase().

#define SVM_STACK_INVALID   255
#define SVM_STACK_SIZE   64

Typedef Documentation

typedef enum ClosureType ClosureType
typedef enum NodeConvert NodeConvert
typedef enum NodeGeometry NodeGeometry
typedef enum NodeMath NodeMath
typedef enum NodeMix NodeMix
typedef enum NodeTexCoord NodeTexCoord
typedef enum NodeType NodeType
typedef enum NodeWaveType NodeWaveType
typedef enum NodeWoodType NodeWoodType
typedef enum ShaderType ShaderType

Enumeration Type Documentation

Enumerator:
CLOSURE_BSDF_ID 
CLOSURE_BSDF_DIFFUSE_ID 
CLOSURE_BSDF_OREN_NAYAR_ID 
CLOSURE_BSDF_TRANSLUCENT_ID 
CLOSURE_BSDF_REFLECTION_ID 
CLOSURE_BSDF_REFRACTION_ID 
CLOSURE_BSDF_GLASS_ID 
CLOSURE_BSDF_TRANSPARENT_ID 
CLOSURE_BSDF_MICROFACET_GGX_ID 
CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID 
CLOSURE_BSDF_MICROFACET_BECKMANN_ID 
CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID 
CLOSURE_BSDF_WARD_ID 
CLOSURE_BSDF_ASHIKHMIN_VELVET_ID 
CLOSURE_BSDF_WESTIN_BACKSCATTER_ID 
CLOSURE_BSDF_WESTIN_SHEEN_ID 
CLOSURE_BSSRDF_CUBIC_ID 
CLOSURE_EMISSION_ID 
CLOSURE_DEBUG_ID 
CLOSURE_BACKGROUND_ID 
CLOSURE_HOLDOUT_ID 
CLOSURE_SUBSURFACE_ID 
CLOSURE_VOLUME_ID 
CLOSURE_VOLUME_TRANSPARENT_ID 
CLOSURE_VOLUME_ISOTROPIC_ID 
NBUILTIN_CLOSURES 

Definition at line 266 of file svm_types.h.

Enumerator:
NODE_ATTR_FLOAT 
NODE_ATTR_FLOAT3 

Definition at line 93 of file svm_types.h.

Enumerator:
NODE_BLEND_HORIZONTAL 
NODE_BLEND_VERTICAL 

Definition at line 231 of file svm_types.h.

Enumerator:
NODE_BLEND_LINEAR 
NODE_BLEND_QUADRATIC 
NODE_BLEND_EASING 
NODE_BLEND_DIAGONAL 
NODE_BLEND_RADIAL 
NODE_BLEND_QUADRATIC_SPHERE 
NODE_BLEND_SPHERICAL 

Definition at line 221 of file svm_types.h.

Enumerator:
NODE_LAYER_WEIGHT_FRESNEL 
NODE_LAYER_WEIGHT_FACING 

Definition at line 253 of file svm_types.h.

Enumerator:
NODE_CONVERT_FV 
NODE_CONVERT_CF 
NODE_CONVERT_VF 

Definition at line 175 of file svm_types.h.

Enumerator:
NODE_VORONOI_DISTANCE_SQUARED 
NODE_VORONOI_ACTUAL_DISTANCE 
NODE_VORONOI_MANHATTAN 
NODE_VORONOI_CHEBYCHEV 
NODE_VORONOI_MINKOVSKY_H 
NODE_VORONOI_MINKOVSKY_4 
NODE_VORONOI_MINKOVSKY 

Definition at line 181 of file svm_types.h.

Enumerator:
NODE_GEOM_P 
NODE_GEOM_N 
NODE_GEOM_T 
NODE_GEOM_I 
NODE_GEOM_Ng 
NODE_GEOM_uv 

Definition at line 98 of file svm_types.h.

Enumerator:
NODE_LP_camera 
NODE_LP_shadow 
NODE_LP_diffuse 
NODE_LP_glossy 
NODE_LP_singular 
NODE_LP_reflection 
NODE_LP_transmission 
NODE_LP_backfacing 

Definition at line 107 of file svm_types.h.

Enumerator:
NODE_MARBLE_SOFT 
NODE_MARBLE_SHARP 
NODE_MARBLE_SHARPER 

Definition at line 236 of file svm_types.h.

enum NodeMath
Enumerator:
NODE_MATH_ADD 
NODE_MATH_SUBTRACT 
NODE_MATH_MULTIPLY 
NODE_MATH_DIVIDE 
NODE_MATH_SINE 
NODE_MATH_COSINE 
NODE_MATH_TANGENT 
NODE_MATH_ARCSINE 
NODE_MATH_ARCCOSINE 
NODE_MATH_ARCTANGENT 
NODE_MATH_POWER 
NODE_MATH_LOGARITHM 
NODE_MATH_MINIMUM 
NODE_MATH_MAXIMUM 
NODE_MATH_ROUND 
NODE_MATH_LESS_THAN 
NODE_MATH_GREATER_THAN 

Definition at line 146 of file svm_types.h.

enum NodeMix
Enumerator:
NODE_MIX_BLEND 
NODE_MIX_ADD 
NODE_MIX_MUL 
NODE_MIX_SUB 
NODE_MIX_SCREEN 
NODE_MIX_DIV 
NODE_MIX_DIFF 
NODE_MIX_DARK 
NODE_MIX_LIGHT 
NODE_MIX_OVERLAY 
NODE_MIX_DODGE 
NODE_MIX_BURN 
NODE_MIX_HUE 
NODE_MIX_SAT 
NODE_MIX_VAL 
NODE_MIX_COLOR 
NODE_MIX_SOFT 
NODE_MIX_LINEAR 

Definition at line 125 of file svm_types.h.

Enumerator:
NODE_MUSGRAVE_MULTIFRACTAL 
NODE_MUSGRAVE_FBM 
NODE_MUSGRAVE_HYBRID_MULTIFRACTAL 
NODE_MUSGRAVE_RIDGED_MULTIFRACTAL 
NODE_MUSGRAVE_HETERO_TERRAIN 

Definition at line 208 of file svm_types.h.

Enumerator:
NODE_NOISE_PERLIN 
NODE_NOISE_VORONOI_F1 
NODE_NOISE_VORONOI_F2 
NODE_NOISE_VORONOI_F3 
NODE_NOISE_VORONOI_F4 
NODE_NOISE_VORONOI_F2_F1 
NODE_NOISE_VORONOI_CRACKLE 
NODE_NOISE_CELL_NOISE 

Definition at line 191 of file svm_types.h.

Enumerator:
NODE_STUCCI_PLASTIC 
NODE_STUCCI_WALL_IN 
NODE_STUCCI_WALL_OUT 

Definition at line 242 of file svm_types.h.

Enumerator:
NODE_TEXCO_OBJECT 
NODE_TEXCO_CAMERA 
NODE_TEXCO_WINDOW 
NODE_TEXCO_REFLECTION 

Definition at line 118 of file svm_types.h.

enum NodeType
Enumerator:
NODE_END 
NODE_CLOSURE_BSDF 
NODE_CLOSURE_EMISSION 
NODE_CLOSURE_BACKGROUND 
NODE_CLOSURE_SET_WEIGHT 
NODE_CLOSURE_WEIGHT 
NODE_MIX_CLOSURE 
NODE_JUMP 
NODE_TEX_IMAGE 
NODE_TEX_SKY 
NODE_GEOMETRY 
NODE_LIGHT_PATH 
NODE_VALUE_F 
NODE_VALUE_V 
NODE_MIX 
NODE_ATTR 
NODE_CONVERT 
NODE_FRESNEL 
NODE_EMISSION_WEIGHT 
NODE_TEX_GRADIENT 
NODE_TEX_VORONOI 
NODE_TEX_MUSGRAVE 
NODE_TEX_WAVE 
NODE_TEX_MAGIC 
NODE_TEX_NOISE 
NODE_SHADER_JUMP 
NODE_SET_DISPLACEMENT 
NODE_GEOMETRY_BUMP_DX 
NODE_GEOMETRY_BUMP_DY 
NODE_SET_BUMP 
NODE_MATH 
NODE_VECTOR_MATH 
NODE_MAPPING 
NODE_TEX_COORD 
NODE_TEX_COORD_BUMP_DX 
NODE_TEX_COORD_BUMP_DY 
NODE_ADD_CLOSURE 
NODE_EMISSION_SET_WEIGHT_TOTAL 
NODE_ATTR_BUMP_DX 
NODE_ATTR_BUMP_DY 
NODE_TEX_ENVIRONMENT 
NODE_CLOSURE_HOLDOUT 
NODE_LAYER_WEIGHT 
NODE_CLOSURE_VOLUME 
NODE_SEPARATE_RGB 
NODE_COMBINE_RGB 
NODE_HSV 
NODE_CAMERA 
NODE_INVERT 
NODE_NORMAL 
NODE_GAMMA 
NODE_TEX_CHECKER 

Definition at line 38 of file svm_types.h.

Enumerator:
NODE_VECTOR_MATH_ADD 
NODE_VECTOR_MATH_SUBTRACT 
NODE_VECTOR_MATH_AVERAGE 
NODE_VECTOR_MATH_DOT_PRODUCT 
NODE_VECTOR_MATH_CROSS_PRODUCT 
NODE_VECTOR_MATH_NORMALIZE 

Definition at line 166 of file svm_types.h.

Enumerator:
NODE_VORONOI_INTENSITY 
NODE_VORONOI_CELLS 

Definition at line 248 of file svm_types.h.

Enumerator:
NODE_WAVE_SINE 
NODE_WAVE_SAW 
NODE_WAVE_TRI 

Definition at line 202 of file svm_types.h.

Enumerator:
NODE_WAVE_BANDS 
NODE_WAVE_RINGS 

Definition at line 216 of file svm_types.h.

enum ShaderType
Enumerator:
SHADER_TYPE_SURFACE 
SHADER_TYPE_VOLUME 
SHADER_TYPE_DISPLACEMENT 

Definition at line 258 of file svm_types.h.