-1

GL_REPEATとこのテクスチャが正しくマッピングされているいくつかの三角形を備えたシームレスなTexture2Dがあります。

これらの三角形の各頂点について、positionXを更新して、このテクスチャを視差の背景として移動すると、大きな値が取得されます。

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

問題は、u <〜50の場合、すべてが正常に機能し、テクスチャが繰り返されることですが、ある制限に達すると、低解像度のテクスチャのようなものが表示され始め、X距離ごとに悪化します。

このuとvをより小さな値に適切に制限するにはどうすればよいですか?

このようにuを制限するために各頂点に対して単純に試しました

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

しかし、テクスチャが終了するたびにint Xが反転し、奇妙な結果が得られます

4

1 に答える 1

0

テクスチャ座標で精度の問題が発生しています。整数部分の大きさが大きくなると、小数部分の精度が低下し、アーティファクトが発生し始めます。

これまで見てきたように、この頂点ごとを修正することはできません。単一の三角形の頂点で修正が一貫して適用されないというラッピングの問題が発生するためです。

ポリゴン全体に均一に補正を適用する必要があります。これを行うのに最適な場所は、ソースデータです。テクスチャ座標が大きくなりすぎないように、データをチャンクに分割します。

于 2013-02-27T17:08:42.177 に答える