use perspective to enter into 3d.

This commit is contained in:
Fries 2024-04-28 19:39:14 -07:00
parent 4395bf8a9f
commit f22087afc1
2 changed files with 20 additions and 3 deletions

View file

@ -230,6 +230,18 @@ int main() {
shader.activate(); shader.activate();
// the model matrix. this rotates the plane on the x axis by -55 degrees.
glm::mat4 model(1.0f);
model = glm::rotate(model, glm::radians(-55.0f), glm::vec3(1.0f, 0.0f, 0.0f));
// the view matrix. this moves the "camera" back by 3 units.
glm::mat4 view(1.0f);
view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f));
// the projection matrix. the fov is 45 degrees. the aspect is 800/600 (4:3). the near plane is 0.1 units. the far plane is 100 units.
glm::mat4 projection;
projection = glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f);
// create the identity matrix // create the identity matrix
glm::mat4 trans(1); glm::mat4 trans(1);
// translate it by this vector3 // translate it by this vector3
@ -237,7 +249,9 @@ int main() {
// rotate by the z axis with the angle being controlled by time // rotate by the z axis with the angle being controlled by time
trans = glm::rotate(trans, (float)glfwGetTime(), glm::vec3(0.0f, 0.0f, 1.0f)); trans = glm::rotate(trans, (float)glfwGetTime(), glm::vec3(0.0f, 0.0f, 1.0f));
shader.setMat4("transform", trans); shader.setMat4("model", model);
shader.setMat4("view", view);
shader.setMat4("projection", projection);
if (!rectangleToggled) { if (!rectangleToggled) {
// Bind the state to use the vertexArrayObject object so OpenGL knows what to do with the verticies. // Bind the state to use the vertexArrayObject object so OpenGL knows what to do with the verticies.

View file

@ -7,10 +7,13 @@ layout (location = 2) in vec2 aTexCoord;
out vec3 ourColor; out vec3 ourColor;
out vec2 TexCoord; out vec2 TexCoord;
uniform mat4 transform; uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
void main() { void main() {
gl_Position = transform * vec4(aPos, 1.0); // matrix multiplication goes from right to left.
gl_Position = projection * view * model * vec4(aPos, 1.0);
ourColor = aColor; ourColor = aColor;
TexCoord = aTexCoord; TexCoord = aTexCoord;
} }