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/src/edit.c | |
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/src/edit.c')
-rw-r--r-- | source/blender/src/edit.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/src/edit.c b/source/blender/src/edit.c index c48539ba736..bad89da633f 100644 --- a/source/blender/src/edit.c +++ b/source/blender/src/edit.c @@ -247,7 +247,7 @@ int get_border(rcti *rect, short flag) BMF_DrawString(G.fonts, str); } else if(G.vd->persp==2) { - rcti vb; + rctf vb; calc_viewborder(G.vd, &vb); |