Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

OpenGL caps? pitanje

[es] :: 3D programiranje :: OpenGL caps? pitanje

[ Pregleda: 2788 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon OpenGL caps? pitanje12.06.2006. u 12:47 - pre 216 meseci
Kako se utvrđuje hardwerska podrška za neku operaciju u opengl-u? Dakle, nešto ekvivalentno sa direct3d caps-ima. Ima li neki program koji popisuje sve mogućnosti hardwera kao directx caps viewer?

Ne znam šta da tražim, pošto ne znam kako se stvar zove.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: OpenGL caps? pitanje12.06.2006. u 16:53 - pre 216 meseci
OpenGL koristi mehanizam extenzija. Na ovaj nacin API se moze prosiriti sa novim funkcijama, stejtovima i objektima (shaderi, texture, ...). Da bi otkrio sta hw moze, uradi sledece:
1. Kreiraj GL context
2. const char* ext = glGetString(GL_EXTENSIONS);
3. Analiziraj vraceni string sa extenzijama, vidi da li u njemu imaju one koje su ti potrebne.
4. Ako je extenzija u spisku onda mozes da mapiras njene entry point (funkcija) .... samo na Windowsu. Na linuxu nema potrebe za ovim. Blame M$
5. Svaka extenzija donosi ponesto novo.. procitaj odgovarajucu dokumentaciju pa ces saznati sta.
Neke limite (max numbr of ...) mozes saznati pomocu glGetIntegerv/glGetFloatv pozivima.

Na windowsu mozes da koristis biblioteku glew ili glee, koje ceo posao oko mapiranja extenzija obavljaju za tebe.


potrazi realtech glview http://www.realtech-vr.com/glview/index.html

yooyo
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: OpenGL caps? pitanje12.06.2006. u 21:24 - pre 216 meseci
Pogledao sam listu ekstenzija koje moja kartica podržava. Izgleda da to nije ono što sam hteo.

Ako sam dobro shvatio ekstenzije su kao plaginovi kojima se proširuje opengl 1.1. Ono što mene interesuje je kako da znam da li opengl 1.1 koristi hardversku akceleraciju. Da konkretizujem stvari, pravim user interface u opengl-u i verovatno će mi osnovne stvari biti dovoljne. Interesuje me koje blending modove, formate verteksa i sl. podržava moja kartica?
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 01:42 - pre 216 meseci
Ekstenzija prosiruje OpenGL tako sto dodaje nove funkcije, stejtove, objekte, tokene, ... Moze da prosiri i postojece objekte.
Primer.. treba ti rect texture. Proveri da li postoji GL_NV_texture_rectangle ili GL_ARB_texture_rectangle i ako ima onda slobodno mozes da koristis glTexImage2d(GL_TEXTURE_RECTANGLE_ARB/NV, ...); Ako nema.. uradi codepath sa "power of two" texturama.

Blending modovi.. procitaj GL dokumentaciju za glBlendFunc().
Vertex formati... GL nema ogranicenja u vertex formatima. Jednostavno, za svaki atribut vertexa postoji glXXXPointer u kome zadajes pocetnu adresu, format, tip i stride. Na ovaj nacin mozes da pravis format kakav zelis. Ako se neki atribut koristi, potrebno je da pozoves glEnableClientState() za taj atribut.

Jos malo da razjasnim problem GL 1.1... Microsoft jos nije updateovao opengl32.dll tako da Windows podrzava max GL 1.1. Medjutim, ako zelis GL 2.0 onda tvoja kartica mora da sa glGetString(GL_VERSION) vrati da podrzava GL 2.0. Na osnovu toga moras sa wglGetProcAddress pokupis entry point za svaku novu funkciju. Tek tada mozes da racunas na GL 2.0 features. Da bi sebi olaksao zivot, prepusti ovaj deo posla glee ili glew.

GL nema caps kao D3D. Ako te interesuje kolika je max texture to mozes saznati sa glGetInteger(GL_MAX_TEXTURE_SIZE, ...) pozivom. Prvi parametar je sta te interesuje a ostali su povratne vrednosti. Neke extenzije mogu prosiriti spisak paramatera i to je lepo dokumentovano.

yooyo
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 08:35 - pre 216 meseci
Ok, to je razjasnilo stvari donekle, ali samo još ovaj konkretan primer.

Recimo ja koristim:

Code:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);


Kako da saznam da li moja kartica podržava ova dva blending parametra? Ili koji od formata teksture je podržan (recimo podržava RGBA8 ali ne podržava RGB8). Znam da zvuči glupo u ovo vreme ali kartica za koju se radi je nešto najgore što čovek može da kupi na današnjem tržištu :). Inače koristim glut i aplikacija je za linux.

Izmena: pogledao sam glBlendFunc dokumentaciju. Verovatno si mislio na grešku koju funkcija vraća ukoliko sfactor i dfactor nisu prihvatljive vrednosti. Da li je garantovano (ili je bar važi u većini slučajeva) da ako nema greške da hardver podržava odgovarajući blending mod? Ono što me brine je da opengl implementacija podržava dati mod softverski i da će program od tog trenutka prestati da koristi akceleraciju, a ja to neću ni znati.

[Ovu poruku je menjao eva 01 dana 13.06.2006. u 09:53 GMT+1]
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 09:22 - pre 216 meseci
Koliko se sećam, ukoliko nešto nije podržano u hardware-u biće emulirano u software-u.
Tako je bar bilo ranije, i to je jedan od razloga što sam se priklonio Direct3D-u.
Offtopic: ekstenzije su bile dodatni razlog ;)
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 10:03 - pre 216 meseci
Pazi... svi blending modovi su podrzani otkad postoji Nvidia TNT. Riva ZX i Voodoo2 nisu podrzavali sve blending modova, ali sada SVE kartice na trzistu podrzavaju blending modove.

Postoje i dodatni blending modovi koji su uvedeni preko extezija (GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, ...).

btw.. koju graficku koristis ako nije tajna?

edit: Pogledaj GL verziju sa glGetString(GL_VERSION). Ako driver kaze da podrzava OpenGL x.yy onda kartica podrzava SVE sto je napisano u specifikaciji te verzije GL-a. OpenGL nema caps-e kao d3d jer je to nepotrebno.
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 11:42 - pre 216 meseci
OK. GL_VERSION će rešiti stvari.

Koristim s3 unichrome grafičku. Mislim ne koristim je ja, već na tome treba da radi.
http://www.s3graphics.com/en/products/unichrome/index.jsp
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: OpenGL caps? pitanje13.06.2006. u 19:04 - pre 216 meseci
s3 unichrome... uhhhh.. sa srecom... ako je u pitanju integrisano resenje, mnogo je bolje izabrati nesto sa integrisanim Intelom ili geforce-om.
btw.. kakvi su linux driveri za taj s3? pazi da nije mesa, jer onda nema hw akceleracije.

@tosa: covek radi u linuxu... dakle nema nista od d3d-a...

 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: OpenGL caps? pitanje14.06.2006. u 19:24 - pre 216 meseci
Obratiću pažnju, nije mi sada dostupna ta mašina ...
 
Odgovor na temu

[es] :: 3D programiranje :: OpenGL caps? pitanje

[ Pregleda: 2788 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.