Testo in Unity

Il testo è uno dei componenti più importanti nelle app olografiche. Per visualizzare il testo in Unity, è possibile usare tre tipi di componenti di testo: testo dell'interfaccia utente, Mesh testo 3D e Mesh Pro di testo. Per impostazione predefinita, il testo dell'interfaccia utente e il testo 3D Mesh 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 migliore qualità di rendering applicando un fattore di ridimensionamento per ottenere dimensioni appropriate quando si usano i componenti Testo interfaccia utente e Testo 3D Mesh.

How to get sharp and beautiful text
Testo predefinito sfocato in Unity

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

Unity presuppone che tutti i nuovi elementi aggiunti a una scena siano una unità Unity di dimensioni 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 textMesh 3D viene incluso per impostazione predefinita a circa 1 metro in altezza.

Working with Fonts in Unity
Il testo 3D predefinito di Unity (testo Mesh) occupa un'unità Unity, ovvero 1 metro


La maggior parte dei progettisti visivi usa punti per definire le dimensioni dei caratteri nel mondo reale. Ci sono circa 2835 (2.834.645666399962) punti in 1 metro. In base alla conversione del sistema di punti in 1 metro e testo predefinito di Unity Mesh dimensione del carattere pari a 13, la semplice matematica di 13 diviso per 2835 è uguale a 0,0046 (0,004586111116 per essere esatta) che fornisce una buona scala standard per iniziare con (alcuni potrebbero voler arrotondare a 0,005). Il ridimensionamento dell'oggetto o del contenitore di testo in questi valori non consente solo la conversione 1:1 delle dimensioni del carattere in un programma di progettazione, ma fornisce anche uno standard per mantenere la coerenza nell'intera esperienza.

Scaling values for the Unity 3D Text and UI Text
Valori di ridimensionamento per testo e testo dell'interfaccia utente di Unity 3D


Unity 3D Text Mesh with optimized values
Testo 3D Unity Mesh con valori ottimizzati


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

Unity UI Text with optimized values
Testo dell'interfaccia utente di Unity con valori ottimizzati


Nota

Il valore predefinito di qualsiasi tipo di carattere può essere influenzato dalle dimensioni della trama del tipo di carattere o dalla modalità di importazione del tipo di carattere 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.

Utilizzo di Mesh Pro di testo

Con l'Mesh Pro Text 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 il testo 3D Mesh e il testo dell'interfaccia utente, è possibile trovare i valori di ridimensionamento appropriati da usare con punti tipografici convenzionali. Poiché il tipo di carattere 3D Text Mesh Pro predefinito con le dimensioni di 36 ha una dimensione di delimitazione di 2,5 unità Unity (2,5 m), è possibile usare un valore di ridimensionamento pari a 0,005 per ottenere le dimensioni del punto. Il testo Mesh Pro nel menu dell'interfaccia utente ha una dimensione di delimitazione predefinita di 25 unità Unity (25 m). In questo modo viene restituito 0,0005 per il valore di ridimensionamento.

Scaling values for the Unity 3D Text and UI
Valori di ridimensionamento per il testo e l'interfaccia utente di Unity 3D

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

Per l'interazione da vicino 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 in precedenza.

Near and far interaction rangeContenuto 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

Segoe UI (il tipo di carattere predefinito per Windows) funziona correttamente nella maggior parte dei casi. Tuttavia, evitare di utilizzare famiglie di caratteri light o semi chiaro in piccole dimensioni poiché tratti verticali sottili vibrano e degraderà la leggibilità. I tipi di carattere moderni con spessore del tratto sufficiente funzionano bene. Ad esempio, Helvetica e Arial sembrano meravigliosi e sono leggibili in HoloLens con pesi regolari o audaci.

Viewing AngleDistanza di visualizzazione, angolo e altezza del testo

Testo con Realtà mista Toolkit v2

Qualità del rendering del testo nitido con dimensione appropriata

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

Sharp text rendering quality with proper dimension
Qualità del rendering del testo nitido con dimensione appropriata

Shader con supporto per occlusione

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

Shader with occlusion support
Shader con supporto per occlusione

Successivo checkpoint di sviluppo

Se si sta seguendo il percorso di sviluppo di Unity, si è in corso l'esplorazione dei blocchi predefiniti principali 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