如果我有像这样的共同风格透视变换矩阵
/ focus 0 cx \ | 0 focus cy | \ 0 0 1 /
如何设置glFrustum或gluPerspective的参数以获得正确的转换
例如:
glFrustum ( -cx, screenWidth - cx, -cy, screenHeight - cy, focus, focus + 1000) gluLookAt( 0.0, 0.0, -focus, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
不要创建正确的转换=(
答案 0 :(得分:2)
我做到了! =)也许有人会有用
glFrustum( -znear*cx / fx, znear*(w - cx) / fx, -znear*cy / fy, znear*(h - cy) / fy, znear, zfar);
答案 1 :(得分:1)
glMatrixMode(GL_PROJECTION)
glFrustum ( 0, screenWidth ,0, screenHeight, focus, focus + 1000)
glMatrixMode(GL_MODELVIEW)
glLookAt(...)
但是给定矩阵不是openGL预期的4D变换矩阵;你应该看看http://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml
你正在将你的近剪裁平面设置在“焦点”,所以任何关闭的东西都会被剪掉!你应该选择一个更合适的价值,比如1.0。焦点+ 1000有意义,但