Commit: d979f39cf1e7bed3e82563908e5248afd544dd89
Author: Thomas Dinges
Date:   Sat Feb 14 20:44:30 2015 +0100
Branches: master
https://developer.blender.org/rBd979f39cf1e7bed3e82563908e5248afd544dd89

Cycles: Small improvement for volume render (decoupled)

Simplify branching here a bit, helps ~3% in volume_light_sampling.blend 
(Branched MIS scene).

===================================================================

M       intern/cycles/kernel/kernel_path.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_path.h 
b/intern/cycles/kernel/kernel_path.h
index a1012cf..151e762 100644
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@ -130,9 +130,6 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG 
*rng, Ray ray,
                                                rphase, rscatter, 
&volume_segment, NULL, true);
                                }
 
-                               if(result != VOLUME_PATH_SCATTERED)
-                                       throughput *= 
volume_segment.accum_transmittance;
-
                                /* free cached steps */
                                kernel_volume_decoupled_free(kg, 
&volume_segment);
 
@@ -142,6 +139,9 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG 
*rng, Ray ray,
                                        else
                                                break;
                                }
+                               else {
+                                       throughput *= 
volume_segment.accum_transmittance;
+                               }
                        }
                        else
 #endif
@@ -575,9 +575,6 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, 
RNG *rng, int sample,
                                                rphase, rscatter, 
&volume_segment, NULL, true);
                                }
 
-                               if(result != VOLUME_PATH_SCATTERED)
-                                       throughput *= 
volume_segment.accum_transmittance;
-
                                /* free cached steps */
                                kernel_volume_decoupled_free(kg, 
&volume_segment);
 
@@ -587,6 +584,9 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, 
RNG *rng, int sample,
                                        else
                                                break;
                                }
+                               else {
+                                       throughput *= 
volume_segment.accum_transmittance;
+                               }
                        }
                        else 
 #endif

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to