Как визуализировать 3D текст в OpenGL?

Я хочу нарисовать 3D текст в окне просмотра OpenGL.
Я применил следующий метод, но он показывает текст в 2D позициях.

void renderBitmapString(float x, float y, float z,void *font,const char *string){
const char * c;

//glRasterPos2f(x, y);
// glutBitmapCharacter(font, string);
glRasterPos3f(x, y ,z);
//glRasterPos3i(x, y ,z);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(font, *c);
}
}

0

Решение

OpenGL не отображает текст. Это не часть стандарта. То, что он делает, это текстуры или растровые изображения. Таким образом, способ визуализации текста состоит в том, чтобы убедиться, что какая-то библиотека 2D-рендеринга, такая как Каир. Это должно помочь вам создать растровое изображение с текстом в нем. Получив растровое изображение, вы можете отобразить растровое изображение как текстуру. Но будьте осторожны, Cairo использует формат BGRA для своих растровых изображений, поэтому вам, возможно, придется перебрать красный и синий компоненты, чтобы все заработало.

1

Другие решения

Переключиться на glutStrokeCharacter(),

Или сделать ваш glutBitmapCharacter()с текстурой через FBO.

0

По вопросам рекламы [email protected]