2013-07-24 21 views
0

我製作了使用二十面體基座的球體,所以我有許多三角形組合成一個球體。有許多頂點和索引,但一切都被這個代碼(JAVA)制定了輕鬆:如何在OpenGL中的對象上放置紋理?

gl.glFrontFace(GL10.GL_CW); 
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertBuff); 
gl.glDrawElements(GL10.GL_TRIANGLES, size, GL10.GL_UNSIGNED_SHORT, shortBuff); 

其中shortBuff呈現指數和vertBuff提出了頂點。有沒有辦法將圖像包裹在對象的正面以放置紋理?

回答

1

基本上你需要你的頂點的紋理座標,然後將圖像加載到紋理中並激活該紋理階段。

Here's an (somewhat old but still valid) article on OpenGL texture mapping.

另一來源可能是offical OpenGL FAQ

還有一些選項可以讓OpenGL爲你生成紋理座標,但它們可能不會產生你想要的結果。

最後一種更現代的方法是使用着色器進行紋理映射。然而,這可能仍然高於你的水平,我也不確定OpenGL ES的能力(我正在使用完整的OpenGL)。

編輯

這裏的a tutorial on OpenGL tex coord generation

請注意,您還應該深入研究其他紋理座標生成方法,例如,在別處生成它們(如建模軟件)並將它們與您的頂點座標一起加載 - 或者從頂點座標或其他數據計算它們。

紋理座標的生成可能是一個開始,但爲了學習的目的,我建議學習如何手動完成。這樣您將更好地瞭解紋理座標和紋理映射的工作方式。

+0

是的,我不太熟悉着色器,我甚至還在爲OpenGL的基礎知識而苦苦掙扎。你可能會告訴我如何讓OpenGL爲我生成關於我的頂點的紋理座標? – Tommz