Niedawno myślałem, że dobrym pomysłem byłoby przełączyć się ze starej (przestarzałej) funkcjonalności udostępnianej przez OpenGL, takiej jak operacje macierzowe i potok funkcji.Czy glm :: ortho() jest rzeczywiście błędne?
Używam GLM jako mojej biblioteki macierzy w celu uproszczenia niektórych rzeczy. Problem polegał na tym, że mogło to spowodować więcej problemów, niż się uprościło ...
Perspektywiczne projekcje działały dobrze z moimi shaderów i konfiguracji, ale kiedy próbowałem przejść na ortogonalne, wszystko się zepsuło. Moje punkty i proste quady nie były wyświetlane. Kiedy używałem starych macierzy OpenGL, wszystko zaczęło działać.
Zawęziłem to wszystko do macierzy projekcji. Oto jak ja nazywa go:
glm::mat4 projMat = glm::ortho(0, 400, 0, 400, -1, 1);
Porównałem to z jednej dostarczonych przez OpenGL raz nazywa się to”
glOrtho(0, 400, 0, 400, -1, 1);
Jedyne różnice są [0] [0] Element i [1 ] [1] element (który, o ile mi wiadomo, jest równy odpowiednio "2/width" i "2/height") Z macierzy OpenGL, wartości były dokładnie takie same! Na macierzy glm, wartości były następujące:
Po ręcznym przełączeniu wartości z macierzy glm po wywołaniu glm :: orto, wszystko znowu działało!
Moje pytanie: czy funkcja glm :: ortho() naprawdę jest zepsuta, czy też używam jej niewłaściwie?
Wow, byłeś na miejscu! Po zmianie parametrów na pływające wszystko się udało. Dziękuję za wyjaśnienie :) –