【发布时间】:2017-01-18 15:07:02
【问题描述】:
我正在使用headless-gl 和 node 在服务器端渲染生成的高分辨率 WebGL 图像。这取决于所选的分辨率。
'use strict';
const Gl = require('gl');
const width = 7200;
const height = 10800;
// Setup renderer using headless-gl
const gl = Gl(width, height, { preserveDrawingBuffer: true })
// Clear screen to red
gl.clearColor(1, 0, 0, 1)
gl.clear(gl.COLOR_BUFFER_BIT)
// Get pixels
const pixels = new Uint8Array(width * height * 4);
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
// Is first color indeed red?
if (pixels[0] === 255) {
console.log('OK');
}
process.exit();
在增加宽度/高度值之后,pixels 数组仅填充了 rgba 像素的零值。我猜我在某个地方遇到了内存/缓冲区限制,但我不确定是哪一个。根据 nvidia-smi 的说法,运行此程序时 GPU 内存 (12GB) 远未耗尽。
webgl 的理论最大分辨率是多少,它依赖于什么?
【问题讨论】:
-
您可能还想通过调用
gl.getError()来检查错误
标签: javascript node.js webgl