Robię grę 3d z widokiem FPS. Chciałbym żeby podczas grania, widoczne było menu w u dołu ekranu. Dlatego chciałbym przeskoczyć (tylko na chwilę) z widoku 3d na 2d. Widok 2d ma być tylko podczas rysowania menu. Gra ma być normalnie 3D + perspektywa. Tylko problem w tym, że nie wiem jak to zrobić :oops:
glMatrixMode - zmiana aktualnej macierz, glLoadIdentity - ładuje macierz tożsamościową do aktualnej.
Poczytaj o układzie osi w OpenGL(hint: usuń translacje po osi Z albo zamień znak bo aktualnie kamera jest za quadem, acz nie jestem pewien, czy zmiana znaku da pożądany efekt).
EDIT: mea culpa - błąd, ale na wszelki wypadek usuń glTranslatef w ogóle, bo też miewałem z tym problemy.
najlepiej by było gdyby ktoś wkleił tutaj kawałek przykładowego kodu. Wtedy najprawdopodobniej zrozumiem o co chodzi. Teraz jak próbujecie mi to wytłumaczyć, to jakoś nie widzę światełka w tunelu #-o
Moja ostatnia próba. Dawno nie pisałem w OpenGL, nigdy tego dobrze przerobionego nie miałem i przyznam, że strzelam. Teraz poprzeglądałem zasoby opengl.org, MSDN i kilku innych stron. Do tego doszedłem:
OpenGL używa prawoskrętnego układu współrzędnych(AFAIK nie ma większego problemu sobie tego przemodelować), czyli wywołując gluOrtho2D(0, 100, 100, 0) mamy punkt 0, 0 w lewym górnym rogu, a 100, 100 w prawym dolnym rogu. Oś X idzie “w prawo”, Y “w dół”, a Z “od monitora do nas”. gluOrtho2D ustawia near clipping plane na -1(czyli to co jest -1 “przed kamerą” też jest wyświetlane), a far clipping plane na 1(czyli to co jest 1 za kamerą też jest wyświetlane). glTranslatef przyjmuje jako pierwszy parametr translacje na X, drugi - Y, a ostatni - Z. Ty przesuwasz quada 5 jednostek w przód od kamery, czyli daleko za far clipping plane i tutaj leży problem.