Index: [thread] [date] [subject] [author]
  From: Tristan Wibberley <bloater@ps.cus.umist.ac.uk>
  To  : ggi-develop@eskimo.com
  Date: Wed, 3 Feb 1999 11:43:58 +0000 (GMT)

Re: libggi3d non-clarity

On Tue, 2 Feb 1999, Aaron Gaudio wrote:

> And lo, the chronicles report that Xavier Bouchoux spake thusly unto the masses:

[snippage]

> > - a way to know which modules are hardware accelerated
> >       (actually, that doesn't means a lot.  The actual thing is more a
> > way of knowing wich module is faster, and how fast they are. In order
> > for the app to decide if it can use them or not.)
> 
> Hmm...I don't think there is a clean way of telling which module is
> actually faster. That is heavily platform dependant and could in fact
> change depending on the situation. You'd actually lose more time trying
> to test which modules or groups of modules is most efficient than if you
> just picked one randomly (in fact, that's provable).

An install time test can do this, put the results into a file. If the app
asks to know about the performances, load the file. The file would have to
store data about the system (CPU info, RAM, Video Board - one file for
each system and a utility to clean up the unneeded data).

> However, it is
> often very important to know if a module will use hardware acceleration
> to do its job. This will often determine whether you use that module or
> not (for instance, you probably don't want unaccelerated bump-mapping to
> be in the mainstream pipeline).

What if you're on a processor that's really good, and the video card
isn't. You want to do SW rendering all the way - but the app can't know
that.

> > 
> > I think that the pipeline should be built dynamically at run time (It
> > can be computationally expensive: it is run only once!)  because that's
> > one advandage of libggi3D when not using high level API (only). 
> > With (as an option) configuration files, to skip this step for usual API
> > (openGL has its pipeline built only once).

I think both would be good. Let the app choose with #defines whether the
pipeline should be built at runtime or compiletime.

> I would have the pipeline built during an initialization step. With 
> support for multithreading and data sharing, the same GGI3D system could
> be loaded by one application and used by many, so that the initialization
> does not take as long.
> 
> > > > (But that can be a problem, because  maybe the lighting module isn't
> > > > aware of what's going on at the other end of the pipeline, and that
> > > > there's a rasterizer. An other problem with modularity....)
> > 
> > The point here was that you can't make the lighting module indepently
> > from the rasterizer module (as it should), because you do need to pass
> > some data to it. So you need to know things about it.
> > That's not good for modularity!
> 
> As long as lighting and rasterizing are not being done simultaneously (which
> woudl require a lighting/rasterizing module), the modules themselves don't
> need to know anything about one-another other.

How is radiosity typically done?

--
Tristan

Index: [thread] [date] [subject] [author]