OpenGL perspective problem

Started by
6 comments, last by Nick of ZA 11 years, 9 months ago
Hello all,

I'm working on a OpenGL project but I'm having troubles with the perspective. The meshes appear to be scaled up on the x-axis.
In the image below, you can see a sphere that is supposed to be, well, a sphere, round. Obviously it's not. What causes this behavior?

perspectiveproblem.jpg

Thanks in advance.
"What? It disintegrated. By definition, it cannot be fixed." - Gru - Dispicable me

"Dude, the world is only limited by your imagination" - Me

Advertisement
Likely an incorrect aspect ratio. That is, your projection assumes the width and the height of the window are the same, but in reality the window is wider, and so the image looks stretched.
which opengl you use
if you use 2.1 may be i can help
i think your window is stretched and you dont calculate this
your projection matrix is not properly set for your rendering viewport

check glViewPort(x,y,width,height) for aspect ratio (you are probably not rendering 1:1)
than set/create projection matrix for correct values
I'm using OGL 2.0.

My code is:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0,0, Resolution.x, Resolution.y);
gluPerspective(90, (Resolution.x / Resolution.y), 1.0f, 5000.0f);
glMatrixMode(GL_MODELVIEW);
"What? It disintegrated. By definition, it cannot be fixed." - Gru - Dispicable me

"Dude, the world is only limited by your imagination" - Me

Are resolution.x and resolution.y ints? If so you'll always* get an aspect of 1 when you divide them. Cast them to floats instead.

[size=1]*: Unless height is greater than width, of course.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.


Are resolution.x and resolution.y ints? If so you'll always* get an aspect of 1 when you divide them. Cast them to floats instead.

[size=1]*: Unless height is greater than width, of course.

Sometimes I just do not understand how I don't notice that kind of simple problems....

That, off course, fixed the problem.
"What? It disintegrated. By definition, it cannot be fixed." - Gru - Dispicable me

"Dude, the world is only limited by your imagination" - Me

Haha, this just helped me out too. Thanks mhagain.

This topic is closed to new replies.

Advertisement