Blender  V2.93
Classes | Macros | Typedefs | Enumerations | Functions | Variables
kernel_types.h File Reference
#include "kernel/kernel_math.h"
#include "kernel/svm/svm_types.h"
#include "util/util_static_assert.h"

Go to the source code of this file.

Classes

struct  PathRadianceState
 
struct  PathRadiance
 
struct  BsdfEval
 
struct  differential3
 
struct  differential
 
struct  Ray
 
struct  Intersection
 
struct  AttributeDescriptor
 
struct  VolumeStack
 
struct  PathState
 
struct  VolumeState
 
struct  LocalIntersection
 
struct  SubsurfaceIndirectRays
 
struct  KernelCamera
 
struct  KernelFilm
 
struct  KernelBackground
 
struct  KernelIntegrator
 
struct  KernelBVH
 
struct  KernelTables
 
struct  KernelBake
 
struct  KernelData
 
struct  KernelObject
 
struct  KernelSpotLight
 
struct  KernelAreaLight
 
struct  KernelDistantLight
 
struct  KernelLight
 
struct  KernelLightDistribution
 
struct  KernelParticle
 
struct  KernelShader
 
struct  WorkTile
 

Macros

#define __KERNEL_CPU__
 
#define ccl_addr_space
 
#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 BECKMANN_TABLE_SIZE   256
 
#define SHADER_NONE   (~0)
 
#define OBJECT_NONE   (~0)
 
#define PRIM_NONE   (~0)
 
#define LAMP_NONE   (~0)
 
#define ID_NONE   (0.0f)
 
#define VOLUME_STACK_SIZE   32
 
#define WORK_POOL_SIZE_GPU   64
 
#define WORK_POOL_SIZE_CPU   1
 
#define WORK_POOL_SIZE   WORK_POOL_SIZE_CPU
 
#define SHADER_SORT_BLOCK_SIZE   2048
 
#define SHADER_SORT_LOCAL_SIZE   1
 
#define __SOBOL__
 
#define __DPDU__
 
#define __BACKGROUND__
 
#define __CAUSTICS_TRICKS__
 
#define __VISIBILITY_FLAG__
 
#define __RAY_DIFFERENTIALS__
 
#define __CAMERA_CLIPPING__
 
#define __INTERSECTION_REFINE__
 
#define __CLAMP_SAMPLE__
 
#define __PATCH_EVAL__
 
#define __SHADOW_TRICKS__
 
#define __DENOISING_FEATURES__
 
#define __SHADER_RAYTRACE__
 
#define __AO__
 
#define __PASSES__
 
#define __HAIR__
 
#define __SVM__
 
#define __EMISSION__
 
#define __HOLDOUT__
 
#define __MULTI_CLOSURE__
 
#define __TRANSPARENT_SHADOWS__
 
#define __BACKGROUND_MIS__
 
#define __LAMP_MIS__
 
#define __CAMERA_MOTION__
 
#define __OBJECT_MOTION__
 
#define __BAKING__
 
#define __PRINCIPLED__
 
#define __SUBSURFACE__
 
#define __VOLUME__
 
#define __VOLUME_SCATTER__
 
#define __CMJ__
 
#define __SHADOW_RECORD_ALL__
 
#define __BRANCHED_PATH__
 
#define __VOLUME_DECOUPLED__
 
#define __VOLUME_RECORD_ALL__
 
#define __BVH_LOCAL__
 
#define PASS_NAME_JOIN(a, b)   a##_##b
 
#define PASSMASK(pass)   (1 << ((PASS_NAME_JOIN(PASS, pass)) % 32))
 
#define PASSMASK_COMPONENT(comp)
 
#define PASS_ANY   (~0)
 
#define PRIMITIVE_PACK_SEGMENT(type, segment)   ((segment << PRIMITIVE_NUM_TOTAL) | (type))
 
#define PRIMITIVE_UNPACK_SEGMENT(type)   (type >> PRIMITIVE_NUM_TOTAL)
 
#define MAX_CLOSURE   64
 
#define SHADER_CLOSURE_BASE
 
#define AS_SHADER_DATA(shader_data_tiny_storage)   ((ShaderData *)shader_data_tiny_storage)
 
#define QUEUE_EMPTY_SLOT   -1
 
#define RAY_STATE_MASK   0x0F
 
#define RAY_FLAG_MASK   0xF0
 
#define ASSIGN_RAY_STATE(ray_state, ray_index, state)    (ray_state[ray_index] = ((ray_state[ray_index] & RAY_FLAG_MASK) | state))
 
#define IS_STATE(ray_state, ray_index, state)    ((ray_index) != QUEUE_EMPTY_SLOT && ((ray_state)[(ray_index)] & RAY_STATE_MASK) == (state))
 
#define ADD_RAY_FLAG(ray_state, ray_index, flag)    (ray_state[ray_index] = (ray_state[ray_index] | flag))
 
#define REMOVE_RAY_FLAG(ray_state, ray_index, flag)    (ray_state[ray_index] = (ray_state[ray_index] & (~flag)))
 
#define IS_FLAG(ray_state, ray_index, flag)   (ray_state[ray_index] & flag)
 
#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 NUM_PMJ_SAMPLES   (64 * 64)
 
#define NUM_PMJ_PATTERNS   48
 

Typedefs

typedef enum ShaderEvalType ShaderEvalType
 
typedef enum ClosureLabel ClosureLabel
 
typedef enum PassType PassType
 
typedef enum CryptomatteType CryptomatteType
 
typedef enum DenoisingPassOffsets DenoisingPassOffsets
 
typedef enum eBakePassFilter eBakePassFilter
 
typedef enum BakePassFilterCombos BakePassFilterCombos
 
typedef enum DenoiseFlag DenoiseFlag
 
typedef ccl_addr_space struct PathRadianceState PathRadianceState
 
typedef ccl_addr_space struct PathRadiance PathRadiance
 
typedef struct BsdfEval BsdfEval
 
typedef enum ShaderFlag ShaderFlag
 
typedef enum LightType LightType
 
typedef struct differential3 differential3
 
typedef struct differential differential
 
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 ccl_addr_space struct ccl_align(16) ShaderClosure
 
typedef struct VolumeStack VolumeStack
 
typedef struct PathState PathState
 
typedef struct VolumeState VolumeState
 
typedef struct LocalIntersection LocalIntersection
 
typedef struct SubsurfaceIndirectRays SubsurfaceIndirectRays
 
typedef struct KernelCamera KernelCamera
 
typedef struct KernelFilm KernelFilm
 
typedef struct KernelBackground KernelBackground
 
typedef struct KernelIntegrator KernelIntegrator
 
typedef enum KernelBVHLayout KernelBVHLayout
 
typedef struct KernelBVH KernelBVH
 
typedef struct KernelTables KernelTables
 
typedef struct KernelBake KernelBake
 
typedef struct KernelData KernelData
 
typedef struct KernelObject KernelObject
 
typedef struct KernelSpotLight KernelSpotLight
 
typedef struct KernelAreaLight KernelAreaLight
 
typedef struct KernelDistantLight KernelDistantLight
 
typedef struct KernelLight KernelLight
 
typedef struct KernelLightDistribution KernelLightDistribution
 
typedef struct KernelParticle KernelParticle
 
typedef struct KernelShader KernelShader
 
typedef struct WorkTile WorkTile
 

Enumerations

enum  ShaderEvalType {
  SHADER_EVAL_DISPLACE , SHADER_EVAL_BACKGROUND , SHADER_EVAL_BAKE , SHADER_EVAL_NORMAL ,
  SHADER_EVAL_UV , SHADER_EVAL_ROUGHNESS , SHADER_EVAL_DIFFUSE_COLOR , SHADER_EVAL_GLOSSY_COLOR ,
  SHADER_EVAL_TRANSMISSION_COLOR , SHADER_EVAL_EMISSION , SHADER_EVAL_AOV_COLOR , SHADER_EVAL_AOV_VALUE ,
  SHADER_EVAL_AO , SHADER_EVAL_COMBINED , SHADER_EVAL_SHADOW , SHADER_EVAL_DIFFUSE ,
  SHADER_EVAL_GLOSSY , SHADER_EVAL_TRANSMISSION , SHADER_EVAL_ENVIRONMENT
}
 
enum  PathTraceDimension {
  PRNG_FILTER_U = 0 , PRNG_FILTER_V = 1 , PRNG_LENS_U = 2 , PRNG_LENS_V = 3 ,
  PRNG_TIME = 4 , PRNG_UNUSED_0 = 5 , PRNG_UNUSED_1 = 6 , PRNG_UNUSED_2 = 7 ,
  PRNG_BASE_NUM = 10 , PRNG_BSDF_U = 0 , PRNG_BSDF_V = 1 , PRNG_LIGHT_U = 2 ,
  PRNG_LIGHT_V = 3 , PRNG_LIGHT_TERMINATE = 4 , PRNG_TERMINATE = 5 , PRNG_PHASE_CHANNEL = 6 ,
  PRNG_SCATTER_DISTANCE = 7 , PRNG_BOUNCE_NUM = 8 , PRNG_BEVEL_U = 6 , PRNG_BEVEL_V = 7
}
 
enum  SamplingPattern { SAMPLING_PATTERN_SOBOL = 0 , SAMPLING_PATTERN_CMJ = 1 , SAMPLING_PATTERN_PMJ = 2 , SAMPLING_NUM_PATTERNS }
 
enum  PathRayFlag {
  PATH_RAY_CAMERA = (1 << 0) , PATH_RAY_REFLECT = (1 << 1) , PATH_RAY_TRANSMIT = (1 << 2) , PATH_RAY_DIFFUSE = (1 << 3) ,
  PATH_RAY_GLOSSY = (1 << 4) , PATH_RAY_SINGULAR = (1 << 5) , PATH_RAY_TRANSPARENT = (1 << 6) , PATH_RAY_SHADOW_OPAQUE_NON_CATCHER = (1 << 7) ,
  PATH_RAY_SHADOW_OPAQUE_CATCHER = (1 << 8) , PATH_RAY_SHADOW_OPAQUE = (PATH_RAY_SHADOW_OPAQUE_NON_CATCHER | PATH_RAY_SHADOW_OPAQUE_CATCHER) , PATH_RAY_SHADOW_TRANSPARENT_NON_CATCHER = (1 << 9) , PATH_RAY_SHADOW_TRANSPARENT_CATCHER = (1 << 10) ,
  PATH_RAY_SHADOW_TRANSPARENT , PATH_RAY_SHADOW_NON_CATCHER , PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE | PATH_RAY_SHADOW_TRANSPARENT) , PATH_RAY_UNUSED = (1 << 11) ,
  PATH_RAY_VOLUME_SCATTER = (1 << 12) , PATH_RAY_NODE_UNALIGNED = (1 << 13) , PATH_RAY_ALL_VISIBILITY = ((1 << 14) - 1) , PATH_RAY_MIS_SKIP = (1 << 14) ,
  PATH_RAY_DIFFUSE_ANCESTOR = (1 << 15) , PATH_RAY_SINGLE_PASS_DONE = (1 << 16) , PATH_RAY_SHADOW_CATCHER = (1 << 17) , PATH_RAY_STORE_SHADOW_INFO = (1 << 18) ,
  PATH_RAY_TRANSPARENT_BACKGROUND = (1 << 19) , PATH_RAY_TERMINATE_IMMEDIATE = (1 << 20) , PATH_RAY_TERMINATE_AFTER_TRANSPARENT = (1 << 21) , PATH_RAY_TERMINATE = (PATH_RAY_TERMINATE_IMMEDIATE | PATH_RAY_TERMINATE_AFTER_TRANSPARENT) ,
  PATH_RAY_EMISSION = (1 << 22)
}
 
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
}
 
enum  PassType {
  PASS_NONE = 0 , PASS_COMBINED = 1 , PASS_DEPTH , PASS_NORMAL ,
  PASS_UV , PASS_OBJECT_ID , PASS_MATERIAL_ID , PASS_MOTION ,
  PASS_MOTION_WEIGHT , PASS_RENDER_TIME , PASS_CRYPTOMATTE , PASS_AOV_COLOR ,
  PASS_AOV_VALUE , PASS_ADAPTIVE_AUX_BUFFER , PASS_SAMPLE_COUNT , PASS_CATEGORY_MAIN_END = 31 ,
  PASS_MIST = 32 , PASS_EMISSION , PASS_BACKGROUND , PASS_AO ,
  PASS_SHADOW , PASS_LIGHT , PASS_DIFFUSE_DIRECT , PASS_DIFFUSE_INDIRECT ,
  PASS_DIFFUSE_COLOR , PASS_GLOSSY_DIRECT , PASS_GLOSSY_INDIRECT , PASS_GLOSSY_COLOR ,
  PASS_TRANSMISSION_DIRECT , PASS_TRANSMISSION_INDIRECT , PASS_TRANSMISSION_COLOR , PASS_VOLUME_DIRECT = 50 ,
  PASS_VOLUME_INDIRECT , PASS_CATEGORY_LIGHT_END = 63 , PASS_BAKE_PRIMITIVE , PASS_BAKE_DIFFERENTIAL ,
  PASS_CATEGORY_BAKE_END = 95
}
 
enum  CryptomatteType {
  CRYPT_NONE = 0 , CRYPT_OBJECT = (1 << 0) , CRYPT_MATERIAL = (1 << 1) , CRYPT_ASSET = (1 << 2) ,
  CRYPT_ACCURATE = (1 << 3)
}
 
enum  DenoisingPassOffsets {
  DENOISING_PASS_NORMAL = 0 , DENOISING_PASS_NORMAL_VAR = 3 , DENOISING_PASS_ALBEDO = 6 , DENOISING_PASS_ALBEDO_VAR = 9 ,
  DENOISING_PASS_DEPTH = 12 , DENOISING_PASS_DEPTH_VAR = 13 , DENOISING_PASS_SHADOW_A = 14 , DENOISING_PASS_SHADOW_B = 17 ,
  DENOISING_PASS_COLOR = 20 , DENOISING_PASS_COLOR_VAR = 23 , DENOISING_PASS_CLEAN = 26 , DENOISING_PASS_PREFILTERED_DEPTH = 0 ,
  DENOISING_PASS_PREFILTERED_NORMAL = 1 , DENOISING_PASS_PREFILTERED_SHADOWING = 4 , DENOISING_PASS_PREFILTERED_ALBEDO = 5 , DENOISING_PASS_PREFILTERED_COLOR = 8 ,
  DENOISING_PASS_PREFILTERED_VARIANCE = 11 , DENOISING_PASS_PREFILTERED_INTENSITY = 14 , DENOISING_PASS_SIZE_BASE = 26 , DENOISING_PASS_SIZE_CLEAN = 3 ,
  DENOISING_PASS_SIZE_PREFILTERED = 15
}
 
enum  eBakePassFilter {
  R_BAKE_PASS_FILTER_NONE = 0 , R_BAKE_PASS_FILTER_AO = (1 << 0) , R_BAKE_PASS_FILTER_EMIT = (1 << 1) , R_BAKE_PASS_FILTER_DIFFUSE = (1 << 2) ,
  R_BAKE_PASS_FILTER_GLOSSY = (1 << 3) , R_BAKE_PASS_FILTER_TRANSM = (1 << 4) , R_BAKE_PASS_FILTER_SUBSURFACE = (1 << 5) , R_BAKE_PASS_FILTER_DIRECT = (1 << 6) ,
  R_BAKE_PASS_FILTER_INDIRECT = (1 << 7) , R_BAKE_PASS_FILTER_COLOR = (1 << 8) , BAKE_FILTER_NONE = 0 , BAKE_FILTER_DIRECT = (1 << 0) ,
  BAKE_FILTER_INDIRECT = (1 << 1) , BAKE_FILTER_COLOR = (1 << 2) , BAKE_FILTER_DIFFUSE = (1 << 3) , BAKE_FILTER_GLOSSY = (1 << 4) ,
  BAKE_FILTER_TRANSMISSION = (1 << 5) , BAKE_FILTER_EMISSION = (1 << 6) , BAKE_FILTER_AO = (1 << 7)
}
 
enum  BakePassFilterCombos {
  BAKE_FILTER_COMBINED , BAKE_FILTER_DIFFUSE_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_DIFFUSE) , BAKE_FILTER_GLOSSY_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_GLOSSY) , BAKE_FILTER_TRANSMISSION_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_TRANSMISSION) ,
  BAKE_FILTER_DIFFUSE_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_DIFFUSE) , BAKE_FILTER_GLOSSY_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_GLOSSY) , BAKE_FILTER_TRANSMISSION_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_TRANSMISSION)
}
 
enum  DenoiseFlag {
  DENOISING_CLEAN_DIFFUSE_DIR = (1 << 0) , DENOISING_CLEAN_DIFFUSE_IND = (1 << 1) , DENOISING_CLEAN_GLOSSY_DIR = (1 << 2) , DENOISING_CLEAN_GLOSSY_IND = (1 << 3) ,
  DENOISING_CLEAN_TRANSMISSION_DIR = (1 << 4) , DENOISING_CLEAN_TRANSMISSION_IND = (1 << 5) , DENOISING_CLEAN_ALL_PASSES = (1 << 6) - 1
}
 
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_ANY , SHADER_MASK
}
 
enum  LightType {
  LIGHT_POINT , LIGHT_DISTANT , LIGHT_BACKGROUND , LIGHT_AREA ,
  LIGHT_SPOT , LIGHT_TRIANGLE
}
 
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_NUM_TYPES
}
 
enum  PrimitiveType {
  PRIMITIVE_NONE = 0 , PRIMITIVE_TRIANGLE = (1 << 0) , PRIMITIVE_MOTION_TRIANGLE = (1 << 1) , PRIMITIVE_CURVE_THICK = (1 << 2) ,
  PRIMITIVE_MOTION_CURVE_THICK = (1 << 3) , PRIMITIVE_CURVE_RIBBON = (1 << 4) , PRIMITIVE_MOTION_CURVE_RIBBON = (1 << 5) , PRIMITIVE_LAMP = (1 << 6) ,
  PRIMITIVE_ALL_TRIANGLE = (PRIMITIVE_TRIANGLE | PRIMITIVE_MOTION_TRIANGLE) , PRIMITIVE_ALL_CURVE , PRIMITIVE_ALL_MOTION , PRIMITIVE_ALL = (PRIMITIVE_ALL_TRIANGLE | PRIMITIVE_ALL_CURVE) ,
  PRIMITIVE_NUM_TOTAL = 6
}
 
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_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_POINTINESS , ATTR_STD_RANDOM_PER_ISLAND , 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_TRANSPARENT = (1 << 9) , SD_BSDF_NEEDS_LCG = (1 << 10) , SD_CLOSURE_FLAGS , SD_USE_MIS = (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_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_APPLIED = (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_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_AUTO = BVH_LAYOUT_EMBREE , BVH_LAYOUT_ALL = BVH_LAYOUT_BVH2 | BVH_LAYOUT_EMBREE | BVH_LAYOUT_OPTIX
}
 
enum  QueueNumber {
  QUEUE_ACTIVE_AND_REGENERATED_RAYS = 0 , QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS , QUEUE_SHADOW_RAY_CAST_AO_RAYS , QUEUE_SHADOW_RAY_CAST_DL_RAYS ,
  QUEUE_SHADER_SORTED_RAYS , QUEUE_LIGHT_INDIRECT_ITER , QUEUE_INACTIVE_RAYS , QUEUE_VOLUME_INDIRECT_ITER ,
  QUEUE_SUBSURFACE_INDIRECT_ITER , NUM_QUEUES
}
 
enum  RayState {
  RAY_INVALID = 0 , RAY_ACTIVE , RAY_INACTIVE , RAY_UPDATE_BUFFER ,
  RAY_HAS_ONLY_VOLUME , RAY_HIT_BACKGROUND , RAY_TO_REGENERATE , RAY_REGENERATED ,
  RAY_LIGHT_INDIRECT_NEXT_ITER , RAY_VOLUME_INDIRECT_NEXT_ITER , RAY_SUBSURFACE_INDIRECT_NEXT_ITER , RAY_BRANCHED_LIGHT_INDIRECT = (1 << 4) ,
  RAY_BRANCHED_VOLUME_INDIRECT = (1 << 5) , RAY_BRANCHED_SUBSURFACE_INDIRECT = (1 << 6) , RAY_BRANCHED_INDIRECT , RAY_BRANCHED_INDIRECT_SHARED = (1 << 7)
}
 

Functions

 static_assert_align (KernelCamera, 16)
 
 static_assert_align (KernelFilm, 16)
 
 static_assert_align (KernelBackground, 16)
 
 static_assert_align (KernelIntegrator, 16)
 
 static_assert_align (KernelBVH, 16)
 
 static_assert_align (KernelTables, 16)
 
 static_assert_align (KernelBake, 16)
 
 static_assert_align (KernelData, 16)
 
 static_assert_align (KernelObject, 16)
 
 static_assert_align (KernelLight, 16)
 
 static_assert_align (KernelLightDistribution, 16)
 
 static_assert_align (KernelParticle, 16)
 
 static_assert_align (KernelShader, 16)
 

Variables

 ShaderClosure
 
 ShaderData
 
 ShaderDataTinyStorage
 

Macro Definition Documentation

◆ __AO__

#define __AO__

Definition at line 99 of file kernel_types.h.

◆ __BACKGROUND__

#define __BACKGROUND__

Definition at line 88 of file kernel_types.h.

◆ __BACKGROUND_MIS__

#define __BACKGROUND_MIS__

Definition at line 107 of file kernel_types.h.

◆ __BAKING__

#define __BAKING__

Definition at line 111 of file kernel_types.h.

◆ __BRANCHED_PATH__

#define __BRANCHED_PATH__

Definition at line 118 of file kernel_types.h.

◆ __BVH_LOCAL__

#define __BVH_LOCAL__

Definition at line 191 of file kernel_types.h.

◆ __CAMERA_CLIPPING__

#define __CAMERA_CLIPPING__

Definition at line 92 of file kernel_types.h.

◆ __CAMERA_MOTION__

#define __CAMERA_MOTION__

Definition at line 109 of file kernel_types.h.

◆ __CAUSTICS_TRICKS__

#define __CAUSTICS_TRICKS__

Definition at line 89 of file kernel_types.h.

◆ __CLAMP_SAMPLE__

#define __CLAMP_SAMPLE__

Definition at line 94 of file kernel_types.h.

◆ __CMJ__

#define __CMJ__

Definition at line 116 of file kernel_types.h.

◆ __DENOISING_FEATURES__

#define __DENOISING_FEATURES__

Definition at line 97 of file kernel_types.h.

◆ __DPDU__

#define __DPDU__

Definition at line 87 of file kernel_types.h.

◆ __EMISSION__

#define __EMISSION__

Definition at line 103 of file kernel_types.h.

◆ __HAIR__

#define __HAIR__

Definition at line 101 of file kernel_types.h.

◆ __HOLDOUT__

#define __HOLDOUT__

Definition at line 104 of file kernel_types.h.

◆ __INTERSECTION_REFINE__

#define __INTERSECTION_REFINE__

Definition at line 93 of file kernel_types.h.

◆ __KERNEL_CPU__

#define __KERNEL_CPU__

Definition at line 31 of file kernel_types.h.

◆ __LAMP_MIS__

#define __LAMP_MIS__

Definition at line 108 of file kernel_types.h.

◆ __MULTI_CLOSURE__

#define __MULTI_CLOSURE__

Definition at line 105 of file kernel_types.h.

◆ __OBJECT_MOTION__

#define __OBJECT_MOTION__

Definition at line 110 of file kernel_types.h.

◆ __PASSES__

#define __PASSES__

Definition at line 100 of file kernel_types.h.

◆ __PATCH_EVAL__

#define __PATCH_EVAL__

Definition at line 95 of file kernel_types.h.

◆ __PRINCIPLED__

#define __PRINCIPLED__

Definition at line 112 of file kernel_types.h.

◆ __RAY_DIFFERENTIALS__

#define __RAY_DIFFERENTIALS__

Definition at line 91 of file kernel_types.h.

◆ __SHADER_RAYTRACE__

#define __SHADER_RAYTRACE__

Definition at line 98 of file kernel_types.h.

◆ __SHADOW_RECORD_ALL__

#define __SHADOW_RECORD_ALL__

Definition at line 117 of file kernel_types.h.

◆ __SHADOW_TRICKS__

#define __SHADOW_TRICKS__

Definition at line 96 of file kernel_types.h.

◆ __SOBOL__

#define __SOBOL__

Definition at line 86 of file kernel_types.h.

◆ __SUBSURFACE__

#define __SUBSURFACE__

Definition at line 113 of file kernel_types.h.

◆ __SVM__

#define __SVM__

Definition at line 102 of file kernel_types.h.

◆ __TRANSPARENT_SHADOWS__

#define __TRANSPARENT_SHADOWS__

Definition at line 106 of file kernel_types.h.

◆ __VISIBILITY_FLAG__

#define __VISIBILITY_FLAG__

Definition at line 90 of file kernel_types.h.

◆ __VOLUME__

#define __VOLUME__

Definition at line 114 of file kernel_types.h.

◆ __VOLUME_DECOUPLED__

#define __VOLUME_DECOUPLED__

Definition at line 125 of file kernel_types.h.

◆ __VOLUME_RECORD_ALL__

#define __VOLUME_RECORD_ALL__

Definition at line 126 of file kernel_types.h.

◆ __VOLUME_SCATTER__

#define __VOLUME_SCATTER__

Definition at line 115 of file kernel_types.h.

◆ ADD_RAY_FLAG

#define ADD_RAY_FLAG (   ray_state,
  ray_index,
  flag 
)     (ray_state[ray_index] = (ray_state[ray_index] | flag))

Definition at line 1668 of file kernel_types.h.

◆ AS_SHADER_DATA

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

Definition at line 1024 of file kernel_types.h.

◆ ASSIGN_RAY_STATE

#define ASSIGN_RAY_STATE (   ray_state,
  ray_index,
  state 
)     (ray_state[ray_index] = ((ray_state[ray_index] & RAY_FLAG_MASK) | state))

Definition at line 1664 of file kernel_types.h.

◆ BECKMANN_TABLE_SIZE

#define BECKMANN_TABLE_SIZE   256

Definition at line 56 of file kernel_types.h.

◆ BSSRDF_MAX_BOUNCES

#define BSSRDF_MAX_BOUNCES   256

Definition at line 51 of file kernel_types.h.

◆ BSSRDF_MAX_HITS

#define BSSRDF_MAX_HITS   4

Definition at line 50 of file kernel_types.h.

◆ BSSRDF_MIN_RADIUS

#define BSSRDF_MIN_RADIUS   1e-8f

Definition at line 49 of file kernel_types.h.

◆ ccl_addr_space

#define ccl_addr_space

Definition at line 38 of file kernel_types.h.

◆ FILTER_TABLE_SIZE

#define FILTER_TABLE_SIZE   1024

Definition at line 45 of file kernel_types.h.

◆ ID_NONE

#define ID_NONE   (0.0f)

Definition at line 62 of file kernel_types.h.

◆ IS_FLAG

#define IS_FLAG (   ray_state,
  ray_index,
  flag 
)    (ray_state[ray_index] & flag)

Definition at line 1672 of file kernel_types.h.

◆ IS_STATE

#define IS_STATE (   ray_state,
  ray_index,
  state 
)     ((ray_index) != QUEUE_EMPTY_SLOT && ((ray_state)[(ray_index)] & RAY_STATE_MASK) == (state))

Definition at line 1666 of file kernel_types.h.

◆ LAMP_NONE

#define LAMP_NONE   (~0)

Definition at line 61 of file kernel_types.h.

◆ LOCAL_MAX_HITS

#define LOCAL_MAX_HITS   4

Definition at line 52 of file kernel_types.h.

◆ MAX_CLOSURE

#define MAX_CLOSURE   64

Definition at line 795 of file kernel_types.h.

◆ NUM_PMJ_PATTERNS

#define NUM_PMJ_PATTERNS   48

Definition at line 1700 of file kernel_types.h.

◆ NUM_PMJ_SAMPLES

#define NUM_PMJ_SAMPLES   (64 * 64)

Definition at line 1699 of file kernel_types.h.

◆ OBJECT_MOTION_PASS_SIZE

#define OBJECT_MOTION_PASS_SIZE   2

Definition at line 44 of file kernel_types.h.

◆ OBJECT_NONE

#define OBJECT_NONE   (~0)

Definition at line 59 of file kernel_types.h.

◆ PASS_ANY

#define PASS_ANY   (~0)

Definition at line 398 of file kernel_types.h.

◆ PASS_NAME_JOIN

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

Definition at line 340 of file kernel_types.h.

◆ PASSMASK

#define PASSMASK (   pass)    (1 << ((PASS_NAME_JOIN(PASS, pass)) % 32))

Definition at line 341 of file kernel_types.h.

◆ PASSMASK_COMPONENT

#define PASSMASK_COMPONENT (   comp)
Value:
(PASSMASK(PASS_NAME_JOIN(comp, DIRECT)) | PASSMASK(PASS_NAME_JOIN(comp, INDIRECT)) | \
PASSMASK(PASS_NAME_JOIN(comp, COLOR)))
#define PASS_NAME_JOIN(a, b)
Definition: kernel_types.h:340
#define PASSMASK(pass)
Definition: kernel_types.h:341

Definition at line 343 of file kernel_types.h.

◆ PATCH_MAP_NODE_INDEX_MASK

#define PATCH_MAP_NODE_INDEX_MASK   (~(PATCH_MAP_NODE_IS_SET | PATCH_MAP_NODE_IS_LEAF))

Definition at line 1682 of file kernel_types.h.

◆ PATCH_MAP_NODE_IS_LEAF

#define PATCH_MAP_NODE_IS_LEAF   (1u << 31)

Definition at line 1681 of file kernel_types.h.

◆ PATCH_MAP_NODE_IS_SET

#define PATCH_MAP_NODE_IS_SET   (1 << 30)

Definition at line 1680 of file kernel_types.h.

◆ PATCH_MAX_CONTROL_VERTS

#define PATCH_MAX_CONTROL_VERTS   16

Definition at line 1676 of file kernel_types.h.

◆ PRIM_NONE

#define PRIM_NONE   (~0)

Definition at line 60 of file kernel_types.h.

◆ PRIMITIVE_PACK_SEGMENT

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

Definition at line 710 of file kernel_types.h.

◆ PRIMITIVE_UNPACK_SEGMENT

#define PRIMITIVE_UNPACK_SEGMENT (   type)    (type >> PRIMITIVE_NUM_TOTAL)

Definition at line 711 of file kernel_types.h.

◆ QUEUE_EMPTY_SLOT

#define QUEUE_EMPTY_SLOT   -1

Definition at line 1574 of file kernel_types.h.

◆ RAMP_TABLE_SIZE

#define RAMP_TABLE_SIZE   256

Definition at line 46 of file kernel_types.h.

◆ RAY_FLAG_MASK

#define RAY_FLAG_MASK   0xF0

Definition at line 1629 of file kernel_types.h.

◆ RAY_STATE_MASK

#define RAY_STATE_MASK   0x0F

Definition at line 1628 of file kernel_types.h.

◆ REMOVE_RAY_FLAG

#define REMOVE_RAY_FLAG (   ray_state,
  ray_index,
  flag 
)     (ray_state[ray_index] = (ray_state[ray_index] & (~flag)))

Definition at line 1670 of file kernel_types.h.

◆ SHADER_CLOSURE_BASE

#define SHADER_CLOSURE_BASE
Value:
float3 weight; \
ClosureType type; \
float sample_weight; \
float3 N
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
params N

Definition at line 816 of file kernel_types.h.

◆ SHADER_NONE

#define SHADER_NONE   (~0)

Definition at line 58 of file kernel_types.h.

◆ SHADER_SORT_BLOCK_SIZE

#define SHADER_SORT_BLOCK_SIZE   2048

Definition at line 75 of file kernel_types.h.

◆ SHADER_SORT_LOCAL_SIZE

#define SHADER_SORT_LOCAL_SIZE   1

Definition at line 82 of file kernel_types.h.

◆ SHUTTER_TABLE_SIZE

#define SHUTTER_TABLE_SIZE   256

Definition at line 47 of file kernel_types.h.

◆ VOLUME_BOUNDS_MAX

#define VOLUME_BOUNDS_MAX   1024

Definition at line 54 of file kernel_types.h.

◆ VOLUME_STACK_SIZE

#define VOLUME_STACK_SIZE   32

Definition at line 64 of file kernel_types.h.

◆ WORK_POOL_SIZE

#define WORK_POOL_SIZE   WORK_POOL_SIZE_CPU

Definition at line 72 of file kernel_types.h.

◆ WORK_POOL_SIZE_CPU

#define WORK_POOL_SIZE_CPU   1

Definition at line 68 of file kernel_types.h.

◆ WORK_POOL_SIZE_GPU

#define WORK_POOL_SIZE_GPU   64

Definition at line 67 of file kernel_types.h.

Typedef Documentation

◆ AttributeDescriptor

◆ AttributeElement

◆ AttributeFlag

◆ AttributePrimitive

◆ AttributeStandard

◆ BakePassFilterCombos

◆ BsdfEval

typedef struct BsdfEval BsdfEval

◆ ccl_align

typedef ccl_addr_space struct ccl_align(16) ShaderDataTinyStorage

Definition at line 822 of file kernel_types.h.

◆ ClosureLabel

typedef enum ClosureLabel ClosureLabel

◆ CryptomatteType

◆ CurveShapeType

◆ DenoiseFlag

typedef enum DenoiseFlag DenoiseFlag

◆ DenoisingPassOffsets

◆ differential

typedef struct differential differential

◆ differential3

typedef struct differential3 differential3

◆ eBakePassFilter

◆ Intersection

typedef struct Intersection Intersection

◆ KernelAreaLight

◆ KernelBackground

◆ KernelBake

typedef struct KernelBake KernelBake

◆ KernelBVH

typedef struct KernelBVH KernelBVH

◆ KernelBVHLayout

◆ KernelCamera

typedef struct KernelCamera KernelCamera

◆ KernelData

typedef struct KernelData KernelData

◆ KernelDistantLight

◆ KernelFilm

typedef struct KernelFilm KernelFilm

◆ KernelIntegrator

◆ KernelLight

typedef struct KernelLight KernelLight

◆ KernelLightDistribution

◆ KernelObject

typedef struct KernelObject KernelObject

◆ KernelParticle

◆ KernelShader

typedef struct KernelShader KernelShader

◆ KernelSpotLight

◆ KernelTables

typedef struct KernelTables KernelTables

◆ LightType

typedef enum LightType LightType

◆ LocalIntersection

◆ PassType

typedef enum PassType PassType

◆ PathRadiance

◆ PathRadianceState

◆ PathState

typedef struct PathState PathState

◆ PrimitiveType

◆ Ray

typedef struct Ray Ray

◆ ShaderEvalType

◆ ShaderFlag

typedef enum ShaderFlag ShaderFlag

◆ SubsurfaceIndirectRays

◆ VolumeStack

typedef struct VolumeStack VolumeStack

◆ VolumeState

typedef struct VolumeState VolumeState

◆ WorkTile

typedef struct WorkTile WorkTile

Enumeration Type Documentation

◆ 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 729 of file kernel_types.h.

◆ AttributeFlag

Enumerator
ATTR_FINAL_SIZE 
ATTR_SUBDIVIDED 

Definition at line 776 of file kernel_types.h.

◆ AttributePrimitive

Enumerator
ATTR_PRIM_GEOMETRY 
ATTR_PRIM_SUBD 
ATTR_PRIM_TYPES 

Definition at line 722 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_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_POINTINESS 
ATTR_STD_RANDOM_PER_ISLAND 
ATTR_STD_NUM 
ATTR_STD_NOT_FOUND 

Definition at line 744 of file kernel_types.h.

◆ BakePassFilterCombos

Enumerator
BAKE_FILTER_COMBINED 
BAKE_FILTER_DIFFUSE_DIRECT 
BAKE_FILTER_GLOSSY_DIRECT 
BAKE_FILTER_TRANSMISSION_DIRECT 
BAKE_FILTER_DIFFUSE_INDIRECT 
BAKE_FILTER_GLOSSY_INDIRECT 
BAKE_FILTER_TRANSMISSION_INDIRECT 

Definition at line 446 of file kernel_types.h.

◆ CameraType

enum CameraType
Enumerator
CAMERA_PERSPECTIVE 
CAMERA_ORTHOGRAPHIC 
CAMERA_PANORAMA 

Definition at line 610 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 

Definition at line 326 of file kernel_types.h.

◆ CryptomatteType

Enumerator
CRYPT_NONE 
CRYPT_OBJECT 
CRYPT_MATERIAL 
CRYPT_ASSET 
CRYPT_ACCURATE 

Definition at line 400 of file kernel_types.h.

◆ CurveShapeType

Enumerator
CURVE_RIBBON 
CURVE_THICK 
CURVE_NUM_SHAPE_TYPES 

Definition at line 713 of file kernel_types.h.

◆ DenoiseFlag

Enumerator
DENOISING_CLEAN_DIFFUSE_DIR 
DENOISING_CLEAN_DIFFUSE_IND 
DENOISING_CLEAN_GLOSSY_DIR 
DENOISING_CLEAN_GLOSSY_IND 
DENOISING_CLEAN_TRANSMISSION_DIR 
DENOISING_CLEAN_TRANSMISSION_IND 
DENOISING_CLEAN_ALL_PASSES 

Definition at line 458 of file kernel_types.h.

◆ DenoisingPassOffsets

Enumerator
DENOISING_PASS_NORMAL 
DENOISING_PASS_NORMAL_VAR 
DENOISING_PASS_ALBEDO 
DENOISING_PASS_ALBEDO_VAR 
DENOISING_PASS_DEPTH 
DENOISING_PASS_DEPTH_VAR 
DENOISING_PASS_SHADOW_A 
DENOISING_PASS_SHADOW_B 
DENOISING_PASS_COLOR 
DENOISING_PASS_COLOR_VAR 
DENOISING_PASS_CLEAN 
DENOISING_PASS_PREFILTERED_DEPTH 
DENOISING_PASS_PREFILTERED_NORMAL 
DENOISING_PASS_PREFILTERED_SHADOWING 
DENOISING_PASS_PREFILTERED_ALBEDO 
DENOISING_PASS_PREFILTERED_COLOR 
DENOISING_PASS_PREFILTERED_VARIANCE 
DENOISING_PASS_PREFILTERED_INTENSITY 
DENOISING_PASS_SIZE_BASE 
DENOISING_PASS_SIZE_CLEAN 
DENOISING_PASS_SIZE_PREFILTERED 

Definition at line 408 of file kernel_types.h.

◆ eBakePassFilter

Enumerator
R_BAKE_PASS_FILTER_NONE 
R_BAKE_PASS_FILTER_AO 
R_BAKE_PASS_FILTER_EMIT 
R_BAKE_PASS_FILTER_DIFFUSE 
R_BAKE_PASS_FILTER_GLOSSY 
R_BAKE_PASS_FILTER_TRANSM 
R_BAKE_PASS_FILTER_SUBSURFACE 
R_BAKE_PASS_FILTER_DIRECT 
R_BAKE_PASS_FILTER_INDIRECT 
R_BAKE_PASS_FILTER_COLOR 
BAKE_FILTER_NONE 
BAKE_FILTER_DIRECT 
BAKE_FILTER_INDIRECT 
BAKE_FILTER_COLOR 
BAKE_FILTER_DIFFUSE 
BAKE_FILTER_GLOSSY 
BAKE_FILTER_TRANSMISSION 
BAKE_FILTER_EMISSION 
BAKE_FILTER_AO 

Definition at line 434 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_AUTO 
BVH_LAYOUT_ALL 

Definition at line 1390 of file kernel_types.h.

◆ LightType

enum LightType
Enumerator
LIGHT_POINT 
LIGHT_DISTANT 
LIGHT_BACKGROUND 
LIGHT_AREA 
LIGHT_SPOT 
LIGHT_TRIANGLE 

Definition at line 599 of file kernel_types.h.

◆ PanoramaType

Enumerator
PANORAMA_EQUIRECTANGULAR 
PANORAMA_FISHEYE_EQUIDISTANT 
PANORAMA_FISHEYE_EQUISOLID 
PANORAMA_MIRRORBALL 
PANORAMA_NUM_TYPES 

Definition at line 614 of file kernel_types.h.

◆ PassType

enum PassType
Enumerator
PASS_NONE 
PASS_COMBINED 
PASS_DEPTH 
PASS_NORMAL 
PASS_UV 
PASS_OBJECT_ID 
PASS_MATERIAL_ID 
PASS_MOTION 
PASS_MOTION_WEIGHT 
PASS_RENDER_TIME 
PASS_CRYPTOMATTE 
PASS_AOV_COLOR 
PASS_AOV_VALUE 
PASS_ADAPTIVE_AUX_BUFFER 
PASS_SAMPLE_COUNT 
PASS_CATEGORY_MAIN_END 
PASS_MIST 
PASS_EMISSION 
PASS_BACKGROUND 
PASS_AO 
PASS_SHADOW 
PASS_LIGHT 
PASS_DIFFUSE_DIRECT 
PASS_DIFFUSE_INDIRECT 
PASS_DIFFUSE_COLOR 
PASS_GLOSSY_DIRECT 
PASS_GLOSSY_INDIRECT 
PASS_GLOSSY_COLOR 
PASS_TRANSMISSION_DIRECT 
PASS_TRANSMISSION_INDIRECT 
PASS_TRANSMISSION_COLOR 
PASS_VOLUME_DIRECT 
PASS_VOLUME_INDIRECT 
PASS_CATEGORY_LIGHT_END 
PASS_BAKE_PRIMITIVE 
PASS_BAKE_DIFFERENTIAL 
PASS_CATEGORY_BAKE_END 

Definition at line 347 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_SHADOW_OPAQUE_NON_CATCHER 
PATH_RAY_SHADOW_OPAQUE_CATCHER 
PATH_RAY_SHADOW_OPAQUE 
PATH_RAY_SHADOW_TRANSPARENT_NON_CATCHER 
PATH_RAY_SHADOW_TRANSPARENT_CATCHER 
PATH_RAY_SHADOW_TRANSPARENT 
PATH_RAY_SHADOW_NON_CATCHER 
PATH_RAY_SHADOW 
PATH_RAY_UNUSED 
PATH_RAY_VOLUME_SCATTER 
PATH_RAY_NODE_UNALIGNED 
PATH_RAY_ALL_VISIBILITY 
PATH_RAY_MIS_SKIP 
PATH_RAY_DIFFUSE_ANCESTOR 
PATH_RAY_SINGLE_PASS_DONE 
PATH_RAY_SHADOW_CATCHER 
PATH_RAY_STORE_SHADOW_INFO 
PATH_RAY_TRANSPARENT_BACKGROUND 
PATH_RAY_TERMINATE_IMMEDIATE 
PATH_RAY_TERMINATE_AFTER_TRANSPARENT 
PATH_RAY_TERMINATE 
PATH_RAY_EMISSION 

Definition at line 264 of file kernel_types.h.

◆ PathTraceDimension

Enumerator
PRNG_FILTER_U 
PRNG_FILTER_V 
PRNG_LENS_U 
PRNG_LENS_V 
PRNG_TIME 
PRNG_UNUSED_0 
PRNG_UNUSED_1 
PRNG_UNUSED_2 
PRNG_BASE_NUM 
PRNG_BSDF_U 
PRNG_BSDF_V 
PRNG_LIGHT_U 
PRNG_LIGHT_V 
PRNG_LIGHT_TERMINATE 
PRNG_TERMINATE 
PRNG_PHASE_CHANNEL 
PRNG_SCATTER_DISTANCE 
PRNG_BOUNCE_NUM 
PRNG_BEVEL_U 
PRNG_BEVEL_V 

Definition at line 229 of file kernel_types.h.

◆ PrimitiveType

Enumerator
PRIMITIVE_NONE 
PRIMITIVE_TRIANGLE 
PRIMITIVE_MOTION_TRIANGLE 
PRIMITIVE_CURVE_THICK 
PRIMITIVE_MOTION_CURVE_THICK 
PRIMITIVE_CURVE_RIBBON 
PRIMITIVE_MOTION_CURVE_RIBBON 
PRIMITIVE_LAMP 
PRIMITIVE_ALL_TRIANGLE 
PRIMITIVE_ALL_CURVE 
PRIMITIVE_ALL_MOTION 
PRIMITIVE_ALL 
PRIMITIVE_NUM_TOTAL 

Definition at line 684 of file kernel_types.h.

◆ QueueNumber

Enumerator
QUEUE_ACTIVE_AND_REGENERATED_RAYS 
QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS 
QUEUE_SHADOW_RAY_CAST_AO_RAYS 
QUEUE_SHADOW_RAY_CAST_DL_RAYS 
QUEUE_SHADER_SORTED_RAYS 
QUEUE_LIGHT_INDIRECT_ITER 
QUEUE_INACTIVE_RAYS 
QUEUE_VOLUME_INDIRECT_ITER 
QUEUE_SUBSURFACE_INDIRECT_ITER 
NUM_QUEUES 

Definition at line 1584 of file kernel_types.h.

◆ RayState

enum RayState
Enumerator
RAY_INVALID 
RAY_ACTIVE 
RAY_INACTIVE 
RAY_UPDATE_BUFFER 
RAY_HAS_ONLY_VOLUME 
RAY_HIT_BACKGROUND 
RAY_TO_REGENERATE 
RAY_REGENERATED 
RAY_LIGHT_INDIRECT_NEXT_ITER 
RAY_VOLUME_INDIRECT_NEXT_ITER 
RAY_SUBSURFACE_INDIRECT_NEXT_ITER 
RAY_BRANCHED_LIGHT_INDIRECT 
RAY_BRANCHED_VOLUME_INDIRECT 
RAY_BRANCHED_SUBSURFACE_INDIRECT 
RAY_BRANCHED_INDIRECT 
RAY_BRANCHED_INDIRECT_SHARED 

Definition at line 1630 of file kernel_types.h.

◆ SamplingPattern

Enumerator
SAMPLING_PATTERN_SOBOL 
SAMPLING_PATTERN_CMJ 
SAMPLING_PATTERN_PMJ 
SAMPLING_NUM_PATTERNS 

Definition at line 254 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_TRANSPARENT 
SD_BSDF_NEEDS_LCG 
SD_CLOSURE_FLAGS 
SD_USE_MIS 
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_SHADER_FLAGS 

Definition at line 839 of file kernel_types.h.

◆ ShaderDataObjectFlag

Enumerator
SD_OBJECT_HOLDOUT_MASK 
SD_OBJECT_MOTION 
SD_OBJECT_TRANSFORM_APPLIED 
SD_OBJECT_NEGATIVE_SCALE_APPLIED 
SD_OBJECT_HAS_VOLUME 
SD_OBJECT_INTERSECTS_VOLUME 
SD_OBJECT_HAS_VERTEX_MOTION 
SD_OBJECT_SHADOW_CATCHER 
SD_OBJECT_HAS_VOLUME_ATTRIBUTES 
SD_OBJECT_FLAGS 

Definition at line 902 of file kernel_types.h.

◆ ShaderEvalType

Enumerator
SHADER_EVAL_DISPLACE 
SHADER_EVAL_BACKGROUND 
SHADER_EVAL_BAKE 
SHADER_EVAL_NORMAL 
SHADER_EVAL_UV 
SHADER_EVAL_ROUGHNESS 
SHADER_EVAL_DIFFUSE_COLOR 
SHADER_EVAL_GLOSSY_COLOR 
SHADER_EVAL_TRANSMISSION_COLOR 
SHADER_EVAL_EMISSION 
SHADER_EVAL_AOV_COLOR 
SHADER_EVAL_AOV_VALUE 
SHADER_EVAL_AO 
SHADER_EVAL_COMBINED 
SHADER_EVAL_SHADOW 
SHADER_EVAL_DIFFUSE 
SHADER_EVAL_GLOSSY 
SHADER_EVAL_TRANSMISSION 
SHADER_EVAL_ENVIRONMENT 

Definition at line 196 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_ANY 
SHADER_MASK 

Definition at line 580 of file kernel_types.h.

Function Documentation

◆ static_assert_align() [1/13]

static_assert_align ( KernelBackground  ,
16   
)

◆ static_assert_align() [2/13]

static_assert_align ( KernelBake  ,
16   
)

◆ static_assert_align() [3/13]

static_assert_align ( KernelBVH  ,
16   
)

◆ static_assert_align() [4/13]

static_assert_align ( KernelCamera  ,
16   
)

◆ static_assert_align() [5/13]

static_assert_align ( KernelData  ,
16   
)

◆ static_assert_align() [6/13]

static_assert_align ( KernelFilm  ,
16   
)

◆ static_assert_align() [7/13]

static_assert_align ( KernelIntegrator  ,
16   
)

◆ static_assert_align() [8/13]

static_assert_align ( KernelLight  ,
16   
)

◆ static_assert_align() [9/13]

static_assert_align ( KernelLightDistribution  ,
16   
)

◆ static_assert_align() [10/13]

static_assert_align ( KernelObject  ,
16   
)

◆ static_assert_align() [11/13]

static_assert_align ( KernelParticle  ,
16   
)

◆ static_assert_align() [12/13]

static_assert_align ( KernelShader  ,
16   
)

◆ static_assert_align() [13/13]

static_assert_align ( KernelTables  ,
16   
)

Variable Documentation

◆ ShaderClosure

ShaderClosure

◆ ShaderData

ShaderData

◆ ShaderDataTinyStorage

ShaderDataTinyStorage

Definition at line 1023 of file kernel_types.h.

Referenced by kernel_path_trace().