Commit: e37ff1131232290ae24f87d4e986d387b1a6025a
Author: Nick Wu
Date:   Thu May 24 15:10:29 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rBe37ff1131232290ae24f87d4e986d387b1a6025a

changed a bit of argument uniform to match the API.(not working properly)

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

M       source/blender/draw/engines/lanpr/NUL_TNS.h
M       source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c
M       source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment
M       source/blender/makesrna/intern/rna_scene.c

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

diff --git a/source/blender/draw/engines/lanpr/NUL_TNS.h 
b/source/blender/draw/engines/lanpr/NUL_TNS.h
index f2cea88c7ee..cd1e28c388b 100644
--- a/source/blender/draw/engines/lanpr/NUL_TNS.h
+++ b/source/blender/draw/engines/lanpr/NUL_TNS.h
@@ -40,6 +40,17 @@ typedef struct LANPR_PrivateData {
        DRWShadingGroup *edge_detect_shgrp;
        DRWShadingGroup *edge_thinning_shgrp;
        DRWShadingGroup *edge_thinning_shgrp_2;
+
+       float normal_clamp;
+    float normal_strength;
+    float depth_clamp;
+    float depth_strength;
+
+       float zfar;
+       float znear;
+
+       int stage;//thinning
+
 } LANPR_PrivateData;
 
 typedef struct LANPR_StorageList {
diff --git a/source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c 
b/source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c
index 7d0c4a20495..996fd34bff6 100644
--- a/source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c
+++ b/source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c
@@ -156,16 +156,26 @@ static void lanpr_cache_init(void *vedata){
        DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, 
"TexSample0", &txl->depth);
        DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, 
"TexSample1", &txl->color);
        DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, 
"TexSample2", &txl->normal);
+
+       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zNear", 
&stl->g_data->znear, 1);
+    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zfFar", 
&stl->g_data->zfar, 1);
+
+       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue0", 
&stl->g_data->normal_clamp, 1);// normal clamp
+    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue1", 
&stl->g_data->normal_strength, 1);// normal strength
+    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue2", 
&stl->g_data->depth_clamp, 1);// depth clamp
+       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue3", 
&stl->g_data->depth_strength, 1);// depth strength
        DRW_shgroup_call_add(stl->g_data->edge_detect_shgrp, quad, NULL);
 
        psl->edge_thinning = DRW_pass_create("Edge Thinning Stage 1", 
DRW_STATE_WRITE_COLOR);
        stl->g_data->edge_thinning_shgrp = 
DRW_shgroup_create(OneTime.edge_thinning_shader, psl->edge_thinning);
        DRW_shgroup_uniform_texture_ref(stl->g_data->edge_thinning_shgrp, 
"TexSample0", &txl->edge_intermediate);
+       DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp, "Stage", 
&stl->g_data->stage, 1);
        DRW_shgroup_call_add(stl->g_data->edge_thinning_shgrp, quad, NULL);
 
        psl->edge_thinning_2 = DRW_pass_create("Edge Thinning Stage 2", 
DRW_STATE_WRITE_COLOR);
        stl->g_data->edge_thinning_shgrp_2 = 
DRW_shgroup_create(OneTime.edge_thinning_shader, psl->edge_thinning_2);
        DRW_shgroup_uniform_texture_ref(stl->g_data->edge_thinning_shgrp_2, 
"TexSample0", &txl->color);
+       DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp_2, "Stage", 
&stl->g_data->stage, 1);
        DRW_shgroup_call_add(stl->g_data->edge_thinning_shgrp_2, quad, NULL);
 }
 
@@ -216,41 +226,31 @@ static void lanpr_draw_scene(void *vedata)
        View3D *v3d = draw_ctx->v3d;
        RegionView3D *rv3d = draw_ctx->rv3d;
        Object *camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL;
-       float znear = camera? ((Camera*)camera->data)->clipsta:0.1;
-    float zfar = camera? ((Camera*)camera->data)->clipend:100;
+
+       stl->g_data->znear = camera? ((Camera*)camera->data)->clipsta:0.1;
+    stl->g_data->zfar = camera? ((Camera*)camera->data)->clipend:100;
+       stl->g_data->normal_clamp =    draw_ctx->scene->lanpr.normal_clamp;
+       stl->g_data->normal_strength = draw_ctx->scene->lanpr.normal_strength;
+       stl->g_data->depth_clamp =     draw_ctx->scene->lanpr.depth_clamp;
+       stl->g_data->depth_strength =  draw_ctx->scene->lanpr.depth_strength;
 
        GPU_framebuffer_bind(fbl->edge_intermediate);
        //GPU_framebuffer_clear(fbl->edge_intermediate, clear_bits, clear_col, 
clear_depth, clear_stencil);
-
-       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zNear", 
&znear, 1);
-    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zfar", &zfar, 
1);
-
-       float normal_clamp =    draw_ctx->scene->lanpr.normal_clamp;
-       float normal_strength = draw_ctx->scene->lanpr.normal_strength;
-       float depth_clamp =     draw_ctx->scene->lanpr.depth_clamp;
-       float depth_strength =  draw_ctx->scene->lanpr.depth_strength;
-
-       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue0", 
&normal_clamp, 1);// normal clamp
-    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue1", 
&normal_strength, 1);// normal strength
-    DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue2", 
&depth_clamp, 1);// depth clamp
-       DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue3", 
&depth_strength, 1);// depth strength
-
+       
        DRW_draw_pass(psl->edge_intermediate);
-
-    int stage = 0;
+       
+    stl->g_data->stage = 0;
     GPU_framebuffer_bind(fbl->edge_thinning);
        GPU_framebuffer_clear(fbl->edge_thinning, clear_bits, clear_col, 
clear_depth, clear_stencil);
-       DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp, "Stage", 
&stage, 1);
     DRW_draw_pass(psl->edge_thinning);
 
-       stage = 1;
+       stl->g_data->stage = 1;
        GPU_framebuffer_bind(fbl->edge_intermediate);
        //GPU_framebuffer_clear(fbl->edge_intermediate, clear_bits, clear_col, 
clear_depth, clear_stencil);
-       DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp_2, "Stage", 
&stage, 1);
     DRW_draw_pass(psl->edge_thinning_2);
 
        GPU_framebuffer_bind(dfbl->default_fb);
-       
+
        DRW_transform_to_display(txl->edge_intermediate);
 }
 
diff --git 
a/source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment 
b/source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment
index 6272c80193e..b10b31018ed 100644
--- a/source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment
+++ b/source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment
@@ -72,8 +72,8 @@ vec4 DetectEdge(sampler2D tex, float clamp, float strength){
      
         float value = max(max(g1,g2),g3);
 
-        value=value>1?value:0;
-        return vec4(vec3(value),1);
+        value=value>clamp?value:0;
+        return vec4(vec3(value*strength),1);
 
         //if(value<clamp) value=0;
 
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index 11c6b8412a2..be09127cde4 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -6177,30 +6177,35 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
        RNA_def_property_enum_default(prop, LANPR_POST_PROCESSING_DISABLED);
        RNA_def_property_ui_text(prop, "Enable Post Processing", "Draw image 
post processing line or not");
        RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SCENE, NULL);
 
        prop = RNA_def_property(srna, "depth_clamp", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_default(prop, 0.1f);
        RNA_def_property_ui_text(prop, "Depth Clamp", "Depth clamp value for 
edge extraction");
        RNA_def_property_ui_range(prop, 0.01f, 1.0f, 0.1, 2);
        RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SCENE, NULL);
 
        prop = RNA_def_property(srna, "depth_strength", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_default(prop, 0.1f);
        RNA_def_property_ui_text(prop, "Depth Strength", "Depth strength value 
for edge extraction");
        RNA_def_property_ui_range(prop, 0.01f, 10.0f, 0.1, 2);
        RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SCENE, NULL);
 
        prop = RNA_def_property(srna, "normal_clamp", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_default(prop, 0.1f);
        RNA_def_property_ui_text(prop, "Normal Clamp", "Normal clamp value for 
edge extraction");
        RNA_def_property_ui_range(prop, 0.01f, 1.0f, 0.1, 2);
        RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SCENE, NULL);
 
        prop = RNA_def_property(srna, "normal_strength", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_default(prop, 0.1f);
        RNA_def_property_ui_text(prop, "Normal Strength", "Normal strength 
value for edge extraction");
        RNA_def_property_ui_range(prop, 0.01f, 10.0f, 0.1, 2);
        RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SCENE, NULL);
 }
 
 void RNA_def_scene(BlenderRNA *brna)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to