私はgDEBuggerを使用して、openGLコードのパフォーマンスを改善しようとしています(これは現在非常にひどいので、fpsレートについても説明しません)。チュートリアルを段階的に実行しており(デバッガーを使用してopenGLエラーなどを検索しています)、現在、冗長な状態の変化を識別しています。それらを回避するためにコードを変更することが本当に良い考えであるかどうかは少しわかりません。
例えば:
- 私のコードは、とを呼び出すことによって「クリーンな初期化」を
glClearAccum(0 , 0 , 0 , 0);
行いglClearColor(0.0, 0.0, 0.0, 0.0);
ます。これらは当然冗長ですが、すべての状況でそれを信頼できますか?一部のopenGL実装がこの初期状態を保証しない場合、ほとんどの場合冗長であっても、呼び出しを行う方が安全です。 glDrawBuffer(GL_BACK);
初めてシーンを描くときも同じ質問です。glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
冗長であるとも報告されています。同じパラメータで繰り返し呼び出していることに気づきました。glEnable(GL_TEXTURE_2D);
これは、呼び出しがとの間に配置されglDisable(GL_TEXTURE_2D);
、テクスチャリング呼び出しが行われている間、テクスチャリングが有効になるのは短時間であるためです。テクスチャリングを永続的に有効にすると、パフォーマンスが低下しますか?テクスチャリングを一時的に有効にすることに固執する場合、glTextEnvf
初期化中に1回だけ呼び出すことは問題ありませんか、それともその時点でテクスチャリングが無効になっているため失敗しますか?それとも、それはopenGLの実装に依存しますか?