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

OpenGL TextOut migotający tekst

Ostatnio zmodyfikowano 2012-09-04 18:58
Autor Wiadomość
semar
Temat założony przez niniejszego użytkownika
OpenGL TextOut migotający tekst
» 2012-09-04 18:28:18
Witam, tworzę coś w rodzaju gry, czyli obiekty 3d w OpenGL a na to nałożony tak zwany interfejs 2d, wykorzystałem do tego celu glOrtho, ładnie dzięki temu program rysuje mi prostokąty pod interfejs, ale schody się zaczynają gdy w tym 2d chce wyświetlić tekst.
Fragment kodu:

   
C/C++
//funkcja rysowania sceny i interfejsu

glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glPushMatrix();
glOrtho( 0, 800, 600, 0, - 1, 1 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
//elementy interfejsu
glPopMatrix();

glPushMatrix();
gluLookAt( wx, wy, wz, wx, wy - 0.5f, wz - 1.0f, 0.0f, 1.0f, 0.0f );
//elementy sceny 3d
glPopMatrix();
SwapBuffers( hDC );
no i problem jest taki, że gdzie nie umieściłbym
    TextOut(hDC,0,0,"1234567890",10);
to tekst pojawia się w pożądanym miejscu ale na ułamek sekundy i tak migocze sobie.
Jakiś pomysł co mogę robić źle ?
  
P-64352
kubawal
» 2012-09-04 18:31:31
A zrobiłeś podwójne buforowanie?
P-64354
semar
Temat założony przez niniejszego użytkownika
» 2012-09-04 18:34:50
Muszę przyznać że nie mam pojęcia nawet co to jest, do tej pory szło gładko więc nie szukałem informacji o takich bajerach, mógłbyś mi wyjaśnić na czym to polega i co zmieniłoby to ?
P-64355
kubawal
» 2012-09-04 18:36:46
» Kurs OpenGL, C++Kolory i cieniowanie lekcja
  Podwójne buforowanie eliminuje migotanie obrazu występujące przy stosowaniu pojedynczego bufora koloru.

/edit: Kod daj w [cpp]...[/cpp]
P-64356
m4tx
» 2012-09-04 18:42:30
A zrobiłeś podwójne buforowanie?
Masz przecież w kodzie:
C/C++
SwapBuffers( hDC );

no i problem jest taki, że gdzie nie umieściłbym
A gdzie już umieszczałeś? :P Generalnie powinieneś umieścić to pomiędzy glClear(), a SwapBuffers(), ale nie pomiędzy glPushMatrix(), a glPopMatrix() i powinno działać :)
P-64359
semar
Temat założony przez niniejszego użytkownika
» 2012-09-04 18:46:08
No tak myślałem że to ten bajer jednak, posiłkuję się 1 książką jeśli chodzi o OpenGL i to mój błąd bo mało tam wyjaśnione. A co do tego gdzie próbowałem umieścić to np na końcu w ten sposób: 
   
C/C++
glPopMatrix();
TextOut( hDC, 0, 0, "1234567890", 10 );
SwapBuffers( hDC );
lub przed pierwszym 
glPushMatrix();
zawsze efekt był ten sam, a co do migotania to dotyczy to tylko tekstu, reszta jest ładnie wyświetlana, poruszanie się po scenie płynne.
P-64360
xevuel
» 2012-09-04 18:49:29
Z tego co mi wiadomo TextOut kompletnie nie nadaje się do użycia w grze, właśnie przez takie migotanie (któremu według moich doświadczeń nie idzie zaradzić). Jednym z rozwiązań jest zapewne utworzenie własnej czcionki z bitmapy :)
P-64361
semar
Temat założony przez niniejszego użytkownika
» 2012-09-04 18:50:52
Czy to jest konieczne? Nie mam za bardzo czasu i ochoty bawić się w własne czcionki, wolałbym wykorzystać coś gotowego w tym momencie.
P-64362
« 1 » 2
  Strona 1 z 2 Następna strona