Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/kernel_shader.h
| Show First 20 Lines • Show All 566 Lines • ▼ Show 20 Lines | if(kernel_data.integrator.branched) | ||||
| _shader_bsdf_multi_eval_branched(kg, sd, omega_in, eval, light_pdf, use_mis); | _shader_bsdf_multi_eval_branched(kg, sd, omega_in, eval, light_pdf, use_mis); | ||||
| else | else | ||||
| #endif | #endif | ||||
| { | { | ||||
| float pdf; | float pdf; | ||||
| _shader_bsdf_multi_eval(kg, sd, omega_in, &pdf, -1, eval, 0.0f, 0.0f); | _shader_bsdf_multi_eval(kg, sd, omega_in, &pdf, -1, eval, 0.0f, 0.0f); | ||||
| if(use_mis) { | if(use_mis) { | ||||
| float weight = power_heuristic(light_pdf, pdf); | float weight = power_heuristic(light_pdf, pdf); | ||||
| bsdf_eval_mul(eval, make_float3(weight, weight, weight)); | bsdf_eval_mul(eval, weight); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ccl_device_inline int shader_bsdf_sample(KernelGlobals *kg, | ccl_device_inline int shader_bsdf_sample(KernelGlobals *kg, | ||||
| ShaderData *sd, | ShaderData *sd, | ||||
| float randu, float randv, | float randu, float randv, | ||||
| BsdfEval *bsdf_eval, | BsdfEval *bsdf_eval, | ||||
| ▲ Show 20 Lines • Show All 538 Lines • Show Last 20 Lines | |||||