|
From: Hans-Bernhard B. <br...@ph...> - 2005-07-29 17:39:06
|
Daniel J Sebald wrote:
> Hans-Bernhard Broeker wrote:
>> Daniel J Sebald wrote:
>>> course, this demo example doesn't have high enough spatial frequency
>>> to cause aliasing.)
>> That's quite exactly wrong. All pm3d plots, indeed almost exactly
>> *every* plot gnuplot is capable of generating, contains ample amounts of
>> infinitely high spatial frequency details --- every thing we output has
>> perfectly sharp borders, including the coloured areas generated by pm3d.
> No, the example I was referring to is a low frequency sinc function that
> is adequately sampled.
I think we're talking about two different sampling processes here.
A PM3D function plot that ends up on any raster device (no matter
through which driver) always involves at least two sampling processes:
one from a (hopefully) continuous 3D surface to a polygon mesh, the from
from that polygon mesh to pixels. The sampling frequency for the first
one (controlled by "set isosamples" and "set samples" in gnuplot) may be
as smoothly and adequately sampled as it wants: the polygon mesh that
comes out of this process still has sharply defined corners and edges
(e.g. a sharp boundary between two uniformly gray rectangles of
different gray values), and those will quite certainly alias as they get
scan-converted to pixels. It's this latter sampling process and the
aliasing it generates that we're having problems with.
The only way to keep that from happening would be to match the "set
{iso}samples" settings in gnuplot exactly to the actual output
resolution. For drives like GD, X11 and some others, that's possible;
for PostScript it's not.
> which is correct. From ghostview's perspective, whenever the display is
> of lower resolution than the image contained inside the PostScript file,
> there is the possibility of aliasing and antialiasing should be
> applied.
For gnuplot output, the image is pretty much always of infinite spatial
resolution: we have razor-sharp edges all over the place. Ghostscript
trying to antialias its display of what we give it is therfore perfectly
justified. The problem is not that gs tries to antialias, it's that it
fails to get it done.
> For all I know, "antialiasing" in GhostView could mean both antialiasing
> (more image pixels than screen pixels) and reconstruction (more screen
> pixels than image pixels). In fact, that is probably the case. I say
> that because I have used GhostViews zoom function to greatly expand a
> few pixels in a subwindow.
You're missing an important details: PostScript doesn't *have* pixels.
It's a vector-based graphics description format. Pixels and aliasing
only get involved as this continuous description gets mapped to discrete
output formats.
|