Благодаря разъясняющим комментариям я нашел решение.
Я взял точку, в которой я хотел нарисовать текст, спроецировал его на экран моей камеры мира.Затем я перевернул ось y на:
point.y = viewportHeight - point.y;
Затем я спроецировал его с помощью ScreenViewport (отдельный видовой экран для рисования текста, он использует камеру размера экрана, поэтому 1unit == 1pixel).Теперь я могу рисовать текст в проекции, где 1unit = 1pixel, в точке, которая находится в том же месте на экране, что и ранее выбранная точка в мировом пространстве.
Я также хотел иметь возможность рисовать текст внутри прямоугольных границ,Для этого я выбрал другой пункт.На этом текст должен закончиться.Проделал ту же процедуру, что и для начальной точки, а затем вычислил ширину
targetWidth = endpoint.x - startpoint.x;
Затем я использовал класс GlypthLayout, чтобы получить фактическую ширину моего текста при некотором (сгенерированном) размере шрифта.
actualWidth = glyphLayout.width;
И когда я масштабировал такой шрифт, как этот
font.getData().setScale(targetWidth / actualWidth);
, мой шрифт масштабировался, поэтому размер нарисованного текста был таким же, как ширина цели.
Но помните о другой проблеме!Когда я генерирую шрифт bimap с помощью FreetypeGenerator с размером, превышающим 300, некоторые буквы не рисуются и отсутствуют.(возможно ошибка).