OpenGL 3.2+ でエンジンを作成しています。レンダリング可能なオブジェクトには、メッシュ (別名 VAO) といくつかのマテリアル (別名シェーダーとプログラム) があります。すべてのレンダリング可能なものはレンダリング キューに保存され、必要な OpenGL バインド呼び出しが最小限になるように、マテリアルとメッシュのレンダリング プロセスが並べ替えられます。
ただし、すでにバインドされているオブジェクトをバインドする場合があります。私の質問は、OpenGL は、既にバインドされているオブジェクトをバインドしようとしているときに自動的に検出し、すべての高価な操作をスキップしますか、またはシステムを実装する必要がありますか?オブジェクトがすでにバインドされているかどうかを検出しますか?
OpenGL がこれを検出しない場合、glGet* を介してオブジェクト名をフェッチし、バインドしようとしているオブジェクトと比較するか、現在バインドされているオブジェクトを自分で追跡する方が速いでしょうか?