我使用
Aspect = (GLfloat)width / (GLfloat)height;
gluPerspective(45.0f,Aspect,0.1f,100.0f);
设置透视投影矩阵.
z=-10.
我在画一张图片的之前,先glTranslatef(0.0f,0.0f,z);
这时候,在深度为z的平面上,我该如何设置我的顶点坐标,使图片正好填满屏幕,误差在两个像素以内?
透视投影矩阵,是以点(0,0,0)为默认的视点的吗?有什么公式,可以得到我在任意深度画的图片与屏幕的关系?
问题补充:
glTexCoord2f(0.0f, 0.0f); glVertex3f(-13.3f, -10.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 13.3f, -10.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 13.3f, 10.0f, 0.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-13.3f, 10.0f, 0.0f);
为什么这几个定点画出来的图,要z=-0.09时才能正好填满屏幕.
而我使用z / tan(22.5 * 3.14 / 180) * 2这样的式子,希望通过z的长度和视角的大小,得到平面的宽度,但得到的也不是我想要的值.
------解决方案--------------------
也遇到这个问题,我在代码中使用了lookat,猜想远视点为绘制平面,不过据此运算得出的数据还是不对,同求解答