Revision: 56847
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56847
Author:   campbellbarton
Date:     2013-05-16 10:43:18 +0000 (Thu, 16 May 2013)
Log Message:
-----------
svn merge ^/trunk/blender -c56620 -c56639 -c56643 -c56647 -c56648 -c56650 
-c56651 -c56653 -c56654 -c56661 -c56662 -c56663 -c56668 -c56670 -c56671 -c56672 
-c56673 -c56674 -c56676 -c56678 -c56679 -c56680 -c56682 -c56688 -c56689 -c56698 
-c56700 -c56707 -c56711 -c56735 -c56745 -c56747 -c56748 -c56749 -c56755 -c56756 
-c56759 -c56760 -c56763 -c56766 -c56767 -c56773 -c56778 -c56783 -c56784 -c56785 
-c56790 -c56791 -c56793 -c56800 -c56806 -c56807 -c56809 -c56815 -c56816 -c56820

Modified Paths:
--------------
    tags/blender-2.67a-release/blender/intern/cycles/blender/blender_mesh.cpp
    tags/blender-2.67a-release/blender/intern/cycles/blender/blender_shader.cpp
    tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.cpp
    tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.h
    
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_normal_map.osl
    
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_rgb_ramp.osl
    tags/blender-2.67a-release/blender/intern/cycles/kernel/svm/svm_ramp.h
    tags/blender-2.67a-release/blender/intern/cycles/kernel/svm/svm_tex_coord.h
    tags/blender-2.67a-release/blender/intern/cycles/render/graph.cpp
    tags/blender-2.67a-release/blender/intern/cycles/render/graph.h
    tags/blender-2.67a-release/blender/intern/cycles/render/nodes.cpp
    tags/blender-2.67a-release/blender/intern/cycles/render/nodes.h
    tags/blender-2.67a-release/blender/intern/cycles/render/shader.cpp
    
tags/blender-2.67a-release/blender/release/scripts/startup/bl_operators/node.py
    
tags/blender-2.67a-release/blender/release/scripts/startup/bl_operators/view3d.py
    tags/blender-2.67a-release/blender/source/blender/blenkernel/BKE_curve.h
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/constraint.c
    tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/curve.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/customdata.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/depsgraph.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/displist.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/freestyle.c
    tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/lamp.c
    
tags/blender-2.67a-release/blender/source/blender/blenkernel/intern/material.c
    
tags/blender-2.67a-release/blender/source/blender/blenlib/intern/math_matrix.c
    tags/blender-2.67a-release/blender/source/blender/blenlib/intern/string.c
    
tags/blender-2.67a-release/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
    
tags/blender-2.67a-release/blender/source/blender/bmesh/operators/bmo_edgesplit.c
    
tags/blender-2.67a-release/blender/source/blender/compositor/nodes/COM_GroupNode.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/nodes/COM_GroupNode.h
    
tags/blender-2.67a-release/blender/source/blender/compositor/nodes/COM_ViewerNode.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/nodes/COM_ZCombineNode.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_BlurBaseOperation.h
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
    
tags/blender-2.67a-release/blender/source/blender/compositor/operations/COM_ZCombineOperation.cpp
    
tags/blender-2.67a-release/blender/source/blender/editors/armature/armature_ops.c
    tags/blender-2.67a-release/blender/source/blender/editors/curve/curve_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/include/UI_interface.h
    
tags/blender-2.67a-release/blender/source/blender/editors/include/UI_view2d.h
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface_handlers.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface_layout.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface_regions.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface_templates.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface_widgets.c
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/resources.c
    tags/blender-2.67a-release/blender/source/blender/editors/interface/view2d.c
    tags/blender-2.67a-release/blender/source/blender/editors/screen/area.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_image.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_image_2d.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_image_proj.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_intern.h
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/paint_stroke.c
    
tags/blender-2.67a-release/blender/source/blender/editors/sculpt_paint/sculpt.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_action/action_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_file/file_draw.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_graph/graph_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_logic/logic_window.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_node/node_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_outliner/outliner_draw.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_sequencer/sequencer_ops.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_text/space_text.c
    
tags/blender-2.67a-release/blender/source/blender/editors/space_view3d/drawmesh.c
    
tags/blender-2.67a-release/blender/source/blender/editors/transform/transform.c
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/application/Controller.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/geometry/Bezier.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/geometry/FitCurve.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/python/BPy_Convert.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/python/BPy_StrokeAttribute.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/system/PseudoNoise.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/system/PseudoNoise.h
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/system/TimeStamp.cpp
    
tags/blender-2.67a-release/blender/source/blender/freestyle/intern/system/TimeStamp.h
    tags/blender-2.67a-release/blender/source/blender/makesrna/RNA_access.h
    
tags/blender-2.67a-release/blender/source/blender/makesrna/intern/rna_access.c
    
tags/blender-2.67a-release/blender/source/blender/makesrna/intern/rna_nodetree.c
    
tags/blender-2.67a-release/blender/source/blender/makesrna/intern/rna_particle.c
    
tags/blender-2.67a-release/blender/source/blender/makesrna/intern/rna_scene.c
    
tags/blender-2.67a-release/blender/source/blender/makesrna/intern/rna_ui_api.c
    
tags/blender-2.67a-release/blender/source/blender/modifiers/intern/MOD_array.c
    
tags/blender-2.67a-release/blender/source/blender/modifiers/intern/MOD_boolean.c
    tags/blender-2.67a-release/blender/source/blender/python/intern/bpy_rna.c
    
tags/blender-2.67a-release/blender/source/blender/render/intern/source/convertblender.c
    
tags/blender-2.67a-release/blender/source/blender/render/intern/source/imagetexture.c
    tags/blender-2.67a-release/blender/source/blender/windowmanager/WM_api.h
    tags/blender-2.67a-release/blender/source/blender/windowmanager/WM_keymap.h
    
tags/blender-2.67a-release/blender/source/blender/windowmanager/intern/wm_draw.c
    
tags/blender-2.67a-release/blender/source/blender/windowmanager/intern/wm_event_system.c
    
tags/blender-2.67a-release/blender/source/blender/windowmanager/intern/wm_keymap.c
    
tags/blender-2.67a-release/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    
tags/blender-2.67a-release/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    tags/blender-2.67a-release/blender/source/gameengine/Ketsji/BL_Action.cpp
    tags/blender-2.67a-release/blender/source/gameengine/Ketsji/BL_Action.h
    
tags/blender-2.67a-release/blender/source/gameengine/Ketsji/BL_BlenderShader.cpp
    
tags/blender-2.67a-release/blender/source/gameengine/Rasterizer/RAS_BucketManager.cpp

Property Changed:
----------------
    tags/blender-2.67a-release/blender/
    
tags/blender-2.67a-release/blender/source/blender/editors/interface/interface.c
    tags/blender-2.67a-release/blender/source/blender/editors/space_outliner/


Property changes on: tags/blender-2.67a-release/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/trunk/blender:56529-56532,56534,56537-56539,56572,56577,56581,56601,56605-56606
   + 
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/trunk/blender:56529-56532,56534,56537-56539,56572,56577,56581,56601,56605-56606,56620,56639,56643,56647-56648,56650-56651,56653-56654,56661-56663,56668,56670-56674,56676,56678-56680,56682,56688-56689,56698,56700,56707,56711,56735,56745,56747-56749,56755-56756,56759-56760,56763,56766-56767,56773,56778,56783-56785,56790-56791,56793,56800,56806-56807,56809,56815-56816,56820

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- tags/blender-2.67a-release/blender/intern/cycles/blender/blender_mesh.cpp   
2013-05-16 10:01:37 UTC (rev 56846)
+++ tags/blender-2.67a-release/blender/intern/cycles/blender/blender_mesh.cpp   
2013-05-16 10:43:18 UTC (rev 56847)
@@ -100,10 +100,17 @@
 {
        MikkUserData *userdata = (MikkUserData*)context->m_pUserData;
        BL::MeshTessFace f = userdata->mesh.tessfaces[face_num];
-       int4 vi = get_int4(f.vertices_raw());
-       BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
-       float3 vN = get_float3(v.normal());
+       float3 vN;
 
+       if(f.use_smooth()) {
+               int4 vi = get_int4(f.vertices_raw());
+               BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
+               vN = get_float3(v.normal());
+       }
+       else {
+               vN = get_float3(f.normal());
+       }
+
        N[0] = vN.x;
        N[1] = vN.y;
        N[2] = vN.z;

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/blender/blender_shader.cpp
===================================================================
--- tags/blender-2.67a-release/blender/intern/cycles/blender/blender_shader.cpp 
2013-05-16 10:01:37 UTC (rev 56846)
+++ tags/blender-2.67a-release/blender/intern/cycles/blender/blender_shader.cpp 
2013-05-16 10:43:18 UTC (rev 56847)
@@ -193,6 +193,7 @@
                RGBRampNode *ramp = new RGBRampNode();
                BL::ShaderNodeValToRGB b_ramp_node(b_node);
                colorramp_to_array(b_ramp_node.color_ramp(), ramp->ramp, 
RAMP_TABLE_SIZE);
+               ramp->interpolate = b_ramp_node.color_ramp().interpolation() != 
BL::ColorRamp::interpolation_CONSTANT;
                node = ramp;
        }
        else if (b_node.is_a(&RNA_ShaderNodeRGB)) {

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.cpp
===================================================================
--- 
tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.cpp    
    2013-05-16 10:01:37 UTC (rev 56846)
+++ 
tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.cpp    
    2013-05-16 10:43:18 UTC (rev 56847)
@@ -76,6 +76,7 @@
 ustring OSLRenderServices::u_geom_trianglevertices("geom:trianglevertices");
 ustring OSLRenderServices::u_geom_polyvertices("geom:polyvertices");
 ustring OSLRenderServices::u_geom_name("geom:name");
+ustring OSLRenderServices::u_is_smooth("geom:is_smooth");
 #ifdef __HAIR__
 ustring OSLRenderServices::u_is_curve("geom:is_curve");
 ustring OSLRenderServices::u_curve_thickness("geom:curve_thickness");
@@ -626,7 +627,10 @@
                ustring object_name = kg->osl->object_names[sd->object];
                return set_attribute_string(object_name, type, derivatives, 
val);
        }
-       
+       else if (name == u_is_smooth) {
+               float f = ((sd->shader & SHADER_SMOOTH_NORMAL) != 0);
+               return set_attribute_float(f, type, derivatives, val);
+       }
 #ifdef __HAIR__
        /* Hair Attributes */
        else if (name == u_is_curve) {

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.h
===================================================================
--- tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.h  
2013-05-16 10:01:37 UTC (rev 56846)
+++ tags/blender-2.67a-release/blender/intern/cycles/kernel/osl/osl_services.h  
2013-05-16 10:43:18 UTC (rev 56847)
@@ -130,6 +130,7 @@
        static ustring u_geom_trianglevertices;
        static ustring u_geom_polyvertices;
        static ustring u_geom_name;
+       static ustring u_is_smooth;
        static ustring u_is_curve;
        static ustring u_curve_thickness;
        static ustring u_curve_tangent_normal;

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_normal_map.osl
===================================================================
--- 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_normal_map.osl
 2013-05-16 10:01:37 UTC (rev 56846)
+++ 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_normal_map.osl
 2013-05-16 10:43:18 UTC (rev 56847)
@@ -33,15 +33,17 @@
                vector tangent;
                vector ninterp;
                float tangent_sign;
+               float is_smooth;
 
+               getattribute("geom:is_smooth", is_smooth);
+               if (!is_smooth)
+                       ninterp = Ng;
+
                // get _unnormalized_ interpolated normal and tangent
-               if (!getattribute(attr_name, tangent) ||
-                  !getattribute(attr_sign_name, tangent_sign) ||
-                  !getattribute("geom:N", ninterp))
+               if (getattribute(attr_name, tangent) &&
+                   getattribute(attr_sign_name, tangent_sign) &&
+                   (!is_smooth || getattribute("geom:N", ninterp)))
                {
-                       Normal = normal(0, 0, 0);
-               }
-               else {
                        // apply normal map
                        vector B = tangent_sign * cross(ninterp, tangent);
                        Normal = normalize(mcolor[0] * tangent + mcolor[1] * B 
+ mcolor[2] * ninterp);
@@ -49,6 +51,9 @@
                        // transform to world space
                        Normal = normalize(transform("object", "world", 
Normal));
                }
+               else {
+                       Normal = normal(0, 0, 0);
+               }
        }
        else if (space == "Object")
                Normal = normalize(transform("object", "world", 
vector(mcolor)));

Modified: 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_rgb_ramp.osl
===================================================================
--- 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_rgb_ramp.osl
   2013-05-16 10:01:37 UTC (rev 56846)
+++ 
tags/blender-2.67a-release/blender/intern/cycles/kernel/shaders/node_rgb_ramp.osl
   2013-05-16 10:43:18 UTC (rev 56847)
@@ -22,6 +22,7 @@
 shader node_rgb_ramp(
        color ramp_color[RAMP_TABLE_SIZE] = {0.0},
        float ramp_alpha[RAMP_TABLE_SIZE] = {0.0},
+       int ramp_interpolate = 1,
 
        float Fac = 0.0,
        output color Color = 0.0,
@@ -38,7 +39,7 @@
        Color = ramp_color[i];
        Alpha = ramp_alpha[i];
 
-       if (t > 0.0) {
+       if (ramp_interpolate && t > 0.0) {
                Color = (1.0 - t) * Color + t * ramp_color[i + 1];
                Alpha = (1.0 - t) * Alpha + t * ramp_alpha[i + 1];
        }

Modified: tags/blender-2.67a-release/blender/intern/cycles/kernel/svm/svm_ramp.h
===================================================================
--- tags/blender-2.67a-release/blender/intern/cycles/kernel/svm/svm_ramp.h      
2013-05-16 10:01:37 UTC (rev 56846)
+++ tags/blender-2.67a-release/blender/intern/cycles/kernel/svm/svm_ramp.h      
2013-05-16 10:43:18 UTC (rev 56847)
@@ -21,7 +21,7 @@
 
 CCL_NAMESPACE_BEGIN
 
-__device float4 rgb_ramp_lookup(KernelGlobals *kg, int offset, float f)
+__device float4 rgb_ramp_lookup(KernelGlobals *kg, int offset, float f, bool 
interpolate)
 {
        f = clamp(f, 0.0f, 1.0f)*(RAMP_TABLE_SIZE-1);
 
@@ -31,7 +31,7 @@
 
        float4 a = fetch_node_float(kg, offset+i);
 
-       if(t > 0.0f)
+       if(interpolate && t > 0.0f)
                a = (1.0f - t)*a + t*fetch_node_float(kg, offset+i+1);
 
        return a;
@@ -39,12 +39,13 @@
 
 __device void svm_node_rgb_ramp(KernelGlobals *kg, ShaderData *sd, float 
*stack, uint4 node, int *offset)
 {
-       uint fac_offset = node.y;
-       uint color_offset = node.z;
-       uint alpha_offset = node.w;
+       uint fac_offset, color_offset, alpha_offset;
+       uint interpolate = node.z;
 
+       decode_node_uchar4(node.y, &fac_offset, &color_offset, &alpha_offset, 
NULL);
+
        float fac = stack_load_float(stack, fac_offset);
-       float4 color = rgb_ramp_lookup(kg, *offset, fac);
+       float4 color = rgb_ramp_lookup(kg, *offset, fac, interpolate);
 
        if(stack_valid(color_offset))
                stack_store_float3(stack, color_offset, 
float4_to_float3(color));
@@ -63,9 +64,9 @@
        float fac = stack_load_float(stack, fac_offset);
        float3 color = stack_load_float3(stack, color_offset);
 
-       float r = rgb_ramp_lookup(kg, *offset, color.x).x;
-       float g = rgb_ramp_lookup(kg, *offset, color.y).y;
-       float b = rgb_ramp_lookup(kg, *offset, color.z).z;
+       float r = rgb_ramp_lookup(kg, *offset, color.x, true).x;
+       float g = rgb_ramp_lookup(kg, *offset, color.y, true).y;
+       float b = rgb_ramp_lookup(kg, *offset, color.z, true).z;
 
        color = (1.0f - fac)*color + fac*make_float3(r, g, b);
        stack_store_float3(stack, out_offset, color);
@@ -82,9 +83,9 @@
        float fac = stack_load_float(stack, fac_offset);
        float3 color = stack_load_float3(stack, color_offset);
 
-       float r = rgb_ramp_lookup(kg, *offset, (color.x + 1.0f)*0.5f).x;
-       float g = rgb_ramp_lookup(kg, *offset, (color.y + 1.0f)*0.5f).y;
-       float b = rgb_ramp_lookup(kg, *offset, (color.z + 1.0f)*0.5f).z;
+       float r = rgb_ramp_lookup(kg, *offset, (color.x + 1.0f)*0.5f, true).x;
+       float g = rgb_ramp_lookup(kg, *offset, (color.y + 1.0f)*0.5f, true).y;
+       float b = rgb_ramp_lookup(kg, *offset, (color.z + 1.0f)*0.5f, true).z;
 
        color = (1.0f - fac)*color + fac*make_float3(r*2.0f - 1.0f, g*2.0f - 
1.0f, b*2.0f - 1.0f);

@@ 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