Index: [thread] [date] [subject] [author]
  From: Filip Spacek <spacek@geocities.com>
  To  : ggi-develop@eskimo.com
  Date: Mon, 22 Feb 1999 00:07:09 -0500 (EST)

Re: libGGI3d -- ready to code?

On Sun, 21 Feb 1999 Deamonprince wrote:

> > The problem with this is that we would have to have set of *fixed*
> > interfaces. Which is pretty close to actually having API. I do realize
> > that interfaces will be quite general and *might* cover all the
> > functionality any module would ever need but what if they aren't? Wouldn't
> > we get back to the well known bloat/mess?
> > 
> > I think that the only way is not to have a fixed interfaces. Now we
> > obviously have the problem with the fact that there is an infinite number
> > of interfaces, but if we know exactly the interface we can *create* the
> > translator. (hrrmm... 3d game requiring a c compiler? ;-) ) 
> > 
> I didnt mean completely fixed interfaces, I meant extending the types that
> an interface can recognise by certain types. For example all C knows
> are char int long double float and pointer. We could work with Vertex, Face, 3dSolid as out types, and more as the more 3d savy will define. That way at
> least we stand a chance of conversion, eg. Face will translate to N Lines, a
> line will translate to 2 vertexes. In my lectures on 3d/2d at uni the
> number of type we were dealing with were fairly limited. You could build
> a good interface of fixed types. The ultimate transformation builg
> Complex3dObject ----> Pixels.
> 
> But I see this breaking down as for simple Graeme case
> 
> Complex3dObject ---> Triangles ---> Pixels for rendered stuff.
> 
> or maybe
> 
> Complex3dObject ---> Curves --> Triangles ---> pixels.
> 
> Complex3dObject ---> Trianles ---> Lines ---> Pixels for wireframe.
> 
> And so on.

Well this all sort of resembles my idea. You start with a few predefined
interfaces such as Triangle, Line etc. But if you can define N Lines then
you can also define N doubles or more precisely 3 doubles which gives you
a Vertex. Same way you can take 3 Vertices to get a Triangle. This way you
don't have to predefine anything, which is I think the prefered method.

Also what exacly is Complex3dObject? There is about just as many
representations of this as there is 3d programs. We need a facility to
define complex object out of simple components. My previous attempts were
too clumsy, we don't really need a whole new language to define the
interface. Basically every interface is a union of one or more other
interfaces. So for example one Object might be defined as a union of
some number of triangles, where triangle is defined as a union of
three vertices and three normals (vectors) and these vertices (vectors)
are defined as union of doubles. This way every interface boils down to
good ol' int and doubles. 

> Now the trouble comes from Raytraced stuff where you start at pixels :-)

There's no trouble with Raytracing. The only difference is that you go
directly from Complex3dObject to pixels.

-Filip


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