glRasterPos2i 改变光栅位置 opengl
[code=C/C++][/code]
glGetFloatv(GL_CURRENT_RASTER_POSITION, raster_pos1);//断点1,查看当前光栅位置
glRasterPos2i(200, 200);//试图改变光栅位置
glGetFloatv(GL_CURRENT_RASTER_POSITION, raster_pos1);//断点2,查看改变后的光栅位置
光栅位置没有按照自己设想的改变,所以写了以上三行代码测试。结果在断点1光栅位置为:0.0, 0.0, 0.0, 1.0;
断点2光栅位置为:0.0, 0.0, 0.0, 1.732
感到非常奇怪。我的投影和视点是这样设置的。
[code=C/C++][/code]
glViewport(0,0,(GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60, (GLsizei)w/(GLsizei)h ,0.01, 200.0);
glMatrixMode(GL_MODELVIEW);
gluLookAt(0.0, 0.0, 1.732, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
是不是这样的设施导致了光栅位置的奇怪改变。
[解决办法]
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
~~~~~~~~~~~~~~~~~~这句话少掉了
gluLookAt(0.0, 0.0, 1.732, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
应该是modelview的参数问题,这个modelview太小了
试试用glortho设置大些的modelview,那样好计算一些,perspective比较难计算。