javascript - webgl 阴影映射 gl.DEPTH_COMPONENT

标签 javascript html5-canvas webgl shadow glsles

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

我想做的是

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

我认为我的颜色纹理看起来不错,但无法让我使用全白色的深度纹理。

我将代码放在保管箱上: source code 大部分都在文件中 索引 html webgl_all js 对象js

有一些我目前没有使用的灯光着色器。

真心希望有人能帮助我。

来自丹麦的问候

最佳答案

这可能有几个原因:

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

关于javascript - webgl 阴影映射 gl.DEPTH_COMPONENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506401/

相关文章:

javascript - 在select中设置选中项

javascript - 如何默认使下拉字段变灰?

Javascript 在 Canvas 上绘制并将其与视频合并并一起保存

javascript - 如何在 WebGL 中实现这种旋转螺旋?

在 Three.js 上选择网格

javascript - 如何在 onCall() 函数中抛出 HttpsError 并在 Android 客户端上捕获

javascript - Opera:更改 img src 属性不会自动更新显示?

javascript - 将 HTML5 Canvas 缩放到 div 宽度和高度

javascript - 新对象()未定义?

buffer - WebGL:具有超过 4 维坐标的顶点缓冲区?