LOD: Level Of Detail

Estimated reading time: 5 min

Úroveň Level of Detail vám umožní vytvořit objekt, který změní jeho geometrickou složitost nebo úroveň detailu na základě jeho velikosti na vykresleném obrazu. Vytváříte několik verzí stejného objektu, každý s různými úrovněmi detailů, *seskupte je jako jeden a potom spusťte nástroj Level of Detail, který automaticky vytvoří speciální ovladač LOD jako stopu viditelnosti. Řídicí jednotka LOD pak skryje a odhalí objekty ve skupině v závislosti na jejich velikosti na vykreslené scéně.(*3ds max)

 

Hlavním účelem tohoto nástroje je ušetřit čas při vykreslování složitých objektů a při manipulaci s objekty ve výřezech. Vzhledem k tomu, že část vykreslování je přímo spojena s počtem tváří, které je třeba vykreslit ve scéně, pomocí nástroje Úroveň detailu můžete snížit počet vykreslených obličejů, protože objekt snižuje jeho zřejmou velikost. Navíc můžete použít tento nástroj pro zobrazení jednoduchého stand-in pro složitější objekt ve výřezech. Vzhledem k tomu, že zásobník není vypočítán pro objekty skryté ve výřezech, můžete urychlit manipulaci s výřezy pomocí tohoto nástroje a nahradit složité zásobníkové objekty jednoduchými stand-iny.

 

Panel nástrojů > Rozbalovací nástroje > Tlačítko Více > Dialog nástrojů > Úroveň detailů

 

Návod přímo jak pracovat s nástrojem Level of Detail je zde

Minimální velikost
Jedná se o minimální velikost objektu, po níž se přepne na méně podrobnou geometrii.

 

Maximální velikost
Jedná se o maximální velikost objektu, po níž se přepne na podrobnější geometrii.

Uvádíme příklad setu LOD, který má tři úrovně LOD: High poly , Mid poly , Low poly s následujícími min a max velikostí:

 

Nízká poly:
Min Velikost: 0
Max. Velikost: 25

 

Střední poly:
Min Velikost: 25
Max Velikost: 50

 

Vysoká poly:
Min Velikost: 50
Maximální velikost: 100

Ve hře LOD vypadá následovně:

Příklady zde používají čtyři úrovně LOD; podle potřeby

 

Použijte atlas texturou, který je sdílen s množstvím dalších aktiv, které se mohou používat ve stejné scéně, a použijte knihovnu okénka pro ukládání všech textur a sítí.

  • LOD0, LOD1 a LOD2 sdílejí jeden vysoce detailní materiál jedinečný pro toto aktivum.
  • LOD3 je nejnižší LOD a bude používat společný materiál.
  • LOD0 využívá vysoce detailní oko pro detailní prohlížení.
  • LOD1 a LOD2 používají středně velké vzdálenosti.
  • U velkých objektů (větších než je dům) by měl být LOD3 pouze několik polygonů.
  • U menších objektů LOD3 ani nevyžaduje oka.

 

No Mesh –  jedna z posledních možností, která se má pokrýt předtím, než shrneme všechno, je LOD bez “zobrazení”. Používá se k úplnému odebrání položky ze scény, pokud je dostatečně daleko od viditelnosti a ani bychom si všimli, že chybí.

 

Toho se dosáhne tím, že se v novém okně “mesh-table-lod-transition-distances” vytvoří jedna dodatečná přechodová vzdálenost LOD versus počet zahrnutých ok. Např. Poskytují tři přechodové vzdálenosti LOD (udávající čtyři úrovně LOD), ale neposkytují vstupní tabulku pro poslední úroveň lodi.

Konfigurační soubor:

 kind                          "scenery"
 trainz-build                   4.3
 mesh-detail-level-count        4
 rotate-yz-range                -180,180
 rotstep                         1

konfigurace pro čtyři úrovně detailu

mesh-table
 {

  lod0
  {
   mesh-season                          0
   mesh                                 "lod0.im"
   auto-create                          1
   lod-level                            0
   mesh-scale                           0.6,1.0
  }

 lod1
  {
  mesh-season                           0
  mesh                                  "lod1.im"
  auto-create                           1
  lod-level                             1
  mesh-scale                            0.6,1.0
  }

 lod2
  {
  mesh-season                           0
  mesh                                  "lod2.im"
  auto-create                           1
  lod-level                             2
  mesh-scale                            0.6,1.0
  }

 lod3
  {
  mesh-season                           0
  mesh                                  "lod3.im"
  auto-create                           1
  lod-level                             3
  mesh-scale                            0.6,1.0
  }
 }

Další možné nastavení LOD pomocí samostatného konfiguračního souboru

kind                                "scenery" 
trainz-build                          4.3 
rotate-yz-range                       -180,180 
rotstep                                1
mesh-table
 {

  lod0
  {
   mesh-season                          0
   mesh                                 "body.lm"
   auto-create                          1
   mesh-scale                           0.6,1.0
  }

 lodw
  {
  mesh-season                           0
  mesh                                  "bodyw.lm"
  auto-create                           1
  mesh-scale                            0.6,1.0
  }
 }

season-selector
{
 above-snow-line 1

branch-true
 {
 output-season 2
 }

branch-false
 {
 season-range 0.25,0.75

branch-true
 {
 output-season 1
 }

branch-false
 {
 output-season 0
 }
 }
}

thumbnails
{
 0
 {
 image "screenshot.jpg"
 width 240
 height 180
 }
}

kuid-table
{
}

Body.lm

Konfigurace pro body.lm.txt

version     1.0

 offset = 0.01;
 calcPoit  = center;
 multiplier = 1.0;
 animationCutOff = 0.1;
 attachmentCutOff = 0.1;
 renderCutOff = 0.01;

mesh("0.075")
  {
    name="lod3.im";
  }

mesh("0.2")
  {
    name="lod2.im";
  }

mesh("0.8")
  {
    name="lod1.im";
  }

mesh("1.0")
  {
    name="lod0.im";
  }

Metoda LOD založená na síti je praktičtější technikou a je obvykle označována nekvalifikovaným výrazem „Level of Detail“, protože struktura LOD je většinou automatická. V současné době je ve Trainzu používáno několik schémat LOD podle typu použitého aktiva. Všechny metody přecházejí na výběr jedné varianty kvality z malého seznamu poskytnutého tvůrcem obsahu. Tvůrce obvykle nejprve sestaví síť s nejvyššími detaily – stále zajistí, aby počet polygonů nebyl přehnaný pro vytvářený objekt – a poté vytvoří postupně menší varianty sítě, z nichž každá obvykle klesne na 20–50% počtu polygonů předchozího varianta.

 

Při vytváření variant LOD je třeba mít na paměti několik věcí:

 

  • Cílem tvůrce obsahu je zajistit, aby každá varianta LOD vypadala jako bezprostředně vyšší varianta. V ideálním případě by také měly vypadat jako varianta nejvyšší úrovně, ale je nevyhnutelné, že dojde ke ztrátě některých detailů, a je důležitější minimalizovat každý přechod, než minimalizovat celkovou změnu vzhledu.
  • Lidské oko zachytí změny siluety a stínování mnohem víc než změny vnitřních detailů objektu. Snažte se vyhnout se změně siluety více, než je nutné.
  • Pokud vezmete plochý objekt vytvořený mnoha malými polygony, které jsou téměř, ale ne úplně v rovině a nahradíte jej jednou rovinou, úhel světla z vašeho objektu se změní. To bude mít často za následek ztmavnutí nebo zesvětlení varianty ve srovnání s kvalitnějším “sourozencem”. Normální mapu lze použít k neutralizaci tohoto efektu zajištěním toho, že varianty s nižšími podrobnostmi stále zachovávají příslušné normály povrchu, přestože geometrii chybí příslušné polygon

Spline LOD

 

Aktiva založená na spline (trasa, živé ploty, ploty, elektrické vedení atd.) Používají specializovanou formu výběru LOD, která funguje rozdělením spline úseku (prostor mezi dvěma uživatelem upravitelnými vrcholy spline) na několik opakování, která jsou pak podle potřeby dále rozdělit. Tento proces je řízen kontejnerem „track-lod-tree“ aktiva , který zohledňuje četné vstupní proměnné, jako je vzdálenost od pozorovatele, úhel křivky spline, sezóna, náhodné variace atd.

mesh ""
subdivisions 1
lod-distance 0.0
lod-length 0.0
lod-tessellation-length 0.0
lod-random-bias 0.0
lod-is-surveyor 0
lod-season-index 255
piece-position "none"
high-detail
{
}
low-detail
{
}

subdivisions

“Členění” způsobuje, že aktuální stopa část bude rozdělena do několika částí, z nichž každá je pak prochází trať-LOD strom. Každá část může procházet samostatnou cestou přes strom, ale všechny začínají v aktuálním uzlu stromu a pohybují se dolů (tj. Analýza se znovu nespustí z kořene stromu).

lod-distance

lod-distance poskytuje vzdálenost (v metrech), která definuje, zda použije cestu vysokého detailu uzlu větve (aktuální vzdálenost pohledu je menší než vzdálenost lod) a cestu malého detailu (aktuální vzdálenost pohledu je větší než lod-distance). Tato vzdálenost slouží pouze jako vodítko a může být ovlivněna nastavením výkonu uživatele.

lod-length

Díly stopy jsou do určité míry zmenšeny na základě délky generovaného roztažení stopy a značky délky oka . Značka délky lóže poskytuje mechanismus pro vynucení cesty s vysokými detaily u krátkých dílů, i když by vzhledem k vzdálenosti byla vhodná cesta s malými detaily. Konkrétně, pokud bude generovaná geometrie kratší než nastavení délky lod , bude vybrána cesta s podrobnými detaily. Tato značka by měla být používána s maximální opatrností, protože má potenciál zničit schéma LOD a tím zabít výkon. Tato značka by měla být použita pouze k výběru mezi dlouhou (efektivní) sítí s malými detaily a několika krátkými (méně účinnými) sítěmi s malými detaily a nikdy k vynucení změny ve skutečné síti s velkými detaily.

lod-tessellation-length

Trainz určuje požadovanou délku mozaiky na základě faktorů, které zahrnují nerovnost terénu a úhel ohybu spline.
Značka s délkou lodeselace poskytuje mechanismus pro vynucení cesty s vysokými detaily u částí trati s vysokými požadavky na mozaiku. Délka (m) uvedená v této značce odkazuje na vzdálenost mezi body mozaiky v síti, nikoli na celou délku sítě. Například délka lodeselace 6,0 naznačuje, že cesta s nízkými detaily je vhodná pro mozaiku na zhruba šesti metrech, zatímco cesta s podrobnými detaily je vyžadována pro mozaiku jemnější než šest metrů. Cesta vysokého detailu by v tomto případě měla obecně vypadat shodně s cestou malého detailu, ale s mírně zvýšenou mozaikováním podél osy Y. To umožňuje Trainzovi zvýšit mozaikování bez nákladů na změnu na skutečnou síť s velkými detaily.
Značka lod-tessellation-length by měla být v ideálním případě použita k vynucení cesty co nejhlubší ve stromu track-lod-tree , protože Trainz může tato data zpřesnit, jak postupuje stromem – čím více parametrů bylo dříve nastaveno uvažuje se o mozaikování, tím přesnější bude proces mozaiky.

lod-random-bias

Není ve skutečnosti schéma LOD, ale místo toho umožňuje náhodný výběr mezi vysoký nebo nízký „detail“ cest. Při výchozím nastavení 0,0 to nemá žádný účinek. Jak se číslo zvyšuje směrem k 1,0, zvyšuje se šance na vynucení cesty vysokého „detailu“. Při hodnotě 1,0 nebo vyšší by byla vždy zvolena cesta s vysokými detaily. I když lze tuto značku použít v tandemu s jinými značkami lod- * , chování je poněkud libovolné, takže se to nedoporučuje. Hodnota 0,5 dává 50% variaci mezi vysokou a nízkou cestou „detailu“.

lod-geodet

Lod-je-inspektor není ve skutečnosti schéma LOD, ale místo toho umožňuje zobrazení různých ok v Surveyor (režim editace) versus Driver (režim hry.) Je-li nastaven na ‚1‘, tato značka způsobuje vysokou „detail“ cesta, která se má vybrat v režimu úprav.

index lod-season

Index lod-season není ve skutečnosti schématem LOD, ale místo toho umožňuje zobrazení sezónních sítí. Je  li zadán konkrétní index sezóny (podle kontejneru „Výběr sezóny“ ), tato značka způsobí, že bude vybrána vysoká cesta „podrobností“, když je aktuální sezóna.

Poznámka: Zdá se, že cesta s vysokými podrobnostmi není zvolena pouze v případě, že je aktuální sezóna stejná, ale také v případě, že je větší než sezóna uvedená v této značce.

lod-piece-position

Pozice lod-piece není ve skutečnosti schématem LOD, ale místo toho umožňuje zobrazení různých sítí na konci stopy. Pokud jsou k dispozici, platné možnosti zahrnují „první“, „poslední“ a „první nebo poslední“, které aktivují vysokou cestu „podrobností“, když je tato síť první, poslední nebo buď první, nebo poslední síť v stopa (tj. síť sousedí s pozicí koncového uzávěru, bez ohledu na to, zda je přítomna síť koncového uzávěru).

track
{
 mesh-length                           20
 
 track-lod-tree
 {
   lod-distance                        250
   
   high-detail
   {
     mesh                              "default-lod0"
   }
   
   low-detail
   {
     mesh                              "default-lod1"
   }
 }
}
track
{
 mesh-length                           4
 
 track-lod-tree
 {
   lod-distance                        250
   
   high-detail
   {
       lod-season-index              1             /// Zimní Sezóna
			
	high-detail
	{
		mesh                        "track-lod0winter"
	}
			
	low-detail 
	{
		mesh                        "track-lod0"
	}
   }
   
   low-detail
   {
       lod-season-index              1
			
	high-detail
	{
		mesh                        "track-lod1winter"
	}
		
 	low-detail
	{
		mesh                        "track-lod1"
	}
   }
 }
}
track
{
  mesh-length                           18
  adjust-cross-section-to-ground        0
 
  track-lod-tree
  {
    lod-distance                        400
    
    high-detail
    {
      subdivisions                      3
      lod-distance                      45
      
      high-detail
      {
        lod-distance                    10
        subdivisions                    2
        
        high-detail
        {
          mesh                          "track-lod0"
        }
        low-detail
        {
          mesh                          "track-lod1"
        }
      }
     
      low-detail
      {
        mesh                            "track-lod2"
      }
    }
   
    low-detail
    {
      mesh                              "track-lod3"
    }
  }
}
Byl tento článek užitečný?
Dislike 0
Views: 37
Back to top button