kdyz jsem nedavno programoval v opengl takovou mensi doomovku, tak me to bralo i textury 1024x768 - mozna si je to dokaze nejak prizpusobit na velikost, ktera je mocnina 2.
Názory k článku
Grafická knihovna OpenGL (22): texturování
Re: velikost textur
celé vláknoV dnešní době, kdy výrobci grafických akcelerátorů přidávají k základní funkcionalitě i různé features to skutečně může fungovat. Nicméně podle normy OpenGL (či chcete-li standardu) to není.
Na jakém počítači jste to zkoušel (typ, OS, grafika, ovladače)?
Re: velikost textur
celé vláknozkousel jsem to na:
- procesor: AMD Athlon XP 1800+
- grafika: nvidia GeForce 2 MX400, 64MB
- system: winXP
- ovladace: standardni ovladac z nvidia.com (verzi presne nevim, protoze jsem ho uz nekolikrat menil)
- jazyk: Delphi 6
a slo to i castecne emulovat pod linuxem (grafika fungovala, ale standardni win dialogy ne).
Re: velikost textur
celé vláknoještě bych rád přidal (to myslím obecně, nejenom na velikost textur), že používání různých vylepšení OpenGL sice může na první pohled působit lákavě, ale podívejme se například na Blender, kde píšou, že téměř polovina hlášených chyb souvisí s OpenGL.
Ale v OpenGL při správném používání a u korektně napsaných ovladačů žádné chyby IMHO nejsou. Je to pouze tím, že se v programech používají ne zcela korektní postupy a/nebo vylepšení.
Re: velikost textur
celé vláknoPro textury o rozmerech, ktere nejsou mocninou 2 pouzij GL_ARB_texture_non_power_of_two extension.
Maximalni podporovana velikost textury na O2
celé vláknoJen tak pro zajimavost: maximalni podporovana velikost textury na pracovni stanici O2 od SGI, ktera je 7 let stara je 1024x1024.
Re: Maximalni podporovana velikost textury na O2
celé vláknoVida, ani jsem se nedival, kolik zvladne nas Octane (taky toho hodne pamatuje, ale pracuje stale spolehlive). Tusim, ze to bude +- stejne.
Tyto SGI strojecky se daji pouzivat mimo jine jako referencni platforma pro programy psane v OpenGL.
3D textury
celé vláknopokud spravne chapu ty 3D textury, tak tam musi nejaka specialni barva znamenat pruhlednost? s takovou texturou by take moly byt problemy ohledne rotacni symetrie? navic uboha textura 256^3 voxelu by zabirala 48MB pameti. nezda se me, ze by byly pouzitelne.
Re: 3D textury
celé vláknoPřesně tak, pokud se zobrazují objemová data (CT, MR snímky apod), musí (nebo měla) by být použita průhlednost. Ani ne tak speciální barvou, ale běžným formátem RGBA popř. Luminance+Alpha (pro snímky z MR asi běžnější). Rotační symetrii OpenGL nepodporuje, pouze opakování textury.
Na druhou stranu můžete objemové textury použít například pro vytvoření tělesa, které je jakoby vyřezané z nějakého materiálu. Potom se nezobrazuje celá krychle, ale pouze vyřezaná část. Právě zde se dá celkem rozumně využít opakování textury a udělat tak například procedurální dřevo nebo mramor.
3D textury podporuje ATI, u dalších akcelerátorů si nejsem jistý.
rozmer textury 2^n
celé vláknotextura v opengl nemusi mat rozmer 2^n, moze mat lubovolny, ale opengl jej zmeni rozmer na najblizsiu mocninu dvoch, teda textura bude vyzerat menej kvaltine. na toto som prisiel este pri robeni map pre half-life a MSDN to potvrdzuje. pri extension ARB_texture_non_power_of_two (tak nejak) nie su podporovane mip-mapy!
Re: rozmer textury 2^n
celé vláknoNo ale jak sam pisete, jde o extension k OpenGL, tzn. neni zarucene, ze Vam takove textury budou vsude korektne pracovat, zejmena na starsich (ne nutne horsich) strojich, kde je OpenGL 1.0.
Nemam nic proti extensions, ale tady v clanku se snazim popsat nejprve zaklady OpenGL, na rozsireni dojde az potom.
SVETLO - Svetlo na stejnem miste ve scene
celé vláknoDobry den,
muj prispevek patri jeste ke svetlum, ale ponevadz mam obavy zda si procitate take starsi prispevky pridavam jej i do teto diskuze
mam nasledujici problem:
svetlo jsem umistil nekam "ke stropu" doprostred sceny
pri kazdem Render() hned po glLoadIdentity() MODEL_VIEW matice jej znovu umistuji na stejnou pozici
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
presto pokud se otacim ve scene obraz se ztmavuje a zesvetluje a na obektech lze spatrit zcela jasne jak se svetlo pohybuje spolecne se mnou (kamerou)
co delam spatne?
dekuji za odpoved
ps. pouzivam ve scene take masking (pistolka v Ortho() modu ) a pokud zacnu pracovat se svelem ona pruhlednost kolem pistolky je jaksi mene pruhledna, pouze u svetla "jednicka na konci->bodove svetlo" je pruhlednost vpohode
Re: SVETLO - Svetlo na stejnem miste ve scene
celé vláknoMůžete prosím poslat popř. sem do diskuze nakopírovat schéma Vašeho kódu, tj. například:
glLoadIdentity();
nastavSvětlo();
rotuj();
kresli_scénu();
aby byly vidět posloupnosti operací?
U té pistolky: máte na mysli masking (maskování jedním bitem) nebo blending (alfa průhlednost)? S osvětlením by to nemělo mít nic společného, pokud tedy nenastavujete ambientní složku světla. Potom však stačí před vykreslením pistolky světlo vypnout (a pro urychlení i práci se Z-bufferem).
Re: SVETLO - Svetlo na stejnem miste ve scene
celé vláknoMozna by pomohlo hodit glLightv() mezi
glPushMatrix() a glPopMatrix()
Pamet grafickeho akceleratoru
celé vláknoDobry den,
jde nejakou funkci zjistit velikost pameti grafickeho akceleratoru a aktualni obsazeni teto pameti?
Dekuji...
Velikost textury
celé vláknoU mne, Voodoo3 2000 16MB RAM, Linux - XFree86 4.3.0, velikost textury: 2048x2048 (alespoň dle toho příkládku ;-)).
screenshot a DOOM
celé vláknohej ale Doom este nebezel pod OpenGL ne? mel vlastni renderer myslim.

