2012-12-29 127 views
0

這些代表什麼意思,我谷歌搜索,但無法找到可以理解的答案,因爲他們假設我有一些事先知道的知識。我在OpenGL-ES沒有經驗,但我已經在Android應用開發的好經驗:Open GL Es1.0紋理參數?

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_NEAREST); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,GL10.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,GL10.GL_REPEAT); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,GL10.GL_REPEAT); 
+1

http://msdn.microsoft.com/en-us/library/windows/desktop/dd368640(v=vs.85).aspx –

+0

thnx爲您提供幫助 – RE60K

回答

2

前兩行告訴GL做什麼用你的紋理時,它正在縮小或者向下,或者放大。

在這種情況下,當紋理縮小時(渲染到一個非常小的多邊形,使用的紋理包含的像素少),它將從紋理中爲每個屏幕像素選擇最近的像素, 。這將保持圖像清晰,但可能會產生一些視覺噪音。

第二行表示當紋理正在放大時(渲染到一個大的多邊形上,紋理中的每個像素都被拉伸到很多屏幕像素上),紋理應該被線性插值。這將模糊紋理中的​​像素,創建一個平滑的圖像,而不是能夠看到單個紋理像素。

其他兩行告訴GL如果紋理座標超出從0到1的範圍,紋理應該重複。另一個常見的選擇是「夾緊」紋理,使邊緣在tex-coords超出邊界的區域伸展。

4

這很簡單。

前兩行告訴GL在調整大小時如何處理紋理。在你的情況下,紋理在縮小尺寸(GL_TEXTURE_MIN_FILTER)和線性過濾(GL_LINEAR)時應該不使用過濾(GL_NEAREST)(GL_TEXTURE_MAX_FILTER)。可以使用其他幾個選項,例如三線過濾等。

後面的兩行告訴GL如果遇到紋理座標(0..1)範圍外的情況該怎麼做。在你的情況下,這將導致X(S)和Y(T)軸上的紋理重複(GL_REPEAT),所以如果紋理座標超出正常範圍,你將在你的基元上得到平鋪紋理。