2

私は明らかにいくつかの3Dオブジェクトとテクスチャを含む単純なopenglアプリケーションを作成しています。ただし、私の問題は、すべてのテクスチャにアーティファクトが表示されることです。これらは、エッジに沿って三角形の形で提供されます。

視点をテクスチャに近づけるとすぐに消えてしまうことに気づきました。したがって、mipmappingまたはz-bufferのいずれかと関係があるのではないかと疑っています。すべてのテクスチャ座標は.3dsファイルからロードされ、すべてが0-1の範囲内にあることが確認されていることに注意してください。

これが私の問題の写真です:

写真1

テクスチャは次のようにロードされます。

//Texture parameters
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

//Define the 2d texture
glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, array);

//Create 2d mipmaps
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, width, height, GL_RGBA, GL_UNSIGNED_BYTE, array);
4

1 に答える 1

5

DirectXを使用してプログラミングしていたとき、近平面/遠平面の距離の比率により、エッジにアーティファクトが発生しました。

私の場合、ニアプレーンが「カメラ」から1ユニット離れていて、ファープレーンが10000ユニット離れている場合、比率は1/10000になり、問題が発生します。ニアプレーンを10または100に設定すると、比率が大きくなります。ギザギザのエッジの問題を解決しました。

OpenGLに適用できるかどうか/どのように適用できるかはわかりませんが、チェックしてみてください。

于 2009-08-13T13:08:22.337 に答える