Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 17. listopad 2014, 19:31:09 Předmět: |
|
|
quas4 napsal: |
myslim ze jsi mne nepochopil. Circle algorithm ci Diamond square jsou algoritmy ktere tvori obsah heightmap, zatimco ja mluvim az o vytvareni meshu z heightmap. Podle obrazku mi pripada ze jde o uniformni grid a ja jsem se ptal zda jsi nezkousel jiny algoritmus ktery by lepe zvladnul texturovani napriklad ostrejsich prechodu vysek mezi sousednimi bunkami v heightmap (viz - "why do we care?" sekci v zaslanem linku). |
Ne nezkoušel jsem, nemám s tím zkušenosti. A navíc renderovací zařízení řeším posledních pár týdnů a tuto heightmapu jsem generoval před asi 3/4 rokem a použil pro vyrenderování a generaci textury L3DT, co jsem si zakoupil. Heightmapa je řešena pomoc RAW souboru. |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 17. listopad 2014, 19:41:55 Předmět: |
|
|
Tu ukázku používám jenom proto, že se snažím demonstrovat, co bych použil pro generaci souborů s informacemi o terénu. Akorát s tím rozdílem, že bych mapu negeneroval najednou, ale vygeneroval kousek, pak bych to trochu posunul a vygeneroval další kousek , kterej by se překrýval s tím předchozím. Aby mě to všechno hezky pasovalo a mohl vygenerovat celý menší kontinent kontinent v realné velikosti. a aby se mi to vešlo do OP.
Nevím, co používá L3DT, ale je tam možnost s pomoci tlačítka zjednodušit zesložitit mesh. |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 27. listopad 2014, 18:50:20 Předmět: |
|
|
Takže, jak pracuje generátor heightmapy, jenž jsem vyrenderoval v externím programu L3DT a výsledný render jsem ukázal v prvním postu?
Na začátku jsem potřeboval dva obrázky. První z nich přestavuje mapu s druhy terénu a druhý přestavuje mapu údolí. U první mapy jsem potřeboval zvětšit rozlišení. Na to jsem použil modifikovanný diamont-square algoritmus ale místo interpolace čtyř sousedních hodnot jsem použil to, že jednu hodnotu ze čtyř sousedních náhodně vybere a tu použije. Vzor obsahoval 3 různé hodnoty a výsledek také, ale potřeboval jsem zvýšit různorodost. Takže pro hodnoty jedna jsem nahradil random hodnotami 0-3 , dvojku jsem nahradil random hodnotami 4-7 a trojku 8-11. Tím jsem získal něco, co můžeme nazývat geologickou mapu, která znázorňuje 12 druhů terénu s různou odolností proti erosí.
K dvanácti hodnotám jsem si vygeneroval křivky, které reprezentují základní tvary terénu po erosi, kterých je stejný počet jako druhu terénů. Další postup mého algoritmu pracuje podobně jako matematická erose. Takže mám velkou 2D množinu bodů, která reprezentuje celou mapu a menší 2D množinu, které můžeme v tomto případě říkat hlavička. Každý bod hlavičky náleží některému bodu mapy. Podobně jako Stamp v programu Gimp. Hlavička se postupně o jeden bod posunuje po mapě až zpracuje celou mapu.
Takže jak pracuje hlavička: Najdu si bod na mapě, který náleží středu hlavičky a zjistím si k jakýmu typu terénu přísluší. A tento bod nastavím hodnotou, která je výchozí pro daný typ terénu. Takže první bod hlavičky bych měl nastavenej a nyní přejdu k prvnímu okraji hlavičky, který se skládá z bodů, které sousedí se středovým bodem hlavičky. Kde postupuju bod po bodu. Takže změřím vzdálenost mezi prvním bodem prvního okraje a středem a zjistím si k jakýmu typu terénu první bod prvního okraje náleží. Na křivce, která náleží danému typu terénu, najdu bod, který má hodnotu stejnou jako střed hlavičky a změřím vzdálenost tohodle bodu od začátku křivky. K této vzdálenosti přičtu vzdálenost, která je mezi středem a prvním bodem a výsledné číslo je vzdálenost bodu od počátku křivky. A hodnotu tohodle výsledného bodu použiju jako hodnotu prvního bodu prvního okraje. Takhle podobně zpracuju všechny body prvního okraje. Druhý okraj, který náleží všem bodům, které sousedí s body prvního okraje a nejsou středem, spočítám podobné, akorát že je to vztah mezi druhým okrajem o prvním okrajem hlavičky. Tímhle způsobem spočítám hodnoty všech bodů hlavíčky, kdy přednost má nižší hodnota.
Vždycky, když spočítám celou hlavičku, tak hodnoty jejích bodů zkopíruji do příslušných bodů mapy a hlavičku o jeden bod posunu a celý postup opakuji, až spočítám celou mapu, kdy zase má přednost nižší hodnota. Říční údolí spočítám podobně, akorát výchozí hodnota s prostředního bodu hlavičky bude vždy blízko nule.Tímhle způsobem získám colou heightmapu. |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 13. duben 2015, 16:39:58 Předmět: První ukázka |
|
|
Je libo Alpy? První ukázka z mého raný ho enginu.
 |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 24. duben 2015, 13:43:44 Předmět: |
|
|
Pracuji na rozdílných površích, detaily generuji s pomocí fraktálů.
 |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 11. leden 2016, 19:33:33 Předmět: VereEngine |
|
|
zde jsou nějaké další obrázky
 |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
Zaslal: 23. leden 2016, 23:01:19 Předmět: Hledám dobrovolníka |
|
|
Ahoj, hledám dobrovolníka level designéra, který by mě vytvořil heightmapu. Požadavky na heighmapu: 8192 x 8192 pixelů, vzdálenost mezi pixely okolo 15 m a velikost heightmapy okolo 15 000 km2. Vyvíjím vlastní engine, které by umožnilo vyrenderovat takhle velký mapy. Mapa by měla představovat fantasy/historický(jiná planeta s technologickou vyspělostí na úrovni okolo 10 století ) svět. Také bych chtěl doplnit popis některých geografických míst. |
|
Návrat nahoru |
|
 |
copo64
Založen: 26. 01. 2016 Příspěvky: 3
|
Zaslal: 26. leden 2016, 17:54:56 Předmět: |
|
|
Máš skype? Možno by som išiel do toho, ale chcem toho vedieť viac. |
|
Návrat nahoru |
|
 |
VereWolf
Založen: 16. 11. 2014 Příspěvky: 18
|
|
Návrat nahoru |
|
 |
|