Kürzlich dachte ich, es wäre eine gute Idee, von der alten (veralteten) Funktionalität, die OpenGL bietet, zu wechseln, wie zum Beispiel Matrixoperationen und die feste Funktionspipeline.Ist Glm :: ortho() eigentlich falsch?
Ich verwende GLM als meine Matrix-Bibliothek, um die Dinge ein wenig zu vereinfachen. Das Problem ist, dass es mehr Probleme verursacht haben könnte als es vereinfacht hat ...
Perspektiven Projektionen funktionierten gut mit meinen Shadern und Setup, aber als ich versuchte, auf orthogonal zu schalten, brach alles zusammen. Meine Punkte und einfachen Quads wurden nicht angezeigt. Als ich die alten OpenGL-Matrizen benutzte, fingen die Dinge wieder an zu arbeiten.
Ich verengte alles auf die Projektionsmatrix. Hier ist, wie ich es genannt:
glm::mat4 projMat = glm::ortho(0, 400, 0, 400, -1, 1);
ich, dass von opengl versorgt einen Vergleich einmal das nennt man“
glOrtho(0, 400, 0, 400, -1, 1);
Die einzigen Unterschiede sind die [0] [0] Element und [1 ] [1] Element (das, soweit ich weiß, gleich "2/width" bzw. "2/height" ist). Aus der OpenGL-Matrix waren die Werte genau das! Auf der glm-Matrix jedoch die Werte waren 0.
Sobald ich die Werte von der Glm-Matrix manuell wechselte, nachdem ich Glm :: Ortho angerufen hatte, funktionierte alles wieder!
Also meine Frage: ist die Funktion glm :: ortho() wirklich kaputt, oder verwende ich sie einfach falsch?
Wow, Sie waren genau richtig! Nachdem ich meine Parameter in Floats geändert habe, hat alles funktioniert. Danke für das Aufräumen :) –