Re: Transparent Sorting Bug(?) in Performer

New Message Reply Date view Thread view Subject view Author view

From: Angus Dorbie (dorbie++at++sgi.com)
Date: 04/11/2000 19:05:25


Angus Dorbie wrote:
>
> This is not a bug.
>
> After a bit of investigation it looks like you had a draw callback above
> the geosets on the logo geode added in the logoNode function, it isn't
> #if'ed with ADD_DRAW_CALLBACK. Draw callbacks stop sorting below the
> node. Maybe the DCS fixed this because of some undocumented behaviour,
> since we don't sort state below a DCS it perhaps didn't see a problem

This should read, since we don't sort state *ACROSS* DCSs, my thinking
is it might subtly affect the sort heuristics of the 'ping pong' routine
when underneath the DCS w.r.t. range sorting.

Cheers,Angus.

> sorting with dept major. Removing the geode draw callback fixed the
> problem.
>
> Also (and I haven't checked the permutations with this) I added the
> following calls:
>
> chan->setBinSort(PFSORT_TRANSP_BIN, PFSORT_BACK_TO_FRONT, NULL);
> chan->setTravMode(PFTRAV_CULL, PFCULL_VIEW | PFCULL_SORT |
> PFCULL_GSET);
>
> At least one of these is the default but I'm just being explicit here to
> make it clear where all the hooks for this stuff are and what's required
> to make it work.
>
> Cheers,ANgus.
>
> MLM Veraart wrote:
> >
> > Hello,
> >
> > I think I have found a bug in Iris Performer.
> > It is about sorting of transparent geometry.
> > In a testcase have located the error. It can be solved
> > by putting an Identity pfDCS() in front of the geometry
> > that is wrong sorted.
> >
> > The performer scene graph of the NON working case is
> >
> > pfScene
> > |
> > +-- pfGeode -- pfGeoset (cube flt file)
> > |
> > +-- pfDCS[T(20,3,0)] -- pfGeode -- pfGeoset
> > | (quad with iris texture around 0,0,0)
> > |
> > +-- pfGeode -- pfGeoset
> > | (quad with logo texture around 20,6,0)
> > |
> > +-- pfDCS[T(20,9,0)] -- pfGeode -- pfGeoset
> > | (quad with iris texture around 0,0,0)
> > |
> > +-- pfGeode -- pfGeoset
> > (quad with logo texture around 20,12,0)
> >
> > When viewed the two logo quads are drawn first and the the two iris quads.
> > But when I add a pfDCS with an identity matrix in front of the logo quads
> > the sorting is done in the right way.
> >
> > The performer scene graph of the working case is
> >
> > pfScene
> > |
> > +-- pfGeode -- pfGeoset (cube flt file)
> > |
> > +-- pfDCS[T(20,3,0)] -- pfGeode -- pfGeoset
> > | (quad with iris texture around 0,0,0)
> > |
> > +-- pfDCS[T(0,0,0)] -- pfGeode -- pfGeoset
> > | (quad with logo texture around 20,6,0)
> > |
> > +-- pfDCS[T(20,9,0)] -- pfGeode -- pfGeoset
> > | (quad with iris texture around 0,0,0)
> > |
> > +-- pfDCS[T(0,0,0)] -- pfGeode -- pfGeoset
> > (quad with logo texture around 20,12,0)
> >
> > For me this is a workaround for the application I have now.
> >
> > Is this a bug in performer 2.2.4?
> >
> > You can find the files of the test program based on complex.C
> > at the following URL http://alley.fel.tno.nl/~rioj7/TransparentSorting/
> >
> > Thanks in advance.
> >
> > Mario Veraart
> > -----------------------------------------------------------------------
> > List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> > Submissions: info-performer++at++sgi.com
> > Admin. requests: info-performer-request++at++sgi.com
>
> --
> For Performer+OpenGL tutorials http://www.dorbie.com/
>
> "In the middle of difficulty lies opportunity."
> --Albert Einstein
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com

-- 
For Performer+OpenGL tutorials http://www.dorbie.com/

"In the middle of difficulty lies opportunity." --Albert Einstein


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Apr 11 2000 - 19:05:32 PDT

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