如何渲染三个js场景时如何控制

时间:2016-06-25 01:45:25

标签: javascript three.js

我看到的所有示例都使用循环结构来渲染场景,如下所示:

renderer.render(cena, camera);

function render(){
    renderer.render(cena, camera);
    //code to render
    requestAnimationFrame(render);
}

render();

但是我想在另一个结构中控制渲染,只有当我与一个东西进行交互时......比如

while(true){
//code - operations
alert('press ok to another step'); // or wait 2 sec
renderer.render(scene,camera);
}

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

当然,如果你愿意,你可以随时调用renderer.render,尽管在requestAnimationFrame()中渲染它可能要好得多(性能要好得多)。 如果你真的需要改变你不想渲染的东西(例如,修改场景对象的几个异步函数),你总是可以这样做。

function render(){
    //code to update scene
    if (toRender) renderer.render(scene, camera);
    requestAnimationFrame(render);
}

render();

在更新场景时将toRender设置为false,这会阻止渲染器重新绘制场景,然后将toRender设置为true以使其在下一帧中绘制场景

答案 1 :(得分:0)

如本例所示,您只需调用renderer.render() http://threejs.org/examples/#raytracing_sandbox