Вы хотите, чтобы ваша основная сцена проецировалась одним способом, а ваш угловой объект - другим.Это напрямую приводит вас к решению:
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.