OpenGL-matematiikka
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 18. lokakuuta 2015 tarkistetusta
versiosta . tarkastukset vaativat
5 muokkausta .
GLM ( Open GL Mathematics - Mathematics for OpenGL) on OpenGL:n kirjasto, joka tarjoaa C ++ -ohjelmoijalle rakenteita ja toimintoja, jotka mahdollistavat tietojen käytön OpenGL :ää varten. .
Yksi GLM :n ominaisuuksista on, että sen toteutus perustuu GLSL- spesifikaatioon ( Open GL S hading Language ) [1 ] .
GLM-lähdekoodia jaetaan MIT-lisenssillä .
Koodiesimerkkejä
// Laske normaali kolmioon:
#include <glm/glm.hpp>
void computeNormal ( kolmio ja kolmio )
{
glm :: vec3 const & a = Kolmio . Sijainti [ 0 ];
glm :: vec3 const & b = Kolmio . Sijainti [ 1 ];
glm :: vec3 const & c = Kolmio . Sijainti [ 2 ];
kolmio . Normaali = glm :: normalisoi ( glm :: risti ( c - a , b - a ));
}
// Matriisimuunnokset:
#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
tyhjä muunnos ()
{
glm :: mat4 Projektio = glm :: perspektiivi ( 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 Malli = glm :: asteikko ( glm :: mat4 ( 1.0f ), glm :: vec3 ( 0.5f ));
glm :: mat4 MVP = Projektio * Näytä * Malli ;
glUniformMatrix4fv ( LocationMVP , 1 , GL_FALSE , glm :: arvo_ptr ( MVP ));
}
Muistiinpanot
- ↑ Arkistoitu kopio . Käyttöpäivä: 26. helmikuuta 2012. Arkistoitu alkuperäisestä 11. tammikuuta 2012. (määrätön)
Linkit