Javascript webgl阴影映射gl.DEPTH\u组件

Javascript webgl阴影映射gl.DEPTH\u组件,javascript,html5-canvas,webgl,shadow,glsles,Javascript,Html5 Canvas,Webgl,Shadow,Glsles,嘿,我正在尝试使用以下示例在webgl中实现阴影映射: 我想做的是 初始化深度纹理和帧缓冲区。 使用简单的着色器将场景绘制到该帧缓冲区,然后使用具有depthtexture作为纹理的框绘制新场景,以便我可以使用其他着色器查看深度贴图 我觉得我的颜色纹理看起来还可以,但我无法使用深度纹理,它是全白色的 我把代码放在dropbox上: 大部分都在文件中 索引html webgl_所有js 对象js 有一些我现在不使用的灯光着色器 真希望有人能帮我 来自丹麦的问候语这可能有几个原因: 对于近平面和

嘿,我正在尝试使用以下示例在webgl中实现阴影映射:

我想做的是

初始化深度纹理和帧缓冲区。 使用简单的着色器将场景绘制到该帧缓冲区,然后使用具有depthtexture作为纹理的框绘制新场景,以便我可以使用其他着色器查看深度贴图

我觉得我的颜色纹理看起来还可以,但我无法使用深度纹理,它是全白色的

我把代码放在dropbox上: 大部分都在文件中 索引html webgl_所有js 对象js

有一些我现在不使用的灯光着色器

真希望有人能帮我


来自丹麦的问候语这可能有几个原因:

  • 对于近平面和远平面的常见设置,规格化深度值将足够高,以便在大多数场景中显示为全白色,即使它们实际上并不相同(请记住,深度纹理的精度至少为16位,而您的屏幕输出每个颜色通道只有8位。因此,深度纹理可能显示为全白色,即使其值不完全相同。)
  • 在某些设置(例如桌面OpenGl)上,当纹理不完整时,即当纹理过滤设置为使用mipmap时,纹理可能会显示为全白色,但并非所有mipmap级别都已创建。这可能与WebGl相同
  • 您可能遇到了浏览器WebGl实现错误

这不是一个实际的答案,但这是我在查看您的代码时注意到的(尚未完全看完):1:您似乎在为每帧的统一位置重置值,这不是必需的,只需执行一次,然后就可以了。2:您仅使用实验性webGL初始化了webGL,这使得它无法在没有更改的情况下运行(必须使用firefox 27.0将其更改为webGL)。接下来可能会进行进一步的代码分析,如果我找到答案,还会给出答案