[Bf-blender-cvs] [a083fb84d40] soc-2019-npr: LANPR: Fixed line level error in engine self rendering.
YimingWu
noreply at git.blender.org
Mon Jul 1 11:21:37 CEST 2019
Commit: a083fb84d4082937d238c5e99430c05b3b59c627
Author: YimingWu
Date: Mon Jul 1 17:16:03 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa083fb84d4082937d238c5e99430c05b3b59c627
LANPR: Fixed line level error in engine self rendering.
===================================================================
M source/blender/draw/engines/lanpr/lanpr_ops.c
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index cfb196d783f..d7ec66008a3 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3642,7 +3642,7 @@ long lanpr_count_leveled_edge_segment_count(ListBase *LineList, LANPR_LineLayer
for (rls = rl->segments.first; rls; rls = rls->next) {
- if(ll->use_same_style){
+ if(!ll->use_multiple_levels){
if (rls->occlusion == ll->qi_begin) {
Count++;
}
@@ -3690,7 +3690,7 @@ void *lanpr_make_leveled_edge_vertex_array(LANPR_RenderBuffer *rb,
for (rls = rl->segments.first; rls; rls = rls->next) {
int use = 0;
- if(ll->use_same_style){
+ if(!ll->use_multiple_levels){
if (rls->occlusion == ll->qi_begin) {
use = 1;
}
@@ -3702,42 +3702,39 @@ void *lanpr_make_leveled_edge_vertex_array(LANPR_RenderBuffer *rb,
if(!use) continue;
- if (rls->occlusion >= ll->qi_begin && rls->occlusion <= ll->qi_end) {
-
- if (rl->tl) {
- N[0] += rl->tl->gn[0];
- N[1] += rl->tl->gn[1];
- N[2] += rl->tl->gn[2];
- }
- if (rl->tr) {
- N[0] += rl->tr->gn[0];
- N[1] += rl->tr->gn[1];
- N[2] += rl->tr->gn[2];
- }
- if (rl->tl || rl->tr) {
- normalize_v3(N);
- copy_v3_v3(&N[3], N);
- }
- N += 6;
-
- CLAMP(rls->at, 0, 1);
- if (irls = rls->next) {
- CLAMP(irls->at, 0, 1);
- }
+ if (rl->tl) {
+ N[0] += rl->tl->gn[0];
+ N[1] += rl->tl->gn[1];
+ N[2] += rl->tl->gn[2];
+ }
+ if (rl->tr) {
+ N[0] += rl->tr->gn[0];
+ N[1] += rl->tr->gn[1];
+ N[2] += rl->tr->gn[2];
+ }
+ if (rl->tl || rl->tr) {
+ normalize_v3(N);
+ copy_v3_v3(&N[3], N);
+ }
+ N += 6;
- *v = tnsLinearItp(rl->l->fbcoord[0], rl->r->fbcoord[0], rls->at);
- v++;
- *v = tnsLinearItp(rl->l->fbcoord[1], rl->r->fbcoord[1], rls->at);
- v++;
- *v = componet_id;
- v++;
- *v = tnsLinearItp(rl->l->fbcoord[0], rl->r->fbcoord[0], irls ? irls->at : 1);
- v++;
- *v = tnsLinearItp(rl->l->fbcoord[1], rl->r->fbcoord[1], irls ? irls->at : 1);
- v++;
- *v = componet_id;
- v++;
+ CLAMP(rls->at, 0, 1);
+ if (irls = rls->next) {
+ CLAMP(irls->at, 0, 1);
}
+
+ *v = tnsLinearItp(rl->l->fbcoord[0], rl->r->fbcoord[0], rls->at);
+ v++;
+ *v = tnsLinearItp(rl->l->fbcoord[1], rl->r->fbcoord[1], rls->at);
+ v++;
+ *v = componet_id;
+ v++;
+ *v = tnsLinearItp(rl->l->fbcoord[0], rl->r->fbcoord[0], irls ? irls->at : 1);
+ v++;
+ *v = tnsLinearItp(rl->l->fbcoord[1], rl->r->fbcoord[1], irls ? irls->at : 1);
+ v++;
+ *v = componet_id;
+ v++;
}
}
*NextNormal = N;
@@ -4073,7 +4070,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
DRW_shgroup_uniform_vec3(rb->ChainShgrp, "normal_direction", normal_object_direction, 1);
DRW_shgroup_uniform_int(rb->ChainShgrp, "occlusion_level_begin", &ll->qi_begin, 1);
- DRW_shgroup_uniform_int(rb->ChainShgrp, "occlusion_level_end", &ll->qi_end, 1);
+ DRW_shgroup_uniform_int(rb->ChainShgrp, "occlusion_level_end", ll->use_multiple_levels?&ll->qi_end:&ll->qi_begin, 1);
DRW_shgroup_uniform_vec4(
rb->ChainShgrp, "preview_viewport", stl->g_data->dpix_viewport, 1);
More information about the Bf-blender-cvs
mailing list