Jednoduche API

Programovacie jazyky, rady, poradňa...
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

lol po 1. (8th Edition) lol po 2. 4.1 a este nie je vydana?:)
a este jedna vec napr. ak spravim program s OGL pod verziou 2.0 a 4.1/4.2 s tou istou syntaxou bude rychlejsia / lepsia grafika alebo nieco ine v novsej verzii? ci su tam iba nove funkcie?
a co hovoris na OGL red/blue book? dost znama
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

OpenGL 4.0 ma uz uplne iny pristup. Vypocty prechadzaju na GPU. U verzie 2.0 sa vela robilo na CPU. Meni sa funkcionalita, bude to rychlejsie a modernejsie :). Ci bude pekna grafika? To zalezi od toho ako ju namodelujes :). Ale, ked budu rychlejsie vypocty, zlepsi sa aj grafika, lebo grafici si mozu viac dovolit hlavne v oblasti detajlov :). Podobne to plati aj pre fyziku v hrach, vsetko sa stale zdokonaluje. Ale hlavne obmedzenie robi HW :). Dnes maju grafiky 3GB pamate a 600 jadrove procaky, tak s tym sa uz daju robit veci :).

Hlavne sa mi paci, ze stale ostava podpora aj OpenGL 2.0, takze starsie kody su plne funkcne, toto u Direct3D nikdy neuvidis :).
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

ale tak nahodou:) w3 potrebuje DX 8.1 a slape aj na 11ke:) vlastna skusenost ale taky DX 1 -2 pochybujem:)
a je nejaky rozdiel ked vytvorim okno v SFML/SDL a nie v OGL ale vsetko ostatne spravim v OGL? lebo nejak mi to neslape aj s glew....
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

V OpenGL neotvoris okno. O to ide, za okno, eventy, siet, zvuk, obrazky robis v SFML/SDL/GLUT a renderovanie v OpenGL. OpenGL sluzi iba na renderovanie na grafickej karte.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

prosim ta ak si robil niekedy okno tak isto ako je v NEHE tutosoch pls napisal by si source? namiesto toho glaux
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

Skus moj novy kod, teraz som to tam dal. Mam tam vytvorenie okna v SDL a v SFML kompletne rozbehane. Postupne dorabam aj pokec ku kodu. Ak budes mat problem, tak napis aky. Co sa tyka NEHE som odtial stiahol kod, skompiloval a spustil bez problemov. Je tam viac kodov na stiahnute a ja neviem, kt. si ty skusal. Nezabudni, ze musis nalinkovat potrebne kniznice, v mojom navode, com ti poslal je to popisane.

https://sourceforge.net/apps/trac/openg ... enGLWIndow
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

Tak to zhrniem:
Citim ze zatial NEHE tutorialy su pre mna lebo su lahke(zatial), zaujimave a hlavne vysvetlia vsetko potrebne a nepocitaju ze mam za sebou vysoku skolu... :smt033
OpenGL syntax mi po chvilke prirastla k srdci krajsia ako DX aj ked vsetko je este predomnou(este sa donutit nehrat dotu a ucit sa) tiez nemam rad ked sa davaju classy vsade kde to nema ani vyznam vid priklad JAVA....Ano nepaci sa mi vobec! Mal som tu cest _
Ked si najdem chvilku precitam si tutos za chvilku netreba nad nim zatial ani moc rozmyslat...len trosku predstavivost v priestore treba a rad skusam a paci sa mi :) ked si naprogramujem "bug" v mojom vnimani a vidim ze svet OpenGL je iny ako nas....
A velmi sa chcem podakovat johnymu ktory pre mna spravil kus prace presvedcil ma ze DX je sh!t (ani ja nemusim Mcsoft) dufam ze ta budem moct otravovat ked nebudem vediet :smt059 aj ostatnym co sa zapojili + NEHE -mu za dobre tutorialy aj M.Turkovi za preklad
_____________________________________________
Tak johny skusal som viac zdrojakov je ich tam asi 10+ pre C++ z toho mi idu 2:) jeden pre os IRIX ... fasa ked su okna take sebecke ze mi ide zdrojak z Irixu...:) a dalej s pouzitou kniznicou GLUT ktora mi nepripada najkvalitnejsia ale na vyucbu mi uplne staci:)
tvoje navody som nekukal lebo SDL este nepotrebujem a SFML mi nejde preco ? win 7/ati grafika
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa reDo »

a co presne ti na SFML nejde? chyba pri kompilacii?
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

nie nevyskoci okno iba konzolove....
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa reDo »

to je chyba v ati catalyst, ten bug bude odstraneni vo verzii 2.0, viac info tu http://www.sfml-dev.org/forum/viewtopic ... st&start=0 :roll: :(
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

Nie ze by som bol nevdacny ale vsade kde len som tam najdem nieco na princip:):

Kód: Vybrať všetko

GLAUX : this is a very old library that should not be used anymore. Most people who encounter GLAUX are people who see the NeHe tutorials which haven't been updated in years. NeHe uses auxDIBImageLoad() in order to read BMP files. GLAUX is no longer available.
nie su to len keci od nejakych ludi co nevedia nic lebo to bolo napisane na openGL.org....
tak pls ak niekto pozna nejaky lahsi eng tutos/knihu post there pls. //bolo by dobre novsi
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa reDo »

na root.cz a aj na programujte.com
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

Som ti pisal niekolko krat, pouzi kniznice z mojich tutorialov, NEHE je zastarale, preto ich pisem :), su narocnejsie, ale zaklady najdes aj na NEHE, ja nepouzivam glaux ani glut. + openGL.org, tam najdes aj OpenGL 4.2 a vsetky nove veci + nvidia. Ide o to, ze ty tie nove veci nepochopis, bez zakladov. Teraz sa v OpenGL or Direct3D vsade pouzivaju shadre a GPU na vypocty (GLSL, HLSL, OpenCL, CUDA) a ty zatial nevies co to je, preto sa ucis najskor ratat na CPU od zakladov.

Inak je jedno, ci pouzivas starsie or novsie kniznice. Na tejto nizkej urovni ako si ty v tom rozdiel nie je, ani ci pouzivas 2.0 or 4.0. To nie je hra, ze kazdy rok vychadza nova verzia s neviem akymi vylepseniami. Toto je nizkourovnove kodenie a tu sa veci menia slimacim krokom a to plati aj pre Direct3D. Ty tu v podstate kodis graficku kartu. Toto nie je soft ako herny engine, kde zoberies funkciu a ta vsetko posklada.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

no ok ja len nejaka kniznica na nacitavanie obrazkov lebo inac je to v pohode alebo ako nacitat obrazok
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

pre obrazky: SDL, SFML, FreeImage, OpenCV. Vsetko su to dobre kniznice, ja odporucam hlavne tie posledne dve pre spracovanie multimedialneho obsahu. Pre pracu s obrazkami pouzivam FreeImage a pre pracu s kamerami a video streem pouzivam OpenCV. V NEHE tutorialoch najdes kod pre SDL. Ja uz pripravujem do svojich tutorialov FreeImage a SFML a aj SDL asi.

Princip spracovania textury (pbrazku) v OpenGL je stale rovnaky, tieto kniznice pouzijes iba na nacitanie obrazovych dat z HDD + dekompresia, ak je to .jpg. Potom uz iba ciste data uploadujes do grafickej karty pom. OpenGL funkcii, karta ti vrati index textury a ty potom v kode pomocou toho indexu povies karte, kde a kedy ma zobrazit texturu na monitor.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

Zase ostanme pri pls ak mozes v tom FreeImage napisal by si mi ako sa nacitava obrazok do pamete namiesto tejto funkcie? AUX_RGBImageRec *LoadBMP(char *Filename)
a ostatne ostava nie?
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa johny3212 »

Kód: Vybrať všetko


                   string path = "lala.png";
	            FREE_IMAGE_FORMAT imageFormat = FreeImage_GetFileType(path.c_str(), 0);
	
	            if (imageFormat == FIF_UNKNOWN)
                        {
	                std::cerr << "Unknown image file format: " << path.c_str() << std::endl;
	                return false;
	                }
	
	            FIBITMAP *imageBitmap = FreeImage_Load(imageFormat, path.c_str(), 0);
	
	            FIBITMAP *imageBitmapConverted;
	            imageBitmapConverted = FreeImage_ConvertTo32Bits(imageBitmap);
	
	            _size.x = FreeImage_GetWidth(imageBitmapConverted);
	            _size.y = FreeImage_GetHeight(imageBitmapConverted);
                    std::vector<Byte> _data; //Byte == unsigned char
	            _data.resize(_size.x * _size.y * 4);
	
	            memcpy(&_data.front(), FreeImage_GetBits(imageBitmapConverted), _size.x * _size.y * 4 * sizeof(xaver::Byte));

//tento kod vie zistit format obrazku a na zaklade toho sa nastavi ako ma obrazok nacitat. Takze je jedno, ci mu posles .png alebo .tga ... Koprimovane obrazky ako .jpg som neskusal, neviem ci to spapa. Data sa na konci z FreeImage funkcii skopiruju do tvojho pola (stl vektora). Data sa nahravaju v RGBA formate pozor na to, to musis povedat aj grafike.

Kód: Vybrať všetko

           glGenTextures(1, &_glId);
            glBindTexture(GL_TEXTURE_2D, _glId);
	    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, _size.x, _size.y, 0, GL_BGRA, GL_UNSIGNED_BYTE, &_data.front());

	     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

Tak dostal som sa tu :( a cannot initialize textures//inak do pamete sa uklada ten obrazok ako int ? ci byte?

Kód: Vybrať všetko

bool LoadImage()// Nacita nas obrazok 
{
				std::string path = "lala.raw";
               FREE_IMAGE_FORMAT imageFormat = FreeImage_GetFileType(path.c_str(), 0);
   
               if (imageFormat == FIF_UNKNOWN)
                        {
                   std::cerr << "Unknown image file format: " << path.c_str() << std::endl;
                   return false;
                   }
   
               FIBITMAP *imageBitmap = FreeImage_Load(imageFormat, path.c_str(), 0);
   
               FIBITMAP *imageBitmapConverted;
               imageBitmapConverted = FreeImage_ConvertTo32Bits(imageBitmap);
   
               sirka = FreeImage_GetWidth(imageBitmapConverted);
               vyska = FreeImage_GetHeight(imageBitmapConverted);
                   
               _data.resize(sirka * vyska * 4);
   
               memcpy(&_data.front(), FreeImage_GetBits(imageBitmapConverted), sirka * vyska * 4 * sizeof(byte));
			   return true;
}



// Setup Our Textures. Returns true On Success, false On Fail
bool setup_textures()
{
	

	// Create The Textures' Id List
	glGenTextures(TEXTURES_NUM, &g_texid[CUBE_TEX]);          
	// Load The Image From A Disk File
	if (!LoadImage()) return false;
	// Typical Texture Generation Using Data From The Image
	  
	glBindTexture(GL_TEXTURE_2D, g_texid[CUBE_TEX]);

	glTexImage2D(GL_TEXTURE_2D, 0, 3, sirka, vyska, 0, GL_RGB, GL_UNSIGNED_BYTE,  &_data.front());
	
	
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	return true;
}
pipiak
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 321
Registrovaný: 11 jún 2006, 9:24
Bydlisko: KE
Kontaktovať používateľa:

Re: Jednoduche API

Príspevok od používateľa pipiak »

No musim uznat tu efektivitu :D nacitanie jedneho sprosteho obrazka ti zabere pol a4:D a narast rychlosti oproti manazovanym jazykom/enginom bude nepatrny, ale hlavne ze si pohladkam ego ze som to urobil sam a v opengl:D
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Jednoduche API

Príspevok od používateľa jojinkho »

Mne nejde o to ja hladam cestu ako dobre aspon pre zaklady nacitat obrazok mne to je jedno akym sposobom hlavne az to neni zastarane ako glaux
//edit
alebo sa na to uplne vys*riem a spravim to v SFML len musim 2.0 lebo mam ATI grafiku...
Napísať odpoveď