Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Graphics > OpenGL 3D API > Re: gluTesselat...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 9 of 13 Topic 4878 of 5017
Post > Topic >>

Re: gluTesselation - Combine Problems

by uuilly <willy.lists@[EMAIL PROTECTED] > Aug 21, 2008 at 06:15 PM

On Aug 21, 5:45=A0pm, uuilly <willy.li...@[EMAIL PROTECTED]
> wrote:
> On Aug 21, 5:35=A0pm, uuilly <willy.li...@[EMAIL PROTECTED]
> wrote:
>
>
>
> > On Aug 21, 4:58=A0pm, "jbwest" <jbw...@[EMAIL PROTECTED]
> wrote:
>
> > > "uuilly" <willy.li...@[EMAIL PROTECTED]
> wrote in message
>
> >
>news:b204512e-7fb7-4fdc-9d46-369db9277154@[EMAIL PROTECTED]
> > > On Aug 21, 9:11 am, "jbwest" <jbw...@[EMAIL PROTECTED]
> wrote:
>
> > > > <willy.p...@[EMAIL PROTECTED]
> wrote in message
>
> > >
>news:c45bd917-ce46-4f04-82e7-4cf6508e6e15@[EMAIL PROTECTED]
> > > > On Aug 20, 5:40 pm, "jbwest" <jbw...@[EMAIL PROTECTED]
> wrote:
>
> > > > [...]
>
> > > > > Gosh, it's been a while... Is it a closure problem? Do you need
t=
o add a
> > > > > last point =3D 1st in the input data to close up the polygon ?
>
> > > > > jbw
> > > > >I've tried w/ and w/o a last=3D=3Dfirst. It's funny, it fixes
some=
 of the
> > > > >counties and breaks just as many others. Any other thoughts? My
ne=
xt
> > > > > move is to write my own tessellation algorithm.
>
> > > > That's definitely a closure, off-by-one or last-triangle logic
prob=
lem.
> > > > I've
> > > > never had problems with the much-maligned tesselator with very
comp=
lex
> > > > geometries. Surely you can just trace what's being emitted and see
=
why the
> > > > last triangle isn't being created (or has the wrong winding ?).
>
> > > > jbw
> > > >I think I get closure, first =3D=3D last, but what is an: "Off by
on=
e" or
> > > >"last triangle logic problem"? =A0Thanks for the advice btw.
>
> > > Your sample data doesn't even invoke Combine on my Linux glu
Tesselat=
or
> > > sample app. Just a combination of tri-strips and tri-fans, resulting
=
in a
> > > rectangle. One or the other of those types of BEGIN appears to be
> > > implemented wrong in your app. Otherwise, does this note apply to
you=
 ?
>
> > > "Notes
> > > It is a common error to use a local variable for location or data
and=
 store
> > > values into it as part of a loop. For example: for (i =3D 0; i <
NVER=
TICES;
> > > ++i) {
> > > =A0 GLdouble data[3];
> > > =A0 data[0] =3D vertex[i][0];
> > > =A0 data[1] =3D vertex[i][1];
> > > =A0 data[2] =3D vertex[i][2];
> > > =A0 gluTessVertex(tobj, data, data);
> > > =A0 }
>
> > > This doesn't work. Because the pointers specified by location and
dat=
a might
> > > not be dereferenced until gluTessEndPolygon is executed, all the
vert=
ex
> > > coordinates but the very last set could be overwritten before
tessell=
ation
> > > begins.
>
> > > Two common symptoms of this problem are consists of a single point
(w=
hen a
> > > local variable is used for data) and a
GLU_TESS_NEED_COMBINE_CALLBACK=
 error
> > > (when a local variable is used for location."
>
> > > jbw
>
> > Wow. =A0Can you paste all your gluCallbacks here?
>
> I am not even using callbacks for begin and end. =A0I'm just passing the
> raw gl routines. =A0Combine callback and tessError are my only two
> custom callbacks.
>
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_BEGIN, ( GLvoid( * )
> ( ... ) )glBegin );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_END, ( GLvoid( * )
> ( ... ) )glEnd );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_VERTEX, ( GLvoid( *
)
> ( ... ) )glVertex3fv );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_COMBINE, ( GLvoid( *
=
)
> ( ... ) )combineCallback );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_ERROR, ( GLvoid( * )
> ( ... ) )tessError );
>
> same code for linux ****t:
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_BEGIN, ( void( * )()
=
)glBegin );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_END, ( void( * )()
)g=
lEnd );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_VERTEX, ( void( * )
> () )glVertex3fv );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_COMBINE, ( void( * )
> () )combineCallback );
> =A0 =A0 =A0 =A0 gluTessCallback( _tessPtr, GLU_TESS_ERROR, ( void( * )
> () )tessError );

And the verts are not getting destroyed before endTess().
 




 13 Posts in Topic:
gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-20 14:58:05 
Re: gluTesselation - Combine Problems
"jbwest" <jb  2008-08-20 17:40:23 
Re: gluTesselation - Combine Problems
willy.pell@[EMAIL PROTECT  2008-08-20 20:31:31 
Re: gluTesselation - Combine Problems
"jbwest" <jb  2008-08-21 09:11:41 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-21 11:27:49 
Re: gluTesselation - Combine Problems
"jbwest" <jb  2008-08-21 16:58:16 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-21 17:35:30 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-21 17:45:47 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-21 18:15:40 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-22 15:15:16 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-22 15:56:31 
Re: gluTesselation - Combine Problems
"jbwest" <jb  2008-08-24 13:32:23 
Re: gluTesselation - Combine Problems
uuilly <willy.lists@[E  2008-08-25 19:30:35 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Nov 21 3:40:03 CST 2008.