2013-04-03 94 views
0

我正在使用單個OpenGL ES實例的Android應用程序。在某些情況下,我正在繪製一個自定義(矩形)對話框,其中包括滾動文本,線條等。對話框不佔用整個屏幕,並且我繪製的內容大於對話框的 ,它在對話框中滾動,就像一個選取框。在OpenGL ES中,我怎樣才能「畫」繪製到一個矩形?

當然,因爲我畫這個對話框最後(ontop的所有其他觀點的),我的全部繪製頂點將是可見的,但我想告訴OpenGL 平局之外任何渲染命令的對話框矩形。像這樣...

Culling to rectangle

大多數我的畫是用FloatBuffer陣列glDrawArrays(...)完成。我想要的是一種指定OpenGL的方法,我希望任何繪圖在指定區域之外不可見。

我對淘汰賽瞭解不多,但這似乎與我所尋找的東西非常相關。然而,剔除似乎只是爲了跳過不會在3D中從相機視圖「看見」的三角形的繪製,而我想'跳過'在視口內的任意矩形之外的任何三角形的繪製。

+1

術語更改參數是「剪裁」。如果三角形在視錐之外,那麼opengl會自動剪切它們。我應該補充說,如果你需要在你的視口內部剪輯片段,你將不得不使用剪刀。 – spatulamania

+0

謝謝,剪刀正是我需要的! – khiner

回答

0

,如果你知道如何將紋理保存爲一個類的引用,你可以使用這個,當你來回滾動或任何你可以說你正在尋找它

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; 
} 
} 
相關問題