webgl - 是否可以在 WebGL 中实现延迟着色?

标签 webgl

据我了解,实现延迟着色的唯一方法是使用 MRT 并绑定(bind)不同的纹理以将数据存储到颜色附件。问题是WebGL specifications定义单一颜色附件:COLOR_ATTACHMENT0。是否有可能在具有此限制的 WebGL 中实现延迟着色?

最佳答案

您可以通过渲染到纹理来实现延迟着色,但您需要重新绘制每个 channel 的所有几何图形(漫反射、深度等),或者想出一种方法将您需要的所有信息存储到单个 RGBA 纹理中。然后在着色器中对这些纹理进行采样以产生最终结果。

您可能想要使用 float 纹理的扩展,但不能保证在任何地方都能工作。

正如您可能了解的那样,延迟在 WebGL 中并不是最佳选择:)

关于webgl - 是否可以在 WebGL 中实现延迟着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820496/

相关文章:

javascript - webgl 中的 alpha 混合工作不正常

three.js - 调整渲染器大小时 Threejs 渲染区域缩小到 25%

javascript - 如何将运行时创建的 Canvas 上下文资源视为 require.js 插件中的依赖项?

javascript - 将带有缓冲区的着色器程序从 shadertoy 移植到 three.js

jquery - 我们如何从现有图像中绘制 3D 建筑结构 Jquery,Css?

javascript - "glGenSyncTokenCHROMIUM"错误是什么意思?

html - 在 WebGL 中与 HTML 背景混合

electron - 如何在electron.js中强制使用离散GPU?

javascript - Webgl 中的混合和剔除

javascript - 使用动画几何体将背景渐变添加到前景?