webgl - 如何为浮点纹理设置数据?
问题描述
我正在尝试将数值数据设置为纹理,我想在 4 字节像素中存储一个未固定的 32 位浮点数,我正在使用 JavaScript 用于 WebGL2,这是我当前的代码:
const level = 0;
const internalFormat = gl.RGBA32F;
const width = 3;
const height = 2;
const border = 0;
const format = gl.RGBA;
const type = gl.FLOAT;
const data = new Float32Array([ ... 24 values ...]);
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, width, height, border, format, type, data);
我的理解是这个设置应该可以解决问题,但它只有在我在数组中设置 24 个值时才有效,即每个像素的 RGBA 通道分别设置 4 个钳位值。
如果我设置 6 个值,我会收到一个错误“ArrayBufferView not big enough for request”,我该如何让它工作?
解决方案
推荐阅读
- python - 在 python 中列出要组合的操作
- babeljs - babel v7 升级导致在相关路径和插件转换运行时导入的文件中出现意外的令牌导入
- c++ - 如何在 Arduino 中创建具有相同元素多次重复的数组?
- oauth - 已登录用户的 OAuth2 验证码
- node.js - 使用 React Native 和 Node.js 与用户实现评论
- oauth-2.0 - 提供 Content-Length 标头时需要错误
- wordpress - 如何为注册用户进行woocommerce支付
- nservicebus - NServiceBus:遇到异常时禁用重试
- c# - 从 Visual Studio 发布代码时,如何将文件上传到 Azure 函数?
- plugins - 与基于 VSTO/COM 的 PowerPoint 扩展相比,Web 插件支持