2011-03-01 63 views
0

我做了一個類似於這個應用程序:http://www.youtube.com/watch?v=U2uH-jrsSxs(聲音有點大聲而壞)。問題是在每個紋理的底部都會出現一條非常細的線/點/無論如何。這幾乎是不明顯的,但它在那裏,我不知道爲什麼。我的紋理尺寸是256x256。我測試了earliear紋理大小爲128x128我認爲那裏什麼都沒有,但沒有把握。這不是什麼大事,因爲它非常薄,但我覺得它很煩人。這是一個screenshot。我選擇了RED這些線。我是OpenGL(ES)的noob,所以可能我做錯了什麼。任何幫助表示讚賞。奇怪的細線或點在我的opengl紋理的底部

回答

5

這將由於OpenGL平鋪紋理來填充指定區域。所以你所看到的細線就是這個紋理的最頂層,剛剛開始重複。

要避免它,請將紋理告訴CLAMP,而不要REPEAT(重複與平鋪同義)。紋理默認重複,所以你會希望有一個行是這樣的:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); 

如果你是這種方式傾斜,也有周圍無碼參與的bodge方式。只需編輯源圖形,以避免頂部或左邊緣出現像素。因此,將整個區域向下移動一個像素,並在其畫布內向右移動一個像素。但是當然如果你想要圖像出現在完全相同的地方,你需要調整座標。

+0

啊,是的,這是問題! BTW'GL_CLAMP'不能識別,但是'GL_CLAMP_TO_EDGE'沒問題。我認爲這是因爲它是openglES。如果我實際上並未重複紋理,我認爲我不需要指定紋理包裝/重複參數。謝謝。 – 2011-03-01 09:40:31

+0

酷!感謝您的反饋,gyozo。 – Dave 2011-03-01 09:48:14

+0

謝謝,它的工作原理 – 2015-08-17 09:46:01