From: Angus Dorbie (dorbie++at++sgi.com)
Date: 06/22/2001 20:39:55
Congratulations on your progress.
For larger scenes you need to load your new textures a bit at a time
before you add the geometry to the scene graph for drawing.
If would probably be enough to ::apply() one new pfTexture each frame in
the draw process before adding the geometry to the scene graph in the
application process, so for each loaded node, build a list of
pfTextures, pass that list to the draw process through shared memory and
in the draw process ::apply one texture each frame from the list, it's
best to do this immediately after the screen clear. After several frames
you will have completed this and you can signal back to the app, through
shared memory that it can add the new pfNode to the pfScene.
Obviously you need to delete old parts of the scene graph & associated
textures to make room for the new stuff.
The maximum overhead you will experience each frame is the creation of
one new pfTexture, this should even performance out considerably. To do
any better than this involves considerable work with subloads to spread
the loading of even a single texture over several frames.
Cheers,Angus.
kcc++at++DynRes.com wrote:
>
> I tried loading the scene contents from the very beginning and use pfuMakeScene and pfuDownloadTexList, just like Perfly does.
> It works great for smaller databases. For bigger scenes, it is better than before but there are still glitches.
> What do I need to do to get rid of the glitches completely. Any info will be helpful.
>
> Kevin
>
> -----Original Message-----
> From: MIME :dorbie++at++sgi.com
> Sent: Tuesday, June 19, 2001 9:51 PM
> To: info-performer++at++sgi.com
> Subject: Re: A question about the Loader
>
> There are two calls, pfuMakeSceneTexList and pfuDownloadTexList these
> can be used to build a list of textures from a scene and then to
> download it to memory. You still have to load the textures, and that's
> really up to the app. Since textures are shared based on filename it
> should be enough simply to load the textures in Performer and build the
> list manually then call pfuDownloadTexList. The other approach is to
> create soem surrogate geometry with your textures applied to it and load
> that at the start. You can then add this to the scene and draw it at the
> start before removing it from the scene or use pfuMakeSceneTexList to
> build the list from it and then use pfuDownloadTexList.
>
> Perfly uses these calls but doesn't page data, all it's scene contents
> are loaded from the very beginning.
>
> Cheers,ANgus.
>
> kcc++at++DynRes.com wrote:
> >
> > Angus, thanks for the help.
> >
> > Is there sample code anywhere for preloading all textures into texture
> memory from system memory (the "easier" way)?
> >
> > Kevin
> > -----Original Message-----
> > From: MIME :dorbie++at++sgi.com
> > Sent: Monday, June 18, 2001 9:58 PM
> > To: Kevin C. Chao
> > Cc: info-performer++at++sgi.com
> > Subject: Re: A question about the Loader
> >
> > You need to page asynchronously in the dbase process and then merge
> > memory buffers in the app process to let the app know instantly about
> > the object you have loaded over several frames. You can then add to the
> > scene graph and it should hit the draw a few frames later.
> >
> > This may still cause some draw glitches due to texture loading from
> > system memory to texture memory which you can work around by managing
> > texture memory (which is difficult) or by preloading all textures
> > (easier) but as a first attempt it should be MUCH better than your
> > current approach.
> >
> > There is sample code in the pguide section and there are detailed
> > discussions in the Performer email archives on how to do this.
> >
> > Cheers,Angus.
> >
> > kcc++at++DynRes.com wrote:
> > >
> > > Hi,
> > >
> > > Here is my question, please help.
> > > Our driving simulation uses Performer for animation and Multigen for
> > database creation. It calls pfuLoadFile("DatabaseName.flt") every time when
> > loading a new road database. For larger databases, we found
> > > that there are some graphical glitches (pauses on the graphics) the first
> > time driving through the road, but the problem goes away on the second and
> > succeeding runs. It looks like the visual objects are
> > > paged in from the disk to the memory on the first run. Is there a way to
> let
> > the database loaded to the memory all at once?
> > >
> > > Kevin
> > >
> > > -----------------------------------------------------------------------
> > > List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> > > Open Development Project: http://oss.sgi.com/projects/performer/
> > > Submissions: info-performer++at++sgi.com
> > > Admin. requests: info-performer-request++at++sgi.com
> >
> > --
> > For Performer+OpenGL tutorials http://www.dorbie.com/
> >
> > "Whenever there is a conflict between human rights and property
> > rights, human rights must prevail."
> > --Abraham Lincoln
> > -----------------------------------------------------------------------
> > List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> > Open Development Project: http://oss.sgi.com/projects/performer/
> > Submissions: info-performer++at++sgi.com
> > Admin. requests: info-performer-request++at++sgi.com
> > << File: ENVELOPE.TXT >>
> > -----------------------------------------------------------------------
> > List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> > Open Development Project: http://oss.sgi.com/projects/performer/
> > Submissions: info-performer++at++sgi.com
> > Admin. requests: info-performer-request++at++sgi.com
>
> --
> For Performer+OpenGL tutorials http://www.dorbie.com/
>
> "Whenever there is a conflict between human rights and property
> rights, human rights must prevail."
> --Abraham Lincoln
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Open Development Project: http://oss.sgi.com/projects/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
> << File: ENVELOPE.TXT >>
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Open Development Project: http://oss.sgi.com/projects/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
-- For Performer+OpenGL tutorials http://www.dorbie.com/"Whenever there is a conflict between human rights and property rights, human rights must prevail." --Abraham Lincoln
This archive was generated by hypermail 2b29 : Fri Jun 22 2001 - 20:36:05 PDT