opengl - 在视图的中间,OpenGL: 透视视图居中?

  显示原文与译文双语对照的内容
0 0

我在视口中中央有一个主要场景
此外,我希望在视口中显示另一个小对象。 问题在于,当我绘制小物体时,它被主投影变换转化,出现倾斜。 我想让这个小物体有它自己的中心在它的中心。
这是否可能只是转换?

时间: 原作者:

0 0

你希望你的主场景以一种方式投射,你的角对象被投射到另一种方式。 这将直接引导你到解决方案:


void render() {
 glMatrixMode(GL_PROJECTION);
 setUpMainProjection();
 glMatrixMode(GL_MODELVIEW);
 drawMainObject();

 glMatrixMode(GL_PROJECTION);
 setUpCornerProjection();
 glMatrixMode(GL_MODELVIEW);
 drawCornerObject();
}

也许你想知道如何实现 setUpCornerProjection 。 看起来像这样:


//let's say r is a rect, which, in eye space, contains the corner object and is
//centered on it
glFrustum(r.left, r.right, r.bottom, r.top, nearVal, farVal);
//let's say p is the rect in screen-space where you want to
//place the corner object
glViewport(p.x, p.y, p.width, p.height);

然后在 setUpMainProjection() 中你还需要调用glFrustum和 glViewport 。

原作者:
...