[Bf-blender-cvs] [5a3fabd] strand_gpu: Removed a couple of unused fiber curve attribute buffers.

Lukas Tönne noreply at git.blender.org
Thu Jul 14 17:05:08 CEST 2016


Commit: 5a3fabdfce6acfa0f2fcdc3be7a2c584aa2eb027
Author: Lukas Tönne
Date:   Thu Jul 14 17:04:43 2016 +0200
Branches: strand_gpu
https://developer.blender.org/rB5a3fabdfce6acfa0f2fcdc3be7a2c584aa2eb027

Removed a couple of unused fiber curve attribute buffers.

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

M	source/blender/gpu/GPU_buffers.h
M	source/blender/gpu/intern/gpu_strands_buffer.c
M	source/blender/gpu/intern/gpu_strands_shader.c
M	source/blender/gpu/shaders/gpu_shader_strand_vert.glsl

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

diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index cbff70f..42f825a 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -160,11 +160,8 @@ typedef struct GPUDrawStrands {
 	GPUBuffer *fiber_points;
 	GPUBuffer *fiber_edges;
 	GPUBuffer *fiber_position;
-	GPUBuffer *fiber_normal;
-	GPUBuffer *fiber_tangent;
 	GPUBuffer *fiber_control_index;
 	GPUBuffer *fiber_control_weight;
-	GPUBuffer *fiber_root_distance;
 
 	/* GL texture id for control point texture buffer */
 	GPUBufferTexture control_points_tex;
@@ -172,11 +169,8 @@ typedef struct GPUDrawStrands {
 	GPUBufferTexture control_tangents_tex;
 	GPUBufferTexture control_curves_tex;
 	GPUBufferTexture fiber_position_tex;
-	GPUBufferTexture fiber_normal_tex;
-	GPUBufferTexture fiber_tangent_tex;
 	GPUBufferTexture fiber_control_index_tex;
 	GPUBufferTexture fiber_control_weight_tex;
-	GPUBufferTexture fiber_root_distance_tex;
 
 	unsigned int strand_totverts;
 	unsigned int strand_totedges;
diff --git a/source/blender/gpu/intern/gpu_strands_buffer.c b/source/blender/gpu/intern/gpu_strands_buffer.c
index 3a5b8ca..d244cb5 100644
--- a/source/blender/gpu/intern/gpu_strands_buffer.c
+++ b/source/blender/gpu/intern/gpu_strands_buffer.c
@@ -81,11 +81,8 @@ typedef enum GPUStrandBufferType {
 	GPU_STRAND_BUFFER_FIBER_EDGE,
 	/* fiber curve attributes (buffer textures) */
 	GPU_STRAND_BUFFER_FIBER_POSITION,
-	GPU_STRAND_BUFFER_FIBER_NORMAL,
-	GPU_STRAND_BUFFER_FIBER_TANGENT,
 	GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX,
 	GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT,
-	GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE,
 	/* fiber vertex buffer (geometry shader only) */
 	GPU_STRAND_BUFFER_FIBER,
 } GPUStrandBufferType;
@@ -100,11 +97,8 @@ static GLenum gpu_strands_buffer_gl_type(GPUStrandBufferType type)
 		case GPU_STRAND_BUFFER_FIBER:
 		case GPU_STRAND_BUFFER_FIBER_VERTEX:
 		case GPU_STRAND_BUFFER_FIBER_POSITION:
-		case GPU_STRAND_BUFFER_FIBER_NORMAL:
-		case GPU_STRAND_BUFFER_FIBER_TANGENT:
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
-		case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
 			return GL_ARRAY_BUFFER;
 		case GPU_STRAND_BUFFER_STRAND_EDGE:
 		case GPU_STRAND_BUFFER_CONTROL_CURVE:
@@ -139,16 +133,10 @@ static GPUBuffer **gpu_strands_buffer_from_type(GPUDrawStrands *gds, GPUStrandBu
 			return &gds->fiber_edges;
 		case GPU_STRAND_BUFFER_FIBER_POSITION:
 			return &gds->fiber_position;
-		case GPU_STRAND_BUFFER_FIBER_NORMAL:
-			return &gds->fiber_normal;
-		case GPU_STRAND_BUFFER_FIBER_TANGENT:
-			return &gds->fiber_tangent;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
 			return &gds->fiber_control_index;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
 			return &gds->fiber_control_weight;
-		case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-			return &gds->fiber_root_distance;
 	}
 	BLI_assert(false);
 	return 0;
@@ -173,21 +161,12 @@ static GPUBufferTexture *gpu_strands_buffer_texture_from_type(GPUDrawStrands *gd
 		case GPU_STRAND_BUFFER_FIBER_POSITION:
 			*format = GL_RGB32F;
 			return &gds->fiber_position_tex;
-		case GPU_STRAND_BUFFER_FIBER_NORMAL:
-			*format = GL_RGB32F;
-			return &gds->fiber_normal_tex;
-		case GPU_STRAND_BUFFER_FIBER_TANGENT:
-			*format = GL_RGB32F;
-			return &gds->fiber_tangent_tex;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
 			*format = GL_RGBA32UI;
 			return &gds->fiber_control_index_tex;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
 			*format = GL_RGBA32F;
 			return &gds->fiber_control_weight_tex;
-		case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-			*format = GL_RG32F;
-			return &gds->fiber_root_distance_tex;
 		default:
 			*format = 0;
 			return NULL;
@@ -218,16 +197,10 @@ static size_t gpu_strands_buffer_size_from_type(GPUDrawStrands *gpu_buffer, GPUS
 			return sizeof(int) * 2 * gpu_buffer->fiber_totedges;
 		case GPU_STRAND_BUFFER_FIBER_POSITION:
 			return sizeof(float) * 3 * gpu_buffer->totfibers;
-		case GPU_STRAND_BUFFER_FIBER_NORMAL:
-			return sizeof(float) * 3 * gpu_buffer->totfibers;
-		case GPU_STRAND_BUFFER_FIBER_TANGENT:
-			return sizeof(float) * 3 * gpu_buffer->totfibers;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
 			return sizeof(int) * 4 * gpu_buffer->totfibers;
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
 			return sizeof(float) * 4 * gpu_buffer->totfibers;
-		case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-			return sizeof(float) * 2 * gpu_buffer->totfibers;
 	}
 	BLI_assert(false);
 	return 0;
@@ -716,18 +689,6 @@ static void strands_copy_fiber_array_attribute_data(StrandFiber *fibers, int tot
 				varray = (float *)varray + 3;
 				break;
 			}
-			case GPU_STRAND_BUFFER_FIBER_NORMAL: {
-				float co[3], tang[3];
-				BKE_strands_get_fiber_vectors(fiber, root_dm, co, (float *)varray, tang);
-				varray = (float *)varray + 3;
-				break;
-			}
-			case GPU_STRAND_BUFFER_FIBER_TANGENT: {
-				float co[3], nor[3];
-				BKE_strands_get_fiber_vectors(fiber, root_dm, co, nor, (float *)varray);
-				varray = (float *)varray + 3;
-				break;
-			}
 			case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX: {
 				for (int k = 0; k < 4; ++k)
 					((int *)varray)[k] = fiber->control_index[k];
@@ -739,11 +700,6 @@ static void strands_copy_fiber_array_attribute_data(StrandFiber *fibers, int tot
 				varray = (float *)varray + 4;
 				break;
 			}
-			case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE: {
-				copy_v2_v2((float *)varray, fiber->root_distance);
-				varray = (float *)varray + 2;
-				break;
-			}
 			default:
 				BLI_assert(false);
 				break;
@@ -799,11 +755,8 @@ static void strands_copy_gpu_data(void *varray, void *vinfo)
 			strands_copy_fiber_edge_data(params, (unsigned int (*)[2])varray);
 			break;
 		case GPU_STRAND_BUFFER_FIBER_POSITION:
-		case GPU_STRAND_BUFFER_FIBER_NORMAL:
-		case GPU_STRAND_BUFFER_FIBER_TANGENT:
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
 		case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
-		case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
 			strands_copy_fiber_attribute_data(params, type, varray);
 			break;
 	}
@@ -875,16 +828,10 @@ void GPU_strands_setup_fibers(GPUDrawStrands *strands_buffer, GPUDrawStrandsPara
 			return;
 		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_POSITION, false))
 			return;
-		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_NORMAL, false))
-			return;
-		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_TANGENT, false))
-			return;
 		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX, false))
 			return;
 		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT, false))
 			return;
-		if (!strands_setup_buffer_common(strands_buffer, params, GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE, false))
-			return;
 		
 		GPU_enable_vertex_buffer(strands_buffer->fiber_points, sizeof(GPUFiberVertex));
 		GPU_enable_element_buffer(strands_buffer->fiber_edges);
@@ -910,26 +857,14 @@ void GPU_strands_setup_fibers(GPUDrawStrands *strands_buffer, GPUDrawStrandsPara
 		glActiveTexture(GL_TEXTURE4);
 		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_position_tex.id);
 	}
-	if (strands_buffer->fiber_normal_tex.id != 0) {
-		glActiveTexture(GL_TEXTURE5);
-		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_normal_tex.id);
-	}
-	if (strands_buffer->fiber_tangent_tex.id != 0) {
-		glActiveTexture(GL_TEXTURE6);
-		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_tangent_tex.id);
-	}
 	if (strands_buffer->fiber_control_index_tex.id != 0) {
-		glActiveTexture(GL_TEXTURE7);
+		glActiveTexture(GL_TEXTURE5);
 		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_control_index_tex.id);
 	}
 	if (strands_buffer->fiber_control_weight_tex.id != 0) {
-		glActiveTexture(GL_TEXTURE8);
+		glActiveTexture(GL_TEXTURE6);
 		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_control_weight_tex.id);
 	}
-	if (strands_buffer->fiber_root_distance_tex.id != 0) {
-		glActiveTexture(GL_TEXTURE9);
-		glBindTexture(GL_TEXTURE_BUFFER, strands_buffer->fiber_root_distance_tex.id);
-	}
 }
 
 void GPU_strands_buffer_unbind(void)
@@ -952,12 +887,6 @@ void GPU_strands_buffer_unbind(void)
 	glBindTexture(GL_TEXTURE_BUFFER, 0);
 	glActiveTexture(GL_TEXTURE6);
 	glBindTexture(GL_TEXTURE_BUFFER, 0);
-	glActiveTexture(GL_TEXTURE7);
-	glBindTexture(GL_TEXTURE_BUFFER, 0);
-	glActiveTexture(GL_TEXTURE8);
-	glBindTexture(GL_TEXTURE_BUFFER, 0);
-	glActiveTexture(GL_TEXTURE9);
-	glBindTexture(GL_TEXTURE_BUFFER, 0);
 	/* reset, following draw code expects active texture 0 */
 	glActiveTexture(GL_TEXTURE0);
 }
@@ -980,17 +909,11 @@ void GPU_strands_buffer_invalidate(GPUDrawStrands *gpu_buffer, GPUStrandsCompone
 	}
 	if (components & GPU_STRANDS_COMPONENT_FIBER_ATTRIBUTES) {
 		GPU_buffer_free(gpu_buffer->fiber_position);
-		GPU_buffer_free(gpu_buffer->fiber_normal);
-		GPU_buffer_free(gpu_buffer->fiber_tangent);
 		GPU_buffer_free(gpu_buffer->fiber_control_index);
 		GPU_buffer_free(gpu_buffer->fiber_control_weight);
-		GPU_buffer_free(gpu_buffer->fiber_root_distance);
 		gpu_buffer->fiber_position = NULL;
-		gpu_buffer->fiber_normal = NULL;
-		gpu_buffer->fiber_tangent = NULL;
 		gpu_buffer->fiber_control_index = NULL;
 		gpu_buffer->fiber_control_weight = NULL;
-		gpu_buffer->fiber_root_distance = NULL;
 	}
 	if (components & GPU_STRANDS_COMPONENT_FIBERS) {
 		GPU_buffer_free(gpu_buffer->fibers);
diff --git a/source/blender/gpu/intern/gpu_strands_shader.c b/source/blender/gpu/intern/gpu_strands_shader.c
index 084b17d..9814d8f 100644
--- a/source/blender/gpu/intern/gpu_strands_shader.c
+++ b/source/blender/gpu/intern/gpu_strands_shader.c
@@ -187,11 +187,8 @@ GPUStrandsShader *GPU_strand_shader_get(struct Strands *strands,
 		GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "control_normals"), 2);
 		GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "control_tangents"), 3);
 		GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "fiber_position"), 4);
-		GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "fiber_normal"), 5);
-		GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "fiber_tangent")

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list