|
Blender
V2.93
|
Go to the source code of this file.
| ccl_device_forceinline float diffusion_length_dwivedi | ( | float | alpha | ) |
Definition at line 424 of file kernel_subsurface.h.
References alpha, powf, and sqrtf.
Referenced by subsurface_random_walk().
| ccl_device_forceinline float3 direction_from_cosine | ( | float3 | D, |
| float | cos_theta, | ||
| float | randv | ||
| ) |
Definition at line 430 of file kernel_subsurface.h.
References B, cosf, D(), M_2PI_F, make_float3, make_orthonormals(), safe_sqrtf(), sinf, T, float3::x, float3::y, and float3::z.
Referenced by subsurface_random_walk().
| ccl_device_forceinline float eval_phase_dwivedi | ( | float | v, |
| float | phase_log, | ||
| float | cos_theta | ||
| ) |
Definition at line 410 of file kernel_subsurface.h.
References v.
Referenced by subsurface_random_walk().
| ccl_device_forceinline float sample_phase_dwivedi | ( | float | v, |
| float | phase_log, | ||
| float | rand | ||
| ) |
Definition at line 416 of file kernel_subsurface.h.
Referenced by subsurface_random_walk().
| ccl_device void subsurface_color_bump_blur | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state, | ||
| float3 * | eval, | ||
| float3 * | N | ||
| ) |
Definition at line 154 of file kernel_subsurface.h.
References kg, N, NULL, safe_divide_color(), SD_HAS_BSSRDF_BUMP, shader_eval_surface(), state, and subsurface_color_pow().
Referenced by subsurface_scatter_multi_setup().
| ccl_device float3 subsurface_color_pow | ( | float3 | color, |
| float | exponent | ||
| ) |
Definition at line 133 of file kernel_subsurface.h.
References max, powf, sqrtf, float3::x, float3::y, float3::z, and zero_float3().
Referenced by subsurface_color_bump_blur().
| ccl_device_noinline bool subsurface_random_walk | ( | KernelGlobals * | kg, |
| LocalIntersection * | ss_isect, | ||
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state, | ||
| const ShaderClosure * | sc, | ||
| const float | bssrdf_u, | ||
| const float | bssrdf_v, | ||
| bool | all | ||
| ) |
Definition at line 459 of file kernel_subsurface.h.
References all(), alpha, BSSRDF_MAX_BOUNCES, clamp(), cmj_hash(), Ray::D, D(), diffusion_length_dwivedi(), direction_from_cosine(), dot(), eval_phase_dwivedi(), expf, LocalIntersection::hits, isfinite_safe(), kernel_assert, kernel_volume_channel_get(), kernel_volume_sample_channel(), kg, len, logf, max, max3(), min3(), mix, normalize(), NULL, LocalIntersection::num_hits, object_dir_transform(), object_inverse_dir_transform(), one_float3(), Ray::P, path_state_rng_1D(), path_state_rng_2D(), PRNG_BOUNCE_NUM, PRNG_BSDF_U, PRNG_LIGHT_TERMINATE, PRNG_PHASE_CHANNEL, PRNG_SCATTER_DISTANCE, PRNG_TERMINATE, LocalIntersection::ray, ray_offset(), sample_cos_hemisphere(), sample_phase_dwivedi(), state, subsurface_random_walk_coefficients(), subsurface_random_walk_pdf(), subsurface_scatter_walk_eval(), Ray::t, Intersection::t, t, Ray::time, VOLUME_THROUGHPUT_EPSILON, LocalIntersection::weight, float3::x, x, float3::y, and float3::z.
Referenced by subsurface_scatter_multi_intersect().
| ccl_device void subsurface_random_walk_coefficients | ( | const ShaderClosure * | sc, |
| float3 * | sigma_t, | ||
| float3 * | alpha, | ||
| float3 * | weight | ||
| ) |
Definition at line 373 of file kernel_subsurface.h.
References A, alpha, bssrdf(), make_float3, safe_divide_color(), subsurface_random_walk_remap(), float3::x, float3::y, and float3::z.
Referenced by subsurface_random_walk().
| ccl_device_forceinline float3 subsurface_random_walk_pdf | ( | float3 | sigma_t, |
| float | t, | ||
| bool | hit, | ||
| float3 * | transmittance | ||
| ) |
Definition at line 441 of file kernel_subsurface.h.
References T, t, and volume_color_transmittance().
Referenced by subsurface_random_walk().
| ccl_device void subsurface_random_walk_remap | ( | const float | A, |
| const float | d, | ||
| float * | sigma_t, | ||
| float * | alpha | ||
| ) |
Definition at line 361 of file kernel_subsurface.h.
References A, alpha, expf, fmaxf, and sqr().
Referenced by subsurface_random_walk_coefficients().
| ccl_device_inline int subsurface_scatter_disk | ( | KernelGlobals * | kg, |
| LocalIntersection * | ss_isect, | ||
| ShaderData * | sd, | ||
| const ShaderClosure * | sc, | ||
| uint * | lcg_state, | ||
| float | disk_u, | ||
| float | disk_v, | ||
| bool | all | ||
| ) |
Definition at line 185 of file kernel_subsurface.h.
References all(), BSSRDF_MAX_HITS, bssrdf_sample(), cosf, Ray::D, Ray::dD, differential3_zero(), dot(), Ray::dP, fabsf, float(), LocalIntersection::hits, kernel_tex_fetch, kg, len, M_2PI_F, make_orthonormals(), min, motion_triangle_vertices(), LocalIntersection::Ng, LocalIntersection::num_hits, Intersection::object, OBJECT_NONE, object_normal_transform(), Ray::P, Intersection::prim, PRIMITIVE_MOTION_TRIANGLE, PRIMITIVE_TRIANGLE, r, LocalIntersection::ray, sinf, sqr(), subsurface_scatter_eval(), Ray::t, Ray::time, triangle_refine_local(), verts, w(), LocalIntersection::weight, and zero_float3().
Referenced by subsurface_scatter_multi_intersect().
| CCL_NAMESPACE_BEGIN ccl_device_inline float3 subsurface_scatter_eval | ( | ShaderData * | sd, |
| const ShaderClosure * | sc, | ||
| float | disk_r, | ||
| float | r, | ||
| bool | all | ||
| ) |
Definition at line 26 of file kernel_subsurface.h.
References all(), bssrdf_eval(), bssrdf_pdf(), CLOSURE_IS_DISK_BSSRDF, r, and zero_float3().
Referenced by subsurface_scatter_disk().
| ccl_device_inline int subsurface_scatter_multi_intersect | ( | KernelGlobals * | kg, |
| LocalIntersection * | ss_isect, | ||
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state, | ||
| const ShaderClosure * | sc, | ||
| uint * | lcg_state, | ||
| float | bssrdf_u, | ||
| float | bssrdf_v, | ||
| bool | all | ||
| ) |
Definition at line 706 of file kernel_subsurface.h.
References all(), CLOSURE_IS_DISK_BSSRDF, kg, state, subsurface_random_walk(), and subsurface_scatter_disk().
| ccl_device_noinline void subsurface_scatter_multi_setup | ( | KernelGlobals * | kg, |
| LocalIntersection * | ss_isect, | ||
| int | hit, | ||
| ShaderData * | sd, | ||
| ccl_addr_space PathState * | state, | ||
| ClosureType | type, | ||
| float | roughness | ||
| ) |
Definition at line 322 of file kernel_subsurface.h.
References LocalIntersection::hits, kernel_split_params, kg, N, LocalIntersection::ray, usdtokens::roughness(), state, subsurface_color_bump_blur(), subsurface_scatter_setup_diffuse_bsdf(), type, and LocalIntersection::weight.
| ccl_device void subsurface_scatter_setup_diffuse_bsdf | ( | KernelGlobals * | kg, |
| ShaderData * | sd, | ||
| ClosureType | type, | ||
| float | roughness, | ||
| float3 | weight, | ||
| float3 | N | ||
| ) |
Definition at line 94 of file kernel_subsurface.h.
References bsdf_alloc(), bsdf_diffuse_setup(), bsdf_principled_diffuse_setup(), CLOSURE_BSDF_BSSRDF_ID, CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID, CLOSURE_BSSRDF_PRINCIPLED_ID, CLOSURE_BSSRDF_PRINCIPLED_RANDOM_WALK_ID, CLOSURE_IS_BSDF_BSSRDF, CLOSURE_IS_BSSRDF, kernel_data, N, PrincipledDiffuseBsdf::roughness, usdtokens::roughness(), SD_CLOSURE_FLAGS, and type.
Referenced by subsurface_scatter_multi_setup().
| ccl_device_inline float3 subsurface_scatter_walk_eval | ( | ShaderData * | sd, |
| const ShaderClosure * | sc, | ||
| float3 | throughput, | ||
| bool | all | ||
| ) |
Definition at line 69 of file kernel_subsurface.h.
References all(), and CLOSURE_IS_BSSRDF.
Referenced by subsurface_random_walk().