Index:
[thread]
[date]
[subject]
[author]
From: teunis <teunis@computersupportcentre.com>
To : ggi-develop@eskimo.com
Date: Thu, 20 Aug 1998 18:29:02 -0700 (MST)
Re: LibGGI3D RFC
On Thu, 20 Aug 1998, Jon M. Taylor wrote:
> On Thu, 20 Aug 1998, teunis wrote:
>
> > On Thu, 20 Aug 1998, Jon M. Taylor wrote:
> >
> > > On Wed, 19 Aug 1998, teunis wrote:
> > >
> > > > On Wed, 19 Aug 1998, Jon M. Taylor wrote:
> > > >
> > > > > On Wed, 19 Aug 1998, teunis wrote:
> > > >
> > > > I'm curious, as moving any of the X,Y[,Z] coordinates will affect the
> > > > remainder of the coordinate list...
> > >
> > > For one triangle this shouldn't be a problem. For a set, you do
> > > what you can.
> >
> > so what happens if you clip a triangle and you lose the corner [u,v]
> > coordinates? All of a sudden your texture is moving around when it gets
> > clipped. The same happens for colourblending when you have discrete
> > colour components per-corner - all of a sudden your blends get messed
> > up...
> >
> > How do you mean to handle this?
>
> Clip and retesselate the triangle before you apply a texture map.
> Won't that take care of the problem? I have to admit that my texture
> mapping knowledge is not a strong as it could be, but I'm not seeing why,
> if you clip and retesselate the triangle(s) before you do any shading, you
> won't be OK.
Finally! -THIS- is the issue behind clipping.
According to the person who wrote the GGI3D FAQ, tesselation is -not-
something to be handled by libGGI3D.
[and applying a texture is alot easier before tesellation imho]
> > > > > > > - I want clipping in libggi3d also.
> > > > > >
> > > > > > See above... and this requires also the camera info (view frustrum,etc)
> > > > > > to be available....
> > > > >
> > > > > Right.
> > > >
> > > > So how does this work?
> > >
> > > Attach it as a struct to the visual.
> >
> > not what i meant *sigh*. I mean how do you expect clipping to work?
>
> Oh. Sorry |->. Well, I guess it would really depend on the
> rendering target. If rendering directly to triangle hardware, maybe no
> clipping at all (the HW would do it). If rendering to a depth buffer,
> you could render eatch triange or triangle set into a secondary buffer
> sized to not need clipping and then copy that into the master buffer, or
> directly into the master buffer if no shading/texturing issues are present.
>
> The point is that the clipping is target-specific. there won't be
> one (or more) "standard" LibGGI3D clipping techniques, because there are
> so many different ways to render 3D. In LibGGI2D, things are a lot
> simpler. In 3D, you can render to a 2D buffer and clip there, or you can
> render to 2D hardware with hardware clipping, or you can do a
> sutherland-hodgman algorithm in 3D, or you can retesselate, or you can
> retesselate with varios kinds of interpolation, or you can render into a
> depth buffer and clip there, or you can render into a hardware depth
> buffer and the hardware will clip, or you can render triangles directly to
> the hardware, or... see my point?
Ah - but available clipping methods may vary per renderer as well...
texturemapping - none, tesellation, interpolation, depth-buffers only
(you -don't- want to lose where the U,V should be when you clip!)
> > [clip]
>
> Heheh. At last that clipper is simple |->.
yep!
> > > > Though there should be some kind of internal mechanism for handling
> > > > display memory! (so it doesn't get all fragmented and can be used
> > > > effectively!)
> > >
> > > I guess the buffer system doesn't *have* to be in a target. AAIK
> > > is isn't(?) in LibGGI2D.
> >
> > Supposedly DirectBuffer handles this. Will someone -please- tell me the
> > status on non-primary-display DirectBuffers?!?!?!?!??!
> > WHAT NEEDS DOING?
>
> Don't ask me, I'm just learning this stuff. If it hasn't been
> done, it will probably have to be implemented as part of writing LibGGI3D.
> Not initially, but eventually.
It's missing in libGGI2D as well. the libGGI powers-that-be said "not in
GGI" and noone has finished an extension to handle it.
That's why I keep asking! (and getting the runaround)
I'm wondering what -it's- API / modus operandi should be!
G'day, eh? :)
- Teunis
Index:
[thread]
[date]
[subject]
[author]