webgl 3D 场景的默认颜色
Default color for webgl 3D scene
我有 webgl 3D scene
和 background 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 将与
混合
您可能会发现此答案有帮助
我有 webgl 3D scene
和 background 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 将与
您可能会发现此答案有帮助