Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 6. srpen 2011, 09:41:03 Předmět: |
|
|
k tomu 2.0f myslis ze suradnice okna boli od -1 do 1? tak ano da sa to nastavit na hodnoty pri ortographickej projekcii.
sluzi na to void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);
napriklad nastavis takto.
kód: |
glMatrixMode(GL_PROJECTION);
glOrtho(0, 1024, 0, 768, 0, 1);
|
takto ziskas okno kde mozes kreslit od [0,0] po [1024,768] pricom nula je v lavom dolnom rohu. ak prehodis hodnoty bottom s top tak dostanes nulu v hornom lavom rohu. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 7. srpen 2011, 03:52:22 Předmět: |
|
|
Gurthfin napsal: |
Pokat, pockat, pockat... a teraz pomaly a jasne. Toto je to, na co hladam odpoved. ...
Ono, ako sa to da oddelit? Stale sa budem pohybovat v drawGlScene akoby to bol main, alebo si vytvorim vlastny Logic_main a v nom budem volat drawGlScene ako normalnu funkciu a ostatne bude logika, popripade nejaky iny main, kde budem volat drawGlScene a Logic_main? |
Pokial v mas aktualnom projekte chaos, tak silne doporucujem stiahnut nejaku Lesson 5, alebo 10 od neHe a pozriet ako to ma posekane v kode. To su kratke projekty - tak do 200 riadkov max, takze je to lahke najst to. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 7. srpen 2011, 09:27:55 Předmět: |
|
|
NeHe OpenGL tutorialy SUXXXXXXXXXXXX. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 7. srpen 2011, 11:23:41 Předmět: |
|
|
frca napsal: |
NeHe OpenGL tutorialy SUXXXXXXXXXXXX. |
Pro někoho, kdo si na OpenGL ani nesáhl (a případně se při tom ještě učí C/C++), je to náhodou dobrý start. Já "vyrostl" na tutoriálech sulaco.co.za, což je v podstatě něco jako NeHe, akorát k tomu není napsané poučné pojednání. Prostě jednodušší začátek, několik odpolední čtení a upravování kódu...
Jak oddělit herní logiku a kreslení? Nějak brutálně rozdělené to není, může se to volat za sebou, kromě toho kreslení potřebuje od herní logiky povědět, co má vlastně na obrazovce spáchat. Na druhou stranu je dobré to nemíchat dohromady (mezi kreslením počítat důsledky toho a toho kouzla).
Možná je dobré to prostě nějak zkusit, kdyžtak to bude špatně... co na tom, člověk se poučí pro příště. _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 7. srpen 2011, 15:11:49 Předmět: |
|
|
Gurthfin napsal: |
Pokat, pockat, pockat... a teraz pomaly a jasne. Toto je to, na co hladam odpoved. ...
Ono, ako sa to da oddelit? Stale sa budem pohybovat v drawGlScene akoby to bol main, alebo si vytvorim vlastny Logic_main a v nom budem volat drawGlScene ako normalnu funkciu a ostatne bude logika, popripade nejaky iny main, kde budem volat drawGlScene a Logic_main? |
Pozrel som si zbezne Lesson 02 na http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(win32)/13001/ a tam to vyzera tak, ze DrawGLScene sa vola z funkcie WinMain. Tam zaroven riesi input, takze tam by si mohol nasekat aj hernu logiku. Vsimni si premennu done - ta zabezpecuje nekonecny kolobeh renderingu (v prirode). A pokial nestlacis Escape, ten cyklus neprerusis.
Fakt by som ale doporucil rovno vytvorit novu metodu - napr. ProcessGameLogic () a len ju zavolat z toho WinMainu. A hod to ako riadok tesne pred DrawGLScene ().
Gurthfin napsal: |
a tiez som si spomenul na OpenGL a vcelku nepeknu vec a to rozlisenie. Viem, ze prvy projekt som robil na rozlisenie 2,0f. S tym sa velmi zle pracovalo. Tak sa chcem spytat, ci sa da pracovat aj s normalnym rozlisenim, ako ho poznam z prace s PC. |
Tym normalnym rozlisenim teraz myslis nieco ako 1024x768 ?Cize 2D ? Ak nepotrebujes 3D, a chces len posuvat sprity, tak je na zvazenie ci nepouzijes rovno kniznicu SDL -http://wiki.libsdl.org/moin.cgi/SDL1.2Tutorials a pozri si napr. tutorial na sprity : http://sol.gfxile.net/gp/ch03.html |
|
Návrat nahoru |
|
 |
Gurthfin
Založen: 04. 08. 2011 Příspěvky: 5
|
Zaslal: 12. srpen 2011, 23:05:55 Předmět: |
|
|
konecne mam cas sa pohnut dalej.. poobedna v robote je na figu.. pridem dom, pustim si nieco na odpocinutie na hodinku dve a mozem ist spat. A vstavam pol hodinu pred odchodom do prace...
tak som sa dostal na lesson 02 a tam je to, co som spominal:
kód: |
glBegin(GL_TRIANGLES);// Začátek kreslení trojúhelníků
glVertex3f( 0.0f, 1.0f, 0.0f);// Horní bod
glVertex3f(-1.0f,-1.0f, 0.0f);// Levý dolní bod
glVertex3f( 1.0f,-1.0f, 0.0f);// Pravý dolní bod
glEnd();// Ukončení kreslení trojúhelníků |
da sa to v normalnom systeme rozlisenia(napr 1920x1080) napisat? Alebo je na to nejaky trik?
VladR: vdaka za tu poznamku, skusim sa na to lepsie pozriet, mozno by to tak slo.
Co sa tyka konceptu hry, tak zatial uvazujem qvazi 3D. Chcem urobit 3 Layeri - L1. budu karty na ruke na spode obrazovky, L2 bude hracia plocha posunuta na ose z dozadu a L3 budu zvacsene karty (ukazanie karty, boj kariet atd.) posunute na ose z dopredu. Ale este musim pokrocit v tutorialoch, takze toto je le prvotny nastrel. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 13. srpen 2011, 05:34:56 Předmět: |
|
|
3D souřadnice nemají nic společného s rozlišením monitoru. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 13. srpen 2011, 09:06:02 Předmět: |
|
|
Pamatuji si své začátky před cca 10 lety, já měl dotaz přímo na autora překladu nehe-tutoriálů, víceméně totožný jako ty.
Nejdřív se musíš rozhodnout, jestli chceš hru 2D, nebo 3D. Pokud 2D, v OpenGL použiješ glOrtho - v nehe tutoriálech je to tužším v lekci s pickingem (je to pozdější lekce, ale neboj se občas přeskočit). V glOrtho si určíš, jaké souřadnice budou mít rohy vykreslovací plochy, většinou jeden roh [0, 0] a druhý dle rozlišení monitoru, např. [1024, 768]. Poté už budeš vykreslovat pro tebe přirozeně, tedy, že chceš 100px zleva a zeshora nakreslit čtverec.
Ve 3D se souřadnicemi pracuje trochu jinak. Je vhodné si na začátku říct, co budeš považovat za vzdálenost od 0.0f do 1.0f, jestli to bude např. 1m, 1km, to záleží asi hlavně na zvolené hře. Pak už jednoduše můžeš definovat, co je kde, např. že dům je od 0.0f do 5.0f, na 5.0f začíná trávník apod. Máš definovanou scénu, pak je potřeba určit jakou část scény hráč uvidí. Jestli má vidět jen okno u domu, nebo celý dům i s trávníkem. To uděláš např. pomocí příkazu glLookAt, který slouží k umístění kamery. To si můžeš představit např. jako bys do té své scény stoupil s videokamerou, stoupl si před okno domu, otočil se na to okno a např. navíc kameru otočil o 90 stupňů (to jsou parametry funkce glLookAt) a díky tomu se ti poté vykresluje to, co chceš.
Snad je to dost laicky popsáno a zároveň tam není moc nepřesností, které by mohli začátečníkovi spíš uškodit. _________________
 |
|
Návrat nahoru |
|
 |
Gurthfin
Založen: 04. 08. 2011 Příspěvky: 5
|
Zaslal: 13. srpen 2011, 13:00:20 Předmět: |
|
|
vdaka Houpe, konecne mi niekto zrozumitelne vysvetlil, preco nemozem pouzivat rozlisenie v 3D...
zbezne som si pozrel dalsie tutorialy, ale nevidel som tam kreslenie podla pixelov.. takze ak pouzijem to glOrtho, tak v glVertex3f( 0.0f, 1.0f, 0.0f) mozem pouzit pixelovy format?
A este jedna vec ma napadla.. pri praci s DarkGDK som mal problem loadovat obrazky (textuty), lebo to trvalo nehorazne dlho. Ked som si vytvoril jeden obrazok o max velkosti (nieco cez 4000px x4000px) tak som cas skratil, ale aj tak sa do toho obrazku nezmestili vsetky karty, takze znova som musel pouzit viac obrazkov a cas sa natahoval.. a tym myslim az na niekolko minut. Ako je to v OpenGl? |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 13. srpen 2011, 14:39:43 Předmět: |
|
|
starsie karty podporuju textury s maximalnym rozmerom tak 2048-4096 pixelov. dnesne modernejsie karty zvladaju 8192-16386 pixelov. dlzka nacitania takej velkej textury bude myslim maximalne v desatinach sekundy. ale to je iba nacitanie do OpenGL. ak ich nacitavas z JPG alebo PNG tak sa ti to moze dost predlzit kedze ju treba najprv rozbalit kedze je ulozena komprimovane. to moze zabrat aj tie sekundy pri takto velkych obrazkoch.
jednym z rieseni je pouzit S3TC kompresiu ktora do zmensi textury stvor alebo osemnasobne. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
|