2010-07-21 186 views
1

我一直在研究跨平臺的3D引擎,但atm我有在OSX和iPhone/iPad(它在模擬器中使用系統GL庫)本機運行的版本。我遇到的問題是每個紋理都在兩個方向上略有偏移(看起來像是一個texel shift),如果我在Blender3D中看不到相同的問題,我會在代碼中看到更多 - 在生成一些光照貼圖後在顏色漸變上更清晰可見。紋理文件是好的,並且相同的紋理座標(它只覆蓋整個四邊形)。OpenGL紋理問題

下面是它的外觀在攪拌機的例子(TEX COORDS 2,三角形是在範圍(0.0角,0.0) - (1.0,1.0)):http://i28.tinypic.com/2yllfr5.png

你可以看到有右側以及填充了錯誤紋素的標記四邊形的邊緣。

任何想法如何解決它?我使用OSX 10.6,更新到最新版本。

回答

4

問題已解決。對於那些在紋理邊緣上紋理幾何圖形後會發現僞像的人,答案可能會有所幫助。有兩個原因發生這種情況:

  • GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_R設置默認爲GL_REPEAT
  • ,如果你對TEX的參數組GL_CLAMP那麼它將與紋理區域外的邊界上的四邊緣(這是黑色的融合默認 )。

解決方法很簡單,對於GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T你必須使用哪個GL_CLAMP_TO_EDGE夾具紋理COORDS爲0.0 + 0.5和1.0-0.5給予0.5紋理像素的餘量對紋理的每一側上。

我希望它能幫助其他會發現類似問題的人。