WebGL requestAnimFrame()
WebGL requestAnimFrame()
本文关键字:requestAnimFrame WebGL 更新时间:2024-03-10
我在画布中有许多3D对象,并且希望仅在其中一个(立方体)上实现requestAnimFrame()函数。其他项目不得受到影响,应保持静止。渲染函数如下所示:
function render()
{
gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
theta[axis] += 2.0;
gl.uniform3fv(thetaLoc, theta);
// Render cube
gl.drawArrays( gl.TRIANGLES, 0, NumVertices );
requestAnimFrame( render );
}
如果我将其他对象添加到此函数,例如
// Render sphere
gl.drawArrays( gl.TRIANGLES, 0, points.length );
它们将与立方体一起旋转。
问题:我是否为静态对象创建一个单独的渲染函数?我认为我可以排除第二次呼叫
gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
因为缓冲区不需要第二次清理?或者我错过了什么,有没有其他方法可以阻止其他物体移动?
不要更新这些对象的位置/旋转/缩放数据。您只想在应用程序中使用一个requestAnimationFrame方法。
gl.clear();只需清除指定的缓冲区,在屏幕顶部绘制gl.clearColor()
中的颜色。然后,下次调用drawArrays()时,请确保只移动立方体,不要移动或旋转场景中的其他对象,它们只是在同一位置重新绘制。
相关文章:
- 没有找到相关文章