Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Redby
Založen: 20. 11. 2011 Příspěvky: 9
|
Zaslal: 14. prosinec 2011, 14:50:19 Předmět: OpenGL a průchod terénem (glTranslatef() nebo gluLookAt())? |
|
|
Ahoj, mám tu jednu otázečku. Dělám v OpenGl jednu aplikaci. Mám vygenerovaný terén dle výškové mapy. Rozhlížení po krajině řeším pomocí glRotatef(). Otázka zní jak řešit pohyb. Napadají mě možnosti buď pomocí glTranslatef() a nebo pomocí gluLookAt(). Jen mi není jasný jaká varianta bude optimálnější. Toho glTranslate se docela bojím.. Díky za vaš názor. |
|
Návrat nahoru |
|
 |
tomkis
Založen: 06. 06. 2011 Příspěvky: 33
|
Zaslal: 14. prosinec 2011, 15:42:22 Předmět: |
|
|
dle meho je nejlepsi vykaslat se na fixni pipeline, vytvorit si vlastni world view projection matici a tu poslat do shaderu. |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 14. prosinec 2011, 16:07:23 Předmět: |
|
|
Použij gluLookAt() pro pohyb i rozhlížení, to je přece nejpřirozenější (proč bys otáčel a hýbal celým světem okolo stojícího hrdiny).
tomkis napsal: |
dle meho je nejlepsi vykaslat se na fixni pipeline, vytvorit si vlastni world view projection matici a tu poslat do shaderu. |
glTranslate(), glRotate() a gluLookAt() nesouvisí s fixní pipeline, jen vytvoří a aplikují matice (ne každý si potřebuje z netu stáhnout kód na ruční sestavení matice, který bude mít stejný vstupy a výstup, takže je to jen práce navíc). _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
Redby
Založen: 20. 11. 2011 Příspěvky: 9
|
Zaslal: 14. prosinec 2011, 16:32:47 Předmět: |
|
|
Jo jo, co se týká pohybu vs použití gluLookAt() tak se mi to líbí nejvíc. Co se týká rotace, tak uznávám že to je přirozenější, ale u glRotatef() se mi líbí že mohu rovnou zadat velikost uhlu o kolik se otočí celá scéna. Potřebuji se otáčet o 360 stupňů, což je při tomto přístupu velmi jednoduché. Zkoušel jsem to přes kameru, ale nějak jsem se do toho zamotal. |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 14. prosinec 2011, 17:38:50 Předmět: |
|
|
na glTranslate rovno zabudni
Nejde o to, ci tym nedosiahnes rovnaky vysledny efekt - ale je to proste uplna absurdita posuvat vsetky objekty na simulaciu kamery.
Objekty maju mat svoju absolutnu World Position fixnu - aj pohybujuce sa ju budu mat fixnu voci bodu 0,0,0
Narobil by si si zbytocne vela problemov neskor, ak by si objekty posuval podla pozicie kamery.
Navyse, tu musis nastavit aj tak - bez kamery nic nevidis - takze skutocne nerozumim, o co ti vlastne ide ? Pokial treba, tak strav hranim sa gluLookAt trocha viac casu - povedzme 1 den navyse - to ta nezabije a aspon v tom budes mat jasno.
Navyse, pochopil by som, ak by si si vytvaral maticu sam pomocou Look, Up, Right vektorov - to ano - to je statocne matuce na prve pozretie a tweakovanie.
Ale gluLookAt ? Ved tam len zadas par parametrov a o viac sa nestaras...
tomkis - no neviem, ci ked clovek prave zacina s 3d grafikou, ci je WorldViewProj najstastnejsie riesenie - to ho skor odradi... |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 14. prosinec 2011, 18:50:20 Předmět: |
|
|
Tak to tady čtu a nestačím se divit. glTranslate že posouvá objekty? glu* že může ještě dnes nějaký soudný člověk použít? _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Redby
Založen: 20. 11. 2011 Příspěvky: 9
|
Zaslal: 14. prosinec 2011, 20:25:55 Předmět: |
|
|
Tak zatím co koukám tak co prispevek tak odlisny názor. Možná zběsilá myšlenka, ale co kombinace obou. Tzn. rozhlížení glRotate a pohyb gluLookAt()? Fakt je ten že s 3D grafikou začínám. |
|
Návrat nahoru |
|
 |
tomkis
Založen: 06. 06. 2011 Příspěvky: 33
|
Zaslal: 14. prosinec 2011, 20:30:21 Předmět: |
|
|
matrix stack je v dnešní době již zastaralý, a jelikož je deprecated bude mnohem rozumnější když se člověk vykašle na staré postupy z doby fixni pipeline a využije moderní řešení při kterém mnohem lépe pochopí koncept celé transformace. Tento případ dle mého je nejlépe aplikovatelný právě pro lidi kteří s tímto začínají, jelikož se vyhnou špatným návykům. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 14. prosinec 2011, 20:30:38 Předmět: |
|
|
no to mas pravdu ze je to zbesila myslienka.
inak nie je problem si napisat prevod medzi polarnymi suradnicami do 3D vektora ktory potom clovek da do gluLookAt();
a taktiez odporucam vykaslat sa na staru fixed pipeline a vrhnut sa priamo na shadery a teda OpenGL 3.x
na vlastne matice je potom pekna kniznica GLM http://glm.g-truc.net/ _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 14. prosinec 2011, 20:37:34 Předmět: |
|
|
Redby: Vřele doporučuji zapomenout na to, že existuje nějaké <GL/glu.h>, a to kvůli jeho zastaralosti. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 14. prosinec 2011, 20:38:29 Předmět: |
|
|
frca napsal: |
Tak to tady čtu a nestačím se divit. glTranslate že posouvá objekty? glu* že může ještě dnes nějaký soudný člověk použít? |
A nemyslis ze na pochopenie je to na zaciatok to najjednoduchsie ?
Ja si vazne neviem predstavit ako moze byt pochopenie WorldViewProj matice a jej nasobenie v shaderi jednoduchsie ako pouzit gluLookAt.
Teraz nerypem, teraz sa normalne pytam na pochopenie.
Ani ja by som to nepouzil, ale na zaciatku, ked sa clovek len uci a hra - mi to pride ako najjednoduchsie...
tomkis : ved o matrix stack ani rec nebola. Co to s tym ma ? |
|
Návrat nahoru |
|
 |
tomkis
Založen: 06. 06. 2011 Příspěvky: 33
|
Zaslal: 14. prosinec 2011, 20:44:53 Předmět: |
|
|
VladR napsal: |
frca napsal: |
Tak to tady čtu a nestačím se divit. glTranslate že posouvá objekty? glu* že může ještě dnes nějaký soudný člověk použít? |
A nemyslis ze na pochopenie je to na zaciatok to najjednoduchsie ?
Ja si vazne neviem predstavit ako moze byt pochopenie WorldViewProj matice a jej nasobenie v shaderi jednoduchsie ako pouzit gluLookAt.
Teraz nerypem, teraz sa normalne pytam na pochopenie.
Ani ja by som to nepouzil, ale na zaciatku, ked sa clovek len uci a hra - mi to pride ako najjednoduchsie...
tomkis : ved o matrix stack ani rec nebola. Co to s tym ma ? |
kameru pomoci gltranslate bez použití matrix stacku stejně rozumně nevyřeší. |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 14. prosinec 2011, 21:25:13 Předmět: |
|
|
som myslel, ze hovoris o glPushMatrix a glPopMatrix -> ja len hovorim, ze jej nastavenie v style FFP (osobitne Projection, osobitne World a osobitne View) je jednoduchsie na prvotne pochopenie ako sa ROVNO zacat dzubat so shadermi - ja s nimi pritom robim uz dlhe roky, ale zacinat by som na nich teda nechcel ani omylom.
Je ale pravda, ze dnesne shadery v HLSL sa pisu jednoduchsie ako ked som s nimi zacinal ja pod DX 8.1 - teda cisty assembler - tak zrejme to uz nie je taky sajgon ako byval - ale spominam si, ked som si dal prvy krat 3 mesiace pauzu od kodenia assembler shaderov a ked som sa k tomu po 3 mesiacoch vratil, tak prvy den som len picoval jak chora vrana, a to som tam mal aj komentare v shaderi. Assembler je proste assembler...
HLSL je uz ina kava, to je ale fakt. |
|
Návrat nahoru |
|
 |
Redby
Založen: 20. 11. 2011 Příspěvky: 9
|
Zaslal: 14. prosinec 2011, 21:53:29 Předmět: |
|
|
Tak jsem dospel k nazoru ze pouziju preci jen glTranslate(). Je na to odkaz i v nehe tutorialech a zatim vypada ze by to mohlo fungovat. Ale mnohokrate dekuji za cenne podnety. Je super vedet kde jsou odborníci.. Díky |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 14. prosinec 2011, 22:27:17 Předmět: |
|
|
NeHe
Tim bylo receno vse  |
|
Návrat nahoru |
|
 |
|