我想在OpenGL视口中绘制3D文本 我已应用以下方法,但它在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 :(得分:3)
OpenGL不呈现文本。它不是标准的一部分。它渲染的是纹理或位图图像。因此,渲染文本的方法是使用某种2D渲染库,如Cairo。这应该可以帮助您创建一个包含文本的位图。一旦有了位图,就可以将位图渲染为纹理。但要小心,开罗使用BGRA格式作为其位图,因此您可能需要调整红色和蓝色组件以使其工作。
答案 1 :(得分:0)
切换到glutStrokeCharacter()
。
或者通过FBO将glutBitmapCharacter()
渲染到纹理。