[Bf-blender-cvs] [edd8899] temp-cycles-microdisplacement: Fix pointiness attribute not getting stored for subdivision meshes
Mai Lavelle
noreply at git.blender.org
Mon Apr 18 15:07:37 CEST 2016
Commit: edd8899abca678fc5294ee470702312d1521bafd
Author: Mai Lavelle
Date: Sat Apr 16 13:58:02 2016 -0400
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rBedd8899abca678fc5294ee470702312d1521bafd
Fix pointiness attribute not getting stored for subdivision meshes
===================================================================
M intern/cycles/blender/blender_mesh.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index e427463..8a9aa54 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -508,11 +508,12 @@ static void attr_create_uv_map(Scene *scene,
/* Create vertex pointiness attributes. */
static void attr_create_pointiness(Scene *scene,
Mesh *mesh,
- BL::Mesh& b_mesh)
+ BL::Mesh& b_mesh,
+ bool subdivision)
{
if(mesh->need_attribute(scene, ATTR_STD_POINTINESS)) {
const int numverts = b_mesh.vertices.length();
- Attribute *attr = mesh->attributes.add(ATTR_STD_POINTINESS);
+ Attribute *attr = (subdivision? mesh->subd_attributes: mesh->attributes).add(ATTR_STD_POINTINESS);
float *data = attr->data_float();
int *counter = new int[numverts];
float *raw_data = new float[numverts];
@@ -625,7 +626,7 @@ static void create_mesh(Scene *scene,
}
/* Create needed vertex attributes. */
- attr_create_pointiness(scene, mesh, b_mesh);
+ attr_create_pointiness(scene, mesh, b_mesh, subdivision);
/* create faces */
vector<int> nverts(numfaces);
More information about the Bf-blender-cvs
mailing list