OpenGL Mathematics (OpenGL Mathematics)
Перейти к навигации
Перейти к поиску
OpenGL Mathematics | |
---|---|
Тип | библиотека |
Автор | G-Truc Creation (Christophe Riccio) |
Написана на | C++ |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 1.0.1 (26 февраля 2024) |
Лицензия | MIT License |
Сайт | glm.g-truc.net |
GLM (OpenGL Mathematics — математика для OpenGL) — библиотека для OpenGL, предоставляющая программисту на C++ структуры и функции, позволяющие использовать данные для OpenGL[источник не указан 3453 дня].
Одна из особенностей GLM состоит в том, что его реализация основана на спецификации GLSL (OpenGL Shading Language)[1].
Исходный код GLM распространяется под MIT License.
Примеры кода
[править | править код]// Вычислить нормаль к треугольнику:
#include <glm/glm.hpp>
void computeNormal(triangle & Triangle)
{
glm::vec3 const & a = Triangle.Position[0];
glm::vec3 const & b = Triangle.Position[1];
glm::vec3 const & c = Triangle.Position[2];
Triangle.Normal = glm::normalize(glm::cross(c - a, b - a));
}
// Матричные преобразования:
#include <glm/glm.hpp> // glm::vec3, glm::vec4, glm::ivec4, glm::mat4
#include <glm/gtc/matrix_projection.hpp> // glm::perspective
#include <glm/gtc/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale
#include <glm/gtc/type_ptr.hpp> // glm::value_ptr
void transform()
{
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));
}
Примечания
[править | править код]- ↑ Архивированная копия . Дата обращения: 26 февраля 2012. Архивировано 11 января 2012 года.
Ссылки
[править | править код]- Официальный веб-сайт Архивная копия от 28 февраля 2009 на Wayback Machine (англ.)
- Хранилище на SourceForge.net Архивная копия от 11 января 2012 на Wayback Machine (англ.)
- Репозиторий на GitHub.com Архивная копия от 11 июля 2017 на Wayback Machine