私のユーザーの非常に小さなパーセンテージ(<%)がゲームのOpenGL UIに奇妙な歪みを経験しています。ピクセル完全投影設定:奇妙なOpenGLピクセルの欠陥
glViewport(0, 0, clientSizeWidth, clientSizeHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, clientSizeWidth, clientSizeHeight, 0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
double transAmount = 0.375;
glTranslated(transAmount, transAmount, 0.0);
システムに問題が発生しているようです。そして、私は彼らのシステムについての詳細を収集するのに失敗しましたが、彼らは成功して同様のOpenGLゲームを実行できると信じています。だから、私のコードは間違っていると思う。ここで
視覚的アーティファクトの写真です:
私ものの:
そしてここでは、視覚的アーチファクト(はOSの違いを無視する)ことなく、絵でありますゲームは最終レンダリングを2倍にスケーリングします.1倍レンダリングが実行された後にglSubTexImage2D
への1回の呼び出しで行いますrmed。これは、最初のスクリーンショットのアーティファクトがピクセルの倍増に先立って存在することを意味します(そのため、アーティファクトもピクセルが2倍になります)。したがって、ピクセルを2倍にすること自体が問題の原因になることはありません。
これを引き起こす可能性のある考えはありますか?私は現在、テストする方法がありません。圧倒的多数のユーザー(自分自身を含む)は視覚的な人工物を経験しません。
編集(4月30日):ポーランドのユーザーがビデオカードにこれらのアーティファクトを経験したと通知しました。これは「nVidia 9500 GS」です。これが9500M GSまたは9500 GTを意味するかどうかはわかりませんが、両方ともかなり現代的です。
「0.375」はどこから来たのですか? –
@BenVoigtこれはOpenGL Redbookのものです。 [this](http://glprogramming.com/red/appendixg.html#name1)または[this](http://msdn.microsoft.com/en-us/library/ms537007%28VS.85%29)を参照してください。 aspx)。 –
それは1)いくつかの表面でのみ起こるという事実2)異なる表面で異なるスケールで起こることは、問題のコードがどこにあるかについての大きなヒントになるはずです。 – Patashu