three.js如何加速renderer.domelement.todataurl
three.js how can speed up renderer.domelement.todataurl?
我使用three.js renderer.domelement.todataurl来获取当前视图的图像。它运行良好。问题是我的项目需要以高频率,每0.1秒捕捉一次图像。
在这种频繁、浏览几乎冻结的情况下,用户什么都做不了。由于函数todaul()占用了大部分cpu时间。
欢迎任何建议。
我的想法是:1) 找到另一种捕捉图像的方法,避免todaul()?2) 将渲染器放在web worker中?
谢谢。
首先,不建议以那么快的速度读取像素。它甚至不建议在普通的桌面应用程序中使用。
如果必须的话,我建议你使用gl.readpixels。这应该是在javascript中读取像素的最快方法。同时尽可能地减小宽度和高度,以加快阅读速度。
如何使用:
var pixels = new Uint8Array(width * height * 4);
renderer.gl.readPixels(x, y, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
然后,您可以在worker中使用像素数组来执行更多操作。或者将像素的转换推迟到以后。
==============================================
如果您使用的是canvasrenderer,那么您应该使用context.getImagedata.
相关文章:
- Createjs DomElement创建一个窗体
- DomElement.click() 事件在 chrome 中不起作用,但其他事件可以工作
- Twig PHP Renderer 和 Tempo JS Renderer 在一起
- jqplot axis renderer:a.jqplot.CanvasFontRenderer不是构造函数
- 获取使用 document.write 插入的 DOMElement 的维度
- cytoscape.js webgl renderer
- three.js如何加速renderer.domelement.todataurl
- 在Three.js(WebGl Renderer)中制作几何图形可点击的超链接
- 使用Chart.renderer.text呈现表格
- 3 .js 1 Renderer 2 Viewports:相机反转不能正常工作
- 获取DOMElement的jQuery元素
- 是否有一种方法使DOMElement.属性列表干净(标准)在旧的Internet explorer
- Change innerHTML of a php DOMElement
- 如何在React组件中呈现(appendChild)原始DOMElement
- 在电子程序中,使用child_process的优点是什么?fork在Main Process中,然后在Renderer
- Jsf Renderer脚本代码是不推荐的