首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

glRasterPos2i 改变光栅位置 opengl解决思路

2012-02-19 
glRasterPos2i 改变光栅位置 opengl[codeC/C++][/code]glGetFloatv(GL_CURRENT_RASTER_POSITION, raster_

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比较难计算。

热点排行