0

我在屏幕上绘制瓷砖地图,并在 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);

我只在矩形内绘制瓷砖。

问题是FBO。我必须绘制相同的瓷砖(瓷砖的灯),这是可见的。

我想知道是否有更好的方法,使用瓷砖的偏移量将相同的瓷砖绘制到 fbo,在不完全可见时在边界上绘制一个较小的四边形,并更改 texcoord,因为当我在 FBO 之外绘制时, 它画在对面。

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

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

4

1 回答 1

0

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

希望这可以帮助!

于 2012-12-10T21:28:07.507 回答