Fix T48301: Cycles incorrect render with CMJ and viewport samples 0.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 28 Apr 2016 21:46:00 +0000 (23:46 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 28 Apr 2016 21:57:20 +0000 (23:57 +0200)
Max samples 2147483647 was causing integer overflow.

intern/cycles/blender/addon/properties.py
intern/cycles/kernel/kernel_jitter.h

index a5887bb9e2db3f8fe2c36cdf9e11747cf8c6645f..6f8383fc0afe299fd70b81b45b4cccae5be700b2 100644 (file)
@@ -193,57 +193,57 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
         cls.aa_samples = IntProperty(
                 name="AA Samples",
                 description="Number of antialiasing samples to render for each pixel",
-                min=1, max=10000,
+                min=1, max=2097151,
                 default=4,
                 )
         cls.preview_aa_samples = IntProperty(
                 name="AA Samples",
                 description="Number of antialiasing samples to render in the viewport, unlimited if 0",
-                min=0, max=10000,
+                min=0, max=2097151,
                 default=4,
                 )
         cls.diffuse_samples = IntProperty(
                 name="Diffuse Samples",
                 description="Number of diffuse bounce samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
         cls.glossy_samples = IntProperty(
                 name="Glossy Samples",
                 description="Number of glossy bounce samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
         cls.transmission_samples = IntProperty(
                 name="Transmission Samples",
                 description="Number of transmission bounce samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
         cls.ao_samples = IntProperty(
                 name="Ambient Occlusion Samples",
                 description="Number of ambient occlusion samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
         cls.mesh_light_samples = IntProperty(
                 name="Mesh Light Samples",
                 description="Number of mesh emission light samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
 
         cls.subsurface_samples = IntProperty(
                 name="Subsurface Samples",
                 description="Number of subsurface scattering samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
 
         cls.volume_samples = IntProperty(
                 name="Volume Samples",
                 description="Number of volume scattering samples to render for each AA sample",
-                min=1, max=10000,
+                min=1, max=1024,
                 default=1,
                 )
 
index a98881b5af3bc38d8a1896d1026447c721d5ce86..aec7bc33acda2564c622e43aae8d9a82811ba371 100644 (file)
@@ -175,7 +175,7 @@ ccl_device void cmj_sample_2D(int s, int N, int p, float *fx, float *fy)
 #else
        int m = float_to_int(sqrtf(N));
 #endif
-       int n = (N + m - 1)/m;
+       int n = (N - 1)/m + 1;
        float invN = 1.0f/N;
        float invm = 1.0f/m;
        float invn = 1.0f/n;