我有一个以视口中心为中心的主要场景
,此外我还希望在视口的角落显示另一个小对象。麻烦的是,当我绘制小物体时,它被主投影变换变换并出现倾斜。我希望小物体在其中心有自己的消失点。
这可能只是转变吗?
问问题
1081 次
1 回答
1
您希望以一种方式投影主场景,并以另一种方式投影角落对象。这直接引导您找到解决方案:
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。
于 2011-02-21T22:13:18.263 回答