翻译帧缓冲区

时间:2012-12-10 20:25:30

标签: opengl drawing 2d fbo tiles-game

我在屏幕上绘制一个平铺地图,并在FBO中绘制每个平铺光(灰度)。一切都是四边形。

我将视图存储在Rect中。要移动我改变de Rect,然后我这样做......

glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(getViewRect().left, 
            getViewRect().left + getViewRect().width,
            getViewRect().top + getViewRect().height, 
            getViewRect().top, 
            -1, 
            1);
glMatrixMode(GL_MODELVIEW);

我只在Rect中绘制瓷砖。

问题在于FBO。我必须绘制可见的相同瓷砖(瓷砖的灯光)。

我想知道是否有更好的方法,将相同的瓷砖绘制到具有瓷砖偏移的fbo,在不完全可见的情况下在边框上绘制较小的四边形,并更改texcoord,因为当我绘制时在FBO之外,它吸引了另一面。

我使用FBO,因为我将着色器应用于灯光。

如果我不移动视图,它会很完美,但如果我移动我不知道如何在FBO上画画。

1 个答案:

答案 0 :(得分:0)

您应该能够使用glScissor来限制FBO中的所有绘图。每次绑定后调用glBindBuffer(...)后执行此操作。

希望这有帮助!