“为什么 webGL 不保留以前的绘图?

问题描述 投票:0回答:1

我有一个小型绘图应用程序,每次鼠标移动时,新坐标都会被输入到 WebGL 中的缓冲区中。我假设当我调用 gl.drawArrays 时,我只需要绘制新点,而不是旧点,因为它们是之前渲染的。然而,即使我没有调用 gl.clear,旧的点也会消失。为什么会出现这种情况?

// every time feed new points
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer)
gl.bufferSubData(gl.ARRAY_BUFFER, index, new Float32Array(points))


// only draw new Points
gl.drawArrays(gl.POINTS, lastDrawnPoints, newPoints.length / 2)
javascript webgl
1个回答
0
投票

因为你的假设是错误的,所以事情并不是这样的。 3D 场景不是黑板。

您必须在每一帧渲染整个场景。

© www.soinside.com 2019 - 2024. All rights reserved.