Text v Unity

Text je jednou z nejdůležitějších součástí holografických aplikací. Pokud chcete zobrazit text v Unity, můžete použít tři typy textových komponent – text uživatelského rozhraní, 3D textovou síť a textovou síť Pro. Ve výchozím nastavení se text uživatelského rozhraní a 3D textová síť zobrazují rozmazaně a jsou příliš velké. Změna několika proměnných má za následek ostřejší a kvalitnější text se zvládnutelnou velikostí v HoloLensu. Lepší kvality vykreslování dosáhnete použitím měřítka, abyste získali správné rozměry při použití komponent Text uživatelského rozhraní a 3D textová síť.

Jak získat ostrý a krásný text
Rozmazaný výchozí text v Unity

Práce s 3D textem Unity (textová síť) a textem uživatelského rozhraní

Unity předpokládá, že všechny nové prvky přidané do scény mají jednu jednotku Unity ve velikosti nebo 100% měřítko transformace. Jedna jednotka Unity se na HoloLensu překládá na 1 metr. U písem je ohraničující rámeček pro 3D TextMesh ve výchozím nastavení asi 1 metr na výšku.

Práce s písmy v Unity
Výchozí 3D text Unity (textová síť) zabírá jednu jednotku Unity, což je 1 metr.


Většina vizuálních návrhářů používá body k definování velikostí písem v reálném světě. Na 1 metr je asi 2835 (2 834,64566639962) bodů. Na základě převodu bodového systému na 1 metr a výchozí velikosti písma Textové sítě Unity 13 se jednoduchá matematika 13 vydělená hodnotou 2835 rovná 0,0046 (přesně 0,00458611116), což poskytuje dobré standardní měřítko pro začátek (někteří mohou chtít zaokrouhlit na 0,005). Škálování textového objektu nebo kontejneru na tyto hodnoty umožní nejen převod velikostí písem v návrhovém programu v poměru 1:1, ale také poskytuje standard, který vám umožní zachovat konzistenci v celém prostředí.

Změna velikosti hodnot pro text Unity 3D a text uživatelského rozhraní
Změna velikosti hodnot pro text Unity 3D a text uživatelského rozhraní


Textová síť Unity 3D s optimalizovanými hodnotami
Textová síť Unity 3D s optimalizovanými hodnotami


Při přidávání textového prvku uživatelského rozhraní nebo textového prvku na plátně do scény je rozdíl ve velikosti stále větší. Rozdíly v těchto dvou velikostech jsou přibližně 1000 %, což by u textových komponent založených na uživatelském rozhraní přineslo měřítko na 0,00046 (přesné je 0,000458611116) nebo 0,0005 pro zaokrouhlenou hodnotu.

Text uživatelského rozhraní Unity s optimalizovanými hodnotami
Text uživatelského rozhraní Unity s optimalizovanými hodnotami


Poznámka

Výchozí hodnotu libovolného písma může ovlivnit velikost textury tohoto písma nebo způsob importu písma do Unity. Tyto testy byly provedeny na základě výchozího písma Arial v Unity a jednoho dalšího importovaného písma.

Práce s textovou sítí Pro

S Text Mesh Pro unity můžete zabezpečit kvalitu vykreslování textu. Podporuje ostré obrysy textu bez ohledu na vzdálenost pomocí techniky pole podepsané vzdálenosti (SDF). Pomocí stejné metody výpočtu, kterou jsme použili výše pro 3D textovou síť a text uživatelského rozhraní, můžeme najít správné hodnoty škálování pro použití s konvenčními typografickými body. Vzhledem k tomu, že výchozí písmo 3D Text Mesh Pro s velikostí 36 má ohraničující velikost 2,5 jednotek Unity (2,5 m), můžeme k získání velikosti bodu použít hodnotu měřítka 0,005. Text Mesh Pro v nabídce uživatelského rozhraní má výchozí ohraničující velikost 25 jednotek Unity (25 m). Tím získáme hodnotu 0,0005 pro hodnotu škálování.

Škálování hodnot pro text a uživatelské rozhraní Unity 3D
Škálování hodnot pro text a uživatelské rozhraní Unity 3D

Jak můžete očekávat, velikosti typů, které používáme na počítači nebo tabletovém zařízení (obvykle 12–32 bodů), vypadají malé na vzdálenost 2 metry. Závisí na vlastnostech jednotlivých písem, ale obecně je doporučený minimální úhel pohledu a výška písma pro čitelnost přibližně 0,35°-0,4°/12,21-13,97 mm na základě našich uživatelských výzkumných studií. Je to přibližně 35–40 bodů s výše uvedeným faktorem škálování.

Pro blízkou interakci při 0,45 m (45 cm) je minimální čitelný úhel pohledu písma a výška 0,4°-0,5° / 3,14–3,9 mm. Je to přibližně 9–12 bodů s faktorem škálování, který je uvedený výše.

Rozsah blízkých a vzdálených interakcíObsah v blízkém a vzdáleném rozsahu interakce

Minimální čitelná velikost písma

Vzdálenost Úhel pohledu Výška textu Velikost písma
45 cm (vzdálenost přímé manipulace) 0.4°-0.5° 3,14–3,9 mm 8,9–11,13 bodů
2 m 0.35°-0.4° 12,21–13,97 mm 34,63–39,58 bodů

Pohodlně čitelná velikost písma

Vzdálenost Úhel pohledu Výška textu Velikost písma
45 cm (vzdálenost přímé manipulace) 0.65°-0.8° 5,1-6,3 mm 14,47–17,8 bodů
2 m 0.6°-0.75° 20,9-26,2 mm 59,4–74,2 bodů

Uživatelské rozhraní Segoe (výchozí písmo pro Windows) funguje ve většině případů dobře. Vyhněte se však použití lehkých nebo polosvětlejších skupin písem v malých velikostech, protože tenké svislé tahy budou vibrovat a sníží čitelnost. Moderní písma s dostatečnou tloušťkou tahů fungují dobře. Například Helvetica a Arial vypadají nádherně a jsou čitelné v HoloLensu s pravidelnými nebo tučnými váhami.

Úhel zobrazeníVzdálenost, úhel a výška textu

Text s Mixed Reality Toolkit v2

Kvalita vykreslování ostrého textu se správným rozměrem

Na základě těchto faktorů škálování jsme vytvořili předfaby textu s textem uživatelského rozhraní a 3D textovou sítí. Vývojáři můžou použít tyto prefáby k získání ostrého textu a konzistentní velikosti písma.

Kvalita vykreslování ostrého textu se správným rozměrem
Kvalita vykreslování ostrého textu se správným rozměrem

Shader s podporou okluze

Výchozí materiál písma Unity nepodporuje okluzi. Z tohoto důvodu se ve výchozím nastavení zobrazí text za objekty. Přidali jsme jednoduchý shader, který podporuje okluzi. Následující obrázek znázorňuje text s výchozím materiálem písma (vlevo) a text se správnou okluzí (vpravo).

Shader s podporou okluze
Shader s podporou okluze

Další kontrolní bod vývoje

Pokud sledujete cestu vývoje Unity, kterou jsme si nastavili, jste uprostřed zkoumání základních stavebních bloků MRTK. Odtud můžete pokračovat k dalšímu stavebnímu bloku:

Nebo přejděte na Mixed Reality možností a rozhraní API platformy:

Kdykoli se můžete vrátit k kontrolním bodům vývoje Unity .

Viz také