[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59532] branches/soc-2013-cycles_mblur/ intern/cycles/bvh/bvh_build.cpp: Added BVH code to the add_reference_mesh() function.
Gavin Howard
gavin.d.howard at gmail.com
Mon Aug 26 19:50:16 CEST 2013
Revision: 59532
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59532
Author: gdh
Date: 2013-08-26 17:50:16 +0000 (Mon, 26 Aug 2013)
Log Message:
-----------
Added BVH code to the add_reference_mesh() function. Now, it takes into
account each of the steps as it makes the BoundBox for a triangle.
Modified Paths:
--------------
branches/soc-2013-cycles_mblur/intern/cycles/bvh/bvh_build.cpp
Modified: branches/soc-2013-cycles_mblur/intern/cycles/bvh/bvh_build.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/bvh/bvh_build.cpp 2013-08-26 16:08:03 UTC (rev 59531)
+++ branches/soc-2013-cycles_mblur/intern/cycles/bvh/bvh_build.cpp 2013-08-26 17:50:16 UTC (rev 59532)
@@ -79,6 +79,22 @@
bounds.grow(co);
}
+ /* If the mesh has deformation blur, we need to take that into account. */
+ Attribute *attr = mesh->attributes.find(ATTR_STD_DMOTION);
+ if (attr) {
+ size_t mesh_size = mesh->verts.size();
+ size_t steps = mesh->mblur_steps - 1;
+ float3 *vert_steps = attr->data_float3();
+
+ /* Go through all of the steps and grow the bounds
+ * for each step of the triangle. */
+ for (size_t i = 0; i < steps; i++) {
+ for (size_t k = 0; k < 3; k++) {
+ bounds.grow(vert_steps[i * mesh_size + t.v[k]]);
+ }
+ }
+ }
+
if(bounds.valid()) {
references.push_back(BVHReference(bounds, j, i, ~0));
root.grow(bounds);
More information about the Bf-blender-cvs
mailing list