webgl - WebGL2 渲染到 R32F 纹理
解决方案
您尝试启用EXT_color_buffer_float
扩展
function main() {
const gl = document.createElement("canvas").getContext("webgl2");
const ext = gl.getExtension("EXT_color_buffer_float");
if (!ext) {
console.log("sorry, can't render to floating point textures");
return;
}
const tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
const level = 0;
const internalFormat = gl.R32F;
const width = 1;
const height = 1;
const border = 0;
const format = gl.RED;
const type = gl.FLOAT;
gl.texImage2D(
gl.TEXTURE_2D, level, internalFormat,
width, height, border, format, type, null);
const fb = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
gl.framebufferTexture2D(
gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0,
gl.TEXTURE_2D, tex, level);
const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
console.log(`can ${status === gl.FRAMEBUFFER_COMPLETE ? "" : "NOT "}render to R32`);
}
main();
推荐阅读
- tensorflow - keras.callbacks.Tensorboard 在 Tensorflow 急切执行中不起作用
- javascript - 在加载时调用多个指令并单击一个指令
- odoo-10 - Odoo 10 Pos:无法读取卡
- reactjs - 怎么做
标签的行为类似于 react-native 中的 HTML 内联元素 - react-native - 从 BottomTabBar 中获取 SafeAreaView 的高度
- node.js - TypeError:无法在反应中读取 null 的属性“名称”
- javascript - 如何使用上一个和下一个按钮遍历锚链接?
- python - 似乎无法从 celery 任务中修改缓存值
- python - random.choice 中的奇怪行为
- c# - CheckListBox 为每个