Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/closure/bsdf_hair_principled.h
| Show First 20 Lines • Show All 190 Lines • ▼ Show 20 Lines | ccl_device int bsdf_principled_hair_setup(ccl_private ShaderData *sd, | ||||
| float h = (sd->type & PRIMITIVE_CURVE_RIBBON) ? -sd->v : dot(cross(sd->Ng, X), Z); | float h = (sd->type & PRIMITIVE_CURVE_RIBBON) ? -sd->v : dot(cross(sd->Ng, X), Z); | ||||
| kernel_assert(fabsf(h) < 1.0f + 1e-4f); | kernel_assert(fabsf(h) < 1.0f + 1e-4f); | ||||
| kernel_assert(isfinite_safe(Y)); | kernel_assert(isfinite_safe(Y)); | ||||
| kernel_assert(isfinite_safe(h)); | kernel_assert(isfinite_safe(h)); | ||||
| bsdf->extra->geom = make_float4(Y.x, Y.y, Y.z, h); | bsdf->extra->geom = make_float4(Y.x, Y.y, Y.z, h); | ||||
| return SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_NEEDS_LCG; | return SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_NEEDS_LCG | SD_BSDF_HAS_TRANSMISSION; | ||||
| } | } | ||||
| #endif /* __HAIR__ */ | #endif /* __HAIR__ */ | ||||
| /* Given the Fresnel term and transmittance, generate the attenuation terms for each bounce. */ | /* Given the Fresnel term and transmittance, generate the attenuation terms for each bounce. */ | ||||
| ccl_device_inline void hair_attenuation( | ccl_device_inline void hair_attenuation( | ||||
| KernelGlobals kg, float f, Spectrum T, ccl_private Spectrum *Ap, ccl_private float *Ap_energy) | KernelGlobals kg, float f, Spectrum T, ccl_private Spectrum *Ap, ccl_private float *Ap_energy) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 302 Lines • Show Last 20 Lines | |||||