2

少し見にくいですが、2つの顔の間に白黒の点があるように見えます。OpenGL の品質設定の 1 つであると思われますが、どれかはわかりません。それとも、テクスチャの最小/倍率フィルターでしょうか (両方とも線形に設定しています)。または、この問題を解決するにはミップマッピングが必要ですか? 何を探すべきかよくわかりません。


mimapping を行う方法を考え出しました....しかし、それは問題を悪化させるようです。

これが私の設定の一部です(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);

他のテクスチャでは気付かない:

だから多分私はそれについて心配することはありません...照明に行きましょう!

4

1 に答える 1

3

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

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

現在繰り返すように設定されている場合は、表示されている成果物が表示されます。

于 2012-01-03T02:31:46.337 に答える