2013-02-27 51 views
-1

我有一個無縫的Texture2D與GL_REPEAT和這個紋理映射正確的幾個三角形。OpenGL ES紋理座標映射和限制

對於這些三角形中的每個頂點,我更新positionX以將此紋理作爲視差背景移動,並且它獲得較大的值。

u = positionX/texture_width; v = positionY/texture_height;

問題在於,當你工作的很好,紋理重複,但達到一定限度後,它開始顯示像低分辨率紋理之類的東西,並且在每X距離後它變得越來越差。

我怎樣才能正確地限制這個更小的值?

我只是試圖爲每個頂點限制ü這樣

float pWsp = positionX/(pTextureWidth); 
float pResult = pWsp - ((int)pWsp); 
return pResult; 

但每次質地結束反轉INT X,給了我奇怪的結果

回答

0

您正在運行到精度問題與紋理座標。隨着整數部分的幅度增加,小數部分的精度會降低,並且開始看到僞像。

正如你所看到的,你不能修復這個每個頂點,因爲你會得到環繞問題,其中單個三角形的頂點將最終應用不一致的修正。

您需要將校正均勻地應用於整個多邊形。做這件事的最好的地方是在源數據中 - 把它分解成塊,這樣紋理座標不會太大。