1

我正在开发一个使用单个 OpenGL ES 实例的 Android 应用程序。在某些情况下,我会在其他所有内容之上绘制一个自定义(矩形)对话框,其中包含滚动文本、线条等。对话框不会占据整个屏幕,并且我绘制的内容大于对话框,其中在对话框中滚动,就像一个选框。

当然,由于我最后绘制了这个对话框(在所有其他视图的顶部),所以我绘制的所有顶点都将是可见的,但我想告诉 OpenGL不要在对话框矩形之外绘制任何渲染命令。像这样...

剔除为矩形

我的大部分绘图都是glDrawArrays(...)使用FloatBuffer数组完成的。我想要的是一种向 OpenGL 指定我希望任何绘图在指定区域之外不可见的方法。

我对剔除了解不多,但这似乎与我正在寻找的东西非常相关。但是,剔除似乎只是为了跳过在 3D 中从相机视图中“看到”的三角形的绘制,而我想“跳过”在视口内任意矩形之外的任何三角形的绘制.

4

1 回答 1

-1

如果您知道如何将纹理保存为类参考,则可以使用它,并且当您来回滚动或任何可以更改其中的参数时

public class TextureRegion {    
public final float u1, v1;
public final float u2, v2;
public final Texture texture;

public TextureRegion(Texture texture, float x, float y, float width, float height) {
    this.u1 = x / texture.width;
    this.v1 = y / texture.height;
    this.u2 = this.u1 + width / texture.width;
    this.v2 = this.v1 + height / texture.height;        
    this.texture = texture;
}
}
于 2013-04-03T01:32:20.860 回答