Three.js 渲染 canvas 的最大尺寸是多少?
What are maximum dimensions of Three.js render canvas?
当我将渲染 canvas 大小设置为 ~4000x4000px 时没问题,但是从大约 4000(测试 5k、6k、8k)开始,场景似乎在某种程度上是 "cut off"。见下图:
因此,在 canvas 的中心可以正确呈现多达 ~4k 的内容,对于更大的 canvas 大小,它会剪切内容。
- 是三js/WebGL限制吗?
- 如果是,那么不会导致任何 "deformations" 的实际最大 canvas 尺寸是多少?
- 我能做些什么吗?我需要获取 canvas 高分辨率 (8k) 快照。
这不是three.js
的限制,而是绘图缓冲区最大大小的限制。它由浏览器供应商定义,应用程序不能超过它。此 github 期的更多信息:
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 分钟的搜索没有出现 >:(
当我将渲染 canvas 大小设置为 ~4000x4000px 时没问题,但是从大约 4000(测试 5k、6k、8k)开始,场景似乎在某种程度上是 "cut off"。见下图:
因此,在 canvas 的中心可以正确呈现多达 ~4k 的内容,对于更大的 canvas 大小,它会剪切内容。
- 是三js/WebGL限制吗?
- 如果是,那么不会导致任何 "deformations" 的实际最大 canvas 尺寸是多少?
- 我能做些什么吗?我需要获取 canvas 高分辨率 (8k) 快照。
这不是three.js
的限制,而是绘图缓冲区最大大小的限制。它由浏览器供应商定义,应用程序不能超过它。此 github 期的更多信息:
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 分钟的搜索没有出现 >:(