MANUÁL NA
DYNAMICKÝ MULTITERÉN
PDF formát zde : [You must be registered and logged in to see this link.]
Zde vám přináším překlad a osvětlení některých věcí z návodu od Stegei z
GIANTS Software, kdy se vám co nejlidštěji pokusím vysvětlit, jak vytvořit dynamičtější terén ve hře.Pro náš příklad si vytvoříme dvojnásobnou dynamiku terénu (počet úhlů, pod kterými se bude lámat neboli točit terén při polních pracech)
To znamená , že si vytvoříme 16, místo původních 8 úhlů zobrazení textury.
Proto budeme potřebovat v mapě 3, místo původních dvou kanálů zobrazení.
Samozřejmě můžeme úhlů vytvořit více, ale vždy zohlednit i počet kanálůV zásadě nám, by mělo stačit použít nastavení dvou kanálů i pro optimální využití zastoupení 90ti úhlových standardů.
Takže v i3d otevřeném např v Notepad++
(viz zde:
[You must be registered and logged in to see this link.] )
hledáme: numDensityMapChannels:
Najdeme si hodnoty vrstev terénu - “terrainDetail” a zvýšíme si hodnotu “numDensityMapChannels “
Kultivátory, pluhy a pod. využívají nyní 5 kanálů pro texturu půdy. Ostatní hodnoty jsou počtem kanálů pro úhly půdy,....... čili, pokud máme “numDensityMapChannels “ na hodnotě 7, znamená to, že 1-5 je počet textur půdy a 6,7 jsou dva kanály pro “dynamiku” terénu,.... my chceme přidat ještě jeden kanál zobrazování , čili hodnotu
“numDensityMapChannels “ přepíšeme na 8 !!!
dále upravíme
combinedValuesChannels:
najdeme si v “terrainDetails” hodnoty zobrazení vrstev “combinedValuesChannels “ a přenastavíme je tím, že o jednu zvýšíme
Tak, a nyní si musíme také uvědomit, že toto je v podstatě ovládáno “shadery”, které musíme také upravit,........... podle námi nastavených hodnot
Proto musíme upravit v xml Shaderů prostřední číslo v místech, kde se vymezují naše hodnoty ->např.:
(;5 2 1)
zde se nastavuje počet kanálů úhlů
Takže v našem případě (;5 3 1)
Vlastní ovládací skript
(terrainDetailAngleNumChannels, terrainDetailAngleMaxValue):
Samotný skript také potřebuje znát hodnoty kanálů a pod, takže mu je dáme
Najdeme si v mapě luaSkript, který ovládá mapu …. například “sampleModMap.lua”
v něm najdeme “loadMap01Finished” a přidáme následující kod :
self.terrainDetailAngleNumChannels = 3; -- nastaveni poctu kanalu
self.terrainDetailAngleMaxValue = bitShiftLeft(1, self.terrainDetailAngleNumChannels) - 1;
Pokud vepíšeme tento kód do jiného luaskriptu, musíme samozřejmě ještě vepsat “kolbeck” funkci, která nám jej zaktivuje při načtení mapy!!!
goundShader.xml:
i tento shader potřebuje znát počet úhlů zobrazení
takže si otevřeme goundShader.xml
najdeme : float angle = ceil(globals.blendMap2.y*
3-0.0001)/
4*3.14159;
a přepíšeme na float angle = ceil(globals.blendMap2.y*
7-0.0001)/
8*3.14159;
(všimneme si , jak jsme měnily hodnoty - zvednutím o 4 )
------------------------------------------------------------------
4. je tvořená číslem 1 a 3 z “ terrainDetailAngleMaxValue” A doplňuje červené hodnoty tak, že ji připočteme
float angle = ceil ( globals.blendMap2.y * 3
+ 4-0,0001 ) / 4
+ 4 * 3,14159 ;
--------> float angle =ceil (globals.blendMap2.y*7-0.0001)/8*3.14159;
-----------------------------------------------------------------------------------
Tak a čeho jsme se dopustili v ohledu na zatížení samotné hry na MP, a jaké zátěře Jádra????
V podstatě je pravda , že každý matematický výpočet má vliv na zatížení PC i MP, nicméně jde o tak minimální počet operací, že zatížení GPU se nebude navyšovat ani o 1% , čili je neznatelné a pokud by jsme přenášeli samotná tato data přes síť, tak prodloužíme přenosovou rychlost o 5% , ale s ohledem na to, že se jedná o zanedbatelný počet dat vůči všem informacím neseným při MP po síti, musíme skonstatovat, že se čas prodlouží cca o 1% , což nemůže být nikde ani zaznamenáno, natož aby to nějakým způsobem ovlivnilo hru .
Hodně štěstí všem “Builderům” , mnoho zábavy všem hráčům a veklé díky, lidem, jež měli nápad, čas a chuť, prezentovat své myšlenky v původním (byť nikterak pochopitelném) jazyce Jindar-CZ-
PROSÍM NEŠÍŘIT BEZ UVÁDĚNÍ AUTORŮ - NEPŘIVLASTŇOVAT, NEMODIFIKOVAT, NEPOKRÁDAT, NEŽÁDATI MANŽELKY BLIŽNÍHO SVÉHO A PODOBNÉ VYLOMENINY!!!