OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。
关于glut中的键盘处理函数中key的取值:
glut中关于键盘的函数有两个,glutKeyboardFunc(keyFcn);glutSpecialFunc(specialKeyFcn);
void keyFcn(glubyte key,GLint xMouse,GLint yMouse)
参数key的取值是一个字符值或者对应ASCII编码。返回的鼠标光标在窗口内的位置坐标(xMouse,yMouse)是相对于窗口左上角的。当一个指定的按键按下时,我们就可以用鼠标位置来启动某些行为。
void SpecialKeyFcn(GLint specialKey,GLint xMouse,GLint yMouse)
参数specialKey的取值是具有整数值的GlUT常量。功能键符号常量GLUT_KEY_F1到GLUT_KEY_F12.方向键的符号常量类似GLUT_KEY_PAGE_DOWN,GLUT_KEY_HOME等指定。”backspace”,”delete”,和”escape”键通过glutKeyboardFunc用他们的ASCII编码指定,分别为8,127和27.