webgl 3D 场景的默认颜色

Default color for webgl 3D scene

我有 webgl 3D scenebackground image,还有一些形状 textures
我想添加一些线条和其他形状并应用默认颜色,这不会影响带有纹理的形状。
我该怎么做?
这就是我现在拥有的:

gl.clearColor(0.0, 0.0, 0.0, 0.0); //alpha=0 for background img
gl.enable(gl.DEPTH_TEST);

我将根据 C 接口公开的调用来编写以下内容(为了通用;规范本身完全省略了前面的 gl…)。

glClearColor 选择在调用 glClear(GL_COLOR_BUFFER_BIT | …) 时帧缓冲区被清除的颜色。如果不执行 glClear 调用,它就没有任何效果。

glEnable(GL_DEPTH_TEST) 为随后的绘图调用启用深度测试。

want to add some lines and other shapes and apply on them default color … How can I do this?

呃,画出来就好了

which not affect the shapes with textures.

OpenGL 就是这样工作的。 OpenGL 不描述场景。 OpenGL 就是关于正在发生的事情 "in the moment"。它只是绘制点、线或三角形,一次绘制一个,唯一的 "interference" 是它透支了帧缓冲区中的像素。

当然,对于全局状态机,改变状态会对后续的一切产生影响。所以如果你想回到以前的行为,你必须撤消你对你所做的特定绘图所做的所有状态更改。

WebGL 默认合成到网页中。这意味着清除为 0,0,0,0 意味着 canvas 是透明的canvas 本身或它后面的元素的标准网页 CSS 背景颜色设置(<body> , <html>> 等 canvas 将与

混合

您可能会发现此答案有帮助