.[ ČeskéHry.cz ].
Tvorba 3D scény v praxi
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Laethnes



Založen: 14. 02. 2008
Příspěvky: 38

PříspěvekZaslal: 12. červenec 2010, 08:10:53    Předmět: Odpovědět s citátem

Mrkněte se na tohle www.rehtoni.ic.cz/terrain.zip (Win32) - ale je to ve značně rozdělané fázi. Jedná se o můj celkem jednoduchý editor terénu - jak výšky, tak textury. Právě ta tvorba výškové mapy mi přijde poměrně pohodlná.
Zároveň to programuji tak, aby šlo o co největší svět - je rozdělený do bloků, které adresuji 32 bitovým znaménkovým typem, takže teoretické maximum je cca 2 miliardy bloků do jednoho směru. (Pokud jde o rozměr bloku, jak celkový, tak počet polygonů, není to napevno.) Základní myšlenka je obrovský svět (právě jak zde bylo řečeno - kilometry a kilometry, jinými slovy - aspoň tak jsem to pochopil - svět, který se celý nevleze do RAMky), který se postupně načítá, jak se hráč světem pohybuje. (Momentálně není implementované ani ukládání ani načítání.)
Zdrojový kód není přiložen čistě proto, že v souborech nemám takovou tu hlavičku GNU GPL (a nepodařilo se mi zjistit, zda je nutná, pokud chci pod touto licencí vydat kód) ( => musím si dát tu práci a buď ji tam vložit, nebo si napsat script, co to udělá a pak to mohu zveřejnit, pokud bude mít někdo zájem).

Bohužel teď nemám moc času, takže se připojím až odpoledne.

Screenshot: http://www.rehtoni.ic.cz/terrain_screenshot.png


Naposledy upravil Laethnes dne 12. červenec 2010, 12:27:16, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 12. červenec 2010, 09:11:38    Předmět: Odpovědět s citátem

Offtopic:
To je dost strašný, jak tady někteří rozhazujou rady na všechny strany a hovno tomu rozumí. Nezlobte se, ale půlka tohodle vlákna je slepenec nějakých obecných pouček, podávaných značně zkresleně. A ještě tu hažte smajlíkama a vzájemně se srážejte!...viď if.then? Neříkám, že sem spolknul všechnu moudrost světa, ale když něčemu nerozumím, tak mlčím a šoupu nohama!


Kolize: výška terénu v určitém bodě se dá rychle zjistit i na meshi. Možná si to někteří pletou s kolizí mesh x mesh, která je skutečně pomalá, ale mesh x line je s použitím nějakýho jednoduchýho dělícího algoritmu (stromu) rychlá jako prase.

LOD: Uff. Radíte Švestkovi generovat LODy pro nepravidelný terén, víte co to je za práci (má-li to nějak vypadat a hlavně navazovat)? Terén s nepravidelnou triangulací bych hlavně rozřezal na kusy (předpočítat) a tyto kusy pohledově testoval. Vygenerovat LOD je problém, který možná ani nebude potřeba řešit. Pokud ano a necítíš se na to, vol radši heightmapu.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 12. červenec 2010, 09:23:22    Předmět: Odpovědět s citátem

Poky napsal:
A co třeba udělat v MAX Scriptu nějaký HeightMapEditor. Prostě v 3DS vymodelovat model terénu se všemi detaily a ten následně převést na height mapu. Něco takového maxscript bez problému dokáže a myslím, že by se to dalo i snadno naprogramovat.


Dalo. Vykreslí se do textury mesh terénu, přičemž každý vertex bude mít barvu podle výšky. Jednou sem to dělal. Opačnej postup (heightmapa na nepravidelný mesh) je taky možný, kdyby to někoho zajímalo, napište.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. červenec 2010, 09:34:41    Předmět: Odpovědět s citátem

]semo[ hele ja jsem jenom rikal jenom jednu cestu kterou to pujde, kdyz to nahaze do stromu tak to bude rychly a bude mu moct vsechno nasekat grafik, tot muj nazor. Ale urcite pro nej jako zacatecnika bude bohate stacit height mapa jenom s tim rozdilem ze bude potrebovat delat dalsi soubor kde bude definovat ty dalsi modely ale zase bude mit megahafoultra rychly kolize.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Svestka



Založen: 08. 07. 2010
Příspěvky: 32

PříspěvekZaslal: 12. červenec 2010, 10:15:55    Předmět: Odpovědět s citátem

Vyplatí se mi heigth mapa i v případě, že bych vkládal hory jako objekty, kde bych potom stejně potřeboval počítat kolize s trojúhelníky takže optimalizace celkového programu by se stejně musely řešit pro tyto kolize a nespoléhat se na to, že engine jede plynule pokud se kamera pohybuje po height mapě.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 12. červenec 2010, 10:40:17    Předmět: Odpovědět s citátem

semo> já osobně proti Játrovi nic nemám, jen jsem ho popichoval. Asi jsem se nechal trochu unést, ale pořád mám názor, že heightmapa je v skoro každém ohledu lepší, než mesh. I vhodně rozdělený mesh nemůže být rychlý jako heightmapa (když pokrývají stejnou oblast) - heightmapa má určitá pravidla a ta ji zrychlují. A to, že vhodně rozdělený mesh vs. ray je "rychlý jako prase", lidem mnohdy nestačí.

LOD: Technicky se to dá udělat. Ohledně navazování je to těžké, záleží na modelovacích technikách a obecně se to moc napsat nedá. Frustrum culling je samozřejmě základ.

Já taky neříkám, že jsem spolkl všechnu moudrost světa, ale alespoň se snažím autorovi tématu poradit. Vše ostatní bylo řečeno v mých předchozích příspěvcích.
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. červenec 2010, 10:53:17    Předmět: Odpovědět s citátem

Svestka: no, kdyz bys to mel takle a ty objekty na height mape tak by se daly obalit do nejakejch primitiv (koule, box) a proti tem testovat kolize. Kdyz to vhodne rozdelis tak to bude fungovat dobre.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Svestka



Založen: 08. 07. 2010
Příspěvky: 32

PříspěvekZaslal: 12. červenec 2010, 11:27:45    Předmět: Odpovědět s citátem

Skalnatý povrch pokud by měl být dostatečně detailní se bude těžko obalovat. Kolize by měly být dostatečně přesné aby kutálející se předmět po skále neposkakoval nepřesně a zároveň bych stejně asi potřeboval znát úhel sklonu pro výpočet aktuální rychlosti.
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. červenec 2010, 11:36:53    Předmět: Odpovědět s citátem

A stačí ti detail poskytovaný height mapou? Jestli jo, tak si jen čistě pro kolize převeď model na heightmapu, tzn. koliduj všude s heightmapou, ale vykresluj modely.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 12. červenec 2010, 11:45:23    Předmět: Odpovědět s citátem

Co když se na heightmapu použíje float nebo dokonce double? To by pak veškeré problémy s přesností měly zmizet, ne?

Jinak třeba UT má normálně heightmapu a do ní zasazenou klasickou geometrii levelu (tj. zdi) případně modely. Kdybych něco psal já, asi bych to taky tak udělal.

A editace heightmap se často dělá přímo v enginu, podle mě nic těžkého na programování.
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Svestka



Založen: 08. 07. 2010
Příspěvky: 32

PříspěvekZaslal: 12. červenec 2010, 11:46:39    Předmět: Odpovědět s citátem

No né vždy by mi height mapa stačila, například u různých převisů, či oblouků z těchto modelů by height mapa vytvořit nešla.

Edit: na druhou stranu, u těchto převisů už by měl jít pěkně aproximovat tvar kolize. Takže pokud by se pouze samotný převis přilepil jako objekt ke skále tak by to mělo být vpořádku.

Příjde vám takovéto lepení k height mapě jako čisté řešení ? Mě to trochu příjde jako prasení ale to soudím jen z mého pocitu kdy prostě načtu height mapu ale musím potom ještě lepit nějaké kusy objektů aby byl výsledný terén kompletní. (Bavím se o lepení objektů typu puklina ve skále, zkosená stěna skály apod. nejendá se tedy o klasické objekty jako kameny, mosty apod.) Pro představu chci aby bylo možné na enginu generovat něco jako například na tomto obrázku což pomocí height mapy nejde nikdy dosáhnout.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Játro.m



Založen: 01. 02. 2010
Příspěvky: 230

PříspěvekZaslal: 12. červenec 2010, 12:01:05    Předmět: Odpovědět s citátem

no, jestli chceš takovýdle detaily tak bych to už modeloval, jinak by to šlo udělat hodně lowpoly a namapovat na to normal mapu, potom by to vypadalo podobne jak kdyby ta skala mela 100k trianglu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Laethnes



Založen: 14. 02. 2008
Příspěvky: 38

PříspěvekZaslal: 12. červenec 2010, 12:08:16    Předmět: Odpovědět s citátem

Z principu, jak height mapy fungují převis prostě nelze. Samotného by mě hodně zajímalo, jak se to řeší v praxi (např. vstupy do jeskyně), každopádně je potřeba přidat nějakou techniku (třeba ty modely), aby toho bylo možno dosáhnout.
Já osobně bych viděl takto: řešit převisy přes modely, vložím je do terénu a pak terén co nejvíce přizpůsobím modelu, aby to navazovalo (viz výše můj příspěvek).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 12. červenec 2010, 12:11:55    Předmět: Odpovědět s citátem

Svestka> Jo, tak takovéhle útvary nejde pomocí heightmapy udělat. V tom případě bych asi pro celou skálu použil nějaký pěkný model. Mělo by to výhodu: šel by umístit několikrát díky instancingu.
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Svestka



Založen: 08. 07. 2010
Příspěvky: 32

PříspěvekZaslal: 12. červenec 2010, 12:45:29    Předmět: Odpovědět s citátem

Máš asi pravdu jsem už vpodstatě rozhodnut, že použiji height mapu.
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 -> Obecné Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
Strana 3 z 7

 
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