use perspective to enter into 3d.
This commit is contained in:
parent
4395bf8a9f
commit
f22087afc1
2 changed files with 20 additions and 3 deletions
16
src/main.cc
16
src/main.cc
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue