Glm :: ortho () est-il réellement faux?
Récemment, j'ai pensé que ce serait une bonne idée pour passer de l'ancien (obsolète) fonctionnalités OpenGL fournit, tels que les opérations matricielles et le fixe en fonction de pipeline.
Je suis en utilisant GLM que ma bibliothèque de matrice pour simplifier un peu les choses. Le problème est qu'il peut avoir causé plus de problèmes qu'il simplifiée...
Projection de Perspective a bien fonctionné avec mes shaders et de la configuration, mais quand j'ai essayé de passer à l'orthogonale, tout s'est écroulé. Mes points et simple quads ne s'est pas affichée. Lorsque j'ai utilisé l'ancien OpenGL, les matrices, les choses ont commencé à travailler à nouveau.
J'ai choisi de la matrice de projection. Voici comment je l'ai appelé:
glm::mat4 projMat = glm::ortho( 0, 400, 0, 400, -1, 1 );
J'ai comparé qu'à celui fourni par opengl une fois que ceci est appelé"
glOrtho( 0, 400, 0, 400, -1, 1 );
Les seules différences sont l' [0][0] élément et [1][1] element (qui, autant que je sache, être égal à "2/largeur" et "2/hauteur", respectivement). À partir de l'OpenGL de la matrice, les valeurs étaient exactement ça! Sur le glm de la matrice, cependant, les valeurs étaient de 0.
Une fois que j'ai commuté manuellement les valeurs de la glm matrice après que j'ai appelé glm::ortho, tout fonctionnait à nouveau!
Donc ma question: est ce que le glm::ortho() fonction vraiment cassé, ou je suis juste à l'aide de ce mal?
source d'informationauteur Jamie Syme
Vous devez vous connecter pour publier un commentaire.
Il ne semble pas qu'il doit être cassé à partir du code source (v 0.9.3.4)
Ma seule pensée est que ce modèle pourrait être la création d'une matrice d'entiers (comme vous l'avez passé tous les entiers de la fonction), et faisant ainsi de division entière au lieu de la virgule flottante. Pouvez-vous essayer d'ajouter
.f
pour tous vos paramètres?glm::mat4 projMat = glm::ortho( 0.f, 400.f, 0.f, 400.f, -1.f, 1.f );