Blender V4.3
types.h File Reference
#include "util/math.h"
#include "util/math_fast.h"
#include "util/math_intersect.h"
#include "util/projection.h"
#include "util/static_assert.h"
#include "util/texture.h"
#include "util/transform.h"
#include "kernel/svm/types.h"
#include "kernel/data_template.h"

Go to the source code of this file.

Classes

struct  BsdfEval
 
struct  differential3
 
struct  differential
 
struct  RaySelfPrimitives
 
struct  Ray
 
struct  Intersection
 
struct  AttributeDescriptor
 
struct  AttributeMap
 
struct  ShaderVolumeClosure
 
struct  ShaderVolumePhases
 
struct  VolumeStack
 
struct  LocalIntersection
 
struct  KernelCamera
 
struct  KernelFilmConvert
 
struct  KernelTables
 
struct  KernelBake
 
struct  KernelLightLinkSet
 
struct  KernelObject
 
struct  KernelCurve
 
struct  KernelCurveSegment
 
struct  KernelSpotLight
 
struct  KernelAreaLight
 
struct  KernelDistantLight
 
struct  KernelLight
 
struct  KernelLightDistribution
 
struct  KernelLightTreeNode
 
struct  KernelLightTreeEmitter
 
struct  KernelParticle
 
struct  KernelShader
 
struct  KernelWorkTile
 
struct  KernelShaderEvalInput
 

Macros

#define OBJECT_MOTION_PASS_SIZE   2
 
#define FILTER_TABLE_SIZE   1024
 
#define RAMP_TABLE_SIZE   256
 
#define SHUTTER_TABLE_SIZE   256
 
#define BSSRDF_MIN_RADIUS   1e-8f
 
#define BSSRDF_MAX_HITS   4
 
#define BSSRDF_MAX_BOUNCES   256
 
#define LOCAL_MAX_HITS   4
 
#define VOLUME_BOUNDS_MAX   1024
 
#define SHADER_NONE   (~0)
 
#define OBJECT_NONE   (~0)
 
#define PRIM_NONE   (~0)
 
#define LAMP_NONE   (~0)
 
#define EMITTER_NONE   (~0)
 
#define ID_NONE   (0.0f)
 
#define PASS_UNUSED   (~0)
 
#define LIGHTGROUP_NONE   (~0)
 
#define LIGHT_LINK_SET_MAX   64
 
#define LIGHT_LINK_MASK_ALL   (~uint64_t(0))
 
#define INTEGRATOR_SHADOW_ISECT_SIZE_CPU   1024U
 
#define INTEGRATOR_SHADOW_ISECT_SIZE_GPU   4U
 
#define INTEGRATOR_SHADOW_ISECT_SIZE   INTEGRATOR_SHADOW_ISECT_SIZE_CPU
 
#define KERNEL_FEATURE_NODE_BSDF   (1U << 0U)
 
#define KERNEL_FEATURE_NODE_EMISSION   (1U << 1U)
 
#define KERNEL_FEATURE_NODE_VOLUME   (1U << 2U)
 
#define KERNEL_FEATURE_NODE_BUMP   (1U << 3U)
 
#define KERNEL_FEATURE_NODE_BUMP_STATE   (1U << 4U)
 
#define KERNEL_FEATURE_NODE_VORONOI_EXTRA   (1U << 5U)
 
#define KERNEL_FEATURE_NODE_RAYTRACE   (1U << 6U)
 
#define KERNEL_FEATURE_NODE_AOV   (1U << 7U)
 
#define KERNEL_FEATURE_NODE_LIGHT_PATH   (1U << 8U)
 
#define KERNEL_FEATURE_NODE_PRINCIPLED_HAIR   (1U << 9U)
 
#define KERNEL_FEATURE_PATH_TRACING   (1U << 10U)
 
#define KERNEL_FEATURE_POINTCLOUD   (1U << 11U)
 
#define KERNEL_FEATURE_HAIR   (1U << 12U)
 
#define KERNEL_FEATURE_HAIR_THICK   (1U << 13U)
 
#define KERNEL_FEATURE_OBJECT_MOTION   (1U << 14U)
 
#define KERNEL_FEATURE_BAKING   (1U << 15U)
 
#define KERNEL_FEATURE_SUBSURFACE   (1U << 16U)
 
#define KERNEL_FEATURE_VOLUME   (1U << 17U)
 
#define KERNEL_FEATURE_PATCH_EVALUATION   (1U << 18U)
 
#define KERNEL_FEATURE_TRANSPARENT   (1U << 19U)
 
#define KERNEL_FEATURE_SHADOW_CATCHER   (1U << 20U)
 
#define KERNEL_FEATURE_LIGHT_PASSES   (1U << 21U)
 
#define KERNEL_FEATURE_AO_PASS   (1U << 22U)
 
#define KERNEL_FEATURE_AO_ADDITIVE   (1U << 23U)
 
#define KERNEL_FEATURE_AO   (KERNEL_FEATURE_AO_PASS | KERNEL_FEATURE_AO_ADDITIVE)
 
#define KERNEL_FEATURE_MNEE   (1U << 24U)
 
#define KERNEL_FEATURE_PATH_GUIDING   (1U << 25U)
 
#define KERNEL_FEATURE_OSL   (1U << 26U)
 
#define KERNEL_FEATURE_LIGHT_LINKING   (1U << 27U)
 
#define KERNEL_FEATURE_SHADOW_LINKING   (1U << 28U)
 
#define KERNEL_FEATURE_DENOISING   (1U << 29U)
 
#define KERNEL_FEATURE_LIGHT_TREE   (1U << 30U)
 
#define KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT
 
#define KERNEL_FEATURE_NODE_MASK_SURFACE_BACKGROUND    (KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT | KERNEL_FEATURE_NODE_AOV)
 
#define KERNEL_FEATURE_NODE_MASK_SURFACE_SHADOW
 
#define KERNEL_FEATURE_NODE_MASK_SURFACE
 
#define KERNEL_FEATURE_NODE_MASK_VOLUME
 
#define KERNEL_FEATURE_NODE_MASK_DISPLACEMENT    (KERNEL_FEATURE_NODE_VORONOI_EXTRA | KERNEL_FEATURE_NODE_BUMP | KERNEL_FEATURE_NODE_BUMP_STATE)
 
#define KERNEL_FEATURE_NODE_MASK_BUMP   KERNEL_FEATURE_NODE_MASK_DISPLACEMENT
 
#define IF_KERNEL_FEATURE(feature)   if ((node_feature_mask & (KERNEL_FEATURE_##feature)) != 0U)
 
#define IF_KERNEL_NODES_FEATURE(feature)    if ((node_feature_mask & (KERNEL_FEATURE_NODE_##feature)) != 0U)
 
#define __AO__
 
#define __CAUSTICS_TRICKS__
 
#define __CLAMP_SAMPLE__
 
#define __DENOISING_FEATURES__
 
#define __DPDU__
 
#define __HAIR__
 
#define __LIGHT_LINKING__
 
#define __SHADOW_LINKING__
 
#define __LIGHT_TREE__
 
#define __OBJECT_MOTION__
 
#define __MNEE__
 
#define __PASSES__
 
#define __PATCH_EVAL__
 
#define __POINTCLOUD__
 
#define __PRINCIPLED_HAIR__
 
#define __RAY_DIFFERENTIALS__
 
#define __SHADER_RAYTRACE__
 
#define __SHADOW_CATCHER__
 
#define __SHADOW_RECORD_ALL__
 
#define __SUBSURFACE__
 
#define __SVM__
 
#define __TRANSPARENT_SHADOWS__
 
#define __VISIBILITY_FLAG__
 
#define __VOLUME__
 
#define __VOLUME_RECORD_ALL__
 
#define __BVH_LOCAL__
 
#define SHADOW_CATCHER_VISIBILITY_SHIFT(visibility)   ((visibility) << 16)
 
#define SHADOW_CATCHER_PATH_VISIBILITY(path_flag, visibility)
 
#define SHADOW_CATCHER_OBJECT_VISIBILITY(is_shadow_catcher, visibility)    (((is_shadow_catcher) ? SHADOW_CATCHER_VISIBILITY_SHIFT(visibility) : 0) | (visibility))
 
#define PASS_NAME_JOIN(a, b)   a##_##b
 
#define PASSMASK(pass)   (1 << ((PASS_NAME_JOIN(PASS, pass)) % 32))
 
#define PASS_ANY   (~0)
 
#define PRIMITIVE_INDEX(type)    (bitscan((uint32_t)(type)) * 2 + (((type) & PRIMITIVE_MOTION) ? 1 : 0))
 
#define PRIMITIVE_PACK_SEGMENT(type, segment)   ((segment << PRIMITIVE_NUM_BITS) | (type))
 
#define PRIMITIVE_UNPACK_SEGMENT(type)   (type >> PRIMITIVE_NUM_BITS)
 
#define MAX_CLOSURE   64
 
#define CAUSTICS_MAX_CLOSURE   4
 
#define MAX_VOLUME_STACK_SIZE   32
 
#define MAX_VOLUME_CLOSURE   8
 
#define SHADER_CLOSURE_BASE
 
#define SHADER_CLOSURE_VOLUME_BASE
 
#define AS_SHADER_DATA(shader_data_tiny_storage)    ((ccl_private ShaderData *)shader_data_tiny_storage)
 
#define KERNEL_STRUCT_BEGIN(name, parent)
 
#define KERNEL_STRUCT_END(name)
 
#define KERNEL_STRUCT_MEMBER(parent, type, name)   type name;
 
#define KERNEL_STRUCT_BEGIN(name, parent)   name parent;
 
#define PATCH_MAX_CONTROL_VERTS   16
 
#define PATCH_MAP_NODE_IS_SET   (1 << 30)
 
#define PATCH_MAP_NODE_IS_LEAF   (1u << 31)
 
#define PATCH_MAP_NODE_INDEX_MASK   (~(PATCH_MAP_NODE_IS_SET | PATCH_MAP_NODE_IS_LEAF))
 
#define MIN_TAB_SOBOL_SAMPLES   256
 
#define MAX_TAB_SOBOL_SAMPLES   8192
 
#define NUM_TAB_SOBOL_DIMENSIONS   4
 
#define NUM_TAB_SOBOL_PATTERNS   256
 
#define DECLARE_FILM_CONVERT_KERNEL(variant)    DEVICE_KERNEL_FILM_CONVERT_##variant, DEVICE_KERNEL_FILM_CONVERT_##variant##_HALF_RGBA
 

Typedefs

typedef enum ClosureLabel ClosureLabel
 
typedef enum PassType PassType
 
typedef enum CryptomatteType CryptomatteType
 
typedef struct BsdfEval BsdfEval
 
typedef enum FilterClosures FilterClosures
 
typedef enum ShaderFlag ShaderFlag
 
typedef enum LightType LightType
 
typedef enum GuidingDistributionType GuidingDistributionType
 
typedef enum GuidingDirectionalSamplingType GuidingDirectionalSamplingType
 
typedef struct differential3 differential3
 
typedef struct differential differential
 
typedef struct RaySelfPrimitives RaySelfPrimitives
 
typedef struct Ray Ray
 
typedef struct Intersection Intersection
 
typedef enum PrimitiveType PrimitiveType
 
typedef enum CurveShapeType CurveShapeType
 
typedef enum AttributePrimitive AttributePrimitive
 
typedef enum AttributeElement AttributeElement
 
typedef enum AttributeStandard AttributeStandard
 
typedef enum AttributeFlag AttributeFlag
 
typedef struct AttributeDescriptor AttributeDescriptor
 
typedef struct AttributeMap AttributeMap
 
typedef struct ShaderVolumeClosure ShaderVolumeClosure
 
typedef struct ShaderVolumePhases ShaderVolumePhases
 
typedef struct VolumeStack VolumeStack
 
typedef struct LocalIntersection LocalIntersection
 
typedef struct KernelCamera KernelCamera
 
typedef struct KernelFilmConvert KernelFilmConvert
 
typedef enum KernelBVHLayout KernelBVHLayout
 
typedef struct KernelTables KernelTables
 
typedef struct KernelBake KernelBake
 
typedef struct KernelLightLinkSet KernelLightLinkSet
 
typedef struct KernelObject KernelObject
 
typedef struct KernelCurve KernelCurve
 
typedef struct KernelCurveSegment KernelCurveSegment
 
typedef struct KernelSpotLight KernelSpotLight
 
typedef struct KernelAreaLight KernelAreaLight
 
typedef struct KernelDistantLight KernelDistantLight
 
typedef struct KernelLight KernelLight
 
using MeshLight
 
typedef struct KernelLightDistribution KernelLightDistribution
 
using BoundingBox
 
using BoundingCone
 
typedef struct KernelLightTreeNode KernelLightTreeNode
 
typedef struct KernelLightTreeEmitter KernelLightTreeEmitter
 
typedef struct KernelParticle KernelParticle
 
typedef struct KernelShader KernelShader
 
typedef struct KernelWorkTile KernelWorkTile
 
typedef struct KernelShaderEvalInput KernelShaderEvalInput
 
typedef enum DeviceKernel DeviceKernel
 

Enumerations

enum  PathTraceDimension {
  PRNG_FILTER = 0 , PRNG_LENS_TIME = 1 , PRNG_TERMINATE = 0 , PRNG_LIGHT = 1 ,
  PRNG_LIGHT_TERMINATE = 2 , PRNG_SURFACE_BSDF = 3 , PRNG_SURFACE_AO = 4 , PRNG_SURFACE_BEVEL = 5 ,
  PRNG_SURFACE_BSDF_GUIDING = 6 , PRNG_SURFACE_RIS_GUIDING_0 = 10 , PRNG_SURFACE_RIS_GUIDING_1 = 11 , PRNG_VOLUME_PHASE = 3 ,
  PRNG_VOLUME_COLOR_CHANNEL = 4 , PRNG_VOLUME_SCATTER_DISTANCE = 5 , PRNG_VOLUME_OFFSET = 6 , PRNG_VOLUME_SHADE_OFFSET = 7 ,
  PRNG_VOLUME_PHASE_GUIDING_DISTANCE = 8 , PRNG_VOLUME_PHASE_GUIDING_EQUIANGULAR = 9 , PRNG_SUBSURFACE_BSDF = 0 , PRNG_SUBSURFACE_COLOR_CHANNEL = 1 ,
  PRNG_SUBSURFACE_SCATTER_DISTANCE = 2 , PRNG_SUBSURFACE_GUIDE_STRATEGY = 3 , PRNG_SUBSURFACE_GUIDE_DIRECTION = 4 , PRNG_SUBSURFACE_DISK = 0 ,
  PRNG_SUBSURFACE_DISK_RESAMPLE = 1 , PRNG_BOUNCE_NUM = 16
}
 
enum  SamplingPattern {
  SAMPLING_PATTERN_SOBOL_BURLEY = 0 , SAMPLING_PATTERN_TABULATED_SOBOL = 1 , SAMPLING_PATTERN_BLUE_NOISE_PURE = 2 , SAMPLING_PATTERN_BLUE_NOISE_FIRST = 3 ,
  SAMPLING_PATTERN_BLUE_NOISE_ROUND = 4 , SAMPLING_PATTERN_AUTOMATIC = 5 , SAMPLING_NUM_PATTERNS
}
 
enum  PathRayFlag : uint32_t {
  PATH_RAY_CAMERA = (1U << 0U) , PATH_RAY_REFLECT = (1U << 1U) , PATH_RAY_TRANSMIT = (1U << 2U) , PATH_RAY_DIFFUSE = (1U << 3U) ,
  PATH_RAY_GLOSSY = (1U << 4U) , PATH_RAY_SINGULAR = (1U << 5U) , PATH_RAY_TRANSPARENT = (1U << 6U) , PATH_RAY_VOLUME_SCATTER = (1U << 7U) ,
  PATH_RAY_IMPORTANCE_BAKE = (1U << 8U) , PATH_RAY_SHADOW_OPAQUE = (1U << 9U) , PATH_RAY_SHADOW_TRANSPARENT = (1U << 10U) , PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE | PATH_RAY_SHADOW_TRANSPARENT) ,
  PATH_RAY_ALL_VISIBILITY = ((1U << 11U) - 1U) , PATH_RAY_NODE_UNALIGNED = (1U << 11U) , PATH_RAY_MIS_HAD_TRANSMISSION = (1U << 11U) , PATH_RAY_MIS_SKIP = (1U << 12U) ,
  PATH_RAY_DIFFUSE_ANCESTOR = (1U << 13U) , PATH_RAY_SINGLE_PASS_DONE = (1U << 14U) , PATH_RAY_TRANSPARENT_BACKGROUND = (1U << 15U) , PATH_RAY_TERMINATE_ON_NEXT_SURFACE = (1U << 16U) ,
  PATH_RAY_TERMINATE_IN_NEXT_VOLUME = (1U << 17U) , PATH_RAY_TERMINATE_AFTER_TRANSPARENT = (1U << 18U) , PATH_RAY_TERMINATE_AFTER_VOLUME = (1U << 19U) , PATH_RAY_TERMINATE ,
  PATH_RAY_EMISSION = (1U << 20U) , PATH_RAY_SUBSURFACE_RANDOM_WALK = (1U << 21U) , PATH_RAY_SUBSURFACE_DISK = (1U << 22U) , PATH_RAY_SUBSURFACE_BACKFACING = (1U << 24U) ,
  PATH_RAY_SUBSURFACE , PATH_RAY_DENOISING_FEATURES = (1U << 25U) , PATH_RAY_SURFACE_PASS = (1U << 26U) , PATH_RAY_VOLUME_PASS = (1U << 27U) ,
  PATH_RAY_ANY_PASS = (PATH_RAY_SURFACE_PASS | PATH_RAY_VOLUME_PASS) , PATH_RAY_SHADOW_FOR_AO = (1U << 28U) , PATH_RAY_SHADOW_CATCHER_HIT = (1U << 29U) , PATH_RAY_SHADOW_CATCHER_PASS = (1U << 30U) ,
  PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1U << 31U)
}
 
enum  PathRayMNEE { PATH_MNEE_NONE = 0 , PATH_MNEE_VALID = (1U << 0U) , PATH_MNEE_RECEIVER_ANCESTOR = (1U << 1U) , PATH_MNEE_CULL_LIGHT_CONNECTION = (1U << 2U) }
 
enum  ClosureLabel {
  LABEL_NONE = 0 , LABEL_TRANSMIT = 1 , LABEL_REFLECT = 2 , LABEL_DIFFUSE = 4 ,
  LABEL_GLOSSY = 8 , LABEL_SINGULAR = 16 , LABEL_TRANSPARENT = 32 , LABEL_VOLUME_SCATTER = 64 ,
  LABEL_TRANSMIT_TRANSPARENT = 128 , LABEL_SUBSURFACE_SCATTER = 256 , LABEL_RAY_PORTAL = 512
}
 
enum  PassType {
  PASS_NONE = 0 , PASS_COMBINED = 1 , PASS_EMISSION , PASS_BACKGROUND ,
  PASS_AO , PASS_DIFFUSE , PASS_DIFFUSE_DIRECT , PASS_DIFFUSE_INDIRECT ,
  PASS_GLOSSY , PASS_GLOSSY_DIRECT , PASS_GLOSSY_INDIRECT , PASS_TRANSMISSION ,
  PASS_TRANSMISSION_DIRECT , PASS_TRANSMISSION_INDIRECT , PASS_VOLUME , PASS_VOLUME_DIRECT ,
  PASS_VOLUME_INDIRECT , PASS_CATEGORY_LIGHT_END = 31 , PASS_DEPTH = 32 , PASS_POSITION ,
  PASS_NORMAL , PASS_ROUGHNESS , PASS_UV , PASS_OBJECT_ID ,
  PASS_MATERIAL_ID , PASS_MOTION , PASS_MOTION_WEIGHT , PASS_CRYPTOMATTE ,
  PASS_AOV_COLOR , PASS_AOV_VALUE , PASS_ADAPTIVE_AUX_BUFFER , PASS_SAMPLE_COUNT ,
  PASS_DIFFUSE_COLOR , PASS_GLOSSY_COLOR , PASS_TRANSMISSION_COLOR , PASS_MIST ,
  PASS_DENOISING_NORMAL , PASS_DENOISING_ALBEDO , PASS_DENOISING_DEPTH , PASS_DENOISING_PREVIOUS ,
  PASS_SHADOW_CATCHER , PASS_SHADOW_CATCHER_SAMPLE_COUNT , PASS_SHADOW_CATCHER_MATTE , PASS_GUIDING_COLOR ,
  PASS_GUIDING_PROBABILITY , PASS_GUIDING_AVG_ROUGHNESS , PASS_CATEGORY_DATA_END = 63 , PASS_BAKE_PRIMITIVE ,
  PASS_BAKE_SEED , PASS_BAKE_DIFFERENTIAL , PASS_CATEGORY_BAKE_END = 95 , PASS_NUM
}
 
enum  CryptomatteType {
  CRYPT_NONE = 0 , CRYPT_OBJECT = (1 << 0) , CRYPT_MATERIAL = (1 << 1) , CRYPT_ASSET = (1 << 2) ,
  CRYPT_ACCURATE = (1 << 3)
}
 
enum  FilterClosures {
  FILTER_CLOSURE_EMISSION = (1 << 0) , FILTER_CLOSURE_DIFFUSE = (1 << 1) , FILTER_CLOSURE_GLOSSY = (1 << 2) , FILTER_CLOSURE_TRANSMISSION = (1 << 3) ,
  FILTER_CLOSURE_TRANSPARENT = (1 << 4) , FILTER_CLOSURE_DIRECT_LIGHT = (1 << 5)
}
 
enum  ShaderFlag {
  SHADER_SMOOTH_NORMAL = (1 << 31) , SHADER_CAST_SHADOW = (1 << 30) , SHADER_AREA_LIGHT = (1 << 29) , SHADER_USE_MIS = (1 << 28) ,
  SHADER_EXCLUDE_DIFFUSE = (1 << 27) , SHADER_EXCLUDE_GLOSSY = (1 << 26) , SHADER_EXCLUDE_TRANSMIT = (1 << 25) , SHADER_EXCLUDE_CAMERA = (1 << 24) ,
  SHADER_EXCLUDE_SCATTER = (1 << 23) , SHADER_EXCLUDE_SHADOW_CATCHER = (1 << 22) , SHADER_EXCLUDE_ANY , SHADER_MASK
}
 
enum  EmissionSampling {
  EMISSION_SAMPLING_NONE = 0 , EMISSION_SAMPLING_AUTO = 1 , EMISSION_SAMPLING_FRONT = 2 , EMISSION_SAMPLING_BACK = 3 ,
  EMISSION_SAMPLING_FRONT_BACK = 4 , EMISSION_SAMPLING_NUM
}
 
enum  LightType {
  LIGHT_POINT , LIGHT_DISTANT , LIGHT_BACKGROUND , LIGHT_AREA ,
  LIGHT_SPOT , LIGHT_TRIANGLE
}
 
enum  GuidingDistributionType { GUIDING_TYPE_PARALLAX_AWARE_VMM = 0 , GUIDING_TYPE_DIRECTIONAL_QUAD_TREE = 1 , GUIDING_TYPE_VMM = 2 , GUIDING_NUM_TYPES }
 
enum  GuidingDirectionalSamplingType { GUIDING_DIRECTIONAL_SAMPLING_TYPE_PRODUCT_MIS = 0 , GUIDING_DIRECTIONAL_SAMPLING_TYPE_RIS = 1 , GUIDING_DIRECTIONAL_SAMPLING_TYPE_ROUGHNESS = 2 , GUIDING_DIRECTIONAL_SAMPLING_NUM_TYPES }
 
enum  CameraType { CAMERA_PERSPECTIVE , CAMERA_ORTHOGRAPHIC , CAMERA_PANORAMA }
 
enum  PanoramaType {
  PANORAMA_EQUIRECTANGULAR = 0 , PANORAMA_FISHEYE_EQUIDISTANT = 1 , PANORAMA_FISHEYE_EQUISOLID = 2 , PANORAMA_MIRRORBALL = 3 ,
  PANORAMA_FISHEYE_LENS_POLYNOMIAL = 4 , PANORAMA_EQUIANGULAR_CUBEMAP_FACE = 5 , PANORAMA_CENTRAL_CYLINDRICAL = 6 , PANORAMA_NUM_TYPES
}
 
enum  MotionPosition { MOTION_POSITION_START = 0 , MOTION_POSITION_CENTER = 1 , MOTION_POSITION_END = 2 , MOTION_NUM_POSITIONS }
 
enum  DirectLightSamplingType { DIRECT_LIGHT_SAMPLING_MIS = 0 , DIRECT_LIGHT_SAMPLING_FORWARD = 1 , DIRECT_LIGHT_SAMPLING_NEE = 2 , DIRECT_LIGHT_SAMPLING_NUM }
 
enum  PrimitiveType {
  PRIMITIVE_NONE = 0 , PRIMITIVE_TRIANGLE = (1 << 0) , PRIMITIVE_CURVE_THICK = (1 << 1) , PRIMITIVE_CURVE_RIBBON = (1 << 2) ,
  PRIMITIVE_POINT = (1 << 3) , PRIMITIVE_VOLUME = (1 << 4) , PRIMITIVE_LAMP = (1 << 5) , PRIMITIVE_MOTION = (1 << 6) ,
  PRIMITIVE_MOTION_TRIANGLE = (PRIMITIVE_TRIANGLE | PRIMITIVE_MOTION) , PRIMITIVE_MOTION_CURVE_THICK = (PRIMITIVE_CURVE_THICK | PRIMITIVE_MOTION) , PRIMITIVE_MOTION_CURVE_RIBBON = (PRIMITIVE_CURVE_RIBBON | PRIMITIVE_MOTION) , PRIMITIVE_MOTION_POINT = (PRIMITIVE_POINT | PRIMITIVE_MOTION) ,
  PRIMITIVE_CURVE = (PRIMITIVE_CURVE_THICK | PRIMITIVE_CURVE_RIBBON) , PRIMITIVE_ALL , PRIMITIVE_NUM_SHAPES = 6 , PRIMITIVE_NUM_BITS = PRIMITIVE_NUM_SHAPES + 1 ,
  PRIMITIVE_NUM = PRIMITIVE_NUM_SHAPES * 2
}
 
enum  CurveShapeType { CURVE_RIBBON = 0 , CURVE_THICK = 1 , CURVE_NUM_SHAPE_TYPES }
 
enum  AttributePrimitive { ATTR_PRIM_GEOMETRY = 0 , ATTR_PRIM_SUBD , ATTR_PRIM_TYPES }
 
enum  AttributeElement {
  ATTR_ELEMENT_NONE = 0 , ATTR_ELEMENT_OBJECT = (1 << 0) , ATTR_ELEMENT_MESH = (1 << 1) , ATTR_ELEMENT_FACE = (1 << 2) ,
  ATTR_ELEMENT_VERTEX = (1 << 3) , ATTR_ELEMENT_VERTEX_MOTION = (1 << 4) , ATTR_ELEMENT_CORNER = (1 << 5) , ATTR_ELEMENT_CORNER_BYTE = (1 << 6) ,
  ATTR_ELEMENT_CURVE = (1 << 7) , ATTR_ELEMENT_CURVE_KEY = (1 << 8) , ATTR_ELEMENT_CURVE_KEY_MOTION = (1 << 9) , ATTR_ELEMENT_VOXEL = (1 << 10)
}
 
enum  AttributeStandard {
  ATTR_STD_NONE = 0 , ATTR_STD_VERTEX_NORMAL , ATTR_STD_FACE_NORMAL , ATTR_STD_UV ,
  ATTR_STD_UV_TANGENT , ATTR_STD_UV_TANGENT_SIGN , ATTR_STD_VERTEX_COLOR , ATTR_STD_GENERATED ,
  ATTR_STD_GENERATED_TRANSFORM , ATTR_STD_POSITION_UNDEFORMED , ATTR_STD_POSITION_UNDISPLACED , ATTR_STD_MOTION_VERTEX_POSITION ,
  ATTR_STD_MOTION_VERTEX_NORMAL , ATTR_STD_PARTICLE , ATTR_STD_CURVE_INTERCEPT , ATTR_STD_CURVE_LENGTH ,
  ATTR_STD_CURVE_RANDOM , ATTR_STD_POINT_RANDOM , ATTR_STD_PTEX_FACE_ID , ATTR_STD_PTEX_UV ,
  ATTR_STD_VOLUME_DENSITY , ATTR_STD_VOLUME_COLOR , ATTR_STD_VOLUME_FLAME , ATTR_STD_VOLUME_HEAT ,
  ATTR_STD_VOLUME_TEMPERATURE , ATTR_STD_VOLUME_VELOCITY , ATTR_STD_VOLUME_VELOCITY_X , ATTR_STD_VOLUME_VELOCITY_Y ,
  ATTR_STD_VOLUME_VELOCITY_Z , ATTR_STD_POINTINESS , ATTR_STD_RANDOM_PER_ISLAND , ATTR_STD_SHADOW_TRANSPARENCY ,
  ATTR_STD_NUM , ATTR_STD_NOT_FOUND = ~0
}
 
enum  AttributeFlag { ATTR_FINAL_SIZE = (1 << 0) , ATTR_SUBDIVIDED = (1 << 1) }
 
enum  ShaderDataFlag {
  SD_BACKFACING = (1 << 0) , SD_EMISSION = (1 << 1) , SD_BSDF = (1 << 2) , SD_BSDF_HAS_EVAL = (1 << 3) ,
  SD_BSSRDF = (1 << 4) , SD_HOLDOUT = (1 << 5) , SD_EXTINCTION = (1 << 6) , SD_SCATTER = (1 << 7) ,
  SD_IS_VOLUME_SHADER_EVAL = (1 << 8) , SD_TRANSPARENT = (1 << 9) , SD_BSDF_NEEDS_LCG = (1 << 10) , SD_BSDF_HAS_TRANSMISSION = (1 << 11) ,
  SD_RAY_PORTAL = (1 << 12) , SD_CLOSURE_FLAGS , SD_USE_BUMP_MAP_CORRECTION = (1 << 15) , SD_MIS_FRONT = (1 << 16) ,
  SD_HAS_TRANSPARENT_SHADOW = (1 << 17) , SD_HAS_VOLUME = (1 << 18) , SD_HAS_ONLY_VOLUME = (1 << 19) , SD_HETEROGENEOUS_VOLUME = (1 << 20) ,
  SD_HAS_BSSRDF_BUMP = (1 << 21) , SD_VOLUME_EQUIANGULAR = (1 << 22) , SD_VOLUME_MIS = (1 << 23) , SD_VOLUME_CUBIC = (1 << 24) ,
  SD_HAS_BUMP = (1 << 25) , SD_HAS_DISPLACEMENT = (1 << 26) , SD_HAS_CONSTANT_EMISSION = (1 << 27) , SD_NEED_VOLUME_ATTRIBUTES = (1 << 28) ,
  SD_HAS_EMISSION = (1 << 29) , SD_HAS_RAYTRACE = (1 << 30) , SD_MIS_BACK = (1 << 31) , SD_SHADER_FLAGS
}
 
enum  ShaderDataObjectFlag {
  SD_OBJECT_HOLDOUT_MASK = (1 << 0) , SD_OBJECT_MOTION = (1 << 1) , SD_OBJECT_TRANSFORM_APPLIED = (1 << 2) , SD_OBJECT_NEGATIVE_SCALE = (1 << 3) ,
  SD_OBJECT_HAS_VOLUME = (1 << 4) , SD_OBJECT_INTERSECTS_VOLUME = (1 << 5) , SD_OBJECT_HAS_VERTEX_MOTION = (1 << 6) , SD_OBJECT_SHADOW_CATCHER = (1 << 7) ,
  SD_OBJECT_HAS_VOLUME_ATTRIBUTES = (1 << 8) , SD_OBJECT_CAUSTICS_CASTER = (1 << 9) , SD_OBJECT_CAUSTICS_RECEIVER = (1 << 10) , SD_OBJECT_HAS_VOLUME_MOTION = (1 << 11) ,
  SD_OBJECT_CAUSTICS = (SD_OBJECT_CAUSTICS_CASTER | SD_OBJECT_CAUSTICS_RECEIVER) , SD_OBJECT_FLAGS
}
 
enum  KernelBVHLayout {
  BVH_LAYOUT_NONE = 0 , BVH_LAYOUT_BVH2 = (1 << 0) , BVH_LAYOUT_EMBREE = (1 << 1) , BVH_LAYOUT_OPTIX = (1 << 2) ,
  BVH_LAYOUT_MULTI_OPTIX = (1 << 3) , BVH_LAYOUT_MULTI_OPTIX_EMBREE = (1 << 4) , BVH_LAYOUT_METAL = (1 << 5) , BVH_LAYOUT_MULTI_METAL = (1 << 6) ,
  BVH_LAYOUT_MULTI_METAL_EMBREE = (1 << 7) , BVH_LAYOUT_HIPRT = (1 << 8) , BVH_LAYOUT_MULTI_HIPRT = (1 << 9) , BVH_LAYOUT_MULTI_HIPRT_EMBREE = (1 << 10) ,
  BVH_LAYOUT_EMBREEGPU = (1 << 11) , BVH_LAYOUT_MULTI_EMBREEGPU = (1 << 12) , BVH_LAYOUT_MULTI_EMBREEGPU_EMBREE = (1 << 13) , BVH_LAYOUT_AUTO = BVH_LAYOUT_EMBREE ,
  BVH_LAYOUT_ALL
}
 
enum  LightTreeNodeType : uint8_t { LIGHT_TREE_INSTANCE = (1 << 0) , LIGHT_TREE_INNER = (1 << 1) , LIGHT_TREE_LEAF = (1 << 2) , LIGHT_TREE_DISTANT = (1 << 3) }
 
enum  DeviceKernel : int {
  DEVICE_KERNEL_INTEGRATOR_INIT_FROM_CAMERA = 0 , DEVICE_KERNEL_INTEGRATOR_INIT_FROM_BAKE , DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST , DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW ,
  DEVICE_KERNEL_INTEGRATOR_INTERSECT_SUBSURFACE , DEVICE_KERNEL_INTEGRATOR_INTERSECT_VOLUME_STACK , DEVICE_KERNEL_INTEGRATOR_INTERSECT_DEDICATED_LIGHT , DEVICE_KERNEL_INTEGRATOR_SHADE_BACKGROUND ,
  DEVICE_KERNEL_INTEGRATOR_SHADE_LIGHT , DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE , DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE , DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE ,
  DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME , DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW , DEVICE_KERNEL_INTEGRATOR_SHADE_DEDICATED_LIGHT , DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL ,
  DEVICE_KERNEL_INTEGRATOR_QUEUED_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_QUEUED_SHADOW_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_ACTIVE_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_TERMINATED_PATHS_ARRAY ,
  DEVICE_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_SORT_BUCKET_PASS , DEVICE_KERNEL_INTEGRATOR_SORT_WRITE_PASS , DEVICE_KERNEL_INTEGRATOR_COMPACT_PATHS_ARRAY ,
  DEVICE_KERNEL_INTEGRATOR_COMPACT_STATES , DEVICE_KERNEL_INTEGRATOR_TERMINATED_SHADOW_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_PATHS_ARRAY , DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_STATES ,
  DEVICE_KERNEL_INTEGRATOR_RESET , DEVICE_KERNEL_INTEGRATOR_SHADOW_CATCHER_COUNT_POSSIBLE_SPLITS , DEVICE_KERNEL_SHADER_EVAL_DISPLACE , DEVICE_KERNEL_SHADER_EVAL_BACKGROUND ,
  DEVICE_KERNEL_SHADER_EVAL_CURVE_SHADOW_TRANSPARENCY , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) ,
  DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) ,
  DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) ,
  DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DECLARE_FILM_CONVERT_KERNEL =(DEPTH) , DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_CHECK , DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_X ,
  DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_Y , DEVICE_KERNEL_FILTER_GUIDING_PREPROCESS , DEVICE_KERNEL_FILTER_GUIDING_SET_FAKE_ALBEDO , DEVICE_KERNEL_FILTER_COLOR_PREPROCESS ,
  DEVICE_KERNEL_FILTER_COLOR_POSTPROCESS , DEVICE_KERNEL_CRYPTOMATTE_POSTPROCESS , DEVICE_KERNEL_PREFIX_SUM , DEVICE_KERNEL_NUM
}
 
enum  { DEVICE_KERNEL_INTEGRATOR_NUM = DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL + 1 }
 

Functions

struct ccl_align (16) ShaderClosure
 
 static_assert_align (KernelCamera, 16)
 
 static_assert_align (KernelFilmConvert, 16)
 
 static_assert_align (KernelTables, 16)
 
 static_assert_align (KernelBake, 16)
 
 static_assert_align (KernelData, 16)
 
 static_assert_align (KernelObject, 16)
 
 static_assert_align (KernelCurve, 16)
 
 static_assert_align (KernelCurveSegment, 8)
 
 static_assert_align (KernelLight, 16)
 
 static_assert_align (KernelLightDistribution, 16)
 
 static_assert_align (KernelLightTreeNode, 16)
 
 static_assert_align (KernelLightTreeEmitter, 16)
 
 static_assert_align (KernelParticle, 16)
 
 static_assert_align (KernelShader, 16)
 
 static_assert_align (KernelShaderEvalInput, 16)
 

Variables

 ShaderClosure
 
 ShaderData
 
 ShaderDataTinyStorage
 
 ShaderDataCausticsStorage
 
 KernelData
 

Macro Definition Documentation

◆ __AO__

#define __AO__

Definition at line 173 of file kernel/types.h.

◆ __BVH_LOCAL__

#define __BVH_LOCAL__

Definition at line 277 of file kernel/types.h.

◆ __CAUSTICS_TRICKS__

#define __CAUSTICS_TRICKS__

Definition at line 174 of file kernel/types.h.

◆ __CLAMP_SAMPLE__

#define __CLAMP_SAMPLE__

Definition at line 175 of file kernel/types.h.

◆ __DENOISING_FEATURES__

#define __DENOISING_FEATURES__

Definition at line 176 of file kernel/types.h.

◆ __DPDU__

#define __DPDU__

Definition at line 177 of file kernel/types.h.

◆ __HAIR__

#define __HAIR__

Definition at line 178 of file kernel/types.h.

◆ __LIGHT_LINKING__

#define __LIGHT_LINKING__

Definition at line 179 of file kernel/types.h.

◆ __LIGHT_TREE__

#define __LIGHT_TREE__

Definition at line 181 of file kernel/types.h.

◆ __MNEE__

#define __MNEE__

Definition at line 183 of file kernel/types.h.

Referenced by surface_shader_prepare_closures().

◆ __OBJECT_MOTION__

#define __OBJECT_MOTION__

Definition at line 182 of file kernel/types.h.

◆ __PASSES__

#define __PASSES__

Definition at line 184 of file kernel/types.h.

◆ __PATCH_EVAL__

#define __PATCH_EVAL__

Definition at line 185 of file kernel/types.h.

◆ __POINTCLOUD__

#define __POINTCLOUD__

Definition at line 186 of file kernel/types.h.

◆ __PRINCIPLED_HAIR__

#define __PRINCIPLED_HAIR__

Definition at line 187 of file kernel/types.h.

◆ __RAY_DIFFERENTIALS__

#define __RAY_DIFFERENTIALS__

Definition at line 188 of file kernel/types.h.

◆ __SHADER_RAYTRACE__

#define __SHADER_RAYTRACE__

Definition at line 189 of file kernel/types.h.

◆ __SHADOW_CATCHER__

#define __SHADOW_CATCHER__

Definition at line 190 of file kernel/types.h.

◆ __SHADOW_LINKING__

#define __SHADOW_LINKING__

Definition at line 180 of file kernel/types.h.

◆ __SHADOW_RECORD_ALL__

#define __SHADOW_RECORD_ALL__

Definition at line 191 of file kernel/types.h.

◆ __SUBSURFACE__

#define __SUBSURFACE__

Definition at line 192 of file kernel/types.h.

◆ __SVM__

#define __SVM__

Definition at line 193 of file kernel/types.h.

◆ __TRANSPARENT_SHADOWS__

#define __TRANSPARENT_SHADOWS__

Definition at line 194 of file kernel/types.h.

◆ __VISIBILITY_FLAG__

#define __VISIBILITY_FLAG__

Definition at line 195 of file kernel/types.h.

◆ __VOLUME__

#define __VOLUME__

Definition at line 196 of file kernel/types.h.

◆ __VOLUME_RECORD_ALL__

#define __VOLUME_RECORD_ALL__

Definition at line 210 of file kernel/types.h.

◆ AS_SHADER_DATA

#define AS_SHADER_DATA ( shader_data_tiny_storage)     ((ccl_private ShaderData *)shader_data_tiny_storage)

◆ BSSRDF_MAX_BOUNCES

#define BSSRDF_MAX_BOUNCES   256

Definition at line 43 of file kernel/types.h.

◆ BSSRDF_MAX_HITS

#define BSSRDF_MAX_HITS   4

Definition at line 42 of file kernel/types.h.

◆ BSSRDF_MIN_RADIUS

#define BSSRDF_MIN_RADIUS   1e-8f

Definition at line 41 of file kernel/types.h.

Referenced by bssrdf_setup().

◆ CAUSTICS_MAX_CLOSURE

#define CAUSTICS_MAX_CLOSURE   4

Definition at line 949 of file kernel/types.h.

Referenced by surface_shader_eval().

◆ DECLARE_FILM_CONVERT_KERNEL

#define DECLARE_FILM_CONVERT_KERNEL ( variant)     DEVICE_KERNEL_FILM_CONVERT_##variant, DEVICE_KERNEL_FILM_CONVERT_##variant##_HALF_RGBA

Definition at line 1852 of file kernel/types.h.

◆ EMITTER_NONE

#define EMITTER_NONE   (~0)

Definition at line 52 of file kernel/types.h.

◆ FILTER_TABLE_SIZE

#define FILTER_TABLE_SIZE   1024

Definition at line 37 of file kernel/types.h.

Referenced by camera_sample(), and filter_table().

◆ ID_NONE

#define ID_NONE   (0.0f)

Definition at line 53 of file kernel/types.h.

Referenced by film_sort_cryptomatte_slots(), and film_write_cryptomatte_slots().

◆ IF_KERNEL_FEATURE

#define IF_KERNEL_FEATURE ( feature)    if ((node_feature_mask & (KERNEL_FEATURE_##feature)) != 0U)

Definition at line 162 of file kernel/types.h.

Referenced by integrate_surface_direct_light().

◆ IF_KERNEL_NODES_FEATURE

◆ INTEGRATOR_SHADOW_ISECT_SIZE

◆ INTEGRATOR_SHADOW_ISECT_SIZE_CPU

#define INTEGRATOR_SHADOW_ISECT_SIZE_CPU   1024U

Definition at line 60 of file kernel/types.h.

◆ INTEGRATOR_SHADOW_ISECT_SIZE_GPU

#define INTEGRATOR_SHADOW_ISECT_SIZE_GPU   4U

Definition at line 61 of file kernel/types.h.

◆ KERNEL_FEATURE_AO

◆ KERNEL_FEATURE_AO_ADDITIVE

#define KERNEL_FEATURE_AO_ADDITIVE   (1U << 23U)

Definition at line 115 of file kernel/types.h.

Referenced by film_write_direct_light(), and Integrator::get_kernel_features().

◆ KERNEL_FEATURE_AO_PASS

#define KERNEL_FEATURE_AO_PASS   (1U << 22U)

Definition at line 114 of file kernel/types.h.

Referenced by film_write_direct_light(), and Film::get_kernel_features().

◆ KERNEL_FEATURE_BAKING

#define KERNEL_FEATURE_BAKING   (1U << 15U)

Definition at line 93 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_DENOISING

◆ KERNEL_FEATURE_HAIR

#define KERNEL_FEATURE_HAIR   (1U << 12U)

Definition at line 88 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_HAIR_THICK

#define KERNEL_FEATURE_HAIR_THICK   (1U << 13U)

Definition at line 89 of file kernel/types.h.

Referenced by Scene::update_kernel_features().

◆ KERNEL_FEATURE_LIGHT_LINKING

◆ KERNEL_FEATURE_LIGHT_PASSES

◆ KERNEL_FEATURE_LIGHT_TREE

#define KERNEL_FEATURE_LIGHT_TREE   (1U << 30U)

Definition at line 135 of file kernel/types.h.

Referenced by Integrator::get_kernel_features().

◆ KERNEL_FEATURE_MNEE

◆ KERNEL_FEATURE_NODE_AOV

#define KERNEL_FEATURE_NODE_AOV   (1U << 7U)

Definition at line 79 of file kernel/types.h.

◆ KERNEL_FEATURE_NODE_BSDF

#define KERNEL_FEATURE_NODE_BSDF   (1U << 0U)

◆ KERNEL_FEATURE_NODE_BUMP

◆ KERNEL_FEATURE_NODE_BUMP_STATE

#define KERNEL_FEATURE_NODE_BUMP_STATE   (1U << 4U)

Definition at line 76 of file kernel/types.h.

Referenced by ShaderManager::get_kernel_features().

◆ KERNEL_FEATURE_NODE_EMISSION

#define KERNEL_FEATURE_NODE_EMISSION   (1U << 1U)

◆ KERNEL_FEATURE_NODE_LIGHT_PATH

#define KERNEL_FEATURE_NODE_LIGHT_PATH   (1U << 8U)

◆ KERNEL_FEATURE_NODE_MASK_BUMP

#define KERNEL_FEATURE_NODE_MASK_BUMP   KERNEL_FEATURE_NODE_MASK_DISPLACEMENT

Definition at line 156 of file kernel/types.h.

Referenced by SVMCompiler::compile_type().

◆ KERNEL_FEATURE_NODE_MASK_DISPLACEMENT

Definition at line 154 of file kernel/types.h.

Referenced by SVMCompiler::compile_type().

◆ KERNEL_FEATURE_NODE_MASK_SURFACE

#define KERNEL_FEATURE_NODE_MASK_SURFACE

◆ KERNEL_FEATURE_NODE_MASK_SURFACE_BACKGROUND

#define KERNEL_FEATURE_NODE_MASK_SURFACE_BACKGROUND    (KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT | KERNEL_FEATURE_NODE_AOV)

Definition at line 142 of file kernel/types.h.

◆ KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT

#define KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT
Value:

Definition at line 139 of file kernel/types.h.

Referenced by kernel_background_evaluate().

◆ KERNEL_FEATURE_NODE_MASK_SURFACE_SHADOW

#define KERNEL_FEATURE_NODE_MASK_SURFACE_SHADOW

◆ KERNEL_FEATURE_NODE_MASK_VOLUME

#define KERNEL_FEATURE_NODE_MASK_VOLUME

◆ KERNEL_FEATURE_NODE_PRINCIPLED_HAIR

#define KERNEL_FEATURE_NODE_PRINCIPLED_HAIR   (1U << 9U)

Definition at line 81 of file kernel/types.h.

Referenced by PrincipledHairBsdfNode::get_feature().

◆ KERNEL_FEATURE_NODE_RAYTRACE

◆ KERNEL_FEATURE_NODE_VOLUME

#define KERNEL_FEATURE_NODE_VOLUME   (1U << 2U)

◆ KERNEL_FEATURE_NODE_VORONOI_EXTRA

#define KERNEL_FEATURE_NODE_VORONOI_EXTRA   (1U << 5U)

Definition at line 77 of file kernel/types.h.

Referenced by VoronoiTextureNode::get_feature(), and log_kernel_features().

◆ KERNEL_FEATURE_OBJECT_MOTION

#define KERNEL_FEATURE_OBJECT_MOTION   (1U << 14U)

Definition at line 90 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_OSL

#define KERNEL_FEATURE_OSL   (1U << 26U)

◆ KERNEL_FEATURE_PATCH_EVALUATION

#define KERNEL_FEATURE_PATCH_EVALUATION   (1U << 18U)

Definition at line 102 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_PATH_GUIDING

#define KERNEL_FEATURE_PATH_GUIDING   (1U << 25U)

Definition at line 122 of file kernel/types.h.

Referenced by Scene::update_kernel_features().

◆ KERNEL_FEATURE_PATH_TRACING

#define KERNEL_FEATURE_PATH_TRACING   (1U << 10U)

Definition at line 84 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_POINTCLOUD

#define KERNEL_FEATURE_POINTCLOUD   (1U << 11U)

Definition at line 87 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_SHADOW_CATCHER

#define KERNEL_FEATURE_SHADOW_CATCHER   (1U << 20U)

Definition at line 108 of file kernel/types.h.

Referenced by log_kernel_features(), and Scene::update_kernel_features().

◆ KERNEL_FEATURE_SHADOW_LINKING

◆ KERNEL_FEATURE_SUBSURFACE

#define KERNEL_FEATURE_SUBSURFACE   (1U << 16U)

Definition at line 96 of file kernel/types.h.

Referenced by ShaderManager::get_graph_kernel_features(), and log_kernel_features().

◆ KERNEL_FEATURE_TRANSPARENT

#define KERNEL_FEATURE_TRANSPARENT   (1U << 19U)

◆ KERNEL_FEATURE_VOLUME

#define KERNEL_FEATURE_VOLUME   (1U << 17U)

◆ KERNEL_STRUCT_BEGIN [1/2]

#define KERNEL_STRUCT_BEGIN ( name,
parent )
Value:
struct ccl_align(16) name \
{
#define ccl_align(n)

Definition at line 1428 of file kernel/types.h.

◆ KERNEL_STRUCT_BEGIN [2/2]

#define KERNEL_STRUCT_BEGIN ( name,
parent )   name parent;

Definition at line 1428 of file kernel/types.h.

◆ KERNEL_STRUCT_END

#define KERNEL_STRUCT_END ( name)
Value:
} \
; \
static_assert_align(name, 16);

Definition at line 1431 of file kernel/types.h.

◆ KERNEL_STRUCT_MEMBER

#define KERNEL_STRUCT_MEMBER ( parent,
type,
name )   type name;

Definition at line 1439 of file kernel/types.h.

◆ LAMP_NONE

◆ LIGHT_LINK_MASK_ALL

◆ LIGHT_LINK_SET_MAX

#define LIGHT_LINK_SET_MAX   64

◆ LIGHTGROUP_NONE

◆ LOCAL_MAX_HITS

#define LOCAL_MAX_HITS   4

Definition at line 44 of file kernel/types.h.

◆ MAX_CLOSURE

#define MAX_CLOSURE   64

Definition at line 938 of file kernel/types.h.

Referenced by Scene::get_max_closure_count(), and Scene::update_kernel_features().

◆ MAX_TAB_SOBOL_SAMPLES

#define MAX_TAB_SOBOL_SAMPLES   8192

Definition at line 1802 of file kernel/types.h.

◆ MAX_VOLUME_CLOSURE

#define MAX_VOLUME_CLOSURE   8

Definition at line 960 of file kernel/types.h.

◆ MAX_VOLUME_STACK_SIZE

◆ MIN_TAB_SOBOL_SAMPLES

#define MIN_TAB_SOBOL_SAMPLES   256

Definition at line 1801 of file kernel/types.h.

◆ NUM_TAB_SOBOL_DIMENSIONS

#define NUM_TAB_SOBOL_DIMENSIONS   4

◆ NUM_TAB_SOBOL_PATTERNS

#define NUM_TAB_SOBOL_PATTERNS   256

Definition at line 1804 of file kernel/types.h.

Referenced by tabulated_sobol_shuffled_sample_index().

◆ OBJECT_MOTION_PASS_SIZE

◆ OBJECT_NONE

#define OBJECT_NONE   (~0)

Definition at line 49 of file kernel/types.h.

Referenced by BVH(), BVH(), BVH(), BVH(), camera_world_to_ndc(), LightManager::device_update_distribution(), GeometryManager::displace(), find_attribute(), OSLRenderServices::get_background_attribute(), OSLRenderServices::get_inverse_matrix(), OSLRenderServices::get_inverse_matrix(), OSLRenderServices::get_matrix(), OSLRenderServices::get_matrix(), integrate_surface_direct_light(), integrate_surface_ray_portal(), integrator_intersect_closest(), integrator_volume_stack_update_for_subsurface(), is_mesh(), is_triangle(), light_link_light_match(), light_link_object_match(), light_link_receiver_forward(), light_link_receiver_nee(), light_tree_leaf_emitters_copy_and_flatten(), light_tree_root_node_index(), lights_intersect_impl(), object_alpha(), object_color(), object_cryptomatte_asset_id(), object_cryptomatte_id(), object_dupli_generated(), object_dupli_uv(), object_inverse_normal_transform(), object_lightgroup(), object_location(), object_normal_transform(), object_particle_id(), object_pass_id(), object_patch_map_offset(), object_random_number(), object_volume_density(), object_volume_step_size(), osl_eval_nodes< SHADER_TYPE_SURFACE >(), osl_get_inverse_matrix(), osl_get_matrix(), path_state_init_integrator(), scene_intersect(), shade_background_pixels(), shader_setup_from_background(), shader_setup_from_sample(), shadow_ray_setup(), surface_shader_eval(), svm_node_attr(), svm_node_attr_bump_dx(), svm_node_attr_bump_dy(), svm_node_attr_init(), svm_node_normal_map(), svm_node_tex_coord(), svm_node_tex_coord_bump_dx(), svm_node_tex_coord_bump_dy(), svm_node_vector_transform(), OSLRenderServices::trace(), and Hair::update_shadow_transparency().

◆ PASS_ANY

◆ PASS_NAME_JOIN

#define PASS_NAME_JOIN ( a,
b )   a##_##b

Definition at line 491 of file kernel/types.h.

◆ PASS_UNUSED

◆ PASSMASK

◆ PATCH_MAP_NODE_INDEX_MASK

#define PATCH_MAP_NODE_INDEX_MASK   (~(PATCH_MAP_NODE_IS_SET | PATCH_MAP_NODE_IS_LEAF))

Definition at line 1765 of file kernel/types.h.

Referenced by patch_map_find_patch().

◆ PATCH_MAP_NODE_IS_LEAF

#define PATCH_MAP_NODE_IS_LEAF   (1u << 31)

Definition at line 1764 of file kernel/types.h.

Referenced by patch_map_find_patch().

◆ PATCH_MAP_NODE_IS_SET

#define PATCH_MAP_NODE_IS_SET   (1 << 30)

Definition at line 1763 of file kernel/types.h.

Referenced by patch_map_find_patch().

◆ PATCH_MAX_CONTROL_VERTS

#define PATCH_MAX_CONTROL_VERTS   16

◆ PRIM_NONE

◆ PRIMITIVE_INDEX

#define PRIMITIVE_INDEX ( type)     (bitscan((uint32_t)(type)) * 2 + (((type) & PRIMITIVE_MOTION) ? 1 : 0))

Definition at line 838 of file kernel/types.h.

Referenced by BVHBuild::create_leaf_node().

◆ PRIMITIVE_PACK_SEGMENT

#define PRIMITIVE_PACK_SEGMENT ( type,
segment )   ((segment << PRIMITIVE_NUM_BITS) | (type))

Definition at line 842 of file kernel/types.h.

Referenced by BVHBuild::add_reference_curves(), and Hair::pack_curves().

◆ PRIMITIVE_UNPACK_SEGMENT

◆ RAMP_TABLE_SIZE

#define RAMP_TABLE_SIZE   256

◆ SHADER_CLOSURE_BASE

#define SHADER_CLOSURE_BASE
Value:
Spectrum weight; \
ClosureType type; \
float sample_weight; \
ClosureType
#define N
SPECTRUM_DATA_TYPE Spectrum

Definition at line 974 of file kernel/types.h.

◆ SHADER_CLOSURE_VOLUME_BASE

#define SHADER_CLOSURE_VOLUME_BASE
Value:
Spectrum weight; \
ClosureType type; \
float sample_weight

Definition at line 984 of file kernel/types.h.

◆ SHADER_NONE

#define SHADER_NONE   (~0)

Definition at line 48 of file kernel/types.h.

Referenced by integrator_intersect_next_kernel(), and path_state_init_integrator().

◆ SHADOW_CATCHER_OBJECT_VISIBILITY

#define SHADOW_CATCHER_OBJECT_VISIBILITY ( is_shadow_catcher,
visibility )    (((is_shadow_catcher) ? SHADOW_CATCHER_VISIBILITY_SHIFT(visibility) : 0) | (visibility))

Definition at line 470 of file kernel/types.h.

Referenced by Object::visibility_for_tracing().

◆ SHADOW_CATCHER_PATH_VISIBILITY

#define SHADOW_CATCHER_PATH_VISIBILITY ( path_flag,
visibility )
Value:
(visibility))
#define SHADOW_CATCHER_VISIBILITY_SHIFT(visibility)
@ PATH_RAY_SHADOW_CATCHER_PASS

Definition at line 466 of file kernel/types.h.

Referenced by integrate_intersect_shadow_visibility(), integrator_volume_stack_update_for_subsurface(), and path_state_ray_visibility().

◆ SHADOW_CATCHER_VISIBILITY_SHIFT

#define SHADOW_CATCHER_VISIBILITY_SHIFT ( visibility)    ((visibility) << 16)

Definition at line 464 of file kernel/types.h.

Referenced by integrate_intersect_shadow_opaque().

◆ SHUTTER_TABLE_SIZE

#define SHUTTER_TABLE_SIZE   256

Definition at line 39 of file kernel/types.h.

Referenced by camera_sample().

◆ VOLUME_BOUNDS_MAX

#define VOLUME_BOUNDS_MAX   1024

Definition at line 46 of file kernel/types.h.

Typedef Documentation

◆ AttributeDescriptor

typedef struct AttributeDescriptor AttributeDescriptor

◆ AttributeElement

◆ AttributeFlag

◆ AttributeMap

typedef struct AttributeMap AttributeMap

◆ AttributePrimitive

◆ AttributeStandard

◆ BoundingBox

using BoundingBox
Initial value:
struct BoundingBox {
}
#define min(a, b)
Definition sort.c:32
float max

Definition at line 1645 of file kernel/types.h.

◆ BoundingCone

using BoundingCone
Initial value:
struct BoundingCone {
float theta_o;
float theta_e;
}
struct BoundingCone { packed_float3 axis; float theta_o; float theta_e;} BoundingCone

Definition at line 1650 of file kernel/types.h.

◆ BsdfEval

typedef struct BsdfEval BsdfEval

◆ ClosureLabel

typedef enum ClosureLabel ClosureLabel

◆ CryptomatteType

◆ CurveShapeType

◆ DeviceKernel

typedef enum DeviceKernel DeviceKernel

◆ differential

typedef struct differential differential

◆ differential3

typedef struct differential3 differential3

◆ FilterClosures

◆ GuidingDirectionalSamplingType

◆ GuidingDistributionType

◆ Intersection

typedef struct Intersection Intersection

◆ KernelAreaLight

typedef struct KernelAreaLight KernelAreaLight

◆ KernelBake

typedef struct KernelBake KernelBake

◆ KernelBVHLayout

◆ KernelCamera

typedef struct KernelCamera KernelCamera

◆ KernelCurve

typedef struct KernelCurve KernelCurve

◆ KernelCurveSegment

typedef struct KernelCurveSegment KernelCurveSegment

◆ KernelDistantLight

typedef struct KernelDistantLight KernelDistantLight

◆ KernelFilmConvert

typedef struct KernelFilmConvert KernelFilmConvert

◆ KernelLight

typedef struct KernelLight KernelLight

◆ KernelLightDistribution

typedef struct KernelLightDistribution KernelLightDistribution

◆ KernelLightLinkSet

typedef struct KernelLightLinkSet KernelLightLinkSet

◆ KernelLightTreeEmitter

typedef struct KernelLightTreeEmitter KernelLightTreeEmitter

◆ KernelLightTreeNode

typedef struct KernelLightTreeNode KernelLightTreeNode

◆ KernelObject

typedef struct KernelObject KernelObject

◆ KernelParticle

typedef struct KernelParticle KernelParticle

◆ KernelShader

typedef struct KernelShader KernelShader

◆ KernelShaderEvalInput

typedef struct KernelShaderEvalInput KernelShaderEvalInput

◆ KernelSpotLight

typedef struct KernelSpotLight KernelSpotLight

◆ KernelTables

typedef struct KernelTables KernelTables

◆ KernelWorkTile

typedef struct KernelWorkTile KernelWorkTile

◆ LightType

typedef enum LightType LightType

◆ LocalIntersection

typedef struct LocalIntersection LocalIntersection

◆ MeshLight

using MeshLight
Initial value:
struct MeshLight {
int shader_flag;
int object_id;
}
struct MeshLight { int shader_flag; int object_id;} MeshLight

Definition at line 1632 of file kernel/types.h.

◆ PassType

typedef enum PassType PassType

◆ PrimitiveType

◆ Ray

typedef struct Ray Ray

◆ RaySelfPrimitives

typedef struct RaySelfPrimitives RaySelfPrimitives

◆ ShaderFlag

typedef enum ShaderFlag ShaderFlag

◆ ShaderVolumeClosure

typedef struct ShaderVolumeClosure ShaderVolumeClosure

◆ ShaderVolumePhases

typedef struct ShaderVolumePhases ShaderVolumePhases

◆ VolumeStack

typedef struct VolumeStack VolumeStack

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DEVICE_KERNEL_INTEGRATOR_NUM 

Definition at line 1886 of file kernel/types.h.

◆ AttributeElement

Enumerator
ATTR_ELEMENT_NONE 
ATTR_ELEMENT_OBJECT 
ATTR_ELEMENT_MESH 
ATTR_ELEMENT_FACE 
ATTR_ELEMENT_VERTEX 
ATTR_ELEMENT_VERTEX_MOTION 
ATTR_ELEMENT_CORNER 
ATTR_ELEMENT_CORNER_BYTE 
ATTR_ELEMENT_CURVE 
ATTR_ELEMENT_CURVE_KEY 
ATTR_ELEMENT_CURVE_KEY_MOTION 
ATTR_ELEMENT_VOXEL 

Definition at line 861 of file kernel/types.h.

◆ AttributeFlag

Enumerator
ATTR_FINAL_SIZE 
ATTR_SUBDIVIDED 

Definition at line 914 of file kernel/types.h.

◆ AttributePrimitive

Enumerator
ATTR_PRIM_GEOMETRY 
ATTR_PRIM_SUBD 
ATTR_PRIM_TYPES 

Definition at line 854 of file kernel/types.h.

◆ AttributeStandard

Enumerator
ATTR_STD_NONE 
ATTR_STD_VERTEX_NORMAL 
ATTR_STD_FACE_NORMAL 
ATTR_STD_UV 
ATTR_STD_UV_TANGENT 
ATTR_STD_UV_TANGENT_SIGN 
ATTR_STD_VERTEX_COLOR 
ATTR_STD_GENERATED 
ATTR_STD_GENERATED_TRANSFORM 
ATTR_STD_POSITION_UNDEFORMED 
ATTR_STD_POSITION_UNDISPLACED 
ATTR_STD_MOTION_VERTEX_POSITION 
ATTR_STD_MOTION_VERTEX_NORMAL 
ATTR_STD_PARTICLE 
ATTR_STD_CURVE_INTERCEPT 
ATTR_STD_CURVE_LENGTH 
ATTR_STD_CURVE_RANDOM 
ATTR_STD_POINT_RANDOM 
ATTR_STD_PTEX_FACE_ID 
ATTR_STD_PTEX_UV 
ATTR_STD_VOLUME_DENSITY 
ATTR_STD_VOLUME_COLOR 
ATTR_STD_VOLUME_FLAME 
ATTR_STD_VOLUME_HEAT 
ATTR_STD_VOLUME_TEMPERATURE 
ATTR_STD_VOLUME_VELOCITY 
ATTR_STD_VOLUME_VELOCITY_X 
ATTR_STD_VOLUME_VELOCITY_Y 
ATTR_STD_VOLUME_VELOCITY_Z 
ATTR_STD_POINTINESS 
ATTR_STD_RANDOM_PER_ISLAND 
ATTR_STD_SHADOW_TRANSPARENCY 
ATTR_STD_NUM 
ATTR_STD_NOT_FOUND 

Definition at line 876 of file kernel/types.h.

◆ CameraType

enum CameraType
Enumerator
CAMERA_PERSPECTIVE 
CAMERA_ORTHOGRAPHIC 
CAMERA_PANORAMA 

Definition at line 665 of file kernel/types.h.

◆ ClosureLabel

Enumerator
LABEL_NONE 
LABEL_TRANSMIT 
LABEL_REFLECT 
LABEL_DIFFUSE 
LABEL_GLOSSY 
LABEL_SINGULAR 
LABEL_TRANSPARENT 
LABEL_VOLUME_SCATTER 
LABEL_TRANSMIT_TRANSPARENT 
LABEL_SUBSURFACE_SCATTER 
LABEL_RAY_PORTAL 

Definition at line 475 of file kernel/types.h.

◆ CryptomatteType

Enumerator
CRYPT_NONE 
CRYPT_OBJECT 
CRYPT_MATERIAL 
CRYPT_ASSET 
CRYPT_ACCURATE 

Definition at line 576 of file kernel/types.h.

◆ CurveShapeType

Enumerator
CURVE_RIBBON 
CURVE_THICK 
CURVE_NUM_SHAPE_TYPES 

Definition at line 845 of file kernel/types.h.

◆ DeviceKernel

enum DeviceKernel : int
Enumerator
DEVICE_KERNEL_INTEGRATOR_INIT_FROM_CAMERA 
DEVICE_KERNEL_INTEGRATOR_INIT_FROM_BAKE 
DEVICE_KERNEL_INTEGRATOR_INTERSECT_CLOSEST 
DEVICE_KERNEL_INTEGRATOR_INTERSECT_SHADOW 
DEVICE_KERNEL_INTEGRATOR_INTERSECT_SUBSURFACE 
DEVICE_KERNEL_INTEGRATOR_INTERSECT_VOLUME_STACK 
DEVICE_KERNEL_INTEGRATOR_INTERSECT_DEDICATED_LIGHT 
DEVICE_KERNEL_INTEGRATOR_SHADE_BACKGROUND 
DEVICE_KERNEL_INTEGRATOR_SHADE_LIGHT 
DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE 
DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE 
DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_MNEE 
DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME 
DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW 
DEVICE_KERNEL_INTEGRATOR_SHADE_DEDICATED_LIGHT 
DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL 
DEVICE_KERNEL_INTEGRATOR_QUEUED_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_QUEUED_SHADOW_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_ACTIVE_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_TERMINATED_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_SORTED_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_SORT_BUCKET_PASS 
DEVICE_KERNEL_INTEGRATOR_SORT_WRITE_PASS 
DEVICE_KERNEL_INTEGRATOR_COMPACT_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_COMPACT_STATES 
DEVICE_KERNEL_INTEGRATOR_TERMINATED_SHADOW_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_PATHS_ARRAY 
DEVICE_KERNEL_INTEGRATOR_COMPACT_SHADOW_STATES 
DEVICE_KERNEL_INTEGRATOR_RESET 
DEVICE_KERNEL_INTEGRATOR_SHADOW_CATCHER_COUNT_POSSIBLE_SPLITS 
DEVICE_KERNEL_SHADER_EVAL_DISPLACE 
DEVICE_KERNEL_SHADER_EVAL_BACKGROUND 
DEVICE_KERNEL_SHADER_EVAL_CURVE_SHADOW_TRANSPARENCY 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DECLARE_FILM_CONVERT_KERNEL 
DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_CHECK 
DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_X 
DEVICE_KERNEL_ADAPTIVE_SAMPLING_CONVERGENCE_FILTER_Y 
DEVICE_KERNEL_FILTER_GUIDING_PREPROCESS 
DEVICE_KERNEL_FILTER_GUIDING_SET_FAKE_ALBEDO 
DEVICE_KERNEL_FILTER_COLOR_PREPROCESS 
DEVICE_KERNEL_FILTER_COLOR_POSTPROCESS 
DEVICE_KERNEL_CRYPTOMATTE_POSTPROCESS 
DEVICE_KERNEL_PREFIX_SUM 
DEVICE_KERNEL_NUM 

Definition at line 1815 of file kernel/types.h.

◆ DirectLightSamplingType

Enumerator
DIRECT_LIGHT_SAMPLING_MIS 
DIRECT_LIGHT_SAMPLING_FORWARD 
DIRECT_LIGHT_SAMPLING_NEE 
DIRECT_LIGHT_SAMPLING_NUM 

Definition at line 694 of file kernel/types.h.

◆ EmissionSampling

Enumerator
EMISSION_SAMPLING_NONE 
EMISSION_SAMPLING_AUTO 
EMISSION_SAMPLING_FRONT 
EMISSION_SAMPLING_BACK 
EMISSION_SAMPLING_FRONT_BACK 
EMISSION_SAMPLING_NUM 

Definition at line 622 of file kernel/types.h.

◆ FilterClosures

Enumerator
FILTER_CLOSURE_EMISSION 
FILTER_CLOSURE_DIFFUSE 
FILTER_CLOSURE_GLOSSY 
FILTER_CLOSURE_TRANSMISSION 
FILTER_CLOSURE_TRANSPARENT 
FILTER_CLOSURE_DIRECT_LIGHT 

Definition at line 592 of file kernel/types.h.

◆ GuidingDirectionalSamplingType

Enumerator
GUIDING_DIRECTIONAL_SAMPLING_TYPE_PRODUCT_MIS 
GUIDING_DIRECTIONAL_SAMPLING_TYPE_RIS 
GUIDING_DIRECTIONAL_SAMPLING_TYPE_ROUGHNESS 
GUIDING_DIRECTIONAL_SAMPLING_NUM_TYPES 

Definition at line 655 of file kernel/types.h.

◆ GuidingDistributionType

Enumerator
GUIDING_TYPE_PARALLAX_AWARE_VMM 
GUIDING_TYPE_DIRECTIONAL_QUAD_TREE 
GUIDING_TYPE_VMM 
GUIDING_NUM_TYPES 

Definition at line 645 of file kernel/types.h.

◆ KernelBVHLayout

Enumerator
BVH_LAYOUT_NONE 
BVH_LAYOUT_BVH2 
BVH_LAYOUT_EMBREE 
BVH_LAYOUT_OPTIX 
BVH_LAYOUT_MULTI_OPTIX 
BVH_LAYOUT_MULTI_OPTIX_EMBREE 
BVH_LAYOUT_METAL 
BVH_LAYOUT_MULTI_METAL 
BVH_LAYOUT_MULTI_METAL_EMBREE 
BVH_LAYOUT_HIPRT 
BVH_LAYOUT_MULTI_HIPRT 
BVH_LAYOUT_MULTI_HIPRT_EMBREE 
BVH_LAYOUT_EMBREEGPU 
BVH_LAYOUT_MULTI_EMBREEGPU 
BVH_LAYOUT_MULTI_EMBREEGPU_EMBREE 
BVH_LAYOUT_AUTO 
BVH_LAYOUT_ALL 

Definition at line 1401 of file kernel/types.h.

◆ LightTreeNodeType

Enumerator
LIGHT_TREE_INSTANCE 
LIGHT_TREE_INNER 
LIGHT_TREE_LEAF 
LIGHT_TREE_DISTANT 

Definition at line 1656 of file kernel/types.h.

◆ LightType

enum LightType
Enumerator
LIGHT_POINT 
LIGHT_DISTANT 
LIGHT_BACKGROUND 
LIGHT_AREA 
LIGHT_SPOT 
LIGHT_TRIANGLE 

Definition at line 634 of file kernel/types.h.

◆ MotionPosition

Enumerator
MOTION_POSITION_START 
MOTION_POSITION_CENTER 
MOTION_POSITION_END 
MOTION_NUM_POSITIONS 

Definition at line 681 of file kernel/types.h.

◆ PanoramaType

Enumerator
PANORAMA_EQUIRECTANGULAR 
PANORAMA_FISHEYE_EQUIDISTANT 
PANORAMA_FISHEYE_EQUISOLID 
PANORAMA_MIRRORBALL 
PANORAMA_FISHEYE_LENS_POLYNOMIAL 
PANORAMA_EQUIANGULAR_CUBEMAP_FACE 
PANORAMA_CENTRAL_CYLINDRICAL 
PANORAMA_NUM_TYPES 

Definition at line 669 of file kernel/types.h.

◆ PassType

enum PassType
Enumerator
PASS_NONE 
PASS_COMBINED 
PASS_EMISSION 
PASS_BACKGROUND 
PASS_AO 
PASS_DIFFUSE 
PASS_DIFFUSE_DIRECT 
PASS_DIFFUSE_INDIRECT 
PASS_GLOSSY 
PASS_GLOSSY_DIRECT 
PASS_GLOSSY_INDIRECT 
PASS_TRANSMISSION 
PASS_TRANSMISSION_DIRECT 
PASS_TRANSMISSION_INDIRECT 
PASS_VOLUME 
PASS_VOLUME_DIRECT 
PASS_VOLUME_INDIRECT 
PASS_CATEGORY_LIGHT_END 
PASS_DEPTH 
PASS_POSITION 
PASS_NORMAL 
PASS_ROUGHNESS 
PASS_UV 
PASS_OBJECT_ID 
PASS_MATERIAL_ID 
PASS_MOTION 
PASS_MOTION_WEIGHT 
PASS_CRYPTOMATTE 
PASS_AOV_COLOR 
PASS_AOV_VALUE 
PASS_ADAPTIVE_AUX_BUFFER 
PASS_SAMPLE_COUNT 
PASS_DIFFUSE_COLOR 
PASS_GLOSSY_COLOR 
PASS_TRANSMISSION_COLOR 
PASS_MIST 
PASS_DENOISING_NORMAL 
PASS_DENOISING_ALBEDO 
PASS_DENOISING_DEPTH 
PASS_DENOISING_PREVIOUS 
PASS_SHADOW_CATCHER 
PASS_SHADOW_CATCHER_SAMPLE_COUNT 
PASS_SHADOW_CATCHER_MATTE 
PASS_GUIDING_COLOR 
PASS_GUIDING_PROBABILITY 
PASS_GUIDING_AVG_ROUGHNESS 
PASS_CATEGORY_DATA_END 
PASS_BAKE_PRIMITIVE 
PASS_BAKE_SEED 
PASS_BAKE_DIFFERENTIAL 
PASS_CATEGORY_BAKE_END 
PASS_NUM 

Definition at line 495 of file kernel/types.h.

◆ PathRayFlag

Enumerator
PATH_RAY_CAMERA 
PATH_RAY_REFLECT 
PATH_RAY_TRANSMIT 
PATH_RAY_DIFFUSE 
PATH_RAY_GLOSSY 
PATH_RAY_SINGULAR 
PATH_RAY_TRANSPARENT 
PATH_RAY_VOLUME_SCATTER 
PATH_RAY_IMPORTANCE_BAKE 
PATH_RAY_SHADOW_OPAQUE 
PATH_RAY_SHADOW_TRANSPARENT 
PATH_RAY_SHADOW 
PATH_RAY_ALL_VISIBILITY 
PATH_RAY_NODE_UNALIGNED 
PATH_RAY_MIS_HAD_TRANSMISSION 
PATH_RAY_MIS_SKIP 
PATH_RAY_DIFFUSE_ANCESTOR 
PATH_RAY_SINGLE_PASS_DONE 
PATH_RAY_TRANSPARENT_BACKGROUND 
PATH_RAY_TERMINATE_ON_NEXT_SURFACE 
PATH_RAY_TERMINATE_IN_NEXT_VOLUME 
PATH_RAY_TERMINATE_AFTER_TRANSPARENT 
PATH_RAY_TERMINATE_AFTER_VOLUME 
PATH_RAY_TERMINATE 
PATH_RAY_EMISSION 
PATH_RAY_SUBSURFACE_RANDOM_WALK 
PATH_RAY_SUBSURFACE_DISK 
PATH_RAY_SUBSURFACE_BACKFACING 
PATH_RAY_SUBSURFACE 
PATH_RAY_DENOISING_FEATURES 
PATH_RAY_SURFACE_PASS 
PATH_RAY_VOLUME_PASS 
PATH_RAY_ANY_PASS 
PATH_RAY_SHADOW_FOR_AO 
PATH_RAY_SHADOW_CATCHER_HIT 
PATH_RAY_SHADOW_CATCHER_PASS 
PATH_RAY_SHADOW_CATCHER_BACKGROUND 

Definition at line 341 of file kernel/types.h.

◆ PathRayMNEE

Enumerator
PATH_MNEE_NONE 
PATH_MNEE_VALID 
PATH_MNEE_RECEIVER_ANCESTOR 
PATH_MNEE_CULL_LIGHT_CONNECTION 

Definition at line 450 of file kernel/types.h.

◆ PathTraceDimension

Enumerator
PRNG_FILTER 
PRNG_LENS_TIME 
PRNG_TERMINATE 
PRNG_LIGHT 
PRNG_LIGHT_TERMINATE 
PRNG_SURFACE_BSDF 
PRNG_SURFACE_AO 
PRNG_SURFACE_BEVEL 
PRNG_SURFACE_BSDF_GUIDING 
PRNG_SURFACE_RIS_GUIDING_0 
PRNG_SURFACE_RIS_GUIDING_1 
PRNG_VOLUME_PHASE 
PRNG_VOLUME_COLOR_CHANNEL 
PRNG_VOLUME_SCATTER_DISTANCE 
PRNG_VOLUME_OFFSET 
PRNG_VOLUME_SHADE_OFFSET 
PRNG_VOLUME_PHASE_GUIDING_DISTANCE 
PRNG_VOLUME_PHASE_GUIDING_EQUIANGULAR 
PRNG_SUBSURFACE_BSDF 
PRNG_SUBSURFACE_COLOR_CHANNEL 
PRNG_SUBSURFACE_SCATTER_DISTANCE 
PRNG_SUBSURFACE_GUIDE_STRATEGY 
PRNG_SUBSURFACE_GUIDE_DIRECTION 
PRNG_SUBSURFACE_DISK 
PRNG_SUBSURFACE_DISK_RESAMPLE 
PRNG_BOUNCE_NUM 

Definition at line 283 of file kernel/types.h.

◆ PrimitiveType

Enumerator
PRIMITIVE_NONE 
PRIMITIVE_TRIANGLE 
PRIMITIVE_CURVE_THICK 
PRIMITIVE_CURVE_RIBBON 
PRIMITIVE_POINT 
PRIMITIVE_VOLUME 
PRIMITIVE_LAMP 
PRIMITIVE_MOTION 
PRIMITIVE_MOTION_TRIANGLE 
PRIMITIVE_MOTION_CURVE_THICK 
PRIMITIVE_MOTION_CURVE_RIBBON 
PRIMITIVE_MOTION_POINT 
PRIMITIVE_CURVE 
PRIMITIVE_ALL 
PRIMITIVE_NUM_SHAPES 
PRIMITIVE_NUM_BITS 
PRIMITIVE_NUM 

Definition at line 812 of file kernel/types.h.

◆ SamplingPattern

Enumerator
SAMPLING_PATTERN_SOBOL_BURLEY 
SAMPLING_PATTERN_TABULATED_SOBOL 
SAMPLING_PATTERN_BLUE_NOISE_PURE 
SAMPLING_PATTERN_BLUE_NOISE_FIRST 
SAMPLING_PATTERN_BLUE_NOISE_ROUND 
SAMPLING_PATTERN_AUTOMATIC 
SAMPLING_NUM_PATTERNS 

Definition at line 327 of file kernel/types.h.

◆ ShaderDataFlag

Enumerator
SD_BACKFACING 
SD_EMISSION 
SD_BSDF 
SD_BSDF_HAS_EVAL 
SD_BSSRDF 
SD_HOLDOUT 
SD_EXTINCTION 
SD_SCATTER 
SD_IS_VOLUME_SHADER_EVAL 
SD_TRANSPARENT 
SD_BSDF_NEEDS_LCG 
SD_BSDF_HAS_TRANSMISSION 
SD_RAY_PORTAL 
SD_CLOSURE_FLAGS 
SD_USE_BUMP_MAP_CORRECTION 
SD_MIS_FRONT 
SD_HAS_TRANSPARENT_SHADOW 
SD_HAS_VOLUME 
SD_HAS_ONLY_VOLUME 
SD_HETEROGENEOUS_VOLUME 
SD_HAS_BSSRDF_BUMP 
SD_VOLUME_EQUIANGULAR 
SD_VOLUME_MIS 
SD_VOLUME_CUBIC 
SD_HAS_BUMP 
SD_HAS_DISPLACEMENT 
SD_HAS_CONSTANT_EMISSION 
SD_NEED_VOLUME_ATTRIBUTES 
SD_HAS_EMISSION 
SD_HAS_RAYTRACE 
SD_MIS_BACK 
SD_SHADER_FLAGS 

Definition at line 1005 of file kernel/types.h.

◆ ShaderDataObjectFlag

Enumerator
SD_OBJECT_HOLDOUT_MASK 
SD_OBJECT_MOTION 
SD_OBJECT_TRANSFORM_APPLIED 
SD_OBJECT_NEGATIVE_SCALE 
SD_OBJECT_HAS_VOLUME 
SD_OBJECT_INTERSECTS_VOLUME 
SD_OBJECT_HAS_VERTEX_MOTION 
SD_OBJECT_SHADOW_CATCHER 
SD_OBJECT_HAS_VOLUME_ATTRIBUTES 
SD_OBJECT_CAUSTICS_CASTER 
SD_OBJECT_CAUSTICS_RECEIVER 
SD_OBJECT_HAS_VOLUME_MOTION 
SD_OBJECT_CAUSTICS 
SD_OBJECT_FLAGS 

Definition at line 1084 of file kernel/types.h.

◆ ShaderFlag

enum ShaderFlag
Enumerator
SHADER_SMOOTH_NORMAL 
SHADER_CAST_SHADOW 
SHADER_AREA_LIGHT 
SHADER_USE_MIS 
SHADER_EXCLUDE_DIFFUSE 
SHADER_EXCLUDE_GLOSSY 
SHADER_EXCLUDE_TRANSMIT 
SHADER_EXCLUDE_CAMERA 
SHADER_EXCLUDE_SCATTER 
SHADER_EXCLUDE_SHADOW_CATCHER 
SHADER_EXCLUDE_ANY 
SHADER_MASK 

Definition at line 603 of file kernel/types.h.

Function Documentation

◆ ccl_align()

struct ccl_align ( 16 )

Definition at line 33 of file kernel/types.h.

◆ static_assert_align() [1/15]

static_assert_align ( KernelBake ,
16  )

◆ static_assert_align() [2/15]

static_assert_align ( KernelCamera ,
16  )

◆ static_assert_align() [3/15]

static_assert_align ( KernelCurve ,
16  )

◆ static_assert_align() [4/15]

static_assert_align ( KernelCurveSegment ,
8  )

◆ static_assert_align() [5/15]

static_assert_align ( KernelData ,
16  )

◆ static_assert_align() [6/15]

static_assert_align ( KernelFilmConvert ,
16  )

◆ static_assert_align() [7/15]

static_assert_align ( KernelLight ,
16  )

◆ static_assert_align() [8/15]

static_assert_align ( KernelLightDistribution ,
16  )

◆ static_assert_align() [9/15]

static_assert_align ( KernelLightTreeEmitter ,
16  )

◆ static_assert_align() [10/15]

static_assert_align ( KernelLightTreeNode ,
16  )

◆ static_assert_align() [11/15]

static_assert_align ( KernelObject ,
16  )

◆ static_assert_align() [12/15]

static_assert_align ( KernelParticle ,
16  )

◆ static_assert_align() [13/15]

static_assert_align ( KernelShader ,
16  )

◆ static_assert_align() [14/15]

static_assert_align ( KernelShaderEvalInput ,
16  )

◆ static_assert_align() [15/15]

static_assert_align ( KernelTables ,
16  )

Variable Documentation

◆ KernelData

KernelData

Definition at line 1509 of file kernel/types.h.

Referenced by CPUDevice::const_copy_to(), and kernel_const_copy().

◆ ShaderClosure

◆ ShaderData

◆ ShaderDataCausticsStorage

ShaderDataCausticsStorage

Definition at line 1226 of file kernel/types.h.

Referenced by integrate_surface_direct_light().

◆ ShaderDataTinyStorage