1

別のコンピューターで Visual Studio プロジェクトを開こうとしました。これが関連しているかどうかはわかりませんが、もともと WGL_SAMPLES_ARB パラメータを 8 から 4 に変更するまで、MSAA ピクセル形式を見つけるのに問題がありました。

ただし、画面上の画像は白黒で、マトリックス変換には反応しませんでした。

OpenGL SuperBible 5th エディションの GLShaderManager コードを使用しています。glCompileShader() を呼び出した後、GL_COMPILE_STATUS パラメータを指定して glGetShaderiv() を呼び出します。ブレークポイントを設定すると、GL_FALSE が返されます。

これは、私の他のコンピューターでは発生しません。何がこれを引き起こしているのでしょうか?このマシンは ATI Radeon HD 5450 を使用しています。ドライバーを更新しました。

4

1 に答える 1

6

残念ながら、GLSL は滑りやすい獣であり、すべてのグラフィックス ボード、ドライバー、プラットフォーム、およびバージョンは、有効なコードを構成するものについて異なる考えを持っています。

テストとデバッグでは、コンパイルが失敗した場合にチェックGL_COMPILE_STATUSGL_LINK_STATUSて救済するか、少なくとも警告を表示するコードを常に追加する必要があります。

と を使用glGetShaderInfoLogglGetProgramInfoLogて、それぞれシェーダー コンパイラとリンカーから出力を取得します。これらはおそらく何が間違っているか (またはコンパイラーが何を考えているか) を教えてくれます。

于 2012-05-29T20:52:05.603 に答える