Я хочу нарисовать 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);
}
}
OpenGL не отображает текст. Это не часть стандарта. То, что он делает, это текстуры или растровые изображения. Таким образом, способ визуализации текста состоит в том, чтобы убедиться, что какая-то библиотека 2D-рендеринга, такая как Каир. Это должно помочь вам создать растровое изображение с текстом в нем. Получив растровое изображение, вы можете отобразить растровое изображение как текстуру. Но будьте осторожны, Cairo использует формат BGRA для своих растровых изображений, поэтому вам, возможно, придется перебрать красный и синий компоненты, чтобы все заработало.
Переключиться на glutStrokeCharacter()
,
Или сделать ваш glutBitmapCharacter()
с текстурой через FBO.