Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[OpenGL +Qt] tworze nowy projekt, a laduje sie stary...

Ostatnio zmodyfikowano 2010-10-27 00:21
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
[OpenGL +Qt] tworze nowy projekt, a laduje sie stary...
» 2010-10-25 22:47:02
tworze nowy projekt, calkiem czysty, buduje, aby sprawdzic czy wszystko dobrze poustawialem (praktycznie jest pusty) - a laduje sie poprzedni projekt, mimo zamkniecia programu(kreatora) i uruchomienia ponownie (wybieram utworz nowy projekt...i znowu mam poprzedni), co jest nie tak?

PS>> juz rozwiazalem, w nowym jeszcze nie bylo czyszczenia bufora (swoja droga, nie wiedzialem, ze cos tam trzyma po zamknieciu programu, jak temu zapobiec, czyscic przez glClear(...)?? czy jakos inaczej?
P-23332
VND
» 2010-10-26 00:24:14
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
P-23335
dmx81
Temat założony przez niniejszego użytkownika
» 2010-10-26 00:34:17
tak, uzywam tego, ale w paintGL() na poczatku funkcji, czyli przed narysowaniem ... czy powinienem uzyc tego, wychodzac z programu?
P-23336
VND
» 2010-10-26 02:36:39
Powinieneś to mieć jako pierwszą instrukcję funkcji rysującej. Czyścisz tylny bufor zawsze przed narysowaniem kolejnej klatki, aby rysować na "czystej kartce papieru" bez śmieci z poprzedniego rysowania.

Jeśli w programie wykonasz SwapBuffers() przed wyczyszczeniem to dostaniesz właśnie taki efekt jak opisałeś.
Wtedy dodatkowo wyczyść bufor wcześniej np: w InitGL() czy podobnej. 
P-23337
dmx81
Temat założony przez niniejszego użytkownika
» 2010-10-26 08:42:58
rozumiem :) i tak wlasnie robie, glClear(bufory color i depth) i rysuje po "czystej" kartce, ale chodzi mi jeszcze o cos innego - o to, czy wychodzac z programu nie powinno byc to usuniete rowniez z bufora? bo skoro wylacze program, zalacze od nowa inny, ktory jeszcze nic nie rysuje, a w buforze siedzi obraz z poprzedniego programu, to chyba zle?bo zajmuje ciagle pamiec? czy to raczej normalna sprawa, ze moze sobie tam siedziec , az do momentu, kiedy inny program bedzie chcial uzyc bufora(i sam go sobie posprzata ?) mam nadzieje, ze wiesz, o co mi chodzi, dzieki

(ps. tu jawnie nie uzywam swapBuffers(), okno QGLWidget pewnie zalatwia sprawe - daje tylko repaint() przy eventach, ew. mozna uzyt timerow i polaczyc timeout z repaint() - taki mechanizm znam w Qt)
P-23339
VND
» 2010-10-27 00:21:31
O czyszczenie martwi się uruchomiony program. Ty nie tworzysz tych buforów, ani nie likwidujesz co najwyżej wypełniasz wartościami jakie ustawisz w glClear'NazwaBufora'. Tak czy siak coś tam zawsze jest. O poprawne wyświetlanie - czyli np: nie przełączanie buforów przed wyczyszczeniem, martwi się aktualnie uruchomiona aplikacja.

Nie używam Qt, o SwapBuffers wspomniałem, bo tak czy inaczej kiedyś musisz to wywołać jawnie czy nie (inaczej nic nie zobaczysz) ;)
Chyba, że używasz trybu bez back-buffora, ale nie sądzę.
P-23353
« 1 »
  Strona 1 z 1