OpenGL 2.0 でシャドウ キューブ マップの PCF を実装しようとしています。ここで解決策を見つけたと思った(キューブ マップ PCF のセクションの開始を検索する) が、コードはOpenGL 2.0 では使用できない にPercentage closer filtering (PCF) algorithm
依存しているため、その上に表示されているへの呼び出しを使用できません。ページ。samplerCubeShadow
texture(samplerCubeShadow(), vec4())
この質問の最初の部分は次のとおりですsamplerCube
。OpenGL 2.0/GLSL 1.10 から同じ結果を取得する方法はありますか? textureCube
または何か他のものを使用して?
2 番目の部分は、この問題を解決するために私が持っている考えに関連しています。下の画像は、私がやりたいことを示しています。
青い実線と赤い点線はすべてsamplerCube
、深度値を格納する の 1 つの面からのベクトルです。黒い四角の中心にある濃い灰色の四角と青い線の交点は、立方体からサンプリングされたポイントを表します。青いベクトルに垂直な平面 (明るい灰色の長方形で表される) を作成したいと思います。次に、Z ベクトルをライトの位置 (赤い点線) からその平面上の x、Y 値にキャストすることで、カメラから 4 つの黒い点をサンプリングしたいと思います。その後、これらの値を元のサンプルの値と組み合わせて使用して、PCF シャドウ値を計算します。
これは、ポイントライト/キューブマップの PCF を計算する実行可能で効率的な方法ですか? 平行平面を作成し、そこから必要な X 座標と Y 座標を取得するにはどうすればよいでしょうか。