【发布时间】:2019-05-29 09:40:13
【问题描述】:
我的 OpenGL 代码有问题
我需要做一个游戏引擎。
我使用 freeglut 库。
我用旧的 Visual Studio 版本做了这个练习,我没有这个问题。但是在 Visual Studio 2017 中,glColor3f 属性显示的亮度很小。为什么?
这是我用来显示文本的代码:
char instrucciones3[100];
sprintf_s(instrucciones3, "PULSA 'ESC' SI QUIERES SALIR");
char *res4 = instrucciones3;
glColor3f(0.0f, 1.0f, 1.0f); //This is the problem, I dont have alpha but the brightness is low.
glRasterPos3f(1.0f, 5.0f, 0.0f);
drawString(res4);
char instrucciones2[100];
sprintf_s(instrucciones2, "PULSA 'H' PARA COMENZAR PARTIDA ");
char *res3 = instrucciones2;
glColor3f(0.0f, 1.0f, 1.0f);
glRasterPos3f(-10.0f, 5.0f, 0.0f);
drawString(res3);
更新:
亮度这么低,但模型不错。我在新代码中输入了glColor3f(0.0f, 1.0f, 1.0f);,但结果是一样的。
更新2 这是我的 displayMe 函数:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0, 3, 15, 0, 0, 0, 0, 1, 0);
glRotatef(yaw, 0.0, 1.0, 0.0);
glRotatef(pitch, 1.0, 0.0, 0.0);
glRotatef(roll, 0.0, 0.0, 1.0);
GLfloat lightpos[] = { 5.0, 15., 5., 0. };
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
【问题讨论】:
-
我尝试这样做,但结果是一样的。亮度太低了,几乎是黑色。
-
我不使用那个。
-
您是在绘制模型之前还是之后绘制文本?您是否尝试交换订单?
-
在模型之后,但是如果我在文本之后绘制模型,结果是一样的
-
我有这个 GLfloat lightpos[] = { 5.0, 15., 5., 0. }; glLightfv(GL_LIGHT0, GL_POSITION, lightpos);也许,这就是问题所在?
标签: c opengl freeglut opengl-1.x