webgl 重绘立方体,但我不想清除其他的
webgl redraw cube but I don't want to clear others
我成功地通过 webgl 绘制了多纹理立方体。
但是,我应该与其他 webgl 上下文共享 canvas。
如果我在其他 webgl 上下文绘制的对象上绘制这个立方体,我如何绘制我的立方体并重新绘制、移动、...而没有其他上下文清楚的其他对象。
function start() {
...
if (gl) {
gl.clearColor(0.0, 0.0, 0.0, 0.0);
gl.clearDepth(1.0);
gl.enable(gl.DEPTH_TEST);
gl.depthFunc(gl.LEQUAL);
...
}
function drawScene() {
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
...
}
您不能与另一个 WebGLRenderingContext 共享 canvas(至少从 2016/08/05 开始不能)。
一般来说,在 WebGL 中,您需要每帧重绘所有内容。 WebGL is a rasterization library 不是场景图。它没有立方体的概念。它只是渲染像素。如果你只想移动一堆立方体中的一个立方体,你需要保留一些数据结构(如数组或树)来跟踪所有立方体的位置、方向等。然后更新一个或多个立方体的位置全部画出来。
您会发现几乎所有 WebGL 程序都这样做
我成功地通过 webgl 绘制了多纹理立方体。 但是,我应该与其他 webgl 上下文共享 canvas。 如果我在其他 webgl 上下文绘制的对象上绘制这个立方体,我如何绘制我的立方体并重新绘制、移动、...而没有其他上下文清楚的其他对象。
function start() {
...
if (gl) {
gl.clearColor(0.0, 0.0, 0.0, 0.0);
gl.clearDepth(1.0);
gl.enable(gl.DEPTH_TEST);
gl.depthFunc(gl.LEQUAL);
...
}
function drawScene() {
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
...
}
您不能与另一个 WebGLRenderingContext 共享 canvas(至少从 2016/08/05 开始不能)。
一般来说,在 WebGL 中,您需要每帧重绘所有内容。 WebGL is a rasterization library 不是场景图。它没有立方体的概念。它只是渲染像素。如果你只想移动一堆立方体中的一个立方体,你需要保留一些数据结构(如数组或树)来跟踪所有立方体的位置、方向等。然后更新一个或多个立方体的位置全部画出来。
您会发现几乎所有 WebGL 程序都这样做