現在、WebGL2.0 を使用してディファード シェーディングに取り組んでいます。私が現在直面している主な問題の 1 つは、DEPTH_ATTACHMENT から深さの値を読み取れないことです。実際には、DEPTH24_STENCIL8 テクスチャを DEPTH_ATTACHMENT として使用して独自の GBuffer を作成し、このテクスチャをサンプラーにバインドして、次のような遅延シェーディング部分でフラグメント シェーダーの値を読み取ろうとします。
uniform sampler2D u_depthSampler;
vec4 depthValue = texture(u_depthSampler, v_uv);
次に、シェーディング フラグメント シェーダーで出力として depthValue を設定します。
layout(location = 0) out vec4 o_fragOut;
o_fragColor.xyz = depthValue.xyz;
o_fragColor.w = 1.0;
Firefox でこれを実行すると、エラーは報告されませんでしたが、出力色は純粋な赤です (これは vec3(1.0, 0.0, 0.0) を意味すると思います)。これは本当に私を混乱させます。誰でもいくつかの指示を提供できますか?glsl コードに問題はありますか? THX〜