OpenGL Matematică

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 18 octombrie 2015; verificările necesită 5 modificări .
OpenGL Matematică
Tip de bibliotecă
Autor G-Truc Creation (Christophe Riccio)
Scris in C++
Sistem de operare Software multiplatformă
ultima versiune 0.9.9.8 ( 13 aprilie 2020 )
Licență Licență MIT
Site-ul web glm.g-truc.net

GLM ( Open GL Mathematics - Mathematics  for OpenGL) este o bibliotecă pentru OpenGL care oferă programatorului C++ structuri și funcții care permit utilizarea datelor pentru OpenGL .

Una dintre caracteristicile GLM este că implementarea sa se bazează pe specificația GLSL ( Open GL S hading Language ) [1 ] .

Codul sursă GLM este distribuit sub licența MIT .

Exemple de cod

// Calculați normala la triunghi: #include <glm/glm.hpp> void computeNormal ( triunghi și triunghi ) { glm :: vec3 const & a = Triunghi . Poziția [ 0 ]; glm :: vec3 const & b = Triunghi . Poziția [ 1 ]; glm :: vec3 const & c = Triunghi . Poziția [ 2 ]; triunghi . Normal = glm :: normalize ( glm :: cruce ( c - a , b - a )); } // Transformări matrice: #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 transformare goală () { glm :: mat4 Projection = glm :: perspectiva ( 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 :: roti ( ViewTranslate , Rotate . y , glm :: vec3 ( -1.0f , 0.0f , 0.0f )); glm :: mat4 View = glm :: roti ( ViewRotateX , Rotate . x , glm :: vec3 ( 0.0f , 1.0f , 0.0f )); glm :: mat4 Model = glm :: scară ( glm :: mat4 ( 1.0f ), glm :: vec3 ( 0.5f )); glm :: mat4 MVP = Projection * View * Model ; glUniformMatrix4fv ( LocationMVP , 1 , GL_FALSE , glm :: value_ptr ( MVP )); }

Note

  1. Copie arhivată . Data accesului: 26 februarie 2012. Arhivat din original la 11 ianuarie 2012.

Link -uri