Mám zkušenosti s OpenGl, nikoli však pod Linuxem. Můžete mi poradit, jaké knihovny (SDL, Mesa, ...) a jaké postupy obecně používat, aby v mnou vytvořených OpenGl programech byla využita 3D akcelerace tak jako ve Windows? Závisí to na použitých knihovnách nebo je to úplně jedno a akcelerace je použita vždy, když je dostupná (nainstalovaná gr.karta a ovladače)?
Upravil jsem si uvedeny priklad (strom), na fraktalni strom, (na kazde vetvi rekursivne vykreslim dalsi dve vetve). V tom problem neni.
Problem: obraz se vykresluje postupne. Pri poctu 2.000.000 a vice vetvi se vykresluje cara po care (na nizsich patrech stromu to je pekne videt). Zkousel jsem zapnou DOUBLE_BUFFER (a samozrejme SwapBuffers ();) ale je to beze zmeny.
Konfigurace: Win XP Prof SP1; Athlon XP 2500+; GeForce2 MX400 (renderovano do okna). Problem ve vykonu nevydim.
Nejde mi o rychlost vykresleni, to je OK, ale scena vyditelne preblikava (postupne se prekresluje a to i v poctu 32 car).
tomas
Přeji dobrý den,
problém může být v tom, jak jste double-buffer zapnul. Nejprve je třeba pomocí funkce glutInitDisplayMode() specifikovat, které buffery chcete použít. Jako parametr je pro double-buffering zapotřebí nastavit parametr GLUT_RGB | GLUT_DOUBLE (dvě konstanty, mezi nimi operátor OR).
Potom je po vykreslení scény (v našich příkladech je to ve funkci onDisplay()) zapotřebí provést glFlush() a následně glutSwapBuffers().
Co se týče nějaké minimální konfigurace pro ukázkové příklady, tak ještě před cca rokem jsem některé ukázkové příklady testoval na 486 DX2@66, Windows 95 a softwarové OpenGL renderování. Všechny tyto příklady pracovaly bez problémů, až mě samotného překvapilo, jak je SW renderování rychlé.