Reprezentace povrchu krajiny

Z Armed Assault nápověda

Verze z 17:31, 28. 8. 2007; Str (Diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Obsah

Editace satelitní mapy

Prototyp: Satelitní mapa se edituje ve Photoshopu, Visitor se o ni nijak nestará.

Alfa: Visitor umí zobrazovat texturu pro celou krajinu.

Beta: Visitor umí satelitní mapu i editovat, a to jak ostrými, tak neostrými štetci, a dalšími nástroji, jako je klonování.

Spolupráce mezi Visitorem a Photoshopem zůstane každopádně klíčová, jelikož se ve Photoshopu pracuje docela dobře a má hodně nástrojů. Ideální by asi bylo vytvořit nějaký plugin do Photoshopu, který by data realtime posílal do Visitoru (jestli je něco takového vůbec možné). Jinak to pravděpodobně povede k tomu, že budeme chtít sami postupně vytvořit skoro celý Photoshop.

Editace vrstev

Prototyp - editace ve Photoshopu

See also Community Wiki

Editace masek v TGA ve Photoshopu. editace parametrů vrstev v konfigu ostrova. Visitor se o vrstvy nezajímá ani nestará. Masky se editují ve dvou fázích, jako legenda a jako mapa vrstev.

Legenda

Legenda je TGA obrázek, jehož první řádek definuje konverzi z RGB do vrstev. K legendě existuje konfig, který jednotlivým zvoleným bodům v legendě přiřazuje povrchy. Jeden povrch může mít přiřazeno i více bodů, což je vhodné tehdy, pokud chceme dělat plochy, kde se má povrch plynulé přechody s několika různými povrchy (plynulé přechody jdou dělat pouze mezi sousedy). Ostré hranice mohou existovat mezi libovolnými povrchy (barvami).

Kdokoliv si může vytvořit libovolnou legendu, jediný požadavek je, že se žádná barva v legendě nesmí vyskytovat dvakrát. Legenda na obrázku byla vytvořena pomocí gradientu Rainbow ve Photoshopu s přidáním přechodů do černé a bílé na stranách pomocí gradientu mezi dvěmi barvami.

Legenda k mapě
Zvětšit
Legenda k mapě

K legendě pak existuje konfig, který definuje, kterým barvám odpovídají jaké povrchy.

class Legend
{
  picture="layertest\src\mapLegend.png";
  class Colors
  {
    /// color names should correspond to surface layer names
    snow[]={{255,255,255}};
    wetSand[]={{0,0,0}};
    grass[]={{0,255,131},{255,255,0}};
    sand[]={{207,115,0}};
    rock[]={{0,255,255},{121,255,0}};
    mud[]={{0,255,0}};
  }
};
Mapa vrstev
Mapa vrstev
Zvětšit
Mapa vrstev
Satelitní snímek
Zvětšit
Satelitní snímek


Mapa vrstev se edituje v RGB. Pokud použiji pro nějaký pixel barvu z legendy, použije se odpovídající kombinace nejbližších povrchů zleva a zprava. Pokud se někde vyskytne barva, která v legendě není, najde se k ni v legendě nejbližší. Pokud chci čistý povrh, nejjistější je kliknou přímo na barvy z legendy vytaženou dolů.


K mapě vrstev dále existuje konfig, který definuje povrchy (a použitou legendu).

Materiály ve všech vrstvách musejí mít většinu parametrů společnou, mohou se lišit jen použitými texturami. Žádná použitá textura nesmí používat kompresi dynamického rozsahu, ani primární textura tedy nesmí být _co, ale _lco.

class Layers
{
  class Grass
  {
    texture="layertest\data\grass_lco.paa";
    material="layertest\data\grass.rvmat";
  };

  class Sand
  {
    texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
    material="layertest\data\sand.rvmat";
  };

  class Rock
  {
    texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
    material="layertest\data\rock.rvmat";
  };

  class Mud
  {
    texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
    material="layertest\data\mud.rvmat";
  };
};

class Legend
{
  // viz výše ...
};
Postup editace

Postup pro ostrov s adresářem pro textury LayerTest\Data je zatím takovýhle (pokud není uvedeno jinak, vše se nachází v LayerTest\Source):

Příprava:

  • vytvořít legendu
  • upravit layers.cfg (Definice povrchů + odkazy do legendy)
  • zadat ve vlastnostech ostrova (Tools/Project Preferences) velikost segmentu satelitní mapy v metrech. Kvůli navazování textur by velikost segmentu měla být taková, aby do nejbližší mocniny 2 v texelech zbývalo cca 16 texelů. Velikost segmentu sat. mapy se zadává jako násobek velikosti základního gridu krajiny. Příklad výpočtu: Mějme ostrov o rozměrech 10240*10240 m s gridem 40 m (tedy 256x256 čtverců) , sat. texturu s rozlišením 7680*7680 (rozlišení sat. textury musí být takové, aby na jeden čtverec krajiny připadl celý počet texelů, tedy její velikost musí být násobek velikosti krajiny ve čtvercích). Chceme, aby jednotlivé segmenty měly cca 512x512 texelů, a jelikož potřebujeme přesah cca 16 pixelů, budeme počítat 496x496. Jeden texel má 10240m/7680 (1.3333 m), takže 496 texelů je 661.33 m. Při gridu 40 m dostáváme 661.33/40 = 16.5, zadáme nejbližší menší celé číslo, tedy 16. (Pokud máme jiný grid textur, než je grid krajiny, nestačí volit menší celé číslo, ale musí se zvolit nejbližší menší násobek poměru gridu textur ke gridu krajiny. Při gridu krajiny 5 a gridu textur 20 musí být např. satelitní grid násobek 4.

Editace masky a sat. mapy: (možná nutno při zavřeném Budlozeru?)

  • editovat satelitní mapu ve Photoshopu (soubor Satelit-pole_lco.png). Název souboru musí končit _lco nebo _draftlco, aby konverze textur poznala, jaký druh konverze použít.
  • editovat masku ve Photoshopu (soubor Mask-pole_lco.png). Opět musí být _lco nebo _draftlco.
  • vyvolat z hlavního menu Tools položku Import Satellite + Mask, té postupně ukázat Satelit-pole_lco.png, Layers.cfg a Mask-pole_lco.png
  • podívat se v Buldozeru, jak to vypadá, případně postup editace masky opakovat.