gluPerspective

Started by
1 comment, last by gamesbond 20 years, 8 months ago
Hey, Can neone tell me what is the exact matrix operation applied by gluPerspective(fovy,aspect,near,far) I do have some idea but i am not sure how to do the same thing which this command does. I need to know the exact details so that i can write my own function which does the same thing.(just for learning!!) Thanx On course to my first FPS engine , zoooooom
On course to my first FPS engine , zoooooom
Advertisement
Ripped out of various chunks of code I have on my HDD at the moment (had to modify it for general viewing, but it should work or be close to doing so):
GLfloat some_matrix[4][4];void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) {	GLfloat RsubL = right - left;	GLfloat TsubB = top - bottom;	GLfloat FsubN = far - near;	GLfloat Nmul2 = 2.0f * near;	some_matrix[0][1] = some_matrix[0][2] = some_matrix[0][3] = some_matrix[1][0] = some_matrix[1][2] = some_matrix[1][3] = some_matrix[3][0] = some_matrix[3][1] = some_matrix[3][3] = 0.0f;	some_matrix[2][3] = -1.0f;	some_matrix[0][0] = Nmul2 / RsubL;	some_matrix[2][0] = (right + left) / RsubL;	some_matrix[1][1] = (Nmul2) / TsubB;	some_matrix[2][1] = (top + bottom) / TsubB;	some_matrix[2][2] = -(far + near) / FsubN;	some_matrix[3][2] = (-far * Nmul2) / FsubN;}void gluPerspective(GLdouble fov, GLdouble aspect, GLdouble near, GLdouble far) {	GLdouble ymax = near * tan(0.5 * fov);	GLdouble ymin = -ymax;	GLdouble xmin = ymin * aspect;	GLdouble xmax = ymax * aspect;	glFrustum(xmin, xmax, ymin, ymax, near, far);}

The source code of Mesa3D is helpful for questions like these.

Thanx Mate!!!!!!!!
That helped and i also downloaded the mesa3d source.

On course to my first FPS engine , zoooooom
On course to my first FPS engine , zoooooom

This topic is closed to new replies.

Advertisement