2011-05-16 133 views
0

我目前正在開發與python遊戲,並推遲嘗試解決此問題。Pyglet,包裹圖像的邊緣像素

出於某種原因,我的圖像拼貼的邊緣被纏繞到圖像的另一邊。它似乎並不只是一個很小的子像素量。

這裏是一個關閉的屏幕截圖,所以你可以看到我的意思,顯然這些簡單的瓷磚,因爲它們在一些地方比其他地方更明顯(見橙色一側,從另一側可以看出)

enter image description here

這將是真正偉大的,如果有人可以點我在正確的方向

回答

1

此問題是由於未成年人的浮點精確度問題,在圖像的邊緣。 OpenGL必須在沒有給出其他值的邊緣處插入一些值。正常的操作是GL_REPEAT,這意味着紋理的環繞效果。你想要的是GL_CLAMP,但是這必須在紋理創建的時候聲明,afaik。

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, CL_CLAMP) 
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP) 

不幸的是我不知道如何將它與pyglet整合。也許有創意選擇?

+0

這是一個非常好的開始,如果沒有人用pyglet回答(我無法找到如何將參數傳遞到pyglet.image),那麼它會標記出來。 – Hugoagogo 2011-05-17 08:10:14

+0

這讓我朝着正確的方向前進,最終我需要使用夾緊到邊緣,以防止得到黑暈 gl.glTexParameteri(gl.GL_TEXTURE_2D,gl.GL_TEXTURE_WRAP_S,gl.GL_CLAMP_TO_EDGE) gl.glTexParameteri(gl.GL_TEXTURE_2D,gl.GL_TEXTURE_WRAP_T,gl.GL_CLAMP_TO_EDGE) – Hugoagogo 2011-05-18 00:28:50