Thanks for this explanation. Really interesting. I'm glad having read that mail. What would happen if the square were not in the (x,y) plane. The function become a f(x,y,z) function ? Or by writing f(x,y) you meant f(i,j) where i and j are locl coordinates ?
2010/10/15 Moreland, Kenneth <kmo...@sandia.gov> > If I can, I would like to expand the conversation a little bit because I > don’t think the technical details are telling the whole story. > > The root of the problem is that the interpolation of a scalar field based > on the four corners of a square (or any quadrilateral) is in general > ill-defined. We usually mean for field to be linearly interpolated between > the points. That is, find some function of the form f(x,y) = a*x + b*y + c > that gives the correct scalar for all four points. But, in fact, four > points over constrain the problem and no such linear function exists. > > So really, the differences you are seeing are the differences between how > the internal VTK functions resolve the interpolation and how your rendering > hardware is doing it. I haven’t looked at the source code, but I’m assuming > that VTK is using something like bilinear interpolation. Bilinear > interpolation works by first interpolating the scalar on opposite edges and > then interpolating again between these edges to get a point in the interior. > Bilinear interpolation has several advantages: it can be done independently > of neighboring polygons and still be C0 continuous, it is easy to implement, > it is smooth in the interior, and it gives an interpolation that intuitively > makes sense. Note, however, that bilinear interpolation is *not* linear. > This is evident by your plot (which is a parabola). > > Your graphics driver is much more concerned with speed. As such, it takes > your quadrilateral and breaks it into triangles. This circumvents the whole > interpolation problem because the three vertices of the triangle perfectly > constrain the linear function. It is also easy for the graphics hardware to > compute the interior of the triangle. Of course, the result is not as, > shall we say, pleasant as bilinear interpolation. It is not smooth: There > is a C1 discontinuity at the line where the quadrilateral was split into > triangles. Also, this splitting is arbitrary. The split could just as > easily been made in the opposite direction. In that case, you would see a > red line go from upper left to lower right instead of that blue line from > lower left to upper right. > > So the rendering is probably not what was indented when defining the scalar > value on a quadrilateral. However, ParaView allows it because correcting > the problem would make the rendering prohibitively slow. Furthermore, it is > rarely even noticeable. The square in this example is worst case. Not only > do no linear functions fit, they are not even close. Thus, the different > ways to resolve the issue are dramatically different. In a practical > application, this does not occur. The scalar values tend to more closely > fit a linear function. If a quadrilateral like this occurred in a real data > set, it might be indicative of a meshing problem. Furthermore, real meshes > have lots of facets. If this square was a small part of a much bigger > surface, differences in interpolation are less meaningful. > > In short, the interpolation your graphics hardware performs is sufficient > for qualitative analysis (getting an overview of behavior), which is all its > really good for anyway. When you do qualitative analysis (showing actual > numbers in the data) such as in your plot, the more accurate interpolation > models of VTK are used. > > -Ken > > > > On 10/14/10 9:06 AM, "Andy Bauer" <andy.ba...@kitware.com> wrote: > > > > 2010/10/14 小縣信也 <so020...@gmail.com> > > Hi Andy, > > Thank you for replying. > Do you mean that the rendering image doesn't reflect the result of > interpolation ? > > > Yes. > > > If so, what is the most common usage? > In what situation is the interpolation used ? > > > If your grid uses triangles then the image should match the interpolation > for the typical node/point based interpolation. > > > > Shinya > > > 2010/10/13 Andy Bauer <andy.ba...@kitware.com>: > > I think this is a rendering issue and not an interpolation issue. From > the > > 2d plot you can see that it's properly interpolating the values. I think > > the quadrilateral is getting rendered as 2 triangles in which case the > > diagonal values appear to be constant since the 2 end points are at the > same > > value. > > > > 2010/10/12 小縣信也 <so020...@gmail.com> > >> > >> Hello > >> > >> I'm sending the following e-mail again ,because nobody answered it. > >> Does anyone have information on my problem? > >> > >> Shinya > >> > >> > >> ---------- Forwarded message ---------- > >> From: 小縣信也 <so020...@gmail.com> > >> Date: 2010/10/7 > >> Subject: Interpolation problem > >> To: paraview@paraview.org > >> > >> > >> Hello, paraview users > >> > >> I draw the file “Sample_inter.vtk” on ParaView. (ref:attached file) > >> I chose “Gouraud” in Interpolation option. > >> The contor picture doesn’t seem to be interpolated by 4 points. > >> However,the graph which is made by PlotOverLine shows the gradation of > >> 4 points scalar. > >> Why are they different? > >> Does anyone know this problem? > >> How can I make contour picture interpolated by Gouraud ? > >> > >> I look forward to your reply to my inquiry > >> > >> Shinya Ogata > >> > >> _______________________________________________ > >> Powered by www.kitware.com <http://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