Javascript 获取渲染时在three.js中绘制的元素的图像
我认为three.js处理渲染的方式是,它将每个元素转换为一个图像,然后在上下文中绘制。 我在哪里可以得到更多的信息。 如果我是对的,有没有办法得到这个图像并加以处理Javascript 获取渲染时在three.js中绘制的元素的图像,javascript,three.js,rendering,Javascript,Three.js,Rendering,我认为three.js处理渲染的方式是,它将每个元素转换为一个图像,然后在上下文中绘制。 我在哪里可以得到更多的信息。 如果我是对的,有没有办法得到这个图像并加以处理 如有任何信息,将不胜感激 Three.js内部描述了场景在3D空间中的外观,包括所有顶点和材质等。渲染过程采用该三维表示并将其投影到二维空间。Three.js有几个渲染器,包括(最常见的)和。它们都使用不同的方法绘制二维投影: WebGLRenderer使用映射到图形命令的JavaScript API。尽可能多地,客户机的GPU
如有任何信息,将不胜感激 Three.js内部描述了场景在3D空间中的外观,包括所有顶点和材质等。渲染过程采用该三维表示并将其投影到二维空间。Three.js有几个渲染器,包括(最常见的)和。它们都使用不同的方法绘制二维投影:
- WebGLRenderer使用映射到图形命令的JavaScript API。尽可能多地,客户机的GPU获取部分3D表示,并或多或少地执行2D投影本身。渲染每个几何体时,会将其绘制到缓冲区上。完整缓冲区是一个帧,它是显示在
中的三维空间的完整二维投影 - CanvasRenderer使用JavaScript API进行二维绘图。它在内部执行2D投影(速度较慢),但在其他方面的工作方式与WebGLRenderer在较高级别上的工作方式类似
- CSS3DRenderer使用DOM元素和CSS3D变换来表示3D场景。这大致意味着浏览器将普通2D DOM元素转换为3D空间,以匹配Three.js 3D内部表示,然后以2D格式将其投影回页面
。通常,浏览器每秒渲染60帧。您可以通过以下方式提取帧。通常,您需要停止动画循环以执行此操作,否则可能无法捕获所需的帧。以这种方式捕获帧的速度很慢,而且由于浏览器每秒渲染的帧太多,因此无法轻松捕获每一帧
此外,Chrome还内置了一个功能,允许您仔细查看浏览器绘制的每个框架
在Three.js渲染帧时,您无法轻松截取缓冲区,但您可以像通常那样直接在画布上绘制
renderer.context
是Three.js绘制的图形上下文,其中renderer
是设置Three.js场景时创建的渲染器实例。(图形上下文基本上是组装构成帧的缓冲区的助手。)感谢您提供的有用信息,但如果我们可以单独渲染每个元素,或者获得元素的可见像素,这将非常有用……我想您可以通过将3D空间中的每个对象渲染到单独的画布上来实现。还可以打开/关闭渲染某些对象。