Opengl程序不正常!太邪门了!求帮忙啊!C/C++ code#includestdio.h#includegl\glut.hvoid display(){glC
Opengl程序不正常!太邪门了!求帮忙啊!
- C/C++ code
#include<stdio.h>#include<gl\glut.h>void display(){ glClear(GL_COLOR_BUFFER_BIT); glColor3b(255,255,0); //无论怎么改变数值,多边形都是黑色的 glBegin(GL_POLYGON); glVertex3f(0.25,0.25,0.0); glVertex3f(0.75,0.25,0.0); glVertex3f(0.75,0.75,0.0); glVertex3f(0.6,0.80,0.0); glVertex3f(0.25,0.75,0.0); glEnd(); glFlush();}void initlize(){ glClearColor(1.0,1.0,0.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0); //glMatrixMode(GL_MODELVIEW);}void display2(){}int main(int argc,char** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(250,250); glutInitWindowPosition(100,100); glutCreateWindow("hello my gl!"); initlize(); glutDisplayFunc(display); glutMainLoop(); return 0;}操作系统是Win7 64位, 编译环境VS2010
可以调节背景颜色,但是,无法给绘制的多边形着色。这是为什么呢?
1.首先,排除OpenGl不被显卡支持的可能,因为vtk是基于Opengl封装的,而我的电脑上能够完全正常运行基于vtk的程序。
[解决办法]
我以前用过opengl,但看不出你的问题在哪儿。我刚学opengl时调试都很顺利,不用灯光和材质,画直线颜色都正常。建议你再画点别的试试,三角形,球体等,一般加入灯光,材质后,颜色肯定会出来。
[解决办法]
改成 glColor3b(127,0,0); 试试吧
GLbyte 定义成 signed char, 不是 unsigned char 的, 255 超出范围了.
[解决办法]
OpenGL内部都是用浮点型来表示颜色的,这样glColor3f(0.2, 0.8, 0.1)设置就可以了,可能是驱动的问题,不过颜色最好直接用浮点型的。
[解决办法]
多边形是有正面反面的。纯属瞎猜啊。
[解决办法]
那些软件应该都是用glColor3f,就算你用整型,最终内部也是需要转成浮点的。
[解决办法]
nene 教程都是这么开头的:
- C/C++ code
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存 glLoadIdentity(); // 重置模型观察矩阵 glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0 glBegin(GL_TRIANGLES); // 绘制三角形glColor3f(1.0f,0.0f,0.0f); // 设置当前色为红色 glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点
[解决办法]
我想你glColor3f是不是应该放在glBegin里面啊...
[解决办法]
- C/C++ code
//清除屏幕和深度缓存 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //重置模型视图矩阵 glLoadIdentity(); glTranslatef(0.0f,0.0f,-5.0f);//移入屏幕5个单位
