Revision: 59493
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59493
Author:   psy-fi
Date:     2013-08-25 14:15:55 +0000 (Sun, 25 Aug 2013)
Log Message:
-----------
merge with trunk -r59492

Revision Links:
--------------
    
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59492

Modified Paths:
--------------
    branches/soc-2013-paint/intern/CMakeLists.txt
    branches/soc-2013-paint/intern/cycles/app/cycles_xml.cpp
    branches/soc-2013-paint/intern/cycles/blender/addon/properties.py
    branches/soc-2013-paint/intern/cycles/blender/addon/ui.py
    branches/soc-2013-paint/intern/cycles/blender/blender_curves.cpp
    branches/soc-2013-paint/intern/cycles/blender/blender_sync.cpp
    branches/soc-2013-paint/intern/cycles/device/device_cuda.cpp
    branches/soc-2013-paint/intern/cycles/device/device_task.h
    branches/soc-2013-paint/intern/cycles/kernel/CMakeLists.txt
    branches/soc-2013-paint/intern/cycles/kernel/kernel.cpp
    branches/soc-2013-paint/intern/cycles/kernel/kernel.cu
    branches/soc-2013-paint/intern/cycles/kernel/kernel_bvh.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_emission.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_jitter.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_path.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_shader.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_sse2.cpp
    branches/soc-2013-paint/intern/cycles/kernel/kernel_sse3.cpp
    branches/soc-2013-paint/intern/cycles/kernel/kernel_subsurface.h
    branches/soc-2013-paint/intern/cycles/kernel/kernel_types.h
    branches/soc-2013-paint/intern/cycles/render/curves.cpp
    branches/soc-2013-paint/intern/cycles/render/integrator.cpp
    branches/soc-2013-paint/intern/cycles/render/integrator.h
    branches/soc-2013-paint/intern/cycles/render/osl.cpp
    branches/soc-2013-paint/intern/cycles/render/session.cpp
    branches/soc-2013-paint/intern/guardedalloc/CMakeLists.txt
    branches/soc-2013-paint/release/datafiles/prvicons.png
    branches/soc-2013-paint/release/datafiles/prvicons.svg
    branches/soc-2013-paint/release/scripts/modules/bpy_types.py
    
branches/soc-2013-paint/release/scripts/startup/bl_operators/add_mesh_torus.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_constraint.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_data_armature.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_data_bone.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_data_camera.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_data_mesh.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_data_modifier.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_freestyle.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_mask_common.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_material.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_object.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_particle.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_physics_common.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_physics_fluid.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_physics_smoke.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_render.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/properties_texture.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_image.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_outliner.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_sequencer.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_text.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_time.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_userpref.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d.py
    
branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d_toolbar.py
    branches/soc-2013-paint/source/blender/blenkernel/BKE_cloth.h
    branches/soc-2013-paint/source/blender/blenkernel/CMakeLists.txt
    branches/soc-2013-paint/source/blender/blenkernel/intern/camera.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/cdderivedmesh.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/cloth.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/collision.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/mesh.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/mesh_validate.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/object_deform.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/particle_system.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/pbvh.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/pbvh_bmesh.c
    branches/soc-2013-paint/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/soc-2013-paint/source/blender/blenlib/BLI_callbacks.h
    branches/soc-2013-paint/source/blender/blenlib/BLI_edgehash.h
    branches/soc-2013-paint/source/blender/blenlib/BLI_ghash.h
    branches/soc-2013-paint/source/blender/blenlib/BLI_math_geom.h
    branches/soc-2013-paint/source/blender/blenlib/intern/BLI_ghash.c
    branches/soc-2013-paint/source/blender/blenlib/intern/BLI_mempool.c
    branches/soc-2013-paint/source/blender/blenlib/intern/edgehash.c
    branches/soc-2013-paint/source/blender/blenlib/intern/math_geom.c
    branches/soc-2013-paint/source/blender/blenloader/intern/readfile.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_construct.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_log.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_mesh.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_mods.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_opdefines.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_operators.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_walkers.c
    branches/soc-2013-paint/source/blender/bmesh/intern/bmesh_walkers_impl.c
    branches/soc-2013-paint/source/blender/bmesh/operators/bmo_bisect_plane.c
    branches/soc-2013-paint/source/blender/bmesh/operators/bmo_triangulate.c
    branches/soc-2013-paint/source/blender/bmesh/tools/bmesh_bisect_plane.c
    branches/soc-2013-paint/source/blender/bmesh/tools/bmesh_bisect_plane.h
    branches/soc-2013-paint/source/blender/collada/collada.cpp
    branches/soc-2013-paint/source/blender/collada/collada_utils.cpp
    branches/soc-2013-paint/source/blender/editors/armature/meshlaplacian.c
    branches/soc-2013-paint/source/blender/editors/armature/reeb.c
    branches/soc-2013-paint/source/blender/editors/curve/editcurve.c
    branches/soc-2013-paint/source/blender/editors/gpencil/gpencil_edit.c
    branches/soc-2013-paint/source/blender/editors/gpencil/gpencil_paint.c
    branches/soc-2013-paint/source/blender/editors/interface/interface_layout.c
    branches/soc-2013-paint/source/blender/editors/interface/view2d_ops.c
    branches/soc-2013-paint/source/blender/editors/io/io_collada.c
    branches/soc-2013-paint/source/blender/editors/mesh/editmesh_rip.c
    branches/soc-2013-paint/source/blender/editors/mesh/editmesh_tools.c
    branches/soc-2013-paint/source/blender/editors/mesh/mesh_intern.h
    branches/soc-2013-paint/source/blender/editors/mesh/mesh_ops.c
    branches/soc-2013-paint/source/blender/editors/mesh/meshtools.c
    branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/soc-2013-paint/source/blender/editors/sculpt_paint/sculpt.c
    branches/soc-2013-paint/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2013-paint/source/blender/editors/space_file/space_file.c
    branches/soc-2013-paint/source/blender/editors/space_graph/graph_edit.c
    branches/soc-2013-paint/source/blender/editors/space_node/node_add.c
    
branches/soc-2013-paint/source/blender/editors/space_node/node_relationships.c
    
branches/soc-2013-paint/source/blender/editors/space_outliner/outliner_tools.c
    
branches/soc-2013-paint/source/blender/editors/space_outliner/outliner_tree.c
    
branches/soc-2013-paint/source/blender/editors/space_outliner/space_outliner.c
    branches/soc-2013-paint/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2013-paint/source/blender/editors/space_view3d/view3d_view.c
    
branches/soc-2013-paint/source/blender/freestyle/intern/application/Controller.cpp
    
branches/soc-2013-paint/source/blender/freestyle/intern/application/Controller.h
    branches/soc-2013-paint/source/blender/freestyle/intern/geometry/BBox.h
    
branches/soc-2013-paint/source/blender/freestyle/intern/view_map/ViewMapAdvancedIterators.h
    branches/soc-2013-paint/source/blender/gpu/intern/gpu_buffers.c
    branches/soc-2013-paint/source/blender/makesdna/DNA_space_types.h
    branches/soc-2013-paint/source/blender/makesdna/intern/dna_genfile.c
    branches/soc-2013-paint/source/blender/makesrna/intern/rna_access.c
    branches/soc-2013-paint/source/blender/makesrna/intern/rna_ui_api.c
    branches/soc-2013-paint/source/blender/modifiers/intern/MOD_explode.c
    branches/soc-2013-paint/source/blender/python/intern/bpy_app_handlers.c
    branches/soc-2013-paint/source/blender/python/mathutils/mathutils_geometry.c
    branches/soc-2013-paint/source/blender/render/intern/source/convertblender.c
    branches/soc-2013-paint/source/blender/render/intern/source/rayshade.c
    branches/soc-2013-paint/source/blender/windowmanager/intern/wm.c
    branches/soc-2013-paint/source/blender/windowmanager/intern/wm_operators.c

Added Paths:
-----------
    branches/soc-2013-paint/source/blender/blenkernel/BKE_treehash.h
    branches/soc-2013-paint/source/blender/blenkernel/intern/treehash.c

Modified: branches/soc-2013-paint/intern/CMakeLists.txt
===================================================================
--- branches/soc-2013-paint/intern/CMakeLists.txt       2013-08-25 13:15:22 UTC 
(rev 59492)
+++ branches/soc-2013-paint/intern/CMakeLists.txt       2013-08-25 14:15:55 UTC 
(rev 59493)
@@ -23,10 +23,10 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
+# add_subdirectory(atomic)  # header only
 add_subdirectory(string)
 add_subdirectory(ghost)
 add_subdirectory(guardedalloc)
-add_subdirectory(moto)
 add_subdirectory(memutil)
 add_subdirectory(opencolorio)
 add_subdirectory(opennl)
@@ -61,6 +61,10 @@
        add_subdirectory(itasc)
 endif()
 
+if(WITH_IK_SOLVER OR WITH_GAMEENGINE)
+       add_subdirectory(moto)
+endif()
+
 if(WITH_CYCLES)
        add_subdirectory(cycles)
 endif()

Modified: branches/soc-2013-paint/intern/cycles/app/cycles_xml.cpp
===================================================================
--- branches/soc-2013-paint/intern/cycles/app/cycles_xml.cpp    2013-08-25 
13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/app/cycles_xml.cpp    2013-08-25 
14:15:55 UTC (rev 59493)
@@ -252,10 +252,14 @@
 static void xml_read_integrator(const XMLReadState& state, pugi::xml_node node)
 {
        Integrator *integrator = state.scene->integrator;
+       bool branched = false;
        
-       xml_read_bool(&integrator->progressive, node, "progressive");
+       xml_read_bool(&branched, node, "branched");
+
+       if(branched)
+               integrator->method == Integrator::BRANCHED_PATH;
        
-       if(!integrator->progressive) {
+       if(integrator->method == Integrator::BRANCHED_PATH) {
                xml_read_int(&integrator->diffuse_samples, node, 
"diffuse_samples");
                xml_read_int(&integrator->glossy_samples, node, 
"glossy_samples");
                xml_read_int(&integrator->transmission_samples, node, 
"transmission_samples");

Modified: branches/soc-2013-paint/intern/cycles/blender/addon/properties.py
===================================================================
--- branches/soc-2013-paint/intern/cycles/blender/addon/properties.py   
2013-08-25 13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/blender/addon/properties.py   
2013-08-25 14:15:55 UTC (rev 59493)
@@ -97,7 +97,12 @@
     ('CORRELATED_MUTI_JITTER', "Correlated Multi-Jitter", "Use Correlated 
Multi-Jitter random sampling pattern"),
     )
 
+enum_integrator = (
+    ('BRANCHED_PATH', "Branched Path Tracing", "Path tracing integrator that 
branches on the first bounce, giving more control over the number of light and 
material samples"),
+    ('PATH', "Path Tracing", "Pure path tracing integrator"),
+    )
 
+
 class CyclesRenderSettings(bpy.types.PropertyGroup):
     @classmethod
     def register(cls):
@@ -123,11 +128,13 @@
                 description="Use Open Shading Language (CPU rendering only)",
                 )
 
-        cls.progressive = BoolProperty(
-                name="Progressive",
-                description="Use progressive sampling of lighting",
-                default=True,
+        cls.progressive = EnumProperty(
+                name="Integrator",
+                description="Method to sample lights and materials",
+                items=enum_integrator,
+                default='PATH',
                 )
+
         cls.use_square_samples = BoolProperty(
                 name="Square Samples",
                 description="Square sampling values for easier artist control",

Modified: branches/soc-2013-paint/intern/cycles/blender/addon/ui.py
===================================================================
--- branches/soc-2013-paint/intern/cycles/blender/addon/ui.py   2013-08-25 
13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/blender/addon/ui.py   2013-08-25 
14:15:55 UTC (rev 59493)
@@ -49,8 +49,10 @@
 
 
 def draw_samples_info(layout, cscene):
+    integrator = cscene.progressive
+
     # Calculate sample values
-    if cscene.progressive:
+    if integrator == 'PATH':
         aa = cscene.samples
         if cscene.use_square_samples:
             aa = aa * aa
@@ -73,18 +75,20 @@
             sss = sss * sss
 
     # Draw interface
-    col = layout.column(align=True)
-    col.scale_y = 0.6
-    col.label("Total Samples:")
-    col.separator()
-    if cscene.progressive:
-        col.label("%s AA" % aa)
-    else:
-        col.label("%s AA, %s Diffuse, %s Glossy, %s Transmission" %
-                  (aa, d * aa, g * aa, t * aa))
+    # Do not draw for progressive, when Square Samples are disabled
+    if (integrator == 'BRANCHED_PATH') or (cscene.use_square_samples and 
integrator == 'PATH'):
+        col = layout.column(align=True)
+        col.scale_y = 0.6
+        col.label("Total Samples:")
         col.separator()
-        col.label("%s AO, %s Mesh Light, %s Subsurface" %
-                  (ao * aa, ml * aa, sss * aa))
+        if integrator == 'PATH':
+            col.label("%s AA" % aa)
+        else:
+            col.label("%s AA, %s Diffuse, %s Glossy, %s Transmission" %
+                      (aa, d * aa, g * aa, t * aa))
+            col.separator()
+            col.label("%s AO, %s Mesh Light, %s Subsurface" %
+                      (ao * aa, ml * aa, sss * aa))
 
 
 class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
@@ -104,7 +108,7 @@
         row.operator("render.cycles_sampling_preset_add", text="", 
icon="ZOOMOUT").remove_active = True
 
         row = layout.row()
-        row.prop(cscene, "progressive")
+        row.prop(cscene, "progressive", text="")
         row.prop(cscene, "use_square_samples")
 
         split = layout.split()
@@ -115,7 +119,7 @@
         sub.prop(cscene, "seed")
         sub.prop(cscene, "sample_clamp")
 
-        if cscene.progressive:
+        if cscene.progressive == 'PATH':
             col = split.column()
             sub = col.column(align=True)
             sub.label(text="Samples:")
@@ -248,8 +252,8 @@
         col = split.column(align=True)
 
         col.label(text="Threads:")
-        col.row().prop(rd, "threads_mode", expand=True)
-        sub = col.column()
+        col.row(align=True).prop(rd, "threads_mode", expand=True)
+        sub = col.column(align=True)
         sub.enabled = rd.threads_mode == 'FIXED'
         sub.prop(rd, "threads")
 
@@ -262,7 +266,7 @@
 
         sub.prop(cscene, "use_progressive_refine")
 
-        subsub = sub.column()
+        subsub = sub.column(align=True)
         subsub.enabled = not rd.use_border
         subsub.prop(rd, "use_save_buffers")
 
@@ -711,7 +715,7 @@
                 sub.prop(lamp, "size", text="Size X")
                 sub.prop(lamp, "size_y", text="Size Y")
 
-        if not cscene.progressive:
+        if cscene.progressive == 'BRANCHED_PATH':
             col.prop(clamp, "samples")
 
         col = split.column()

Modified: branches/soc-2013-paint/intern/cycles/blender/blender_curves.cpp
===================================================================
--- branches/soc-2013-paint/intern/cycles/blender/blender_curves.cpp    
2013-08-25 13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/blender/blender_curves.cpp    
2013-08-25 14:15:55 UTC (rev 59493)
@@ -425,7 +425,7 @@
                                time = 
CData->curvekey_time[curvekey]/CData->curve_length[curve];
                                radius = shaperadius(CData->psys_shape[sys], 
CData->psys_rootradius[sys], CData->psys_tipradius[sys], time);
 
-                               if((curvekey == CData->curve_firstkey[curve] + 
CData->curve_keynum[curve] - 1))
+                               if(curvekey == CData->curve_firstkey[curve] + 
CData->curve_keynum[curve] - 1)
                                        radius = 
shaperadius(CData->psys_shape[sys], CData->psys_rootradius[sys], 
CData->psys_tipradius[sys], 0.95f);
 
                                if(CData->psys_closetip[sys] && (curvekey == 
CData->curve_firstkey[curve] + CData->curve_keynum[curve] - 1))

Modified: branches/soc-2013-paint/intern/cycles/blender/blender_sync.cpp
===================================================================
--- branches/soc-2013-paint/intern/cycles/blender/blender_sync.cpp      
2013-08-25 13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/blender/blender_sync.cpp      
2013-08-25 14:15:55 UTC (rev 59493)
@@ -189,7 +189,7 @@
        }
 #endif
 
-       integrator->progressive = get_boolean(cscene, "progressive");
+       integrator->method = (Integrator::Method)get_enum(cscene, 
"progressive");
 
        int diffuse_samples = get_int(cscene, "diffuse_samples");
        int glossy_samples = get_int(cscene, "glossy_samples");
@@ -420,7 +420,7 @@
                preview_samples = preview_samples * preview_samples;
        }
 
-       if(get_boolean(cscene, "progressive") == 0) {
+       if(get_enum(cscene, "progressive") == 0) {
                if(background) {
                        params.samples = aa_samples;
                }

Modified: branches/soc-2013-paint/intern/cycles/device/device_cuda.cpp
===================================================================
--- branches/soc-2013-paint/intern/cycles/device/device_cuda.cpp        
2013-08-25 13:15:22 UTC (rev 59492)
+++ branches/soc-2013-paint/intern/cycles/device/device_cuda.cpp        
2013-08-25 14:15:55 UTC (rev 59493)
@@ -556,7 +556,7 @@
                }
        }
 
-       void path_trace(RenderTile& rtile, int sample, bool progressive)
+       void path_trace(RenderTile& rtile, int sample, bool branched)
        {
                if(have_error())
                        return;
@@ -568,14 +568,14 @@
                CUdeviceptr d_rng_state = cuda_device_ptr(rtile.rng_state);
 
                /* get kernel function */
-               if(progressive)
-                       cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, 
"kernel_cuda_path_trace_progressive"))
-               else {
-                       cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, 
"kernel_cuda_path_trace_non_progressive"))
-                       if(have_error())
-                               return;
-               }
-               
+               if(branched)
+                       cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, 
"kernel_cuda_branched_path_trace"))
+               else
+                       cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, 
"kernel_cuda_path_trace"))
+
+               if(have_error())
+                       return;
+       
                /* pass in parameters */
                int offset = 0;
                
@@ -918,7 +918,7 @@
                if(task->type == DeviceTask::PATH_TRACE) {
                        RenderTile tile;
                        
-                       bool progressive = task->integrator_progressive;
+                       bool branched = task->integrator_branched;
                        
                        /* keep rendering tiles until done */
                        while(task->acquire_tile(this, tile)) {
@@ -931,7 +931,7 @@
                                                        break;
                                        }
 
-                                       path_trace(tile, sample, progressive);
+                                       path_trace(tile, sample, branched);
 
                                        tile.sample = sample + 1;
 

Modified: branches/soc-2013-paint/intern/cycles/device/device_task.h
===================================================================
--- branches/soc-2013-paint/intern/cycles/device/device_task.h  2013-08-25 
13:15:22 UTC (rev 59492)

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to