diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-10-12 23:41:40 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-10-12 23:41:40 +0400 |
commit | 10198e99ff398380696e3408f752280e6bb5106d (patch) | |
tree | 834b81d39ae9561ace7b2c607f2015cc03ce7af7 /release | |
parent | b5f820cd874a7b3ca1de81103b99969429adfd6c (diff) |
Deep Shadow Buffer
Since the deep shadow buffer summer of code project is not actively under
development anymore, I decided to build my own DSM implementation from
scratch, based on reusing as much existing shadow buffer code as possible.
It's not very advanced, but implements the basic algorithm. Just enough so
we can do shading tests with it, optimizations and other improvements can
be done later.
Supported:
* Classical shadow buffer options: filter, soft, bias, ..
* Multiple sample buffers, merged into one.
* Halfway trick to support lower bias.
* Compression with user defined threshold.
* Non-textured alpha transparency, using Casting Alpha value.
* Strand render.
Not Supported:
* Tiling disk cache, so can use a lot of memory.
* Per part rendering for lower memory usage during creation.
* Colored shadow.
* Textured color/alpha shadow.
* Mipmaps for faster filtering.
* Volume shadows.
Usage Hints:
* Use sample buffers + smaller size rather than large size.
* For example 512 size x 9 sample buffers instead of 2048 x 1.
* Compression threshold 0.05 works, but is on the conservative side.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/ui/buttons_data_lamp.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/release/scripts/ui/buttons_data_lamp.py b/release/scripts/ui/buttons_data_lamp.py index 2879da8d8d5..4e495d158eb 100644 --- a/release/scripts/ui/buttons_data_lamp.py +++ b/release/scripts/ui/buttons_data_lamp.py @@ -202,7 +202,7 @@ class DATA_PT_shadow(DataButtonsPanel): col.itemL(text="Buffer Type:") col.row().itemR(lamp, "shadow_buffer_type", expand=True) - if lamp.shadow_buffer_type in ('REGULAR', 'HALFWAY'): + if lamp.shadow_buffer_type in ('REGULAR', 'HALFWAY', 'DEEP'): split = layout.split() col = split.column() @@ -218,6 +218,8 @@ class DATA_PT_shadow(DataButtonsPanel): sub = col.column(align=True) sub.itemR(lamp, "shadow_buffer_size", text="Size") sub.itemR(lamp, "shadow_buffer_samples", text="Samples") + if lamp.shadow_buffer_type == 'DEEP': + col.itemR(lamp, "compression_threshold") elif lamp.shadow_buffer_type == 'IRREGULAR': layout.itemR(lamp, "shadow_buffer_bias", text="Bias") |