2013-01-21 75 views
0

我有一個大小爲6的頂點矩形100x100,這是我用100x100背景圖片覆蓋的。現在我想在它上面呈現兩個「子貼圖」。渲染一個帶有多個紋理的矩形

可以說我有兩個子紋理的大小,然後20×20一個我喜歡在X定位:10 Y:10和其他X:50 Y:50

(實際上,這是習慣的面具)

我應該如何去與此?我的第一個想法是發送統一的vec2與兩個子紋理信息片段着色器的位置,但我真的不知道如何將它們轉換爲texture2d(subtexture,座標),因爲texture2d取0-1值。我不能真的把我的頭圍繞着這個,我希望得到一些指向我應該去的方向。

(這是要對OpenGL ES 2.0的使用)

+0

您是否希望子紋理成爲較大紋理的一部分,還是它們真的是分離位於「背景」矩形頂部的對象? – radical7

+0

它應該成爲一部分,因爲實際上我需要做的是使用子紋理來掩蓋大質地。 –

回答

0

那麼我認爲你真正尋找的是如何更新紋理。在你的情況下,最簡單的方法可能是使用glTexSubImage2D。下面將做你在原來的職位

glTexSubImage2D(GL_TEXTURE_2D, 0, 10, 10, 20, 20, <format>, <type>, <subimage1>); 
glTexSubImage2D(GL_TEXTURE_2D, 0, 50, 50, 20, 20, <format>, <type>, <subimage2>); 

其中<format>問什麼,和<type>描述儲存在<subimage*>子紋理像素。其他問題還有很多其他答案。只需搜索glTexSubImage2D。

一個更復雜的方法(當事情不像問題那麼簡單時)是使用幀緩衝區對象來渲染紋理(如果需要,也可以搜索那個)。