Testo in Unity

Il testo è uno dei componenti più importanti nelle app olografiche. Per visualizzare il testo in Unity, sono disponibili tre tipi di componenti di testo che è possibile usare: Testo dell'interfaccia utente, Mesh di testo 3D e Text Mesh Pro. Per impostazione predefinita, Il testo dell'interfaccia utente e la mesh di testo 3D appaiono sfocati e sono troppo grandi. La modifica di alcune variabili comporta un testo più nitido e di qualità superiore con dimensioni gestibili in HoloLens. È possibile ottenere una qualità di rendering migliore applicando un fattore di ridimensionamento per ottenere dimensioni appropriate quando si usano i componenti Text dell'interfaccia utente e 3D Text Mesh.

Come ottenere un testo nitido e bello
Testo predefinito sfocato in Unity

Uso del testo 3D di Unity (Mesh di testo) e del testo dell'interfaccia utente

Unity presuppone che tutti i nuovi elementi aggiunti a una scena siano una unità Unity in dimensione o una scala di trasformazione del 100%. Un'unità Unity si traduce in circa 1 metro in HoloLens. Per i tipi di carattere, il rettangolo di selezione per un oggetto TextMesh 3D viene fornito per impostazione predefinita a circa 1 metro in altezza.

Uso dei tipi di carattere in Unity
Il testo predefinito di Unity 3D (Text Mesh) occupa un'unità Unity, che è di 1 metro


La maggior parte dei progettisti visivi usa punti per definire le dimensioni del carattere nel mondo reale. Ci sono circa 2835 (2.834.64566639962) punti in 1 metro. In base alla conversione del sistema punto a 1 metro e alle dimensioni predefinite del tipo di carattere Text Mesh di Unity pari a 13, la matematica semplice di 13 diviso per 2835 equivale a 0,0046 (0,004586111116) che fornisce una scala standard ottimale da iniziare (alcuni possono voler arrotondare a 0,005). Il ridimensionamento dell'oggetto testo o del contenitore in questi valori non consente solo la conversione 1:1 delle dimensioni del carattere in un programma di progettazione, ma offre anche uno standard in modo da poter mantenere la coerenza in tutta l'esperienza.

Ridimensionamento dei valori per il testo di Unity 3D e il testo dell'interfaccia utente
Ridimensionamento dei valori per il testo di Unity 3D e il testo dell'interfaccia utente


Mesh di testo di Unity 3D con valori ottimizzati
Mesh di testo di Unity 3D con valori ottimizzati


Quando si aggiunge un elemento di testo basato su interfaccia utente o canvas a una scena, la disparità delle dimensioni è ancora maggiore. Le differenze tra le due dimensioni sono circa il 1000%, che porterebbe il fattore di scala per i componenti di testo basati sull'interfaccia utente a 0,00046 (0,000458611116 da specificare) o 0,0005 per il valore arrotondato.

Testo dell'interfaccia utente di Unity con valori ottimizzati
Testo dell'interfaccia utente di Unity con valori ottimizzati


Nota

Il valore predefinito di qualsiasi tipo di carattere può essere interessato dalle dimensioni della trama del tipo di carattere o dal modo in cui il carattere è stato importato in Unity. Questi test sono stati eseguiti in base al tipo di carattere Arial predefinito in Unity, nonché a un altro tipo di carattere importato.

Uso di Text Mesh Pro

Con Text Mesh Pro di Unity è possibile proteggere la qualità del rendering del testo. Supporta contorni di testo nitidi indipendentemente dalla distanza usando la tecnica SDF (Signed Distance Field). Usando lo stesso metodo di calcolo usato in precedenza per la mesh di testo 3D e il testo dell'interfaccia utente, è possibile trovare i valori di ridimensionamento appropriati da usare con i punti tipografici convenzionali. Poiché il tipo di carattere 3D Text Mesh Pro predefinito con le dimensioni di 36 ha una dimensione delimitata di 2,5 unità Unity (2,5 m), è possibile usare un valore di ridimensionamento pari a 0,005 per ottenere le dimensioni del punto. Text Mesh Pro nel menu dell'interfaccia utente ha dimensioni predefinite di 25 unità Unity (25 m). In questo modo si ottiene 0,0005 per il valore di ridimensionamento.

Ridimensionamento dei valori per il testo e l'interfaccia utente di Unity 3D
Ridimensionamento dei valori per il testo e l'interfaccia utente di Unity 3D

Come si può aspettare, le dimensioni del tipo usate su un PC o un dispositivo tablet (in genere tra 12-32pt) sembrano piccole a distanza di 2 metri. Dipende dalle caratteristiche di ogni carattere, ma in generale l'angolo minimo di visualizzazione consigliato e l'altezza del carattere per la leggibilità sono circa 0,35°-0,4°/12,21-13,97 mm in base agli studi di ricerca degli utenti. Si tratta di circa 35-40 pt con il fattore di ridimensionamento introdotto sopra.

Per l'interazione vicina a 0,45 m (45 cm), l'angolo di visualizzazione minimo del carattere leggibile e l'altezza sono 0,4°-0,5° / 3,14–3,9mm. Si tratta di circa 9-12 pt con il fattore di ridimensionamento introdotto sopra.

Contenuto vicino e lontano intervallo di interazione vicino e lontano intervallo di interazione

Dimensione minima del carattere leggibile

Distanza Angolo di visualizzazione Altezza del testo Dimensioni del carattere
45 cm (distanza di manipolazione diretta) 0.4°-0.5° 3.14-3.9mm 8.9–11.13pt
2 m 0.35°-0.4° 12.21–13.97mm 34.63-39.58 pt

Dimensioni del carattere leggibili comodamente

Distanza Angolo di visualizzazione Altezza del testo Dimensioni del carattere
45 cm (distanza di manipolazione diretta) 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

L'interfaccia utente di Segoe (il tipo di carattere predefinito per Windows) funziona correttamente nella maggior parte dei casi. Tuttavia, evitare di usare famiglie di tipi di carattere chiaro o semi chiaro in piccole dimensioni, poiché i tratti verticali sottili vibrano e degraderanno la leggibilità. I tipi di carattere moderni con spessore di tratto sufficienti funzionano bene. Ad esempio, Helvetica e Arial sono leggibili in HoloLens con pesi regolari o grassetti.

Visualizzazione della distanza di visualizzazione dell'angolo, dell'angolo e dell'altezza del testoViewing Angle

Testo con Realtà mista Toolkit v2

Qualità del rendering del testo nitido con una dimensione appropriata

In base a questi fattori di ridimensionamento, sono stati creati prefab di testo con testo dell'interfaccia utente e Mesh di testo 3D. Gli sviluppatori possono usare questi prefab per ottenere testo nitido e dimensioni coerenti del tipo di carattere.

Qualità del rendering del testo nitido con una dimensione appropriata
Qualità del rendering del testo nitido con una dimensione appropriata

Shader con supporto per l'occlusione

Il materiale del carattere predefinito di Unity non supporta l'occlusione. A causa di questo, verrà visualizzato il testo dietro gli oggetti per impostazione predefinita. È stato incluso un semplice shader che supporta l'occlusione. L'immagine seguente mostra il testo con materiale del tipo di carattere predefinito (a sinistra) e il testo con l'occlusione appropriata (destra).

Shader con supporto per l'occlusione
Shader con supporto per l'occlusione

Successivo checkpoint di sviluppo

Se si sta seguendo il percorso di sviluppo di Unity, si è in corso l'esplorazione dei blocchi predefiniti di MRTK. Da qui, è possibile passare al blocco predefinito successivo:

In alternativa, passare alle API e alle funzionalità della piattaforma di realtà mista:

È sempre possibile tornare ai checkpoint per lo sviluppo con Unity in qualsiasi momento.

Vedere anche