diff options
author | Ton Roosendaal <ton@blender.org> | 2008-01-28 19:33:59 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2008-01-28 19:33:59 +0300 |
commit | 703f248ab4bd918ba6a202a20b73dc6293851759 (patch) | |
tree | b25a9483434d28433780fd585ed5f29b3d3bcd06 /source/blender/render/intern/include | |
parent | b9842ec247e5ae9458f59d24e98973ca17949ae7 (diff) |
New rendering option: FSA!
This completes the pipeline make-over, as started in 2006. With this
option, during rendering, each sample for every layer and pass is being
saved on disk (looks like non-antialiased images). Then the composite
and color correction happens, then a clip to 0-1 range, and only in end
all samples get combined - using sampling filters such as gauss/mitch/catmul.
This results in artefact-free antialiased images. Even Z-combine or
ID masks now work perfect for it!
This is an unfinished commit btw; Brecht will finish this for strands.
Also Halo doesnt work yet.
To activate FSA: press "Save Buffers" and the new button next to it. :)
Diffstat (limited to 'source/blender/render/intern/include')
-rw-r--r-- | source/blender/render/intern/include/render_types.h | 6 | ||||
-rw-r--r-- | source/blender/render/intern/include/rendercore.h | 3 | ||||
-rw-r--r-- | source/blender/render/intern/include/shading.h | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 16c46ec550f..de5c5485004 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -79,8 +79,8 @@ typedef struct RenderPart { struct RenderPart *next, *prev; - /* result of part rendering */ - RenderResult *result; + RenderResult *result; /* result of part rendering */ + ListBase fullresult; /* optional full sample buffers */ int *recto; /* object table for objects */ int *rectp; /* polygon index table */ @@ -113,6 +113,8 @@ struct Render RenderResult *result; /* if render with single-layer option, other rendered layers are stored here */ RenderResult *pushedresult; + /* a list of RenderResults, for fullsample */ + ListBase fullresult; /* window size, display rect, viewplane */ int winx, winy; diff --git a/source/blender/render/intern/include/rendercore.h b/source/blender/render/intern/include/rendercore.h index f2fae7cca84..d569028fc50 100644 --- a/source/blender/render/intern/include/rendercore.h +++ b/source/blender/render/intern/include/rendercore.h @@ -93,6 +93,9 @@ void zbufshade_sss_tile(struct RenderPart *pa); void addps(struct ListBase *lb, long *rd, int obi, int facenr, int z, unsigned short mask); +int get_sample_layers(struct RenderPart *pa, struct RenderLayer *rl, struct RenderLayer **rlpp); + + /* -------- ray.c ------- */ extern void freeraytree(Render *re); diff --git a/source/blender/render/intern/include/shading.h b/source/blender/render/intern/include/shading.h index e3ffe5ef28f..e015309784d 100644 --- a/source/blender/render/intern/include/shading.h +++ b/source/blender/render/intern/include/shading.h @@ -40,7 +40,9 @@ struct ObjectInstanceRen obi; /* needed to calculate shadow and AO for an entire pixel */ typedef struct ShadeSample { - int tot; /* amount of shi in use, can be 1 for not FULL_OSA */ + int tot; /* amount of shi in use, can be 1 for not FULL_OSA */ + + RenderLayer *rlpp[RE_MAX_OSA]; /* fast lookup from sample to renderlayer (fullsample buf) */ /* could be malloced once */ ShadeInput shi[RE_MAX_OSA]; |