Tekst in Unity

Tekst is een van de belangrijkste onderdelen in holografische apps. Als u tekst in Unity wilt weergeven, kunt u drie typen tekstonderdelen gebruiken: UI Text, 3D Text Mesh en Text Mesh Pro. Ui-tekst en 3D-tekstgaas worden standaard wazig weergegeven en zijn te groot. Het wijzigen van een paar variabelen resulteert in scherpere tekst van hogere kwaliteit met een beheerbare grootte in HoloLens. U kunt een betere renderingkwaliteit bereiken door een schaalfactor toe te passen om de juiste dimensies op te halen bij het gebruik van de onderdelen Tekst in de gebruikersinterface en 3D Text Mesh.

Hoe krijg je scherpe en mooie tekst
Wazige standaardtekst in Unity

Werken met 3D Text (Text Mesh) en UI Text van Unity

In Unity wordt ervan uitgegaan dat alle nieuwe elementen die aan een scène worden toegevoegd, één Unity-eenheid of een transformatieschaal van 100% zijn. Eén Unity-eenheid wordt omgezet in ongeveer 1 meter op HoloLens. Voor lettertypen wordt het begrenzingsvak voor een 3D TextMesh standaard weergegeven met een hoogte van ongeveer 1 meter.

Werken met lettertypen in Unity
Standaard Unity 3D Text (Text Mesh) neemt één Unity-eenheid in beslag, wat 1 meter is


De meeste visuele ontwerpers gebruiken punten om tekengrootten in de echte wereld te definiëren. Er zijn ongeveer 2835 (2.834.645666399962) punten in 1 meter. Op basis van de puntsysteemconversie naar 1 meter en de standaardlettergrootte van 13 van Unity is de eenvoudige wiskunde van 13 gedeeld door 2835 gelijk aan 0,0046 (0,004586111116 om precies te zijn), wat een goede standaardschaal biedt om mee te beginnen (sommigen willen mogelijk afronden op 0,005). Het schalen van het tekstobject of de container naar deze waarden maakt niet alleen de 1-op-1-conversie van tekengrootten in een ontwerpprogramma mogelijk, maar biedt ook een standaard zodat u consistentie kunt behouden tijdens uw ervaring.

Schaalwaarden voor unity 3D-tekst en UI-tekst
Schaalwaarden voor unity 3D-tekst en UI-tekst


Unity 3D Text Mesh met geoptimaliseerde waarden
Unity 3D Text Mesh met geoptimaliseerde waarden


Wanneer u een gebruikersinterface of tekstelement op basis van canvas toevoegt aan een scène, is de grootte nog groter. De verschillen in de twee grootten zijn ongeveer 1000%, waardoor de schaalfactor voor tekstonderdelen op basis van de gebruikersinterface op 0,00046 (0,0004586111116 om precies te zijn) of 0,0005 voor de afgeronde waarde wordt gebracht.

Unity UI Text met geoptimaliseerde waarden
Unity UI Text met geoptimaliseerde waarden


Notitie

De standaardwaarde van een lettertype kan worden beïnvloed door de tekengrootte van dat lettertype of hoe het lettertype is geïmporteerd in Unity. Deze tests zijn uitgevoerd op basis van het standaardlettertype Arial in Unity, evenals één ander geïmporteerd lettertype.

Werken met Text Mesh Pro

Met de Text Mesh Pro van Unity kunt u de kwaliteit van de tekstweergave beveiligen. Het ondersteunt scherpe tekstkaders, ongeacht de afstand, met behulp van de SDF-techniek (Signed Distance Field). Met behulp van dezelfde berekeningsmethode die we hierboven hebben gebruikt voor de 3D-tekstgaas en UI Text, kunnen we de juiste schaalwaarden vinden voor gebruik met conventionele typografische punten. Omdat het standaardlettertype 3D Text Mesh Pro met de grootte 36 een begrenzingsgrootte van 2,5 Unity-eenheden (2,5 m) heeft, kunnen we een schaalwaarde van 0,005 gebruiken om de puntgrootte op te halen. De Text Mesh Pro onder het ui-menu heeft een standaard begrenzingsgrootte van 25 Unity-eenheden (25 m). Dit geeft ons 0,0005 voor de schaalwaarde.

Schaalwaarden voor de Unity 3D-tekst en gebruikersinterface
Schaalwaarden voor de Unity 3D-tekst en gebruikersinterface

Zoals u kunt verwachten, zien de typegrootten die we op een pc of tablet gebruiken (meestal tussen 12 en 32pt) er op een afstand van 2 meter klein uit. Het hangt af van de kenmerken van elk lettertype, maar in het algemeen liggen de aanbevolen minimale kijkhoek en de tekenhoogte voor de leesbaarheid rond de 0,35°-0,4°/12,21-13,97 mm op basis van onze gebruikersonderzoeken. Het is ongeveer 35-40 pt met de schaalfactor die hierboven is geïntroduceerd.

Voor de bijna-interactie bij 0,45 m (45 cm) zijn de minimaal leesbare kijkhoek van het lettertype en de hoogte 0,4°-0,5° / 3,14–3,9 mm. Het is ongeveer 9-12 pt met de hierboven geïntroduceerde schaalfactor.

Nabije en verre interactiebereikInhoud op interactiebereik dichtbij en ver

De minimale leesbare tekengrootte

Afstand Kijkhoek Teksthoogte Tekengrootte
45 cm (directe manipulatieafstand) 0.4°-0.5° 3,14–3,9 mm 8.9–11.13pt
2 m 0.35°-0.4° 12,21–13,97 mm 34,63-39,58 pt

De comfortabel leesbare tekengrootte

Afstand Kijkhoek Teksthoogte Tekengrootte
45 cm (directe manipulatieafstand) 0.65°-0.8° 5,1-6,3 mm 14,47-17,8 pt
2 m 0.6°-0.75° 20,9-26,2 mm 59,4-74,2 pt

Segoe UI (het standaardlettertype voor Windows) werkt in de meeste gevallen goed. Vermijd echter het gebruik van lichte of semi-lichte lettertypefamilies in kleine grootte, omdat dunne verticale streken trillen en de leesbaarheid afnemen. Moderne lettertypen met voldoende lijndikte werken goed. Helvetica en Arial zien er bijvoorbeeld prachtig uit en zijn leesbaar in HoloLens met normale of vetgedrukte gewichten.

Weergavehoek Weergaveafstand, hoek en teksthoogte

Tekst met Mixed Reality Toolkit v2

Scherpe tekstweergavekwaliteit met de juiste dimensie

Op basis van deze schaalfactoren hebben we tekstprefabs gemaakt met UI Text en 3D Text Mesh. Ontwikkelaars kunnen deze prefabs gebruiken om scherpe tekst en een consistente tekengrootte te krijgen.

Scherpe tekstweergavekwaliteit met de juiste dimensie
Scherpe tekstweergavekwaliteit met de juiste dimensie

Arcering met occlusieondersteuning

Het standaardlettertypemateriaal van Unity biedt geen ondersteuning voor occlusie. Daarom ziet u standaard de tekst achter de objecten. We hebben een eenvoudige arcering opgenomen die de occlusie ondersteunt. In de onderstaande afbeelding ziet u de tekst met standaardlettertypemateriaal (links) en de tekst met de juiste occlusie (rechts).

Arcering met occlusieondersteuning
Arcering met occlusieondersteuning

Volgend controlepunt voor ontwikkeling

Als u het Unity-ontwikkelingstraject volgt dat we hebben opgesteld, bent u bezig met het verkennen van de basisbouwstenen van MRTK. Vanaf hier kunt u doorgaan naar de volgende bouwsteen:

Of ga naar Mixed Reality platformmogelijkheden en API's:

U kunt altijd op elk gewenst moment teruggaan naar de Unity-ontwikkelcontrolepunten .

Zie ook