概念的には、ディスプレイリストは、実行時に実行される一連のコマンドにすぎませんglCallList
。したがって、含まれているものはすべて、それらのコマンドを直接使用した場合と同じようになります(ただし、パフォーマンスが向上する可能性があります)。では、ディスプレイリストに多数のジオメトリコマンドが含まれている場合、どのようにそれらに色を付けることができますか?glColor
はい、リストを呼び出す直前に通常のコマンドを使用して、あなたはそれを推測しました:
glColor(...);
glCallList(...);
オブジェクトにテクスチャを持たせ、それでもカラーリング可能にしたい場合は、set texture environmentを使用できますGL_MODULATE
(シェーダーを使用していないと思います。そうしないと、とにかく質問全体がかなり時代遅れになります)。オブジェクトを点灯させたい場合は、もちろんに変更glColor
してくださいglMaterial
。
ただし、ディスプレイリスト内で色を設定した場合、それを取得して変更する機会はありません。とにかく、ディスプレイリストを使用することはお勧めしません。それらを使用してジオメトリを保存し、CPU-GPUコピーとドローコールのオーバーヘッドを削減する場合は、このために正確に作成されたVBOを使用しないでください(このような不確定な実装に悩まされることはありません)。