Texto no Unity

O texto é um dos componentes mais importantes em aplicativos holográficos. Para exibir texto no Unity, há três tipos de componentes de texto que você pode usar: Texto da interface do usuário, Mesh de Texto 3D e Mesh Pro de Texto. Por padrão, texto da interface do usuário e texto 3D Mesh aparecem desfocados e são muito grandes. Alterar algumas variáveis resulta em texto mais nítido e de qualidade mais alta com um tamanho gerenciável em HoloLens. Você pode obter uma melhor qualidade de renderização aplicando um fator de dimensionamento para obter dimensões adequadas ao usar os componentes texto da interface do usuário e texto 3D Mesh componentes.

How to get sharp and beautiful text
Texto padrão desfocado no Unity

Trabalhando com texto 3D do Unity (texto Mesh) e texto da interface do usuário

O Unity pressupõe que todos os novos elementos adicionados a uma cena sejam uma Unidade do Unity em tamanho ou uma escala de transformação de 100%. Uma unidade do Unity é convertida em cerca de 1 metro em HoloLens. Para fontes, a caixa delimitadora de um TextMesh 3D entra por padrão com cerca de 1 metro de altura.

Working with Fonts in Unity
O texto 3D padrão do Unity (Mesh de texto) ocupa uma Unidade do Unity, que é de 1 metro


A maioria dos designers visuais usa pontos para definir tamanhos de fonte no mundo real. Há cerca de 2835 pontos (2.834,645666399962) em 1 metro. Com base na conversão do sistema de pontos em 1 metro e no tamanho padrão da fonte text Mesh do Unity de 13, a matemática simples de 13 dividida por 2835 é igual a 0,0046 (0,00458611116 para ser exata) que fornece uma boa escala padrão para começar (alguns podem desejar arredondar para 0,005). Dimensionar o objeto de texto ou contêiner para esses valores não só permitirá a conversão 1:1 de tamanhos de fonte em um programa de design, mas também fornecerá um padrão para que você possa manter a consistência durante toda a sua experiência.

Scaling values for the Unity 3D Text and UI Text
Dimensionamento de valores para texto do Unity 3D e texto da interface do usuário


Unity 3D Text Mesh with optimized values
Texto 3D do Unity Mesh com valores otimizados


Ao adicionar um elemento de texto baseado em interface do usuário ou tela a uma cena, a disparidade de tamanho ainda é maior. As diferenças nos dois tamanhos são de cerca de 1000%, o que levaria o fator de escala para componentes de texto baseados em interface do usuário para 0,00046 (0,000458611116 para ser exato) ou 0,0005 para o valor arredondado.

Unity UI Text with optimized values
Texto da interface do usuário do Unity com valores otimizados


Observação

O valor padrão de qualquer fonte pode ser afetado pelo tamanho da textura dessa fonte ou como a fonte foi importada para o Unity. Esses testes foram realizados com base na fonte Arial padrão no Unity, bem como em uma outra fonte importada.

Trabalhando com Mesh Pro de Texto

Com a Mesh Pro de Texto do Unity, você pode proteger a qualidade de renderização de texto. Ele dá suporte a contornos de texto nítido, independentemente da distância usando a técnica SDF (Campo de Distância Assinada ). Usando o mesmo método de cálculo que usamos acima para o texto 3D Mesh e texto da interface do usuário, podemos encontrar os valores de dimensionamento adequados a serem usados com pontos tipográficos convencionais. Como a fonte de texto 3D padrão Mesh Pro com o tamanho de 36 tem um tamanho delimitador de 2,5 unidades do Unity (2,5 m), podemos usar um valor de dimensionamento de 0,005 para obter o tamanho do ponto. O texto Mesh Pro no menu da interface do usuário tem um tamanho delimitação padrão de 25 unidades do Unity (25 m). Isso nos dá 0,0005 para o valor de dimensionamento.

Scaling values for the Unity 3D Text and UI
Dimensionamento de valores para o texto e a interface do usuário do Unity 3D

Como você pode esperar, os tamanhos de tipo que usamos em um computador ou em um dispositivo tablet (normalmente entre 12 e 32pt) parecem pequenos a uma distância de 2 metros. Depende das características de cada fonte, mas, em geral, o ângulo de exibição mínimo recomendado e a altura da fonte para legibilidade são em torno de 0,35°-0,4°/12,21-13,97 mm com base em nossos estudos de pesquisa de usuários. É cerca de 35-40 pt com o fator de dimensionamento introduzido acima.

Para a interação próxima a 0,45 m (45 cm), o ângulo de exibição da fonte legível mínima e a altura são 0,4°-0,5° / 3,14–3,9mm. É cerca de 9-12 pt com o fator de dimensionamento introduzido acima.

Near and far interaction rangeConteúdo em intervalo de interação próximo e distante

O tamanho mínimo da fonte legível

Distância Ângulo de exibição Altura do texto Tamanho da fonte
45 cm (distância de manipulação direta) 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

O tamanho da fonte confortavelmente legível

Distância Ângulo de exibição Altura do texto Tamanho da fonte
45 cm (distância de manipulação direta) 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

A interface do usuário do Segoe (a fonte padrão para Windows) funciona bem na maioria dos casos. No entanto, evite usar famílias de fontes leves ou semi-leves em tamanho pequeno, pois traços verticais finos vibrarão e prejudicarão a legibilidade. Fontes modernas com espessura de traço suficiente funcionam bem. Por exemplo, Helvetica e Arial ficam lindas e são legíveis em HoloLens com pesos regulares ou ousados.

Viewing AngleExibir distância, ângulo e altura do texto

Texto com Realidade Misturada Toolkit v2

Qualidade de renderização de texto afiado com dimensão adequada

Com base nesses fatores de dimensionamento, criamos pré-fabricados de texto com texto da interface do usuário e texto 3D Mesh. Os desenvolvedores podem usar esses pré-fabricados para obter texto afiado e tamanho de fonte consistente.

Sharp text rendering quality with proper dimension
Qualidade de renderização de texto afiado com dimensão adequada

Sombreador com suporte para oclusão

O material de fonte padrão do Unity não dá suporte à oclusão. Por isso, você verá o texto por trás dos objetos por padrão. Incluímos um sombreador simples que dá suporte à oclusão. A imagem abaixo mostra o texto com material de fonte padrão (esquerda) e o texto com oclusão adequada (direita).

Shader with occlusion support
Sombreador com suporte para oclusão

Próximo ponto de verificação de desenvolvimento

Se você está seguindo a jornada de desenvolvimento do Unity que estabelecemos, você está no meio da exploração dos blocos de construção principais do MRTK. Deste ponto, você pode prosseguir para o próximo bloco de construção:

Ou vá diretamente para as funcionalidades e APIs da plataforma de Realidade Misturada:

Você sempre pode voltar para os pontos de verificação de desenvolvimento do Unity a qualquer momento.

Confira também