three.js 游戏循环 渲染循环

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/acoolgiser/article/details/85310183

物体运动还有一个关键点,就是要渲染物体运动的每一个过程,让它显示给观众。渲染的时候,我们调用的是渲染器的render() 函数。代码如下:

renderer.render( scene, camera );

如果我们改变了物体的位置或者颜色之类的属性,就必须重新调用render()函数,才能够将新的场景绘制到浏览器中去。不然浏览器是不会自动刷新场景的。

如果不断的改变物体的颜色,那么就需要不断的绘制新的场景,所以我们最好的方式,是让画面执行一个循环,不断的调用render来重绘,这个循环就是渲染循环,在游戏中,也叫游戏循环。

为了实现循环,我们需要javascript的一个特殊函数,这个函数是requestAnimationFrame。

调用requestAnimationFrame函数,传递一个callback参数,则在下一个动画帧时,会调用callback这个函数。

于是,我们的游戏循环会这样写。

function animate() {

    render();

    requestAnimationFrame( animate );

}

这样就会不断的执行animate这个函数。也就是不断的执行render()函数。在render()函数中不断的改变物体或者摄像机的位置,并渲染它们,就能够实现动画了。

注意:调用requestAnimationFrame函数  ,这个函数会在下一个动画帧触发 animate()函数

摘自:http://www.hewebgl.com/article/getarticle/58

猜你喜欢

转载自blog.csdn.net/acoolgiser/article/details/85310183