[Bf-blender-cvs] [343c4fb] gooseberry: Merge branch 'master' into gooseberry
Lukas Tönne
noreply at git.blender.org
Thu Jun 4 12:10:16 CEST 2015
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)
More information about the Bf-blender-cvs
mailing list