Zajímalo by mne, jaká je náročnost na vytvoření objektů gluNewQuadric(),gluQuadricDrawStyle(),... Respektivě, zda je možno kvadriky rušit a vytvářet během renderovací smyčky aniž by nějak výrazně poklesl fps,chtěl bych totiž dynamicky ovlivňovat chování a vlastnosti kvadrik v realtimu.
Funkce pro vytvoření a rušení kvadrik, stejně jako pro nastavování jejich vlastností, jsou většinou řešeny softwarově, takže rychlost sice není vysoká, ale nejvíc času vám stejně zabere výpočet bodů na povrchu kvadriky a jejich vykreslení (to se děje na GPU, pokud je vše správně nakonfigurováno).
Samotné vytvoření a zrušení - gluNewQuadric() a gluDeleteQuadric() spočívá pouze v alokaci/dealokaci paměti a nastavení pár proměnných, takže je rychlé. Na druhou stranu se tyto funkce v průběhu renderování nemusí volat, parametry kvadriky lze měnit i víckrát za sebou bez jejich rušení.
btw. pokud si pomocí gluQuadricDrawStyle() nastavíte vykreslování wireframe (drátového) modelu, bude se tento na většině GPU vykreslovat mnohem pomaleji než model z trojúhelníků, což vypadá trošku paradoxně. Je to dáno optimalizací vykreslování trojúhelníků a také použitým algoritmem (scanline algoritmus pro trojúhelníky pracuje v kontinuální oblasti paměti).
Zajimalo by mne zda existuje nejaky elegantni zpusob, jak generovat OpenGL objekty(to je pomoci OpenGL primitiv) popripade celou scenu (osvetleni apod.) v nejakem externim programu (napr.blender) a pak mit moznost je nacist do vlastni aplikace.
Jinak dik za super serial.Zacinam si zpetne procitat vsechny kapitoly a zajimalo by mne zda muzu pridavat prispevky i do starsich clanku.
No, na netu existuji moduly pro nacitani souboru typu 3DS, vetsina modelovacich programu taky umi exportovat DXF soubory nebo RAW soubory (ciste
trojuhelniky s pripadnou normalou).
Ke starsim clankum asi prispevky nema cenu davat, IMHO na ne nikdo nebude reagovat, protoze na Rootu neexistuje moznost nechat si posilat upozorneni na novy prispevek.
Prispevky davejte radeji k nejnovejsimu clanku, pokud se budou tykat OpenGL, tak je to relevantni.
V kapitolach OpenGL IX a X zabyvajicich se prace s pixmapami, byly uvedeny techniky na zobrazeni pixmapy, jeji posun (modifikace MODELVIEW M.) a zvetseni nebo zmenseni (glPixelZoom()). Zajimalo by mne zda jde nejakym zpusobem provadet i rotaci pixmapy kolem nektereho bodu v 2D prostoru. Po aplikaci glRotatex() se pouze rotuje bod zadany v glRasterPosx () ale rotace se neprojevi na vsechny body pixmapy (myslim tim napriklad rotace kolem stredu pixmapy). Je nutne z tohoto duvodu pixmapu mapovat jako texturu na nejakou plochu?
Zajimalo by mne taky pokud umistim glDrawPixels do DisplayListu budou se provadet veskere operace s pixmapou na graficke chipu s minimalnim zatizenim procesoru pocitace ?
Vsechny operace pro praci se souradnym systemem, tj. glLoadIdentity(). glRotate(), glTranslate() a glScale() se aplikuji na vektory a body (tj. vrcholy). V pripade prace s pixmapami se tak pomoci techto operaci meni pouze pocatecni bod vykreslovani (je to bod-vrchol).
Pixely proudi jinou casti graficke pipeline a nejsou temito operacemi ovlivneny. Pixmapy se take vykresluji ponekud odlisnym zpusobem (po scan-radcich) nez textury, proto se jimi neda rotovat. Pro toto pouzijte textury namapovane na objekt GL_QUAD, stejne jako pro opakovane vykreslovani stejnych rastrovych obrazku (napr. objekty/sprity ve hre nebo casti GUI).
Pixmapy se hodi "pouze" pro zobrazovani dat, ktere se meni, tj. meni se barvy jednotlivych pixelu. Prikladem muze byt video, ruzne animace (fraktaly, casticove systemy) apod.
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.