質問: OpenGLで鏡面カラーを取得するには? 私のコードは、鏡面反射成分以外のすべてに対して機能します。 ``` glEnable(GL_COLOR_SUM); ... glEnableClientState(GL_COLOR_ARRAY); glColorPointer(4, GL_UNSIGNED_BYTE, 0, color); glEnableClientState(GL_SECONDARY_COLOR_ARRAY); glSecondaryColorPointer(3, GL_UNSIGNED_BYTE, 0, specular); ... glDrawArrays(D3DPT_TRIANGLELIST, 0, 2); ``` スペキュラを無視しているようですが、色、テクスチャの座標、位置などはすべて問題ありません。 ライトとマテリアルを使用していません。固定頂点パイプライン。残念ながらシェイダーはこの時点では選択肢ではありません。 glGetError()はいずれの時点でもエラーを報告しません。
回答: あなたが言った: > これはライトとマテリアルを使用していません。 > > スペキュラは、それを得るための光があるときにのみ計算することができます。 (もし私がそれの背後にある数学に入ることができれば...) http://ja.wikipedia.org/wiki/Specular_highlight から: > 鏡面ハイライトは、**照らされたときに光るオブジェクト**に表示される明るい光のスポットです。 > > サイドノートでD3DPT_TRIANGLELISTはOpenGLコードで何をしていますか?それはちょうど質問の間違いですか、それとも実際にはそれのように機能しますか?