Index: [thread] [date] [subject] [author]
  From: =?iso-8859-1?Q?Niklas_H=F6glund?= <niklas@canit.se>
  To  : ggi-develop@eskimo.com
  Date: Thu, 4 Feb 1999 13:12:00 +0100

Re: libggi3d

If I have understood things correctly libggi3d is a very small toolkit
that is meant to link modules together.  These modules all take one
struct as input, and returns another (possibly identical) struct as
output.  Two modules can be linked together if the first one returns
the struct the other one wants as input.

What is being discussed right now is how to name the modules, and how
to identify which modules can be connected to a module.

I don't see a reason for why the names should be computer readable.
It seems reasonable to me to let the module authors name their modules
however they want.

For how to decide if two modules can connect, ints and strings as
identifiers have been suggested. The disadvantage of ints is that with
them one have to be careful so that two different game companies, for
example, don't use the same value for two different structs.  As
pipeline construction always is done during program initialization,
the slightly higher cost of a string compare is extremely small
compared to the actual loading of the module from disk.


I like the idea of a benchmarker that can automatically choose the
most efficient pipeline.  It's a neat idea.  I see some problems with
it, though.  The efficiency of different pipelines may highly depend
on factors that are difficult to measure, such as:

1. System load
   
   - May affects weather to use a slow hardware-accelrated modules or
     faster software algorithms.  (Probably not a very common one, but
     with slow hardware on a multiprocessor machine it would
     certainly, and also when doing strange things with very
     specialized software modules where hardware accelration have to
     be made in a very inefficient way.)


2. Scene complexity

   - Different algorithms are good for different cases.


3. Visual quality of the result.


The optimizer isn't neccessary to use libggi3d, though.  It's nice if
someone makes it.  A demo where one can switch pipelines on the fly to
see the difference in framerates would probably do just as fine.  With
that one could also easily see how some modules that make the result
look better slow down the rendering.

-- 
						Niklas

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