Hi, Ken and Utkarsh.I'm not 100% sure I understand the padding. If something special is needed to get nice pictures out of some misbehaving graphics cards, that makes sense. However, here's my $0.02 from a user's perspective.
The image produced via padding should match, pixel for pixel, the same image produced without any padding (except for viewport crossing polygons on misbehaving graphics cards). For a specific image size in pixels, camera location/orientation, and field of view angle, the image is uniquely defined, and should look identical, whether rendered in ParaView, some CAD program, or a ray tracer. In my opinion, padding is fine, so long as the user never knows about it.
Correctness of the image is very important to what I do, especially when splicing images/scenes together for a movie. For example, while testing and setting up a scene, I might render it at a low resolution (so save time and disk space), and then in a production run, rerender after multiply that resolution by integer factors of 2 or 3 and average down for fine lines and antialiased edges. But if the original and downsampled images have different zooms, I'm stuck with visual discontinuity in my movie.
In the save dialogs (screenshot or animation), I would like the default pixel dimensions to match the exact dimensions of the 3D view in paraview (or, ideally, even stay the same as the last thing I typed in, with a button to reset to the dimensions of the 3D view, so there's no need to re-type them every time a screenshot is taken). Any padded numbers should happen behind the scene, and not be exposed through the dialogs boxes.
Also, automatically adjusting resolutions to nice multiples of 16 or whatever makes movie codecs happy is a nice feature. However, there are cases where this gets in the way. It would be nice to have a checkbox so the user has the option to allow this or not.
Thanks for considering this. Greg On 02/16/2011 07:54 AM, Moreland, Kenneth wrote:
Utkarsh, I'm guessing that this is more problems with the padding that is added when saving animations. I'm guessing that the padding is added because graphics cards sometimes do weird things to polygons that cross the viewport, and this causes noticeable artifacts when tiling images. I recently had to modify the behavior of the padding a bit to get around a similar problem when views with large aspect ratios noticeably changed zoom when the padding was added (http://www.paraview.org/Bug/view.php?id=9147). I fixed it by making the padding proportional to the image dimensions (http://paraview.org/gitweb?p=ParaView.git;a=commit;h=f87c66d4b4322743db187 cf3a0efeed3ffaa3e52). I suspect that there is a similar problem here. When you double the dimensions of the image, the padding stays the same. Because the geometry projection is based on the whole rendered window, including padding, and because the padding does not proportionally change with the image dimensions, the zoom of the clipped saved region is different. -Ken **** Kenneth Moreland *** Sandia National Laboratories *********** *** *** *** email: kmo...@sandia.gov ** *** ** phone: (505) 844-8919 *** web: http://www.cs.unm.edu/~kmorel On 2/16/11 8:30 AM, "Utkarsh Ayachit"<utkarsh.ayac...@kitware.com> wrote:Greg, I was able to reproduce the slight zooming effect as the resolution changes. I don't understand the camera transformation code employed that well, so it will need some tracking down. However the animation resolution issue definitely sounds like an easy fix. I'll take a look. Utkarsh On Wed, Feb 9, 2011 at 4:22 PM, Greg Schussman <schuss...@slac.stanford.edu> wrote:Hi. I've had some surprising results when saving images out of ParaView. I haven't had time to thoroughly examine results by looking at difference images until recently. Here's what I found. When I carefully size the ParaView 3D view to, say 1280x960, and then "File->Save Screenshot", the view looks the same. Comparing this with a screenshot taken from gimp (with the rest of the gui carefully cropped away), I find that the view is the same. There are some pixel differences along thin edges, but this should be acceptable, because the way the saved image is rendered might not be the same way as the screen image is rendered. But the view is the same. I do encounter problems, however, when I adjust the pixel resolution for saving a screenshot. If I double the resolution to 2560x1080, and then average that back down and compare it with the 1280x960 saved image, I would expect pixel differences where thin lines average down to slightly different antialiased colors. However, the actual view changes as well (zooms in), so What I See Isn't What I get. The view changes further if I save out at 3x the original resolution (doesn't match 1x or 2x). Again, I'd expect to see pixel differences from different anti aliasing, but the view itself shouldn't change (no zoom/pan/rotate). So then I investigated saving an animation frame. Although I wouldn't expect this to match the gimp screenshot for the same reasons that the 1x "save screenshot" image didn't, I would expect it to match the 1x screenshot. But it doesn't. Furthermore, animation frames at 2x, and 3x also don't match 1x in that the view changes (zoom is different). The change in zoom seems consistent with the change in zoom from "save screenshot" for 1x, 2x, and 3x. I think that the correct thing would be to have all zooms match each other, regardless of pixel resolution (at least, for the same aspect ratio images). It makes sense to me that the zoom changes would be consistent between "save screenshot" and "save animation", because I would expect the same routine to do the saving. However, I was suprised to find pixel differences between the 1x versions, the 2x versions, and the 3x versions. I would expect these to be, pixel-for-pixel strictly identical. To my eye, I haven't seen any obvious differences. But theoretically, shouldn't each 1x pair be identical? Same for 2x with each other, and 3x with each other? Another odd thing is that "save screenshot" defaults to the resolution of the 3d view. But, for some reason, "save animation" for a 1280x960 3d view defaults to 1259x944. I can understand automatic tweaking of animation frame resolutions so that they're nice multiples of 16 or 32 or whatever makes video codecs happiest. But in this case, 1280x960 is already a perfect multiple. It would be really nice if all methods of saving images were consistent with respect to view (zoom/pan/rotate). It's frustrating to try piecing movies and transitions together from animations and screenshots, only to have them not align due to these inconsistencies. It's also tedious to constantly have to fix the pixel resolution when saving animations because the default doesn't match the 3d view and the save screenshot resolution. It's also frustrating to have a 3d view with the correct aspect ratio, compose a nice scene, save it out, have it approved, and then come back to generate a high resolution version and find the edges of the model cropped off because the zoom changed out from under me. All the above behavior was in 3.11.0, 64 bit, checked out a couple days ago, and compiled on Fedora 14. I apologize for so much text, but because these seem related to me, I figured it made sense to keep them together. Any thoughts? Thanks. Greg _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview