2012-01-03 3 views
2

私のキューブの顔の間にこの引き裂きの原因は何ですか?

見た目は少しですが、2つの顔の間に白黒のドットがあるように見えます。私はそれがOpenGLの品質設定の1つだと思っていますが、わかりません。それとも、テクスチャ最小/マガフィルタ(私はそれらを線形に設定している)でしょうか?または、この問題を解決するためにミップマッピングが必要ですか?私は何を探していなければならないかはっきりしていません。


ミマッピングを行う方法がわかりました....しかし、それは問題を悪化させるようです。ここで

は、私が他のテクスチャでそれに気づくことができない私の設定の一部(それはC#でだが、それはCのAPI経由だけ薄いラッパーです)

VSync = VSyncMode.On; 

GL.Enable(EnableCap.DepthTest); 
GL.DepthFunc(DepthFunction.Less); 

GL.Enable(EnableCap.CullFace); 
GL.CullFace(CullFaceMode.Back); 
GL.FrontFace(FrontFaceDirection.Ccw); 

GL.ClearColor(Color.MidnightBlue); 
GL.Enable(EnableCap.Texture2D); 

GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); 


texture = new Texture(TextureTarget.Texture2D); 
texture.LoadImage2D("checkers.jpg"); 

GL.GenerateMipmap(GenerateMipmapTarget.Texture2D); 

Texture.SetParameter(TextureTarget.Texture2D, TextureMinFilter.LinearMipmapLinear); 
Texture.SetParameter(TextureTarget.Texture2D, TextureMagFilter.Linear); 
Texture.SetParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, TextureWrapMode.ClampToEdge); 
Texture.SetParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, TextureWrapMode.ClampToEdge); 

Texture.SelectActive(TextureUnit.Texture0); 

です:

ので、多分私はちょうど心配はありませんそれについて...我々は行く照明に!

答えて

3

おそらく、テクスチャラッピングを設定する必要があります。

glTexParameterf (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameterf (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

それが現在繰り返すように設定されています場合は、あなたが見ているアーティファクトを取得します。

+0

数年前の設定を漠然と思い出しました!それでは、私の問題を解決しました...しかし今回はできませんでした:(http://i.imgur.com/IdPFw.png – mpen

+0

チェッカーボードはどのように描かれていますか?単なるテクスチャですか、それともフラグメントシェーダですか? – user1118321

+0

また、あなたは顔を淘汰していますか?キューブの後ろにある顔の裏が見えることはありますか? – user1118321

関連する問題