.[ ČeskéHry.cz ].
Animace 3D modelu
Jdi na stránku Předchozí  1, 2, 3, 4  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
nou



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

PříspěvekZaslal: 10. březen 2008, 08:45:01    Předmět: Odpovědět s citátem

1. to uz tu ideme do veci ako su organizacia objektov na scene v octree BSP tree a ine.

2. skybox??
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 10. březen 2008, 22:27:16    Předmět: Odpovědět s citátem

nou napsal:
1. to uz tu ideme do veci ako su organizacia objektov na scene v octree BSP tree a ine.

2. skybox??


Tak díky za dopověd skybox, něco už jsem si o tom našel, dokonce jsem si oprášil znalosti jak vykreslit kostku, ale pořád nějak nechápu umístění v prostoru skyboxu.. Jde mi o to když si představíme např scénu s 5 domy a 5 stromy, kde se bude kamera moci volně pohybovat, i zde je dobré použít skybox?
Pokud ano, musím tedy vytvořit box o velikosti celého prostoru?
Také jsem našel že skybox se má vykreslovat jako poslědní, pokud ho však vykrelím jako poslední, box mi překrývá veškěré objekty..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 10. březen 2008, 22:38:10    Předmět: Odpovědět s citátem

Se zapnutým depth testem se ti nic překrývat prostě nemůže. Kresli ho na zadní ořezávací rovině a pokud je to pro tebe těžké, tak ho prostě kresli někde daleko od všeho ostatního. Jak jako velikost prostoru? Celý prostor je nekonečně velký. Skybox umísťuješ vždy na pozici kamery.

Taky se dá kreslit skybox pomocí jednoho trojúhelníku přes celý viewport (nebo čtverce). Je to přímočaré řešení, protože nemusíš řešit jeho umístění v prostoru a představit se to dá jako "pozadí" nebo "podklad scény", který vždy leží přesně na zadní ořezávací rovině. Bohužel je to technicky i matematicky trochu náročnější.
_________________
AMD Open Source Graphics Driver Developer


Naposledy upravil Marek dne 10. březen 2008, 22:39:40, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 10. březen 2008, 22:39:09    Předmět: Odpovědět s citátem

da sa vykreslovat ako prvy. ale tam sa potom je to neefektivnejsie. a skybox treba vykreslovat tak aby kamera bola vzdy v strede skyboxu. da sa to dosiahnut jednoducho tak ze sa do modelview matice na posledny riadok(stlpec) dosadi 0 0 0 1. su na to funkcie
kód:
glLoadMatrix(m[16]); glGetFloatv(GL_MODELVIEW_MATRIX, m[16]);
treba si len odsledovat ci je pozicia ulozena v 12 13 14 alebo 3 7 11(skor 12 13 14)
_________________
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: 10. březen 2008, 22:41:05    Předmět: Odpovědět s citátem

To jsou dva různé problémy.
Umístění v prostoru lze řešit nastavením posuvné části modelview matice na 0, takže zbude jenom rotační část. Tím pádem stačí skybox malý, třeba 10x10x10.
Jak kreslit skybox jako poslední nevím. Sám ho kreslím jako první s vypnutým depth testem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



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

PříspěvekZaslal: 11. březen 2008, 06:03:46    Předmět: Odpovědět s citátem

ak sa ma kreslit posledny tak ho treba vykreslit velky tak aby sa vosla cela scena.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 11. březen 2008, 13:46:21    Předmět: Odpovědět s citátem

Eosie napsal:
Se zapnutým depth testem se ti nic překrývat prostě nemůže. Kresli ho na zadní ořezávací rovině a pokud je to pro tebe těžké, tak ho prostě kresli někde daleko od všeho ostatního. Jak jako velikost prostoru? Celý prostor je nekonečně velký. Skybox umísťuješ vždy na pozici kamery.

Taky se dá kreslit skybox pomocí jednoho trojúhelníku přes celý viewport (nebo čtverce). Je to přímočaré řešení, protože nemusíš řešit jeho umístění v prostoru a představit se to dá jako "pozadí" nebo "podklad scény", který vždy leží přesně na zadní ořezávací rovině. Bohužel je to technicky i matematicky trochu náročnější.



Tak nevím, nějak to stále nemohu pochopit.. Nevíš kde bych mohl najít nějaké povídání o skyboxu, co to je a tak? (hlavně ne AJ!)
Vykreslit kostku není problém, ale nějak nevím jak ji zvěšit, pokud vynásobím jednotlivé souřadnice, pouze se mi někam posune ale rozhodně nemění velikost. A pochybuji že by se mi do ní všel nějaký objekt když je takto "malá".

ps: velikost skyboxu se přeci musí dát nějak měnit, není každá cnéna přeci stejně velká...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



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

PříspěvekZaslal: 11. březen 2008, 15:17:48    Předmět: Odpovědět s citátem

My ti tady radíme každý něco jiného, tak se ani nedivím, že jsi z toho zmatený Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



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

PříspěvekZaslal: 11. březen 2008, 15:42:08    Předmět: Odpovědět s citátem

kód:

float modelmatrix[16];
glGetFloatv(GL_MODELVIEW_MATRIX,modelview[16]);//nacita maticu do pola
modelmatrix[12]=modelmatrix[13]=modelmatrix[14]=0;//x,y,z transformaciu nastavime na 0
glLoadMatrix(modelmatrix);//naloadujeme naspet do OpenGL

tento kod vyrusi vsetky posuny ktore sa vykonaly ale kamera ostane natocena tak ako ma.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 11. březen 2008, 21:10:02    Předmět: Odpovědět s citátem

Posuny to rozhodně nevyruší, protože ty posuny jsou zapečený i v té rotační části. Sice se nějak dají dostat pryč, ale rozhodně to není takto jednoduché.

Juraj: Bez znalosti AJ a bez nějakého matematického základu asi nic neuděláš, resp. něco uděláš, ale bude to zplácaný kód odjinud, protože tomu nebudeš rozumět. Fakt nevím, co ti poradit, když máš problém jenom zvětšit krychli.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 11. březen 2008, 22:59:20    Předmět: Odpovědět s citátem

Copak v DX SDK není ukázka skyboxu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 12. březen 2008, 00:17:19    Předmět: Odpovědět s citátem

Eosie napsal:
Posuny to rozhodně nevyruší, protože ty posuny jsou zapečený i v té rotační části. Sice se nějak dají dostat pryč, ale rozhodně to není takto jednoduché.

Já mám zkušenost přesně opačnou, tzn. mám stejný názor jako nou.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 12. březen 2008, 01:21:34    Předmět: Odpovědět s citátem

Jistě oba máte pravdu v tom smyslu, že když nekombinujete do sebe moc transformací, dá se takto snadno vyřadit posun. Bohužel obecně to nefunguje, například když si přímo vezmeš součin matice kamery a projekční matice, tak posun odtamtud takhle snadno neodstraníš (protože se tam plete ta projekce). Tam už jsem musel z jedné strany násobit inverzní maticí posunu, abych ho opravdu vyrušil.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
wozembouch



Založen: 03. 09. 2007
Příspěvky: 31

PříspěvekZaslal: 12. březen 2008, 11:57:01    Předmět: Odpovědět s citátem

http://sidvind.com/wiki/Skybox_tutorial
http://nehe.ceske-hry.cz/tut_obsah.php

Zvlast vyzivny je druhy odkaz i kdyz primo skybox tam nenajdes.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 12. březen 2008, 13:16:14    Předmět: Odpovědět s citátem

No možná je špatně chápu umístění toho skyboxu v prosotru.. No ale teď mám nyní trochu jiný problém, pokud kreslím jen skybox, vse je asi v poradku, vse vypada tak jak ma. Ale jakmile vykreslim nejake objekt (model) tak se mi cely skybox hodi nekam dozaku a vzbec to nevypada jako kostka..

Do teď jsem si myslel že trosnformaci jednoho objektu (skyboxu) utvari pouze nastaveni world matice device před vykreslením. Ale i kdžy world matici takto nastavím, stále se mi deformuje..


DODATEK: omlouvám se za zbytečnou paniku, chyba byla u mě, špatně jsem si nastavoval data do bufferu. Takže problém vyřeše. Ovše stále se mi nedaří kreslit skybox jako poslední aby mi nepřekrýval všechny objekty, je to asi tím že nenastavuji nějakou vlastnost device, však nevím kterou. Jedná se mi o directX, můžete mě nědko alespoň nasměrovat, dza to není např až tak jednoduché...


Naposledy upravil Juraj dne 12. březen 2008, 15:00:03, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
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 Předchozí  1, 2, 3, 4  Další
Strana 3 z 4

 
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