回転した矩形でテクスチャを描いているときに私が気味悪いアーティファクトが発生していることに気付きました。回転で描画するときのアーティファクト
私の基本的な絵はこれです:私は "水平に" 描くと予想通り、結果は
:
しかし、私は回転でそれらを描き始めるとき正方形の2つのアーティファクトは、円の下側と右側に現れます。私は、彼らがどこから来たのかを把握することができません縫い目
...
任意のアイデア?
EDITは:アーティファクトがClampToEdgeにテクスチャラッピングモードを設定することにより、「削除」することができるレミー・グランディンによるコメントで述べたように
GL.Enable(EnableCap.Texture2D);
GL.BindTexture(TextureTarget.Texture2D, graphics.TextureId);
GL.Enable(EnableCap.Blend);
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
GL.Begin(PrimitiveType.Quads);
Point tlCorner = displayObject.LocalToGlobal(0,0);
Point trCorner = displayObject.LocalToGlobal(displayObject.Width, 0);
Point brCorner = displayObject.LocalToGlobal(displayObject.Width, displayObject.Height);
Point blCorner = displayObject.LocalToGlobal(0, displayObject.Height);
GL.TexCoord2(0.0f, 0.0f);
GL.Vertex2(tlCorner.X, tlCorner.Y);
GL.TexCoord2(1.0f, 0.0f);
GL.Vertex2(trCorner.X, trCorner.Y);
GL.TexCoord2(1.0f, 1.0f);
GL.Vertex2(brCorner.X, brCorner.Y);
GL.TexCoord2(0.0f, 1.0f);
GL.Vertex2(blCorner.X, blCorner.Y);
GL.End();
GL.Disable(EnableCap.Texture2D);
GL.Disable(EnableCap.Blend);
テクスチャラッピングモードを確認してください。クランプされており、繰り返していないことを確認してください。 –
確かに、私は2つのTexParameter(TextureWrapSとTextureWrap)をClampToEdgeに定義しました。あなたがaswer投稿にあなたの答えを載せるのを忘れてしまったら、私はそれを受け入れられたものとして喜んで設定します。 –