Three.js 渲染 canvas 的最大尺寸是多少?

What are maximum dimensions of Three.js render canvas?

当我将渲染 canvas 大小设置为 ~4000x4000px 时没问题,但是从大约 4000(测试 5k、6k、8k)开始,场景似乎在某种程度上是 "cut off"。见下图:

因此,在 canvas 的中心可以正确呈现多达 ~4k 的内容,对于更大的 canvas 大小,它会剪切内容。

  1. 是三js/WebGL限制吗?
  2. 如果是,那么不会导致任何 "deformations" 的实际最大 canvas 尺寸是多少?
  3. 我能做些什么吗?我需要获取 canvas 高分辨率 (8k) 快照。

这不是three.js的限制,而是绘图缓冲区最大大小的限制。它由浏览器供应商定义,应用程序不能超过它。此 github 期的更多信息:

https://github.com/mrdoob/three.js/issues/5194

Is there anything I can do about it? I need to get canvas snapshot in high resolution (8k).

您可以使用 Camera.setViewOffset 渲染部分场景,然后 assemble 将这些部分渲染成大图像。

这是执行此操作的库

https://greggman.github.io/dekapng/

我知道我在这里写了一个答案,它显示了如何在 three.js 中执行此操作,因为我因为我的答案而编写了该库。不幸的是,10 分钟的搜索没有出现 >:(