diff options
author | Ton Roosendaal <ton@blender.org> | 2006-02-01 00:49:05 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-02-01 00:49:05 +0300 |
commit | 5e3170fafd0a64d562c5c9e94af42136e8e98af6 (patch) | |
tree | ec721bb3fbeeb9c30dd377b8098f744146ddc18c /source/blender/render/extern | |
parent | 397ee6768dca9e4696c608c7731f050ce4440802 (diff) |
Three features;
- Live scanline updates while rendering
Using a timer system, each second now the tiles that are being processed
are checked if they could use display.
To make this work pretty, I had to use the threaded 'tile processor' for
a single thread too, but that's now proven to be stable.
Also note that these updates draw per layer, including ztransp progress
separately from solid render.
- Recode of ztransp OSA
Until now (since blender 1.0) the ztransp part was fully rendered and
added on top of the solid part with alpha-over. This adding was done before
the solid part applied sub-pixel sample filtering, causing the ztransp
layer to be always too blurry.
Now the ztransp layer uses same sub=pixel filter, resulting in the same
AA level (and filter results) as the solid part. Quite noticable with hair
renders.
- Vector buffer support & preliminary vector-blur Node
Using the "Render Layer" panel "Vector" pass button, the motion vectors
per pixel are calculated and stored. Accessible via the Compositor.
The vector-blur node is horrible btw! It just uses the length of the
vector to apply a filter like with current (z)blur. I'm committing it anyway,
I'll experiment with it further, and who knows some surprise code shows up!
Diffstat (limited to 'source/blender/render/extern')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 10 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_shader_ext.h | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index d34fc968e77..a9b75184e36 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -65,8 +65,9 @@ typedef struct RenderLayer { unsigned int lay; int layflag, passflag; - float *rectf; /* standard rgba buffer */ - float *rectz; /* standard camera coordinate zbuffer */ + float *rectf; /* 4 float, standard rgba buffer */ + float *rectz; /* 1 float, standard camera coordinate zbuffer */ + float *rectvec; /* 2 float, screen aligned speed vectors */ ListBase passes; @@ -90,7 +91,10 @@ typedef struct RenderResult { /* the main buffers */ ListBase layers; - int actlay; /* copy of renderdata..., so display callbacks can find out */ + + /* allowing live updates: */ + rcti renrect; + RenderLayer *renlay; /* optional saved endresult on disk */ char exrfile[FILE_MAXDIR]; diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 3524523f9bc..b8bd46d784e 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -45,9 +45,12 @@ typedef struct TexResult { /* localized shade result data */ typedef struct ShadeResult { + float combined[4]; float diff[3]; float spec[3]; float alpha; + float nor[3]; + float winspeed[2]; } ShadeResult; @@ -76,7 +79,8 @@ typedef struct ShadeInput /* texture coordinates */ float lo[3], gl[3], uv[3], ref[3], orn[3], winco[3], sticky[3], vcol[3], rad[3]; - float vn[3], vno[3], facenor[3], view[3], refcol[4], displace[3], strand, tang[3], stress; + float vn[3], vno[3], facenor[3], view[3], refcol[4], displace[3]; + float strand, tang[3], stress, winspeed[3]; /* dx/dy OSA coordinates */ float dxco[3], dyco[3]; |