[Bf-blender-cvs] [7c64f8537f5] blender2.8: PBVH: Fix miossing normals for grids

Sergey Sharybin noreply at git.blender.org
Tue Sep 11 11:51:07 CEST 2018


Commit: 7c64f8537f5c4766390cdca58568c07a74863c67
Author: Sergey Sharybin
Date:   Tue Sep 11 11:50:09 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB7c64f8537f5c4766390cdca58568c07a74863c67

PBVH: Fix miossing normals for grids

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

M	source/blender/gpu/intern/gpu_buffers.c

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

diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c
index cea2de77848..6584836d32d 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -398,6 +398,20 @@ void GPU_pbvh_grid_buffers_update(
 							normal_float_to_short_v3(no_short, fno);
 							GPU_vertbuf_attr_set(buffers->vert_buf, g_vbo_id.nor, vbo_index, no_short);
 
+							/* Copy normal to first row and last column. */
+							if (k == key->grid_size - 2) {
+								const int next_vbo_index = vbo_index_offset + ((j + 1) * key->grid_size + k + 1);
+								GPU_vertbuf_attr_set(buffers->vert_buf, g_vbo_id.nor, next_vbo_index, no_short);
+							}
+							if (j == 0) {
+								int prev_vbo_index = vbo_index_offset + ((j) * key->grid_size + k);
+								GPU_vertbuf_attr_set(buffers->vert_buf, g_vbo_id.nor, prev_vbo_index, no_short);
+							}
+							if (j == 0 && k == key->grid_size - 2) {
+								int diag_vbo_index = vbo_index_offset + ((j) * key->grid_size + k + 1);
+								GPU_vertbuf_attr_set(buffers->vert_buf, g_vbo_id.nor, diag_vbo_index, no_short);
+							}
+
 							if (has_mask && show_mask) {
 								float fmask = (*CCG_elem_mask(key, elems[0]) +
 								               *CCG_elem_mask(key, elems[1]) +



More information about the Bf-blender-cvs mailing list