Commit: 343c4fb54a514b55a9d0e01fc1275fa66bf1fbca
Author: Lukas Tönne
Date:   Thu Jun 4 12:05:11 2015 +0200
Branches: gooseberry
https://developer.blender.org/rB343c4fb54a514b55a9d0e01fc1275fa66bf1fbca

Merge branch 'master' into gooseberry

Conflicts:
        intern/cycles/kernel/svm/svm.h

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



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

diff --cc intern/cycles/kernel/svm/svm.h
index db83d2e,15ac651..e9b36dd
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@@ -282,48 -390,31 +391,34 @@@ ccl_device_noinline void svm_eval_nodes
                        case NODE_TEX_BRICK:
                                svm_node_tex_brick(kg, sd, stack, node, 
&offset);
                                break;
- #endif  /* __TEXTURES__ */
-                       case NODE_CAMERA:
-                               svm_node_camera(kg, sd, stack, node.y, node.z, 
node.w);
-                               break;
-                       case NODE_GEOMETRY:
-                               svm_node_geometry(kg, sd, stack, node.y, 
node.z);
-                               break;
- #ifdef __EXTRA_NODES__
-                       case NODE_GEOMETRY_BUMP_DX:
-                               svm_node_geometry_bump_dx(kg, sd, stack, 
node.y, node.z);
-                               break;
-                       case NODE_GEOMETRY_BUMP_DY:
-                               svm_node_geometry_bump_dy(kg, sd, stack, 
node.y, node.z);
-                               break;
-                       case NODE_LIGHT_PATH:
-                               svm_node_light_path(sd, stack, node.y, node.z, 
path_flag);
-                               break;
-                       case NODE_OBJECT_INFO:
-                               svm_node_object_info(kg, sd, stack, node.y, 
node.z);
++                      case NODE_TEX_VOXEL:
++                              svm_node_tex_voxel(kg, sd, stack, node, 
&offset);
 +                              break;
-                       case NODE_PARTICLE_INFO:
-                               svm_node_particle_info(kg, sd, stack, node.y, 
node.z);
+ #  endif  /* __TEXTURES__ */
+ #  ifdef __EXTRA_NODES__
+                       case NODE_NORMAL:
+                               svm_node_normal(kg, sd, stack, node.y, node.z, 
node.w, &offset);
                                break;
- #ifdef __HAIR__
- #  if NODES_FEATURE(NODE_FEATURE_HAIR)
-                       case NODE_HAIR_INFO:
-                               svm_node_hair_info(kg, sd, stack, node.y, 
node.z);
+                       case NODE_LIGHT_FALLOFF:
+                               svm_node_light_falloff(sd, stack, node);
                                break;
- #  endif  /* NODES_FEATURE(NODE_FEATURE_HAIR) */
- #endif  /* __HAIR__ */
+ #  endif  /* __EXTRA_NODES__ */
+ #endif  /* NODES_GROUP(NODE_GROUP_LEVEL_2) */
  
- #endif  /* __EXTRA_NODES__ */
-                       case NODE_CONVERT:
-                               svm_node_convert(sd, stack, node.y, node.z, 
node.w);
+ #if NODES_GROUP(NODE_GROUP_LEVEL_3)
+                       case NODE_RGB_CURVES:
+                               svm_node_rgb_curves(kg, sd, stack, node, 
&offset);
                                break;
-                       case NODE_VALUE_F:
-                               svm_node_value_f(kg, sd, stack, node.y, node.z);
+                       case NODE_VECTOR_CURVES:
+                               svm_node_vector_curves(kg, sd, stack, node, 
&offset);
                                break;
-                       case NODE_VALUE_V:
-                               svm_node_value_v(kg, sd, stack, node.y, 
&offset);
+                       case NODE_TANGENT:
+                               svm_node_tangent(kg, sd, stack, node);
+                               break;
+                       case NODE_NORMAL_MAP:
+                               svm_node_normal_map(kg, sd, stack, node);
                                break;
- #ifdef __EXTRA_NODES__
+ #  ifdef __EXTRA_NODES__
                        case NODE_INVERT:
                                svm_node_invert(sd, stack, node.y, node.z, 
node.w);
                                break;
diff --cc intern/cycles/render/mesh.cpp
index 884186c,45685fe..4f99bfc
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/render/mesh.cpp
@@@ -1317,16 -1320,17 +1324,26 @@@ void MeshManager::device_update(Device 
  
        device_update_bvh(device, dscene, scene, progress);
  
 +      if(free_data_after_update) {
 +              foreach(Object *object, scene->objects) {
 +                      if(object->mesh->bvh != NULL) {
 +                              delete object->mesh->bvh;
 +                              object->mesh->bvh = NULL;
 +                      }
 +              }
 +      }
 +
        need_update = false;
+ 
+       if(need_displacement_images) {
+               /* Re-tag flags for update, so they're re-evaluated
+                * for meshes with correct bounding boxes.
+                *
+                * This wouldn't cause wrong results, just true
+                * displacement might be less optimal ot calculate.
+                */
+               scene->object_manager->need_flags_update = 
old_need_object_flags_update;
+       }
  }
  
  void MeshManager::device_free(Device *device, DeviceScene *dscene)
diff --cc intern/cycles/render/nodes.h
index 56d2171,4e78d58..4961cd4
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@@ -194,31 -209,10 +209,33 @@@ public
        
        float offset, squash;
        int offset_frequency, squash_frequency;
+ 
+       virtual int get_group() { return NODE_GROUP_LEVEL_2; }
  };
  
 +class PointDensityTextureNode : public ShaderNode {
 +public:
 +      SHADER_NODE_NO_CLONE_CLASS(PointDensityTextureNode)
 +
 +      ~PointDensityTextureNode();
 +      ShaderNode *clone() const;
 +      void attributes(Shader *shader, AttributeRequestSet *attributes);
 +
 +      bool has_spatial_varying() { return true; }
 +      bool has_object_dependency() { return true; }
 +
 +      ImageManager *image_manager;
 +      int slot;
 +      string filename;
 +      ustring space;
 +      void *builtin_data;
 +      InterpolationType interpolation;
 +
 +      Transform tfm;
 +
 +      static ShaderEnum space_enum;
 +};
 +
  class MappingNode : public ShaderNode {
  public:
        SHADER_NODE_CLASS(MappingNode)

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

Reply via email to