.[ ČeskéHry.cz ].
OpenGL a průchod terénem (glTranslatef() nebo gluLookAt())?
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Redby



Založen: 20. 11. 2011
Příspěvky: 9

PříspěvekZaslal: 14. prosinec 2011, 14:50:19    Předmět: OpenGL a průchod terénem (glTranslatef() nebo gluLookAt())? Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
tomkis



Založen: 06. 06. 2011
Příspěvky: 33

PříspěvekZaslal: 14. prosinec 2011, 15:42:22    Předmět: Odpovědět s citátem

dle meho je nejlepsi vykaslat se na fixni pipeline, vytvorit si vlastni world view projection matici a tu poslat do shaderu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 14. prosinec 2011, 16:07:23    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Redby



Založen: 20. 11. 2011
Příspěvky: 9

PříspěvekZaslal: 14. prosinec 2011, 16:32:47    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 14. prosinec 2011, 17:38:50    Předmět: Odpovědět s citátem

na glTranslate rovno zabudni Smile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 14. prosinec 2011, 18:50:20    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Redby



Založen: 20. 11. 2011
Příspěvky: 9

PříspěvekZaslal: 14. prosinec 2011, 20:25:55    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
tomkis



Založen: 06. 06. 2011
Příspěvky: 33

PříspěvekZaslal: 14. prosinec 2011, 20:30:21    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 14. prosinec 2011, 20:30:38    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 14. prosinec 2011, 20:37:34    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 14. prosinec 2011, 20:38:29    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
tomkis



Založen: 06. 06. 2011
Příspěvky: 33

PříspěvekZaslal: 14. prosinec 2011, 20:44:53    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 14. prosinec 2011, 21:25:13    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Redby



Založen: 20. 11. 2011
Příspěvky: 9

PříspěvekZaslal: 14. prosinec 2011, 21:53:29    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 14. prosinec 2011, 22:27:17    Předmět: Odpovědět s citátem

NeHe


Tim bylo receno vse Twisted Evil
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna