OpenGL matematika
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. október 18-án felülvizsgált
verziótól ; az ellenőrzések 5 szerkesztést igényelnek .
A GLM ( Open GL Mathematics - Mathematics for OpenGL) egy OpenGL-könyvtár , amely a C ++ programozó számára olyan struktúrákat és funkciókat biztosít, amelyek lehetővé teszik az adatok OpenGL -hez való felhasználását. .
A GLM egyik sajátossága, hogy megvalósítása a GLSL specifikáción ( Open GL S hading Language ) alapul [1 ] .
A GLM forráskódja az MIT Licenc alatt kerül terjesztésre .
Kódpéldák
// Normál kiszámítása háromszögre:
#include <glm/glm.hpp>
void computeNormal ( háromszög és háromszög )
{
glm :: vec3 const & a = Háromszög . Pozíció [ 0 ];
glm :: vec3 const & b = Háromszög . Pozíció [ 1 ];
glm :: vec3 const & c = Háromszög . Pozíció [ 2 ];
háromszög . Normál = glm :: normalizál ( glm :: kereszt ( c - a , b - a ));
}
// Mátrix transzformációk:
#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
érvénytelen transzformáció ()
{
glm :: mat4 Vetítés = glm :: perspektíva ( 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 :: forgatás ( ViewTranslate , Rotate . y , glm :: vec3 ( -1.0f , 0.0f , 0.0f ));
glm :: mat4 Nézet = glm :: forgatás ( ViewRotateX , Rotate . x , glm :: vec3 ( 0.0f , 1.0f , 0.0f ));
glm :: mat4 Model = glm :: skála ( glm :: mat4 ( 1.0f ), glm :: vec3 ( 0.5f ));
glm :: mat4 MVP = Vetítés * Nézet * Modell ;
glUniformMatrix4fv ( LocationMVP , 1 , GL_FALSE , glm :: value_ptr ( MVP ));
}
Jegyzetek
- ↑ Archivált másolat . Hozzáférés dátuma: 2012. február 26. Az eredetiből archiválva : 2012. január 11. (határozatlan)
Linkek