|
From: Pierre <pie...@gm...> - 2007-02-07 20:12:22
|
On 2/7/07, Ethan Merritt <merritt@u.washington.edu> wrote: > On Wednesday 07 February 2007 11:44, Hans-Bernhard Br=F6ker wrote: > > Pierre wrote: > > > > > I'm not sure to understand why it is biased. Each vertex color is > > > known. The first vertex is the top left one, after they have been > > > sorted. > > > > The bias lies in picking the top left vertex as "the first". > > This can cause nasty effects like: the same triangle comes out subtly > > different if the scene is rendered upside down or rotated by 90 degress= , > > even though the result should be exactly the same. > > That is true, but the failure mode is usually harmless. If you rotate the > triangle in 3D its coloring may change very slightly, but if it is a > single facet of a larger surface this will probably not be noticed since > the adjacent triangles are similarly affected. I will add a custom version to test these cases using numerical results (output the edges values to a file and compare them). We can then see if the error is acceptable. As you say, I do not expect any noticeable differences. > > the same issue can cause edges to be drawn differently if you switch th= e > > order of their vertices in the drawline() function call. > > This is the more important issue, as I tried to point out before. > In rendering a tesselated surface, it is common that the same edge > will be traversed in different directions in the course of rendering > the two facets that it separates. In order to assure smooth coloring > across the break, it is crucial that the direction of traversal not > affect the color assignment. The "psychedelic example shows a case where the same edge is shared between different triangles. I did not see any artifacts. It was expected as the slopes and delta are not affected by the position of the vertex, it is alway V(n) - V(n-1), where n is the first or not should not change the constant slopes and delta. If yes, we will see it with the numerical tests (hopefully :). --Pierre |