1

glLightSource の位置に白い円をレンダリングするフラグメント シェーダーを作成したいと考えています。しかし、どういうわけか、glLightの位置を画面座標に変換する方法を理解するのに苦労しています...

誰にもアイデアがありますか?

4

1 に答える 1

1

gl_LightSource.position画面座標を取得するには、を で乗算する必要gl_ModelViewProjectionMatrixがあります (OpenGL 2.x の場合、OGL 3.x+ ではもちろん、マトリックスにユニフォームを使用する必要があります)。ただし、問題は、フルスクリーンのクワッドで正しいピクセルを見つける必要があることです。つまり、フラグメントごとにこれを計算し、現在のフラグメントの位置がライトのスクリーン スペースの位置と同じかどうかをテストする必要があります。

したがって、光の座標で頂点を使用し、Christian Rau の提案に従って描画することを強くお勧めします。

于 2012-07-18T12:57:39.603 に答える