2010-01-31 61 views
3

我從這個PNG紋理:請幫助使用OpenGL ES(iPhone)多紋理(2D)代碼!

alt text http://gotoandplay.freeblog.hu/files/tan0_Diffuse_1.png

,另一名來自這個PNG:

alt text http://gotoandplay.freeblog.hu/files/tan0_Specular_1.png

它們都具有相同的混合功能:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); 

我想先看到他們在一個單一的多邊形。我只是找不到這個簡單的例子。將它們繪製到不同的多邊形上是完美的,但我不能將它們合併成一個紋理。任何有效的示例代碼行都可以很好地處理。

第二個問題是使高光貼圖的alpha變量。我可以看到,我必須紋理結合不知何故它的主要顏色(從我的變量創建)alpha,但再次,沒有工作的代碼示例。我開始研究glTexEnvi函數,但我沒有任何結果。

請,我求求你約16行代碼!我GOOGLE了整個網絡,但仍然卡住了。

我想要實現(在文章底部的工作閃光燈草圖)發動機:http://gotoandplay.freeblog.hu/archives/2010/01/07/compactTangram_072_-_tan_rendering_labs/

+0

好的。沒有多重紋理。只是我無法做到。我將使用從屏幕外幀緩衝區複製的預渲染紋理。也許這樣更容易實現。希望如此。 – Geri 2010-02-01 15:40:29

回答

0

我不知道你需要的代碼的確切行,但似乎你是對的與glTexEnv路徑...這book on opengles 1.1談論它一些。我想你想的紋理組合:

glActiveTexture(GL_TEXTURE0); 
glEnable(GL_TEXTURE_2D); 
glBindTexture(GL_TEXTURE_2D, myTextureObject); 
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); 

// Tell OpenGL which arithmetic operation to use: 
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, <operation>); 

// Set the first argument: 
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, <source0>); 
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, <operand0>); 

// Set the second argument: 
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, <source1>); 
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, <operand1>); 

我不知道這是否會完成你想要什麼,雖然,你可能仍然需要宗教組織這樣做的權利。