"blinking" objects on Indigo 2

New Message Reply Date view Thread view Subject view Author view

Scott McMillan (mcmillan++at++cool.cs.nps.navy.mil)
Thu, 11 May 1995 13:14:41 -0700 (PDT)


I am developing an application that needs to run on both RE's and
EXtremes. I need to load in .flt models that have transparent
portions -- like a tree texture mapped to the surface of square
polygons so that any portion of the polygon outside the outline of
the tree is invisible.

Anyway to get the desired performance I want to turn texturing off on
the EXtreme. When I do that all of these objects start to blink on
and off erratically and sometimes they never show up. Below is what
I have in the drawChannel() function before the call to pfDraw():

   if (G_shared->reality_engine) { // flag set if machine is RE
      pfOverride(PFSTATE_ENTEXTURE | PFSTATE_TEXTURE, 0);
      pfEnable(PFEN_TEXTURE);
      pfEnable(PFEN_LIGHTING);
   }
   else {
      pfDisable(PFEN_TEXTURE);
      pfOverride(PFSTATE_ENTEXTURE | PFSTATE_TEXTURE, 1);

      // This is something I have to do for an Indigo2 Extreme to get
      // objects with alpha planes to stop blinking.
      pfOverride(PFSTATE_TRANSPARENCY, PF_OFF);
      pfTransparency(PFTR_ON);
      pfOverride(PFSTATE_TRANSPARENCY, PF_ON);
   }

The last three lines are what I had to add to get it to behave properly.

My questions are (1) can anyone explain what was happening to cause
the blinking in the first place and (2) is this the correct (read most
computationally efficient) way to overcome it?

Thanks in advance,
scott

-- 
Scott McMillan, Ph.D.     (408) 656-3316       mcmillan++at++cs.nps.navy.mil
         URL: http://cs.nps.navy.mil/people/faculty/mcmillan/
Dept. of Computer Science/Naval Postgraduate School/Monterey, CA  93943 
       "Manuals! Manuals!!  We don't need no stinkin' manuals!"

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:51:29 PDT

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