これに似たアプリを作成しました: http://www.youtube.com/watch?v=U2uH-jrsSxs (音は少し大きくて悪いです)。問題は、すべてのテクスチャの下部に非常に細い線/ドット/何かが表示されることです。ほとんど目立たないのですが、そこにあり、その理由はわかりません。私のテクスチャのサイズは 256x256 です。テクスチャサイズ128x128で以前にテストしましたが、そこには何もなかったと思いますが、確かではありません. 薄いのであまり気にならない程度ですが、気になるところです。これがスクリーンショットです。これらの行を赤で選択しました。私は OpenGL(ES) の初心者なので、おそらく何か間違ったことをしたのでしょう。どんな助けでも大歓迎です。
1 に答える
5
これは、指定された領域を埋めるためにテクスチャをタイリングする OpenGL によるものです。したがって、あなたが見ている細い線は、そのテクスチャの一番上になり、再び繰り返され始めます.
これを避けるには、テクスチャに REPEAT ではなく CLAMP を指定します (繰り返しはタイリングと同義です)。テクスチャはデフォルトで繰り返されるため、次のような行が必要になります。
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );
あなたがこのように傾倒しているなら、それを回避するコードを含まないボッジ方法もあります。上端または左端にピクセルが存在しないように、ソース グラフィックスを編集するだけです。したがって、キャンバス内で全体を 1 ピクセル下に移動し、1 ピクセル右に移動します。ただし、画像をまったく同じ場所に表示したい場合は、もちろん座標を調整する必要があります。
于 2011-03-01T09:15:24.473 に答える