【问题标题】:THREE.js static scene, detect when webgl render is completeTHREE.js 静态场景,检测 webgl 渲染何时完成
【发布时间】:2014-12-18 16:19:42
【问题描述】:

我正在创建一个包含大量对象的静态场景,并且我想在渲染后将其另存为图像。如何在 THREE.js r69 中做到这一点?

【问题讨论】:

  • 您接受的答案是否真的回答了问题并解决了您的问题?因为我保存的图像使用接受的答案存在时间问题。

标签: javascript three.js webgl


【解决方案1】:

很可能,你没有朝着正确的方向前进。

如果你有这样的功能

function animate() {
    requestAnimationFrame(animate);
    render ();
}

渲染器一直在工作。

当您看到场景未完成时,这是因为网格尚未完成加载,而不是因为渲染器尚未完成渲染。

因此,您必须在正在加载的模型上侦听一些 onload 事件,这取决于您用来加载它们的方法(并且您没有解释,所以我无法为您提供更多帮助)

鉴于您回复中的代码,不清楚何时将网格添加到场景中。无论如何,我会尝试

function loaderCallback() {
    mesh = new THREE.Mesh (...
    scene.add (mesh);
    requestAnimationFrame(saveImage);
    render ();
}

在渲染完成时应该调用 requestAnimationFrame 调用的函数。

【讨论】:

  • 我使用 JSONLoader 加载具有纹理的导出 3D Studio Max 对象: var loader = new THREE.JSONLoader(); loader.load("js/cabinet_with_texture_2.js", function (geometry, materials) { var mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 2022-11-02
相关资源
最近更新 更多