diff options
author | Ton Roosendaal <ton@blender.org> | 2006-08-12 15:27:00 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-08-12 15:27:00 +0400 |
commit | e47137ff42ac241fe6c68d4df3466b030315edee (patch) | |
tree | c19568b96be11e36d0e548e5bcae92fa9f37be83 /source/blender/include/BSE_drawview.h | |
parent | 3be0a5ad708312552ad3abd65184670df8f2f22d (diff) |
Bugreport #4787 mentioned subpixel render issues, especially for small
images (like used for rendering icons).
When working during Orange on new render pipeline, I've left this topic
alone for a while... subpixel precision testing is very time consuming and
needs concentration for a while. :)
This commit brings back precision as it was for 2.41. Below a short
explanation of the solved issues.
- the window matrix for rendering is kept constant during all OSA passes,
this to ensure clipping happens for each pass identically.
- a subpixel offset is only applied on filling in the z-buffer
- this offset is inverse corrected for shadepixel code, only on 2 places
Another nasty issue is that for filtered rendering (gauss etc), the tiles
(or entire image) is temporally increased 2 pixel in size. This caused a
'dark' (or sky color) edge on the rendering. During Orange that was solved
with a hardcoded clipping offset value, which only corrected for larger
pictures (like > 500 pixels in size).
Now this clipping offset is correctly calculated, based on render size.
Last issue: the view border in 3d window was calculated using integers,
giving small errors in display too. Now it uses float, so visually the
view border is more close to what a render shows.
Diffstat (limited to 'source/blender/include/BSE_drawview.h')
-rw-r--r-- | source/blender/include/BSE_drawview.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/include/BSE_drawview.h b/source/blender/include/BSE_drawview.h index 70793f88ce2..041381bbb1a 100644 --- a/source/blender/include/BSE_drawview.h +++ b/source/blender/include/BSE_drawview.h @@ -35,7 +35,7 @@ struct Object; struct BGpic; -struct rcti; +struct rctf; struct ScrArea; struct ImBuf; @@ -61,7 +61,7 @@ void drawview3dspace(struct ScrArea *sa, void *spacedata); void drawview3d_render(struct View3D *v3d, int winx, int winy); int update_time(void); -void calc_viewborder(struct View3D *v3d, struct rcti *viewborder_r); +void calc_viewborder(struct View3D *v3d, struct rctf *viewborder_r); void view3d_set_1_to_1_viewborder(struct View3D *v3d); int view3d_test_clipping(struct View3D *v3d, float *vec); |