Ako na OpenGL - tutorial

Programovacie jazyky, rady, poradňa...
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: Ako na OpenGL - tutorial

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

Len tak pre informaciu, to o tej licencii MS je kravina, svoj kod v c# mozes spokojne predat;)
A takisto o tom ze je vyhoda ze opengl je neobjektovy, a samozrejme aj to ze v dx mas viac kodu, nakolko mozes vyuzit zdarma nastroje (enginy aj original od ms) kde vytvorim to co ty v opengl na polstranke 5riadkami:) takze trosku objektivity by sa hodilo;)

Ale thx za zdielanie tutorialov;)
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: Ako na OpenGL - tutorial

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

Kod v C# bez riadnej licencie nemozes predavat v ziadnom pripade, musis mat aspon jednu licenciu na MVS. Dalej, Engine je uz uplne ina zalezitost, o tom tu nebola rec. Pisalo sa o renderovacich a zakladnych grafickych schopnostiach Direct3D a OpenGL. Engine je nadstavbova kniznica, tie ma aj Direct3D a aj OpenGL, tu sa pisalo o inom. A ja som pisal, ze DirectX je viac zamerany na hry, ale grafika nie su iba hry. To ci je neobjektovost nevyhoda, nechavam na tvoje zamyslenie.
Nebudem tu s tebou pisat o grafike, ak tvoje znalosti pochadzaju iba z hrania hier :). Ja kodim grafiku nie len pre svoje potesenie, ale aj pracovne.

Vravis, ze kod z Enginu je kratsi, to aj v dakom OpenGL Engine, preco asi? :lol:
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: Ako na OpenGL - tutorial

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

MVS express je zdarma a mozes ho predavat kolko chces
Viem ze engine je ina vec, ja som to myslel tak ze MS dodava tuto nadstavbu a teda ak niekomu vadi pisat nativne moze pouzit tuto nadstavbu. No a ked kodis grafiku pracovne, tak neviem kde sa ukryva ta efektivita prace ked kodis nativne ?!
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: Ako na OpenGL - tutorial

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

V robote vyvijame vlastny engine nad OpenGL, taku priemyselnu platformu a na nej vyvijam Imerzivne technologie a rozsirenu realitu. Samozrejme, ze sa pouziva xy dalsich kniznic (OpenCV, Collada, Freeimage, Boost ...), ale ja robim vyvoj, tak ta efektivita pri tvorbe produktov je pomalsia, to mas pravdu.

//autoeditácia príspevku (19 Aug 2011, 20:11)
Presunutie tutoriálov na stránky sourceforge.net. Tu ostáva iba volná diskusia. Odkaz na OpenGL tutoriály. Viac sa dočítate v prvom príspevku.

//autoeditácia príspevku (19 Aug 2011, 21:03)
Dosla mi odpoved, ze tie tutorialy su az moc zlozite pre zaciatocnika. Budem rad, ked tu napisete co by ste chceli zmenit a comu konkretne nechapete? :).
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: Ako na OpenGL - tutorial

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

Ja mam navrh aby si zacal ako kazdy iny tutorial na OpenGL, s nejakymi jednoduchymi vecami ako je vykreslenie stvorca a tych vsetkych veci pricom ukazes napr len stvorec a k ostatnemu das len link lebo je to skoro to iste (to jedine viem :D ). Tiez by bolo dobre aby si presne popisal kazdu funkciu a ako to vsetko funguje ak by sa dalo aj take veci ako buffery :roll:
V dalsom by si mohol dat to meranie FPS, v dalsom by si mohol dat ako hybat kamerov, v dalsom by si mohol dat ako urobit 3D objekt a hybat kamerov a dalej nwm kedze OpenGL nwm :D , ale takto by som si to ja predstavoval ak mozes. A najdolezitejsia vec aby si to nedaval do tak vela suborov (lebo sa v tom zle orientuje a len hladam kde co je), ale len do napr myOpenGLFuncs.hpp a myOpenGLFuncs.cpp, a davat vsetko vykreslovanie do jednej funkcie a pod ziadne class zatial a vsetko davat normalne do okna SFML bez toho prepajania a pod zatial pls, a tiez velmi dolezite podla mna aby si sa vzdy zameral na jednu vec a o nej co najviac napisal a ukazal.
Moj nazor, moze byt :) ? Prosim o nieco taketo

//autoeditácia príspevku (21 Aug 2011, 9:20)
A poriadne vysvetli ako funguje to nastavovanie suradnicoveho systemu
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: Ako na OpenGL - tutorial

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

reDo napísal:Ja mam navrh aby si zacal ako kazdy iny tutorial na OpenGL, s nejakymi jednoduchymi vecami ako je vykreslenie stvorca a tych vsetkych veci pricom ukazes napr len stvorec a k ostatnemu das len link lebo je to skoro to iste (to jedine viem :D ). Tiez by bolo dobre aby si presne popisal kazdu funkciu a ako to vsetko funguje ak by sa dalo aj take veci ako buffery :roll:
Suhlasim, ze tam je toho vela. Prepisem to do viacerych lekcii. Podrobne popisanie funkcii, to je jasne, len nie je na to cas, tak postupne :).
A najdolezitejsia vec aby si to nedaval do tak vela suborov (lebo sa v tom zle orientuje a len hladam kde co je), ale len do napr myOpenGLFuncs.hpp a myOpenGLFuncs.cpp, a davat vsetko vykreslovanie do jednej funkcie a pod ziadne class zatial a vsetko davat normalne do okna SFML bez toho prepajania a pod zatial pls.
Pokusim sa co najviac ten kod zjednodusit, ale pri OOP ostavam. Traba si uvedomit, ze tieto tutorialy su pre zaciatocnikov v OpenGL a nie C++ :). Pri OOP by malo platit, ze kazda nova trieda ma svoj vlastny *.h a *.cpp. Kazda nova funkcionalita je nova trieda a teda nove *.h,cpp. Budes sa musiet pocas OpenGL ucit aj C++. Ako som pisal, chcem pouzit moderne programovacie techniky a nie kopirovat NEHE.

Takze, ked v dalsej lekcii pridam napr. Texturove mapovanie, tak vznikne minimalne jedna nova trieda Texture, ktora bude v sebe indexovat obrazok na grafickej karte a kazdy novy objekt typu Texture, bude predstavovat novu texturu. Takto dako sa to snaz pochopit.

Dakujem za pripomienky, kludne mi to kritizuj dalej, budem rad :).
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: Ako na OpenGL - tutorial

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

Mne by OOP nevadilo ale je to dost neprehladne hentak, jedno v druhom.
Ano suhlasim s tym ze trieda .h .cpp napr texturovanie, ale najcitatelnejsie a najjednoduchsie by to bolo keby si vsetky objekty vytvaral v maine a tam ich aj pouzival a nie ich vnoroval do seba, lebo potom je v tom bordel (moj nazor :| ). Hlavne to rozclenit do vela lahkych lekcii v ktorych to aj kombinujes obcas aby clovek videl ako to spojit ku sebe a pod.
Keby si mohol tak v nejakej velmi skorej lekcii urobit podrobnu lekciu na suradnicovy system ako ho upravit podla seba a pod veci okolo toho. A mohol by si vysvetlit aj napr tento prikaz

Kód: Vybrať všetko

glMatrixMode(GL_MODELVIEW);
co vsetko moze byt v nom a naco sa to pouziva a kedy to mam kde napisat, viem ze hento je na nastavenie modu na zobrazenie :) .
A ked mam nejaky kod s ktorym by som chcel pomoct tak kam ho mam postnut, tu alebo tam? :roll:
Vopred dakujem.
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: Ako na OpenGL - tutorial

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

Do akej miery rozumies v tutorialoch matematickej triede Vector4V v MathType. Ja som pouzil velmi sofistikovny sposob tvorby matematickych vektorov, ale neviem do akej mieri tomu bude rozumiet zaciatocnik, hmm? Jedna sa mi hlavne o Templates, chapes tomu ty?

Jedna sa o univerzalnost. Ty pouzijes iba typ vektora a urcis mu s akou premennou ma robit.
napr:

Vector3V<double> _pos; //znamena, ze sa jedna o premennu, ktora v sebe uchovava 3 vektory v suradnicovej susteve (x,y,z). Ty do spicatych zatvoriek, das typ, ktory budu reprazentovat jednotlive premenne (x, y, z).

Vector3V<double> _pos; //vektor 3 premennych double
_pos.x //je double
_pos.y //je double
_pos.z //je double

Vector3V<int> _pos; //vektor 3 premennych int
_pos.x //je int
_pos.y //je int
_pos.z //je int

Do akej miery chapes pouzitiu a implementacii?
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: Ako na OpenGL - tutorial

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

ja som v mistrovstvi v C++ na poslednej kapitole a urobil som zatial vsetky cvicenia, takze tomuto chapem :lol: len samotnym vektorom budem chapat menej :wink:
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: Ako na OpenGL - tutorial

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

Takze tomuto zapisu chapes.

Kód: Vybrať všetko

template<class TVARVEC>
struct Vector3V
    {
public:
    TVARVEC x;
    TVARVEC y;
    TVARVEC z;
    Vector3V();
   };
Vektor je zaklad, raz to musis naucit. Zatial pojde o to, ze ked mas bod a chces ho vykreslit v priestore, tak pouzijes iba jednu premennu, kt. v sebe uchova 3 suradnice na 3 osiach.

Pr.: Vytvoris tri premenne

Kód: Vybrať všetko

double x = 0.0;
double y = 0.0;
double z = 0.0;
    glVertex3f(x, y, z); //vykresli bod v strede
Pr.: Moja trieda

Kód: Vybrať všetko

Vector3V<double> _pos (0.0, 0.0, 0.0);
    glVertex3f(_pos.x, _pos.y, _pos.z); //vykresli bod v strede
S takouto triedou potom mozes robit rozne matematicke operacie ako scitanie, nasobenie, rotacia vektora, atd.
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: Ako na OpenGL - tutorial

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

j chapem tomu :)
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Ako na OpenGL - tutorial

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

Ja sa vam do toho nechcem nejako miesat, ale reDo, neviem sice kolko mas rokov, ale vektory sa ucia cca 3. rocniku na strednej skole. Neviem ci si tento rocnik uz vychodil, alebo len donho pojdes, ale tam sa o vektoroch naucis dost. Potom ti uz staci len vediet syntax ako to zapisat, pretoze v skole ti daju potrebne vedomosti o vektoroch.
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: Ako na OpenGL - tutorial

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

mam 15, takze zatial som sa o nich neucil :)

//autoeditácia príspevku (24 Aug 2011, 20:14)
Vysvetli pls funkciu gluPerspective() :roll:
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Ako na OpenGL - tutorial

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

ak mozem tu tak: pozna niekto OpenIL popr. ich licenciu?, spolahlivost?

Kód: Vybrať všetko

http://openil.sourceforge.net/
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: Ako na OpenGL - tutorial

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

Neviem presne na com to je postavene, co som cital, nesluzi to na samotnu grafiku, ale na manipulaciu s formatmi. Takze je to vpoho kniznica, ked poskytuje manipulaciu s tolkymi formatmi. Napr. my v robote pouzivame format .doom na import modelov z 3Dmax, Blender, Autocad do nasho enginu. Minusove body davam, ze ta kniznica nema *.xml wrapper, co povazujem za dôlezity format. Ak sa chcem zamerať na multimedialny obsah, tak odporucam skor OpenCV alebo FreeImage alebo aj SFML ma daku podporu obrazovych formatov.

Inak vysli nove lekcie s nastavenim kamery, nie su este popisane, ale su tam nove zdrojaky.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Ako na OpenGL - tutorial

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

Tie tutorialy vypadaju v pohode:) len pre zacinajucich by som to spravil ako NEHE okomentovat kazdy riadok kodu co robi (ak sme sa stou funkciou este nestretli alebo ak neni vysvetlena)
napr. mas:

Kód: Vybrať všetko

stepIterations = 0;
    stepStartTime = GetLocalTime();
    stepInterval = 0.0025;
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: Ako na OpenGL - tutorial

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

Ano nie je vysvetleny kazdy riadok, je to zdlhave pisat ten manual, ale som to vysvetlaval v Lekcii 1. Zdrojak nie je moc okomentovany, ale skoro vsetko je v lekciach.
Tymto sa nastavia pociatocne parametre pre pocet volani v Step().

Kód: Vybrať všetko

stepIterations = 0; //pocet iteracii v step
stepStartTime = GetLocalTime(); //zaznamena cas zacatia aplikacie
stepInterval = 0.0025; //tymto intervalom sa da nastavit vyvazenost volani Step() oproti Draw();
Daj si vypisy do Step() a Draw() a uvidis ako sa vyvazuje volanie. Daj tam daky sleep() a uvidis ako sa ten pomer zmeni.
V tejto funkcii prebieha vyvazovanie volani:

Kód: Vybrať všetko

void Step()
    {
    while (stepStartTime + stepIterations * stepInterval < GetLocalTime())
	{
	stepIterations++;
	//cout << stepIterations << ":" << "Step is OK: " << endl;
	ConnectSDL::Step();
	}
    }
stepIterations sa inkrementuje a while trva pokial je v podmienke s casom. Dlzka trvania podmienky zavisi od toho ako dlho travalo vykreslovanie v Draw(); Cim dlhsie, tak tym neskor sa ukonci podmienka v Step(). Je to potrebne tak spravit, pre zachovanie rovnakeho behu aplikacie pri roznych zatazeniach. Podrobnejsie sa o tom docitas v lekcii.
Take nieco v hoc akych tutorialoch nenajdes, to su aj skusenosti :). V podstate v Step() sa pracuje s CPU a v Draw() s GPU.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Ako na OpenGL - tutorial

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

:) v pohode ja som to nechcel prelozit sice to nie je na skodu ale som iba podotkol ze to by mohlo byt pre zaciatocnikov
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: Ako na OpenGL - tutorial

Príspevok od používateľa c-ice »

http://labs.qt.nokia.com/2011/08/24/qt- ... ial-video/ toto by mohla byt dobra ukazka toho ako to robit efektivnejsie :)
sorry ze vam sem do toho vrtam ale je to OpenGL a je to Tutorial ... ale pridal som to sem lebo zaujmave video... s QML sa hram nejaky cas toto si skusim
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: Ako na OpenGL - tutorial

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

No ved to nie moc zlozite. Podobne pracujeme v robote, 3D modely sa robia v Blendery, 3Dmax alebo AutoCad, to nie je programovanie, ale modelovanie. Ty potom z Blenderu exportnes model a vo svojom programe si nakodis impoter daneho suboru napr. *.dae, je to nieco podobne ako XML, nahraju sa ti data a model sa zobrazi v tvojom programe. Dalej sa moze dorobit fyzikalny model a mas auticko aj s fyzikou.
Napísať odpoveď