
The new version of GLM is out. GLM or OpenGL Mathematics is a C++ math library based on a subset of GLSL specifications and conventions. GLM is not dependent on the OpenGL API so you can use it anywhere you need math functions: raytracing, image processing or physics. But of course, GLM is especially well suited for OpenGL development.
The new branch 0.9.x.x is now based on GLSL 4.00 specification.
Small code sample:
// glm::vec3, glm::vec4, glm::ivec4, glm::mat4
#include <glm/glm.hpp>
// glm::perspective
#include <glm/gtc/matrix_projection.hpp>
// glm::translate, glm::rotate, glm::scale
#include <glm/gtc/matrix_transform.hpp>
// glm::value_ptr
#include <glm/gtc/type_ptr.hpp>
{
glm::mat4 Projection =
glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
glm::mat4 ViewTranslate = glm::translate(
glm::mat4(1.0f),
glm::vec3(0.0f, 0.0f, -Translate));
glm::mat4 ViewRotateX = glm::rotate(
ViewTranslate,
Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
glm::mat4 View = glm::rotate(
ViewRotateX,
Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
glm::mat4 Model = glm::scale(
glm::mat4(1.0f),
glm::vec3(0.5f));
glm::mat4 MVP = Projection * View * Model;
glUniformMatrix4fv(
LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
}
Let’s groove 😀
i hate Mathematics!
except this one 🙂
Very interesting for matrix algebra.
Pingback: Real-Time Rendering · Tools, tools, tools