Re: PFGS_POLYS in Performer 2.0

New Message Reply Date view Thread view Subject view Author view

John Rohlf (jrohlf++at++tubes)
Fri, 2 Feb 96 17:17:39 PST


> > ----------- .
> > | | . |
> > | | . |
> > | | . |
> > | | . |
> > ----------- ----------
> >
> > wireframe mode filled polygon
> >
> >
> >
> > Does anybody know what I am doing wrong here?
> >
> >
> >
> > Daniela
> >
> >
> >
> >
> > --
> > Daniela Rainer
> > rainer++at++rus.uni-stuttgart.de
> >-- End of excerpt from Daniela Rainer
>
>
> and
>
>
> On Jan 15, 11:44am, Rejean Chartrand wrote:
> > Subject: RE: RE: Polygons in Performer 2.0
> > I understand the concept of backfacing but the problem in this case is not
> > that.
> >
> > If backfacing was the problem, then the polygon would be either totally
> > displayed or not displayed at all but not half of it. By looking at the way
> > the vertices are enumerated, the true normal of the polygon shall in fact be
> > {0.0, -1.0, 0.0}. But the problem seem to be that polygons in Performer 2.0
> > (which is a new primitive) are displayed as triangles but it seem that the
> > normal is flipped from one polygon to the other.
> >
> > Any idea how to solve that ? (Maybe by not using the PFGS_POLYS primitive)
> >
> > And what appends if the polygon is concave (which is not the case here), will
> > it be drawn correctly ?
> >-- End of excerpt from Rejean Chartrand
>
> I am a bit surprised that nobody from the Performer Developpers group have not
> answered that question because to me I consider it as one. Does it really
> mean that PFGS_POLYS are unusable in Performer 2.0 or what ?
>
> I would like somebody from SGI to comment on that.

PFGS_POLYS are broken in 2 ways in 2.0:

1. Intersection caching (PFIS_CACHE) will core dump on PFGS_POLYS.
2. IRIS GL PFGS_POLYS will be drawn incorrectly as is illustrated above.

While there is no workaround for (1), you can either use
the OpenGL version: libpf_ogl.so or you can use PFGS_TRISTRIPS
instead of PFGS_POLYS. Note that the 2 are identical except for vertex
ordering and when drawn in wireframe, inner edges of PFGS_TRISTRIPS will
be seen while PFGS_POLYS will only show outer edges. Performer
assumes PFGS_POLYS are convex. A convex POLY of N verts can be rendered as
a TRISTRIP accordingly:

bgntstrip();
v[0]
v[1]
v[N-1]
v[2]
v[N-2]
.
.
.
endtstrip();

Sorry for the inconvenience.


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:21 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.