glLightSource の位置に白い円をレンダリングするフラグメント シェーダーを作成したいと考えています。しかし、どういうわけか、glLightの位置を画面座標に変換する方法を理解するのに苦労しています...
誰にもアイデアがありますか?
gl_LightSource.position
画面座標を取得するには、を で乗算する必要gl_ModelViewProjectionMatrix
があります (OpenGL 2.x の場合、OGL 3.x+ ではもちろん、マトリックスにユニフォームを使用する必要があります)。ただし、問題は、フルスクリーンのクワッドで正しいピクセルを見つける必要があることです。つまり、フラグメントごとにこれを計算し、現在のフラグメントの位置がライトのスクリーン スペースの位置と同じかどうかをテストする必要があります。
したがって、光の座標で頂点を使用し、Christian Rau の提案に従って描画することを強くお勧めします。