3D текст

Введение

В проекте могут возникнуть ситуации, когда текст должен быть создан как часть 3D-сцены, а не только в HUD. Godot предоставляет два метода для этого. Узел Label3D и текстовая сетка для узла MeshInstance.

This page does not cover how to display a GUI scene in a 3D environment. For information on how to do that see this demo project.

Label3D

../../_images/label_3d.png

Label3D ведёт себя как узел метки, но в трёхмерном пространстве. В отличие от узла метки, он не может наследовать свойства темы GUI. Однако его внешний вид остаётся настраиваемым и использует те же подресурсы DynamicFont и BitmapFont, что и узлы управления.

Label3D имеет минимальное взаимодействие с 3D-средой, он может быть освещен и затенен источниками света, если включен флаг shaded, но он не будет отбрасывать тень, даже при включенной функции cast shadow в настройках узла GeometryInstance3D. Это происходит потому, что узел представляет собой квадратную сетку (один глиф на квадрат) с прозрачными текстурами и имеет те же ограничения, что и Sprite3D. Дополнительную информацию смотрите на этой странице.

Text mesh

../../_images/text_mesh.png

Текстовые сетки имеют сходство с Label3D. Они отображают текст в трехмерной сцене и используют тот же подресурс DynamicFont. Однако текст является трехмерным и имеет свойства сетки. Текстовая сетка отбрасывает тени на окружение и может иметь материал, применённый к ней. Вот пример текстуры и её применения к сетке.

../../_images/text_mesh_texture.png ../../_images/text_mesh_textured.png

У текстовой сетки есть два ограничения. Она не может использовать растровые шрифты или шрифты с самопересечением.