diff options
author | Thomas Dinges <blender@dingto.org> | 2022-01-20 19:01:14 +0300 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2022-01-20 19:02:20 +0300 |
commit | 19622ffc5b84475a6c3b56ff0595811a503f461c (patch) | |
tree | 232a039c5c8ad422a03695b7ee188d4e8dbcebdf /intern/cycles/kernel | |
parent | f6c8a78ac684242ba067499511a0db2fa64657fe (diff) |
Cleanup: Remove OpenCL workaround in volume_sample_channel().
Diffstat (limited to 'intern/cycles/kernel')
-rw-r--r-- | intern/cycles/kernel/closure/volume.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/intern/cycles/kernel/closure/volume.h b/intern/cycles/kernel/closure/volume.h index 023fb3ac4ea..4a7a63819ab 100644 --- a/intern/cycles/kernel/closure/volume.h +++ b/intern/cycles/kernel/closure/volume.h @@ -199,22 +199,18 @@ ccl_device int volume_sample_channel(float3 albedo, * Tracing". Matt Jen-Yuan Chiang, Peter Kutz, Brent Burley. SIGGRAPH 2016. */ float3 weights = fabs(throughput * albedo); float sum_weights = weights.x + weights.y + weights.z; - float3 weights_pdf; if (sum_weights > 0.0f) { - weights_pdf = weights / sum_weights; + *pdf = weights / sum_weights; } else { - weights_pdf = make_float3(1.0f / 3.0f, 1.0f / 3.0f, 1.0f / 3.0f); + *pdf = make_float3(1.0f / 3.0f, 1.0f / 3.0f, 1.0f / 3.0f); } - *pdf = weights_pdf; - - /* OpenCL does not support -> on float3, so don't use pdf->x. */ - if (rand < weights_pdf.x) { + if (rand < pdf->x) { return 0; } - else if (rand < weights_pdf.x + weights_pdf.y) { + else if (rand < pdf->x + pdf->y) { return 1; } else { |