Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/kernel_types.h
| Show First 20 Lines • Show All 153 Lines • ▼ Show 20 Lines | |||||
| #define __VISIBILITY_FLAG__ | #define __VISIBILITY_FLAG__ | ||||
| #define __RAY_DIFFERENTIALS__ | #define __RAY_DIFFERENTIALS__ | ||||
| #define __CAMERA_CLIPPING__ | #define __CAMERA_CLIPPING__ | ||||
| #define __INTERSECTION_REFINE__ | #define __INTERSECTION_REFINE__ | ||||
| #define __CLAMP_SAMPLE__ | #define __CLAMP_SAMPLE__ | ||||
| #define __PATCH_EVAL__ | #define __PATCH_EVAL__ | ||||
| #define __SHADOW_TRICKS__ | #define __SHADOW_TRICKS__ | ||||
| #define __DENOISING_FEATURES__ | |||||
| #ifdef __KERNEL_SHADING__ | #ifdef __KERNEL_SHADING__ | ||||
| # define __SVM__ | # define __SVM__ | ||||
| # define __EMISSION__ | # define __EMISSION__ | ||||
| # define __TEXTURES__ | # define __TEXTURES__ | ||||
| # define __EXTRA_NODES__ | # define __EXTRA_NODES__ | ||||
| # define __HOLDOUT__ | # define __HOLDOUT__ | ||||
| #endif | #endif | ||||
| ▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | enum SamplingPattern { | ||||
| SAMPLING_PATTERN_CMJ = 1, | SAMPLING_PATTERN_CMJ = 1, | ||||
| SAMPLING_NUM_PATTERNS, | SAMPLING_NUM_PATTERNS, | ||||
| }; | }; | ||||
| /* these flags values correspond to raytypes in osl.cpp, so keep them in sync! */ | /* these flags values correspond to raytypes in osl.cpp, so keep them in sync! */ | ||||
| enum PathRayFlag { | enum PathRayFlag { | ||||
| PATH_RAY_CAMERA = 1, | PATH_RAY_CAMERA = (1 << 0), | ||||
| PATH_RAY_REFLECT = 2, | PATH_RAY_REFLECT = (1 << 1), | ||||
| PATH_RAY_TRANSMIT = 4, | PATH_RAY_TRANSMIT = (1 << 2), | ||||
| PATH_RAY_DIFFUSE = 8, | PATH_RAY_DIFFUSE = (1 << 3), | ||||
| PATH_RAY_GLOSSY = 16, | PATH_RAY_GLOSSY = (1 << 4), | ||||
| PATH_RAY_SINGULAR = 32, | PATH_RAY_SINGULAR = (1 << 5), | ||||
| PATH_RAY_TRANSPARENT = 64, | PATH_RAY_TRANSPARENT = (1 << 6), | ||||
| PATH_RAY_SHADOW_OPAQUE = 128, | PATH_RAY_SHADOW_OPAQUE = (1 << 7), | ||||
| PATH_RAY_SHADOW_TRANSPARENT = 256, | PATH_RAY_SHADOW_TRANSPARENT = (1 << 8), | ||||
| PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE|PATH_RAY_SHADOW_TRANSPARENT), | PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE|PATH_RAY_SHADOW_TRANSPARENT), | ||||
| PATH_RAY_CURVE = 512, /* visibility flag to define curve segments */ | PATH_RAY_CURVE = (1 << 9), /* visibility flag to define curve segments */ | ||||
| PATH_RAY_VOLUME_SCATTER = 1024, /* volume scattering */ | PATH_RAY_VOLUME_SCATTER = (1 << 10), /* volume scattering */ | ||||
| /* Special flag to tag unaligned BVH nodes. */ | /* Special flag to tag unaligned BVH nodes. */ | ||||
| PATH_RAY_NODE_UNALIGNED = 2048, | PATH_RAY_NODE_UNALIGNED = (1 << 11), | ||||
| PATH_RAY_ALL_VISIBILITY = (1|2|4|8|16|32|64|128|256|512|1024|2048), | PATH_RAY_ALL_VISIBILITY = ((1 << 12)-1), | ||||
| PATH_RAY_MIS_SKIP = 4096, | PATH_RAY_MIS_SKIP = (1 << 12), | ||||
| PATH_RAY_DIFFUSE_ANCESTOR = 8192, | PATH_RAY_DIFFUSE_ANCESTOR = (1 << 13), | ||||
| PATH_RAY_SINGLE_PASS_DONE = 16384, | PATH_RAY_SINGLE_PASS_DONE = (1 << 14), | ||||
| PATH_RAY_SHADOW_CATCHER = 32768, | PATH_RAY_SHADOW_CATCHER = (1 << 15), | ||||
| PATH_RAY_SHADOW_CATCHER_ONLY = 65536, | PATH_RAY_SHADOW_CATCHER_ONLY = (1 << 16), | ||||
| PATH_RAY_DENOISING_PASS_DONE = (1 << 17), | |||||
brecht: This is unused. | |||||
| PATH_RAY_STORE_SHADOW_INFO = (1 << 18), | |||||
| }; | }; | ||||
| /* Closure Label */ | /* Closure Label */ | ||||
| typedef enum ClosureLabel { | typedef enum ClosureLabel { | ||||
| LABEL_NONE = 0, | LABEL_NONE = 0, | ||||
| LABEL_TRANSMIT = 1, | LABEL_TRANSMIT = 1, | ||||
| LABEL_REFLECT = 2, | LABEL_REFLECT = 2, | ||||
| ▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | typedef enum BakePassFilterCombos { | ||||
| BAKE_FILTER_TRANSMISSION_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_TRANSMISSION), | BAKE_FILTER_TRANSMISSION_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_TRANSMISSION), | ||||
| BAKE_FILTER_SUBSURFACE_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_SUBSURFACE), | BAKE_FILTER_SUBSURFACE_DIRECT = (BAKE_FILTER_DIRECT | BAKE_FILTER_SUBSURFACE), | ||||
| BAKE_FILTER_DIFFUSE_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_DIFFUSE), | BAKE_FILTER_DIFFUSE_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_DIFFUSE), | ||||
| BAKE_FILTER_GLOSSY_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_GLOSSY), | BAKE_FILTER_GLOSSY_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_GLOSSY), | ||||
| BAKE_FILTER_TRANSMISSION_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_TRANSMISSION), | BAKE_FILTER_TRANSMISSION_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_TRANSMISSION), | ||||
| BAKE_FILTER_SUBSURFACE_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_SUBSURFACE), | BAKE_FILTER_SUBSURFACE_INDIRECT = (BAKE_FILTER_INDIRECT | BAKE_FILTER_SUBSURFACE), | ||||
| } BakePassFilterCombos; | } BakePassFilterCombos; | ||||
| typedef 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_SUBSURFACE_DIR = (1 << 6), | |||||
| DENOISING_CLEAN_SUBSURFACE_IND = (1 << 7), | |||||
| DENOISING_CLEAN_ALL_PASSES = (1 << 8)-1, | |||||
| DENOISING_USE_SPLIT_PASSES = (1 << 8), | |||||
| } DenoiseFlag; | |||||
| typedef ccl_addr_space struct PathRadiance { | typedef ccl_addr_space struct PathRadiance { | ||||
| #ifdef __PASSES__ | #ifdef __PASSES__ | ||||
| int use_light_pass; | int use_light_pass; | ||||
| #endif | #endif | ||||
| float3 emission; | float3 emission; | ||||
| #ifdef __PASSES__ | #ifdef __PASSES__ | ||||
| float3 background; | float3 background; | ||||
| Show All 39 Lines | #ifdef __SHADOW_TRICKS__ | ||||
| * | * | ||||
| * Dividing this figure by path_total will give estimate of shadow pass. | * Dividing this figure by path_total will give estimate of shadow pass. | ||||
| */ | */ | ||||
| float3 path_total_shaded; | float3 path_total_shaded; | ||||
| /* Color of the background on which shadow is alpha-overed. */ | /* Color of the background on which shadow is alpha-overed. */ | ||||
| float3 shadow_color; | float3 shadow_color; | ||||
| #endif | #endif | ||||
| #ifdef __DENOISING_FEATURES__ | |||||
| float3 denoising_normal; | |||||
| float3 denoising_albedo; | |||||
| float denoising_depth; | |||||
| #endif /* __DENOISING_FEATURES__ */ | |||||
| } PathRadiance; | } PathRadiance; | ||||
| typedef struct BsdfEval { | typedef struct BsdfEval { | ||||
| #ifdef __PASSES__ | #ifdef __PASSES__ | ||||
| int use_light_pass; | int use_light_pass; | ||||
| #endif | #endif | ||||
| float3 diffuse; | float3 diffuse; | ||||
| ▲ Show 20 Lines • Show All 463 Lines • ▼ Show 20 Lines | typedef struct PathState { | ||||
| /* bounce counting */ | /* bounce counting */ | ||||
| int bounce; | int bounce; | ||||
| int diffuse_bounce; | int diffuse_bounce; | ||||
| int glossy_bounce; | int glossy_bounce; | ||||
| int transmission_bounce; | int transmission_bounce; | ||||
| int transparent_bounce; | int transparent_bounce; | ||||
| #ifdef __DENOISING_FEATURES__ | |||||
| float denoising_feature_weight; | |||||
| #endif /* __DENOISING_FEATURES__ */ | |||||
| /* multiple importance sampling */ | /* multiple importance sampling */ | ||||
| float min_ray_pdf; /* smallest bounce pdf over entire path up to now */ | float min_ray_pdf; /* smallest bounce pdf over entire path up to now */ | ||||
| float ray_pdf; /* last bounce pdf */ | float ray_pdf; /* last bounce pdf */ | ||||
| #ifdef __LAMP_MIS__ | #ifdef __LAMP_MIS__ | ||||
| float ray_t; /* accumulated distance through transparent surfaces */ | float ray_t; /* accumulated distance through transparent surfaces */ | ||||
| #endif | #endif | ||||
| /* volume rendering */ | /* volume rendering */ | ||||
| ▲ Show 20 Lines • Show All 161 Lines • ▼ Show 20 Lines | typedef struct KernelFilm { | ||||
| int filter_table_offset; | int filter_table_offset; | ||||
| int pass_pad2; | int pass_pad2; | ||||
| int pass_mist; | int pass_mist; | ||||
| float mist_start; | float mist_start; | ||||
| float mist_inv_depth; | float mist_inv_depth; | ||||
| float mist_falloff; | float mist_falloff; | ||||
| int pass_denoising_data; | |||||
| int pass_denoising_clean; | |||||
| int denoising_flags; | |||||
| int pad; | |||||
| #ifdef __KERNEL_DEBUG__ | #ifdef __KERNEL_DEBUG__ | ||||
| int pass_bvh_traversed_nodes; | int pass_bvh_traversed_nodes; | ||||
| int pass_bvh_traversed_instances; | int pass_bvh_traversed_instances; | ||||
| int pass_bvh_intersections; | int pass_bvh_intersections; | ||||
| int pass_ray_bounces; | int pass_ray_bounces; | ||||
| #endif | #endif | ||||
| } KernelFilm; | } KernelFilm; | ||||
| static_assert_align(KernelFilm, 16); | static_assert_align(KernelFilm, 16); | ||||
| ▲ Show 20 Lines • Show All 233 Lines • Show Last 20 Lines | |||||
This is unused.