Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-05-19 14:31:44 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-05-20 20:14:22 +0300
commit687f09a8ad508b0f736b35337e589935296ecd0f (patch)
tree851b5c79017a8407c4a85f38a2ba5bd08771c9ff /source/blender/draw/intern/draw_cache.h
parent883cb583550596e0c2e3b809ec8de059d0b053ad (diff)
Workbench: Optimize Shadows.
This makes the shadows ~10 times faster in the general case. This only create extrusion geometry on the outline edges. Also we increment or decrement the stencil buffer by 2 for each manifold edge and only by 1 for non manifold. This make the algorithm robust yet less heavy than creating one prism for each triangles.
Diffstat (limited to 'source/blender/draw/intern/draw_cache.h')
-rw-r--r--source/blender/draw/intern/draw_cache.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_cache.h b/source/blender/draw/intern/draw_cache.h
index b9a569b3ace..8bc609ffe1f 100644
--- a/source/blender/draw/intern/draw_cache.h
+++ b/source/blender/draw/intern/draw_cache.h
@@ -48,6 +48,7 @@ struct Gwn_Batch *DRW_cache_screenspace_circle_get(void);
/* Common Object */
struct Gwn_Batch *DRW_cache_object_wire_outline_get(struct Object *ob);
+struct Gwn_Batch *DRW_cache_object_edge_detection_get(struct Object *ob);
struct Gwn_Batch *DRW_cache_object_surface_get(struct Object *ob);
struct Gwn_Batch **DRW_cache_object_surface_material_get(
struct Object *ob, struct GPUMaterial **gpumat_array, uint gpumat_array_len,
@@ -116,6 +117,7 @@ void DRW_cache_mesh_normals_overlay_get(
struct Gwn_Batch **r_tris, struct Gwn_Batch **r_ledges, struct Gwn_Batch **r_lverts);
struct Gwn_Batch *DRW_cache_face_centers_get(struct Object *ob);
struct Gwn_Batch *DRW_cache_mesh_wire_outline_get(struct Object *ob);
+struct Gwn_Batch *DRW_cache_mesh_edge_detection_get(struct Object *ob);
struct Gwn_Batch *DRW_cache_mesh_surface_get(struct Object *ob);
struct Gwn_Batch *DRW_cache_mesh_surface_weights_get(struct Object *ob);
struct Gwn_Batch *DRW_cache_mesh_surface_vert_colors_get(struct Object *ob);