lesen Ich arbeite jetzt an der verzögerten Schattierung mit WebGL2.0. Ein Hauptproblem, mit dem ich jetzt konfrontiert bin, ist, dass ich den Tiefenwert von DEPTH_ATTACHMENT nicht lesen kann. Eigentlich Creat ich meine eigene GBuffer mit einer DEPTH24_STENCIL8 Textur als DEPTH_ATTACHMENT, dann binde ich diese Textur auf den Sampler und versuche, den Wert in meinen Fragment-Shader in Deferred Shading Teil wie folgt zu lesen:Wie Tiefe Textur zu FBO in WebGL2
uniform sampler2D u_depthSampler;
vec4 depthValue = texture(u_depthSampler, v_uv);
Dann stellte ich die depthValue als Ausgabe in meinen Shading Fragment-Shader.
layout(location = 0) out vec4 o_fragOut;
o_fragColor.xyz = depthValue.xyz;
o_fragColor.w = 1.0;
Wenn dies auf Firefox zu tun, es hat keinen Fehler berichten, aber die Ausgangsfarbe ist nur reines rot (die vec3 bedeutet (1,0, 0,0, 0,0) I denken). Das verwirrt mich sehr. Kann mir jemand Anweisungen geben? Gibt es ein Problem mit meinem GLSL-Code? THX ~
Genau, dachte ich zunächst, dass ich den falschen Puffer bekam, dann merke ich, dass der Grund, warum vor allem die Tendenz Pixel ** Pure Red zu sein ** ist, dass der Tiefenpuffer ist nicht -linear, THX :) – Skyfeiyun