I'm writing a managed OpenGL library in C++, and I'm having a pretty annoying problem. Whenever I set an objects Z coordinate to -2.0 or lower, the object disappears. And at coordinates 0 through -1.9, it doesn't appear to move away from them camera. I have a world matrix (which is multiplied by the objects position to move it), a view matrix (which is just the identity matrix currently) and a projection matrix, which is setup like this:
- FOV: 45.0f
- Aspect Ratio: 1
- zNear: 0.1f
- zFar: 100.0f
glm::perspective method. The order the matrices are multiplied by in the shader is world, view, projection, then position.
I can move the object along the X and Y axis perfectly fine. I have depth testing enabled, using
GL_LEQUAL. I can change the actually vertices positions to anything I want, and they move away from the camera or towards it perfectly fine. It just seems to be the world matrix acting up. I'm using
glm::mat4 for the world matrix, and
glm::vec3 for positions. Whats going on here?
I'm also using OpenGL 3.1, GLSL version 140 (1.4?).