Archived

This topic is now archived and is closed to further replies.

Stranger

OpenGL Resolving OpenGL Issues.

Recommended Posts

I have read that DX has many high level function for rotation or translation while in OpenGL you must specify the matrices yourself.However in the book "OpenGL Superbible" the author uses high level rotation functions like glrotatef() etc. What I want you people to clear for me is what is going on with this thing. Also,where can I find information about functions that load models?

Share this post


Link to post
Share on other sites
quote:
Original post by Stranger
However in the book "OpenGL Superbible" the author uses high level rotation functions like glrotatef() etc.

What I want you people to clear for me is what is going on with this thing.

What do you mean? Do uou want to know how glRotatef works? See this for more information.

quote:
Original post by Stranger
Also,where can I find information about functions that load models?

OpenGL doesn''t load models. If you''re looking for libraries that do load models, a couple exist (lib3ds, for instance). My OpenGL-like model loading library isn''t really usable yet (too few supported formats, for one), so I don''t think you''d want to use it (shameless plug ).

Share this post


Link to post
Share on other sites
quote:
Original post by Stranger
Does OpenGL have ready made functions for rotation,translation etc. like DX?

Of course, glRotate3f(theta,x,y,z) and glTranslate3f(x,y,z) being the most common.

Loading and displaying models is a complex task with an infinite number of possible solutions. If you''re looking for some code to paste in that will do it for you, I''m sure a google search will come up with something. There is not, however, a generic set of functions that comes with OpenGL specifically designed to work with models.

Share this post


Link to post
Share on other sites
Errr... I''ve been wondering, how do you lot rotate your objects with glRotate? I usually make three calls, one for the x, one for the y and one for the z axis:

glRotatef(x_degrees,1,0,0)
glRotatef(y_degrees,0,1,0)
glRotatef(z_degrees,0,0,1)

Is there a better way of doing this?

______________________________
"A computer is meant to be a big calculator, not a storage device"
Struct.m33p.net

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I beleive you heard incorrectly... it was Direct 3D that lacked the math functions, while opengl has had them built in since... it was made . I beleive Direct 3D now comes with all math functions, but I do not presonally use it, so can''t say for sure.

Share this post


Link to post
Share on other sites
i personally do all the math myself + pass every vertex to opengl in worldspace.
thus the only time i call any matrix rountines is a single glLoadMatrix to locate the camera + another to setup the projection matrix.

other methods are

glPushMatrix()
glMultMatrix(mat)
draw somethibng
glPopMatrix()

or

glPushMatrix()
glTranslatef(...)
glRotatef(...)
draw somethibng
glPopMatrix()

etc

http://uk.geocities.com/sloppyturds/kea/kea.html
http://uk.geocities.com/sloppyturds/gotterdammerung.html

Share this post


Link to post
Share on other sites
quote:
Original post by zedzeek
i personally do all the math myself + pass every vertex to opengl in worldspace.


hm.. i dont know if thats what the vendors had in mind when they came up with hardware t&l. just like i somehow doubt that my own math functions could beat the d3dx functions, that are even optimized for the specific cpu.
im even abusing opengl matrix stack for my own calculations (though i would love to know if loading/reading a matrix to/from the stack frequently is such a good idea).

Share this post


Link to post
Share on other sites
>>hm.. i dont know if thats what the vendors had in mind when they came up with hardware t&l<<

true doing the calculations yourself aint the fastest method, the reason i do it is cause i want the vertices in worldspace for some certain effects.
then again the calculations are not a bottleneck on my celeron433

http://uk.geocities.com/sloppyturds/kea/kea.html
http://uk.geocities.com/sloppyturds/gotterdammerung.html

Share this post


Link to post
Share on other sites
Actually, opengl has functions for basic matrix transformations (glTranslate*, glRotate*, glScale*), but for shears and such you will have to write your own. D3DX has a very extensive math library. Has yawpitchroll matrices, quaternions, all sorts of math functions, it''s just full of stuff. Both are great api''s, but as far as pure math functions dx has more. Both can achieve the same thing though.

Share this post


Link to post
Share on other sites