Tekst w unity

Tekst jest jednym z najważniejszych składników w aplikacjach holograficznej. Aby wyświetlić tekst w środowisku Unity, istnieją trzy typy składników tekstowych, których można użyć — tekst interfejsu użytkownika, siatka tekstu 3D i siatka tekstu Pro. Domyślnie tekst interfejsu użytkownika i siatka tekstu 3D są rozmyte i są zbyt duże. Zmiana kilku zmiennych powoduje ostrzejsze, wyższej jakości tekst o rozmiarze zarządzanym na urządzeniu HoloLens. Można osiągnąć lepszą jakość renderowania, stosując współczynnik skalowania w celu uzyskania odpowiednich wymiarów podczas korzystania ze składników usługi Text i 3D Text Mesh interfejsu użytkownika.

Jak uzyskać ostry i piękny tekst
Rozmyty tekst domyślny w środowisku Unity

Praca z tekstem 3D aparatu Unity (text mesh) i tekstem interfejsu użytkownika

Aparat Unity zakłada, że wszystkie nowe elementy dodane do sceny to jedna jednostka aparatu Unity o rozmiarze lub 100% skali transformacji. Jedna jednostka aparatu Unity przekłada się na około 1 metr na urządzeniu HoloLens. W przypadku czcionek pole ograniczenia dla 3D TextMesh jest domyślnie włączone na wysokości około 1 metra.

Praca z czcionkami w środowisku Unity
Domyślny tekst 3D aparatu Unity (Text Mesh) zajmuje jedną jednostkę aparatu Unity, która wynosi 1 metr


Większość projektantów wizualizacji używa punktów do definiowania rozmiarów czcionek w świecie rzeczywistym. W 1 metrach znajduje się około 2835 (2834,6456666399962). Na podstawie konwersji systemu punktowego na 1 miernik i domyślny rozmiar czcionki siatki tekstu aparatu Unity 13, prosta matematyka 13 podzielona przez 2835 równa 0,0046 (0,0045861116, która zapewnia dobrą skalę standardową do rozpoczęcia od (niektóre mogą chcieć zaokrąglić do 0,005). Skalowanie obiektu tekstowego lub kontenera do tych wartości nie tylko pozwoli na konwersję rozmiarów czcionek 1:1 w programie projektowym, ale także zapewnia standard, dzięki czemu można zachować spójność w całym środowisku.

Skalowanie wartości tekstu 3D i tekstu interfejsu użytkownika aparatu Unity
Skalowanie wartości tekstu 3D i tekstu interfejsu użytkownika aparatu Unity


Siatka tekstu 3D aparatu Unity ze zoptymalizowanymi wartościami
Siatka tekstu 3D aparatu Unity ze zoptymalizowanymi wartościami


Podczas dodawania interfejsu użytkownika lub elementu tekstowego opartego na kanwie do sceny rozbieżność rozmiaru jest jeszcze większa. Różnice w dwóch rozmiarach to około 1000%, co spowoduje, że współczynnik skalowania składników tekstowych opartych na interfejsie użytkownika do 0,00046 (0,000458611116 ma być dokładny) lub 0,0005 dla zaokrąglonej wartości.

Tekst interfejsu użytkownika aparatu Unity z zoptymalizowanymi wartościami
Tekst interfejsu użytkownika aparatu Unity z zoptymalizowanymi wartościami


Uwaga

Wartość domyślna dowolnej czcionki może mieć wpływ na rozmiar tekstury tej czcionki lub sposób importowania czcionki do aparatu Unity. Te testy zostały wykonane na podstawie domyślnej czcionki Arial w środowisku Unity, a także jednej innej zaimportowanej czcionki.

Praca z usługą Text Mesh Pro

Dzięki usłudze Text Mesh Pro aparatu Unity można zabezpieczyć jakość renderowania tekstu. Obsługuje on ostre kontury tekstu niezależnie od odległości przy użyciu techniki SDF (Signed Distance Field ). Korzystając z tej samej metody obliczania, która została użyta powyżej dla siatki tekstu 3D i tekstu interfejsu użytkownika, możemy znaleźć odpowiednie wartości skalowania do użycia z konwencjonalnymi punktami typograficznymi. Ponieważ domyślna czcionka 3D Text Mesh Pro o rozmiarze 36 ma rozmiar ograniczenia 2,5 jednostek aparatu Unity (2,5 m), możemy użyć wartości skalowania 0,005, aby uzyskać rozmiar punktu. Usługa Text Mesh Pro w menu interfejsu użytkownika ma domyślny rozmiar ograniczenia 25 jednostek aparatu Unity (25 m). Daje to 0,0005 dla wartości skalowania.

Skalowanie wartości tekstu i interfejsu użytkownika aparatu Unity 3D
Skalowanie wartości tekstu i interfejsu użytkownika aparatu Unity 3D

Jak można się spodziewać, rozmiary typów używane na komputerze lub tablecie (zazwyczaj od 12 do 32 pkt) wyglądają na niewielką odległość od 2 metrów. Zależy to od cech każdej czcionki, ale ogólnie zalecany minimalny kąt widzenia i wysokość czcionki pod kątem czytelności to około 0,35°-0,4°/12,21-13,97 mm na podstawie naszych badań nad użytkownikami. To około 35-40 pkt z współczynnikiem skalowania wprowadzonym powyżej.

W przypadku bliskiej interakcji na poziomie 0,45 m (45 cm) minimalna czytelna czcionka kąt widzenia i wysokość to 0,4°-0,5° / 3,14–3,9mm. Jest to około 9-12 pkt z współczynnikiem skalowania wprowadzonym powyżej.

Zawartość bliskiego i dalekiegozakresu interakcji w zasięgu zbliżonym do i dalekiego zakresu interakcji

Minimalny czytelny rozmiar czcionki

Odległość Kąt Wysokość tekstu Rozmiar czcionki
45 cm (bezpośrednia odległość manipulowania) 0.4°-0.5° 3.14–3.9mm 8.9–11.13 pkt
2 m 0.35°-0.4° 12.21–13.97mm 34.63-39.58 pkt

Wygodnie czytelny rozmiar czcionki

Odległość Kąt Wysokość tekstu Rozmiar czcionki
45 cm (bezpośrednia odległość manipulowania) 0.65°-0.8° 5,1–6,3 mm 14.47-17.8 pkt
2 m 0.6°-0.75° 20,9–26,2 mm 59.4-74.2 pkt

Interfejs użytkownika Segoe (czcionka domyślna dla systemu Windows) działa dobrze w większości przypadków. Należy jednak unikać używania lekkich lub półświetlonych rodzin czcionek o małym rozmiarze, ponieważ cienkie pociągnięcia pionowe będą wibrować i obniży czytelność. Nowoczesne czcionki o wystarczającej grubości pociągnięcia działają dobrze. Na przykład Helvetica i Arial wyglądają wspaniale i są czytelne w HoloLens z regularnymi lub odważnymi wagami.

Wyświetlanieodległości, kąta i wysokości tekstu

Tekst z zestawem narzędzi Mixed Reality Toolkit w wersji 2

Ostra jakość renderowania tekstu z odpowiednim wymiarem

Na podstawie tych czynników skalowania utworzyliśmy prefabrykaty tekstowe z tekstem interfejsu użytkownika i siatką tekstu 3D. Deweloperzy mogą używać tych prefabów, aby uzyskać ostry tekst i spójny rozmiar czcionki.

Ostra jakość renderowania tekstu z odpowiednim wymiarem
Ostra jakość renderowania tekstu z odpowiednim wymiarem

Cieniowania z obsługą oklusionu

Domyślny materiał czcionki aparatu Unity nie obsługuje okluzji. W związku z tym domyślnie zobaczysz tekst za obiektami. Dołączyliśmy prostą cieniację, która obsługuje okluzji. Na poniższej ilustracji przedstawiono tekst z domyślnym materiałem czcionki (po lewej) i tekstem z odpowiednim okluzji (po prawej).

Cieniowania z obsługą oklusionu
Cieniowania z obsługą oklusionu

Następny punkt kontrolny programowania

Jeśli obserwujesz określoną przez nas podróż do opracowywania aparatu Unity, jesteś w środku eksplorowania podstawowych bloków konstrukcyjnych zestawu NARZĘDZI MRTK. W tym miejscu możesz przejść do następnego bloku konstrukcyjnego:

Możesz też przejść do Mixed Reality możliwości platformy i interfejsów API:

Zawsze możesz wrócić do punktów kontrolnych programowania aparatu Unity w dowolnym momencie.

Zobacz też