WebGL全方向性シャドウマッピングの問題
まず第一に、深度マップとキューブマップを使用したシャドウマッピングに関する多くの投稿を読み、それらがどのように機能するかを理解しています。また、OpenGLを使用してそれらを使用した経験がありますが、実装に問題があります。 「EZ3」という名前の3Dグラフィックエンジンで単一の点光源を使用した全方向シャドウマッピングテクニック。私のエンジンでは、WebGLを3DグラフィックAPIとして、JavaScriptをプログラミング言語として使用しています。これは、コンピューターサイエンスの学士論文のためです。 基本的に、これはシャドウマッピングアルゴリズムを実装した方法ですが、ポイントライトの場合にのみ焦点を当てます。 まず、次のように前面カリングをアクティブにします。 if (this.state.faceCulling !== Material.FRONT) { if (this.state.faceCulling === Material.NONE) gl.enable(gl.CULL_FACE); gl.cullFace(gl.FRONT); this.state.faceCulling = Material.FRONT; } 次に、各キューブマップ面の深度値を記録するために深度プログラムを作成します。これは、GLSL 1.0の深度プログラムコードです。 頂点シェーダー: precision highp float; attribute vec3 position; uniform mat4 uModelView; uniform mat4 uProjection; void main() { gl_Position = uProjection * uModelView * vec4(position, 1.0); } フラグメントシェーダー: precision highp float; …