2017-01-27 3 views
0

Я пытаюсь добавить текст в сцену с помощью ModelBatch в LibGDX. Чтобы объяснить более подробно, предположим, что у меня есть класс MyOBJ.Текст в 3D-пространстве

class MyOBJ { 
    private Model model; 
    private ModelInstance modelInstance; 

    public MyOBJ() { 
     // initialize model, texture and modelInstance. 
     // for simplicity let's assume this is a sphere 
     ModelBuilder modelBuilder = new ModelBuilder(); 
     model = modelBuilder.createSphere(...); 
     instance = new ModelInstance(model); 
    } 

    public void render(ModelBatch modelBatch) { 
     modelBatch.render(this.instance); 
    } 
} 

Теперь я хочу, чтобы под сферой был текст (например, метка). Так что, даже если камера вращается или перемещается, она все равно будет разворачиваться и под сферой.

Я знаю, что делать текст с помощью SpriteBatch, однако я не могу интегрировать SpriteBatch (ведьму 2D) в 3D-модель. Любые предложения/помощь приветствуются.

+0

То, о чем вы просите, является чрезвычайно сложной темой, которая потребует гораздо большего объяснения, чем обычно предлагается здесь для переполнения стека. Я рекомендую искать YouTube для учебника, в частности, для поиска ThinMatrix, у него есть учебник по визуализации текста в lwjgl, который, скорее всего, будет легко переводиться в LibGDX, поскольку реальное мясо того, что вы пытаетесь сделать, сводится к тяжелой математике , – CraigR8806

+0

Я вижу. Я, хотя LibGDX уже предлагает некоторый механизм для объединения 2D и 3D, который я не смог найти в документации. Я попробую то, что вы предложили. Благодарю. –

+0

Не все так сложно. Вы можете передать матрицу 3D-преобразования в SpriteBatch, чтобы изменить плоскость, на которую нарисовано все. На этом сайте есть вопрос, где это объясняется. – Tenfour04

ответ

0

Мне удалось это сделать через наклейки. Выделите шрифт в пользовательский fbo, получите текстуру fbo и добавьте ее в деколь. Отдайте все с помощью декалированной партии.

+0

Спасибо. Я постараюсь сделать это. –