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 11 of 13 Topic 4878 of 5017
Post > Topic >>

Re: gluTesselation - Combine Problems

by uuilly <willy.lists@[EMAIL PROTECTED] > Aug 22, 2008 at 03:56 PM

On Aug 22, 3:15=A0pm, uuilly <willy.li...@[EMAIL PROTECTED]
> wrote:
> On Aug 21, 6:15=A0pm, uuilly <willy.li...@[EMAIL PROTECTED]
> wrote:
>
>
>
> > 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
ne=
ed to 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?
M=
y next
> > > > > > > move is to write my own tessellation algorithm.
>
> > > > > > That's definitely a closure, off-by-one or last-triangle logic
=
problem.
> > > > > > I've
> > > > > > never had problems with the much-maligned tesselator with very
=
complex
> > > > > > 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
b=
y one" or
> > > > > >"last triangle logic problem"? =A0Thanks for the advice btw.
>
> > > > > Your sample data doesn't even invoke Combine on my Linux glu
Tess=
elator
> > > > > sample app. Just a combination of tri-strips and tri-fans,
result=
ing 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 <
=
NVERTICES;
> > > > > ++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=
 data might
> > > > > not be dereferenced until gluTessEndPolygon is executed, all the
=
vertex
> > > > > coordinates but the very last set could be overwritten before
tes=
sellation
> > > > > begins.
>
> > > > > Two common symptoms of this problem are consists of a single
poin=
t (when a
> > > > > local variable is used for data) and a
GLU_TESS_NEED_COMBINE_CALL=
BACK 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( *
)(=
) )glEnd );
> > > =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().
>
> Here is the output from my tessellation:
>
> Raw Verts:
> -2.2583 0.801231 0
> -2.25511 0.801228 0
> -2.25496 0.801229 0
> -2.25203 0.801228 0
> -2.24635 0.801228 0
> -2.24635 0.798129 0
> -2.24636 0.796031 0
> -2.24636 0.791673 0
> -2.25056 0.791665 0
> -2.25095 0.791663 0
> -2.2557 0.791649 0
> -2.25728 0.791648 0
> -2.25829 0.791646 0
> -2.25828 0.791834 0
> -2.25829 0.792248 0
> -2.25829 0.799885 0
> -2.2583 0.80077 0
> -2.2583 0.801231 0
>
> Output from Callbacks:
>
> Combine Callback Vertex Data
> -2.25828 0.791834 0
> -2.25829 0.791646 0
> -2.2557 0.791649 0
> -2.25728 0.791648 0
>
> Combine Callback Vertex Data
> -2.25496 0.801229 0
> -2.25203 0.801228 0
> -2.24635 0.801228 0
> -2.24635 0.798129 0
>
> begin: "GL_TRIANGLE_FAN"
> vert -2.25496 0.801229 0
> vert -2.24635 0.798129 0
> vert -2.25829 0.799885 0
> vert -2.2583 0.80077 0
> vert -2.25511 0.801228 0
> vert -2.25496 0.801229 0
> end
>
> begin: "GL_TRIANGLE_FAN"
> vert -2.24636 0.796031 0
> vert -2.24636 0.791673 0
> vert -2.25828 0.791834 0
> vert -2.25829 0.792248 0
> vert -2.25829 0.799885 0
> vert -2.24635 0.798129 0
> end
>
> begin: "GL_TRIANGLE_FAN"
> vert -2.25828 0.791834 0
> vert -2.24636 0.791673 0
> vert -2.25056 0.791665 0
> vert -2.25095 0.791663 0
> vert -2.2557 0.791649 0
> vert -2.25828 0.791834 0
> end
>
> begin: "GL_TRIANGLES"
> vert -2.25511 0.801228 0
> vert -2.2583 0.80077 0
> vert -2.2583 0.801231 0
> vert -2.24635 0.801228 0
> vert -2.25203 0.801228 0
> vert -2.25496 0.801229 0
> vert -2.25828 0.791834 0
> vert -2.25829 0.791646 0
> vert -2.25728 0.791648 0
> end
>
> Any thoughts?

A little more info

With this signature:
void combineCallback(GLfloat coords[ 3 ],
					 GLfloat *vertex_data[ 4 ],
					 GLfloat weight[4], GLfloat **dataOut )

The variable "coords," that is supposed to contain the location of the
newly created point, is printing total junk.  Ie: numbers that are way
too big and seemingly out of left field.  So somehow I'm giving GLU
something that is causing it to puke.

Is it a problem that I'm using GLfloats instead of GLdoubles?  I was
always under the impression that GPU's don't have double precision so
they're no point in using them.

Thanks,

Willy
 




 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 5:14:33 CST 2008.