Ú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.
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
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 } }
konfigurace pro čtyři úrovně detailu
Další možné nastavení LOD pomocí samostatného konfiguračního souboru
config.txt:
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 { }
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"; }