[Bf-blender-cvs] [a754d222baa] tmp_hair_curves: Merge branch 'hair_guides' into tmp_hair_curves

Lukas Tönne noreply at git.blender.org
Tue Jul 3 09:12:00 CEST 2018


Commit: a754d222baa46d4c37e38e17fbc2df77de7ffe3b
Author: Lukas Tönne
Date:   Tue Jul 3 07:42:12 2018 +0100
Branches: tmp_hair_curves
https://developer.blender.org/rBa754d222baa46d4c37e38e17fbc2df77de7ffe3b

Merge branch 'hair_guides' into tmp_hair_curves

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



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

diff --cc source/blender/draw/engines/workbench/workbench_deferred.c
index c9bb0dd9947,412a29722ab..f3c96923dae
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@@ -632,20 -625,16 +617,16 @@@ static void workbench_cache_populate_pa
  			int color_type = workbench_material_determine_color_type(wpd, image);
  			WORKBENCH_MaterialData *material = get_or_create_material_data(vedata, ob, mat, image, color_type);
  
- 			struct GPUShader *shader = (color_type != V3D_SHADING_TEXTURE_COLOR)
- 			                           ? wpd->prepass_solid_hair_sh
- 			                           : wpd->prepass_texture_hair_sh;
+ 			struct GPUShader *shader = (color_type != V3D_SHADING_TEXTURE_COLOR) ?
+ 			        wpd->prepass_solid_hair_sh :
+ 			        wpd->prepass_texture_hair_sh;
 -			DRWShadingGroup *shgrp = DRW_shgroup_hair_create(
 +			DRWShadingGroup *shgrp = DRW_shgroup_particle_hair_create(
- 			                                ob, psys, md,
- 			                                psl->prepass_hair_pass,
- 			                                shader);
+ 			        ob, psys, md,
+ 			        psl->prepass_hair_pass,
+ 			        shader);
  			DRW_shgroup_stencil_mask(shgrp, 0xFF);
  			DRW_shgroup_uniform_int(shgrp, "object_id", &material->object_id, 1);
- 			DRW_shgroup_uniform_block(shgrp, "material_block", material->material_ubo);
- 			if (image) {
- 				GPUTexture *tex = GPU_texture_from_blender(image, NULL, GL_TEXTURE_2D, false, 0.0f);
- 				DRW_shgroup_uniform_texture(shgrp, "image", tex);
- 			}
+ 			workbench_material_shgroup_uniform(wpd, shgrp, material);
  		}
  	}
  }
diff --cc source/blender/draw/engines/workbench/workbench_forward.c
index ee579dd6d44,fb2d7885b28..805cf0066d8
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@@ -51,7 -51,9 +51,8 @@@ static struct 
  	struct GPUShader *composite_sh_cache[MAX_SHADERS];
  	struct GPUShader *transparent_accum_sh_cache[MAX_SHADERS];
  	struct GPUShader *object_outline_sh;
+ 	struct GPUShader *object_outline_texture_sh;
  	struct GPUShader *object_outline_hair_sh;
 -	struct GPUShader *object_outline_hair_fibers_sh;
  	struct GPUShader *checker_depth_sh;
  
  	struct GPUTexture *object_id_tx; /* ref only, not alloced */
@@@ -276,18 -270,24 +261,21 @@@ void workbench_forward_engine_init(WORK
  		memset(e_data.composite_sh_cache, 0x00, sizeof(struct GPUShader *) * MAX_SHADERS);
  		memset(e_data.transparent_accum_sh_cache, 0x00, sizeof(struct GPUShader *) * MAX_SHADERS);
  
- 		char *defines = workbench_material_build_defines(wpd, OB_SOLID, false);
- 		char *defines_hair = workbench_material_build_defines(wpd, OB_SOLID, true);
 -		char *defines = workbench_material_build_defines(wpd, false, DRW_SHADER_HAIR_NONE);
 -		char *defines_texture = workbench_material_build_defines(wpd, true, DRAW_SHADER_HAIR_NONE);
 -		char *defines_hair = workbench_material_build_defines(wpd, false, DRW_SHADER_HAIR_PARTICLES);
 -		char *defines_hair_fibers = workbench_material_build_defines(wpd, false, DRW_SHADER_HAIR_FIBERS);
++		char *defines = workbench_material_build_defines(wpd, false, false);
++		char *defines_texture = workbench_material_build_defines(wpd, true, false);
++		char *defines_hair = workbench_material_build_defines(wpd, false, true);
++		char *defines_hair_fibers = workbench_material_build_defines(wpd, false, true);
  		char *forward_vert = workbench_build_forward_vert();
- 		char *forward_depth_frag = workbench_build_forward_depth_frag();
  		e_data.object_outline_sh = DRW_shader_create(
  		        forward_vert, NULL,
- 		        forward_depth_frag, defines);
+ 		        datatoc_workbench_forward_depth_frag_glsl, defines);
+ 		e_data.object_outline_texture_sh = DRW_shader_create(
+ 		        forward_vert, NULL,
+ 		        datatoc_workbench_forward_depth_frag_glsl, defines_texture);
  		e_data.object_outline_hair_sh = DRW_shader_create(
  		        forward_vert, NULL,
- 		        forward_depth_frag, defines_hair);
+ 		        datatoc_workbench_forward_depth_frag_glsl, defines_hair);
 -		e_data.object_outline_hair_fibers_sh = DRW_shader_create(
 -		        forward_vert, NULL,
 -		        forward_depth_frag, defines_hair_fibers);
  
- 		workbench_fxaa_engine_init();
  
  		e_data.checker_depth_sh = DRW_shader_create_fullscreen(
  		        datatoc_workbench_checkerboard_depth_frag_glsl, NULL);
@@@ -379,7 -380,9 +368,8 @@@ void workbench_forward_engine_free(
  		DRW_SHADER_FREE_SAFE(e_data.transparent_accum_sh_cache[index]);
  	}
  	DRW_SHADER_FREE_SAFE(e_data.object_outline_sh);
+ 	DRW_SHADER_FREE_SAFE(e_data.object_outline_texture_sh);
  	DRW_SHADER_FREE_SAFE(e_data.object_outline_hair_sh);
 -	DRW_SHADER_FREE_SAFE(e_data.object_outline_hair_fibers_sh);
  	DRW_SHADER_FREE_SAFE(e_data.checker_depth_sh);
  
  	workbench_fxaa_engine_free();
diff --cc source/blender/draw/engines/workbench/workbench_private.h
index 404ec50fd97,23c550d6999..3bec6bb6d53
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@@ -269,20 -260,29 +256,22 @@@ DRWPass *workbench_fxaa_create_pass(GPU
  /* workbench_effect_taa.c */
  void workbench_taa_engine_init(WORKBENCH_Data *vedata);
  void workbench_taa_engine_free(void);
- DRWPass *workbench_taa_create_pass(WORKBENCH_TextureList *txl, WORKBENCH_EffectInfo *effect_info, WORKBENCH_FramebufferList *fbl, GPUTexture **color_buffer_tx);
- void workbench_taa_draw_pass(WORKBENCH_EffectInfo *effect_info, /*WORKBENCH_PrivateData *wpd, , GPUFrameBuffer *fb, GPUTexture *tx, */DRWPass *effect_aa_pass);
- void workbench_taa_draw_scene_start(WORKBENCH_EffectInfo *effect_info);
+ DRWPass *workbench_taa_create_pass(WORKBENCH_Data *vedata, GPUTexture **color_buffer_tx);
+ void workbench_taa_draw_scene_start(WORKBENCH_Data *vedata);
  void workbench_taa_draw_scene_end(WORKBENCH_Data *vedata);
  void workbench_taa_view_updated(WORKBENCH_Data *vedata);
+ int workbench_taa_calculate_num_iterations(WORKBENCH_Data *vedata);
  
  /* workbench_materials.c */
 -typedef enum DRWShaderHairType
 -{
 -	DRW_SHADER_HAIR_NONE = 0,
 -	DRW_SHADER_HAIR_PARTICLES = 1,
 -	DRW_SHADER_HAIR_FIBERS = 2,
 -} DRWShaderHairType;
 -
  int workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd, Image *ima);
 -char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool use_textures, DRWShaderHairType hair_type);
 +char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool use_textures, bool is_hair);
  void workbench_material_update_data(WORKBENCH_PrivateData *wpd, Object *ob, Material *mat, WORKBENCH_MaterialData *data);
  uint workbench_material_get_hash(WORKBENCH_MaterialData *material_template);
 -int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool use_textures, DRWShaderHairType hair_type);
 +int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool use_textures, bool is_hair);
  void workbench_material_set_normal_world_matrix(
          DRWShadingGroup *grp, WORKBENCH_PrivateData *wpd, float persistent_matrix[3][3]);
+ void workbench_material_shgroup_uniform(WORKBENCH_PrivateData *wpd, DRWShadingGroup *grp, WORKBENCH_MaterialData *material);
+ void workbench_material_copy(WORKBENCH_MaterialData *dest_material, const WORKBENCH_MaterialData *source_material);
  
  /* workbench_studiolight.c */
  void studiolight_update_world(StudioLight *sl, WORKBENCH_UBO_World *wd);



More information about the Bf-blender-cvs mailing list