初学OpenGL,有下面2个简单问题
问题1
void main(){
glutInitDisplayMode(GLUT_SINGLE ¦GLUT_RGB);
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
}
void RenderScene(void){
glClear(GL_COLOR_BUFFER_BIT ¦GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);// 设定矩阵模式
glLoadIdentity();//坐标归位
glColor3ub(255,0,0);
glTranslatef(0.0,0.0,-100.0f);
glutSolidSphere(10,15,15);
//glutSolidSphere(10,15,15); <-如果没有这条语句,画出来的是个很小的
//球, 如果有了这条,就是一个比较大的球体.... 按理说,应该是一样的,重合的才对
//呀,这是怎么回事??
glLoadIdentity();
glutSwapBuffers();
}
.......
问题2
OpenGL的坐标系的y轴在上面程序里怎么是反的?
就是 glTranslatef(0.0f,0.0f,-100.0f)
如果改成 glTranslatef(0.0f,50.0f,-100.0f)
应该是在相对较上的位置上画一个才对,但是却画在相反的下方,这是怎么回事??
问题1
void main(){
glutInitDisplayMode(GLUT_SINGLE ¦GLUT_RGB);
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
}
void RenderScene(void){
glClear(GL_COLOR_BUFFER_BIT ¦GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);// 设定矩阵模式
glLoadIdentity();//坐标归位
glColor3ub(255,0,0);
glTranslatef(0.0,0.0,-100.0f);
glutSolidSphere(10,15,15);
//glutSolidSphere(10,15,15); <-如果没有这条语句,画出来的是个很小的
//球, 如果有了这条,就是一个比较大的球体.... 按理说,应该是一样的,重合的才对
//呀,这是怎么回事??
glLoadIdentity();
glutSwapBuffers();
}
.......
问题2
OpenGL的坐标系的y轴在上面程序里怎么是反的?
就是 glTranslatef(0.0f,0.0f,-100.0f)
如果改成 glTranslatef(0.0f,50.0f,-100.0f)
应该是在相对较上的位置上画一个才对,但是却画在相反的下方,这是怎么回事??
前几天,有一个网友寻找OpenGL显示曲面的方法,email到我这里。我把我的 wave 程序发给他了。不料我的程序使他喜出望外。这是我想到如果我的程序放到网上的话,会有更多的人能够更容易的看到我的代码,并且公容易的学习如何使用OpenGL。2. Contents
请大家访问 http://www.betajin.com/alphasun/index.htm。请看其中的 Wave OpenGL 页面,在里面便可下载 wave 的源代码。以后我还会公布一些其它的程序源代码。希望能对大家有用。我的 MyProjects 有172个目录呢,并且有的workspace包含数个工程。另外,如果大家觉得本贴对你有用,还烦劳各位 up 一下,使得更多的人能够看得到。
谢谢