# glm and perspective matrices

This topic is 2080 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi,

I made a simple scene with only one triangle and am now trying to use a projection matrix created by glm. However when I multiply each vertex with it in my shader the triangle disappears.

This is how I create the projection matrix:

projectionMatrix = glm::perspective(45.0f, 800.0f/600.0f, 0.1f, 100.0f);

My triangle vertices have these coordinates:

v1(-1, -1, 1)

v2(1, -1, 1)

v3(0, 1, 1)

I multiply the vertices with the matrix like this:

gl_Position = projectionMatrix * vec4(in_Position.x, in_Position.y, in_Position.z, 1.0);

I am also a bit confused how the projection matrix works. After reading this tutorial I compared the matrix shown there with the one in glm and they differ slightly. For example glm uses the w component of the vector to store -z instead of +z. Doesn't this flip the signs of the x and y components after perspective divide? I also manually multiplied vectors with zNear(0.1f) and zFar(100.0f) as their z component. I think the multiplication should give values that become -1 and 1 after perspective divide but it doesn't.

glm::vec4 v1(-1.0f, -1.0f, 0.1f, 1.0f);
v1 = projectionMatrix * v1;        // v1 = ( -1.810660, -2.414213, -0.300400, -0.100000)

glm::vec4 v2(1.0f, -1.0f, 100.0f, 1.0f);
v2 = projectionMatrix * v2;       // v2 = ( 1.810660, -2.414213, -100.400406, -100.000000)

Hopefully someone can help me.

##### Share on other sites

Thanks! It still doesn't work with z = -1, but the projection matrix on that page is the same as the one in glm so now I should be able to figure out what the problem is.

##### Share on other sites

I finally found the problem. In my shader-class I called glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, stride, offset) with 2 instead of 3 as the size parameter. This was because I mainly copy pasted the class from an older 2d project where I only needed 2 components per vertex. Oh well, at least I learned quite a bit about projection matrices.

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• 13
• 18
• 16
• 11
• 9