0

FrameBufferにバインドされているテクスチャに描画しています。次に、それを長方形で使用します。長方形を移動して、テクスチャの特定の領域を表示できます。

描かれたテクスチャの外にいるときは、色だけにしたい

試着しましたGL_TEXTURE_WRAP_S/GL_TEXTURE_WRAP_L

GL_MIRRORED_REPEAT 

GL_REPEAT=>テクスチャの周りに色が付きますが、繰り返されるテクスチャが近すぎます

GL_CLAMP_TO_EGDE

しかし、それは私が望む結果ではありません。

私を助けるためのアイデアはありますか?

どうも。

4

1 に答える 1

1

私はIOS開発者ではありませんが、リストしたエッジモード(リピート、ミラー、クランプ)は、サポートについて知っているすべてのグラフィックハードウェアであるため、iPhone /iPadGPUも同様になると思います。

可能であれば、各境界でテクスチャを1ピクセル大きくし(たとえば、126x126ビットマップを使用して、透明な128x128テクスチャの中央に貼り付けます)、エッジモードとしてクランプを使用します。ただし、双一次補間は引き続き行われるため、これによって鋭いエッジが生じることはありません。

それ以外の場合は、自分で計算する必要があります。つまり、表示する長方形がテクスチャの境界に達した場合、テクスチャ座標だけでなく、レンダリングされたクワッドの座標を調整する必要があります。

upperLeftQuad.U = viewRectangle.X / textureWidth;
if(upperLeftQuad.U < 0) {
  upperLeftQuad.X += -(upperLeftQuad.U * textureWidth);
  upperLeftQuad.U = 0;
}

upperRightQuad.U = (viewRectangle.X + viewRectangle.Width) / textureWidth
if(upperLeftQuad.U > 1) {
  upperLeftQuad.X -= (upperLeftQuad.U * textureWidth);
  upperLeftQuad.U = 1;
}
于 2012-05-25T11:23:33.777 に答える