Jump to content

  • Log In with Google      Sign In   
  • Create Account


gluPerspective and glOrtho


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 aperry   Members   -  Reputation: 122

Like
Likes
Like

Posted 02 December 2003 - 07:59 PM

Hey, simply put, what is the difference between: gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f); and glOrtho(0.0f,800,600,0.0f,-51.0f,1.0f); I use glOrtho to display text but when i call gluPerspective to disply 3d objects, my text disappears. what should i send these function calls so that i am looking at the same place in space? thanks!

Sponsor:

#2 GamerSg   Members   -  Reputation: 378

Like
Likes
Like

Posted 03 December 2003 - 12:24 AM

In Ortho, distance from camera doesnt make a difference to the size of the object.

In Perspective, it appears as we humans see the world around us, objects further away become smaller.

You should render your 3d objects first, then switch to ortho and render your text with depth testing off so that your text will show even if it is behind your 3d objects. Also, while changing, remember not to call glClear.

#3 aperry   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 December 2003 - 03:22 AM

thanks gamersg

i''ve tried that but i think i have a parameter or two wrong, possibly fovy of gluPerspective. what angle should i set this parameter to so i can see all of my output?

thanks!

#4 GamerSg   Members   -  Reputation: 378

Like
Likes
Like

Posted 03 December 2003 - 05:15 AM

Depends on how you want your focus to be like. the larger the angle, the more your camera will see. Something like a camera lens. Anything from 45 - 140. You will have to play around with it to get it right.

Also, this angle should not affect your text at all.
Try this

glClear();

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(//whatever);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
drawModels();

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(//whatever);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
drawText();


SwapBuffers();


#5 aperry   Members   -  Reputation: 122

Like
Likes
Like

Posted 04 December 2003 - 02:25 AM

Hmm....still having problems. The text prints normally when I just call glOrtho and just draw text but doesn''t show up at all when i try to draw 3d objects.
Exact code (cut and paste):

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();


glLoadIdentity(); glTranslatef(-1.5f,-5.0f,a); glBegin(GL_TRIANGLES); glVertex3f( 0.0f, 1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glTranslatef(3.0f,0.0f,0.0f); glBegin(GL_QUADS); glVertex3f(-1.0f, 1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f); glEnd();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f,800,600,0.0f,50.0f,-50.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPrint(0,0,1,"text");
SwapBuffers(hDC);

#6 GamerSg   Members   -  Reputation: 378

Like
Likes
Like

Posted 04 December 2003 - 03:45 AM

I think it''s your glOrtho. Im not sure of the parameters, but i use this instead.


gluOrtho2D(0, width, 0, height);

#7 PM   Members   -  Reputation: 122

Like
Likes
Like

Posted 04 December 2003 - 04:15 AM

msdn.microsoft.com:
The gluOrtho2D function sets up a two-dimensional orthographic viewing region. This is equivalent to calling glOrtho with near = 1 and far = 1.

opengl.org and pyopengl.sourceforge.net:

gluOrtho2D sets up a two-dimensional orthographic viewing
region. This is equivalent to calling glOrtho with near=-1
and far=1.

pike.ida.liu.se:
This is equivalent to calling
glOrtho(left, right, bottom, top, -1.0, 1.0);
FIXME
The GLU manual says glOrtho(a,b,c,d, 0, 1).

eecs.harvard.edu:
This is equivalent to calling glOrtho with near = 0 and far = 1.

tc1.chemie.uni-bielefeld.de:
This is equivalent to calling glOrtho with near = 1 and far = 1.

Hmmm....




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS