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);
形状很少
我想添加一些线条和其他形状,并在它们上面应用默认颜色,这不会影响带纹理的形状
我怎么能这样做?
这就是我现在所拥有的:
array(
(int) 1 => array(
(int) 3 => 'value',
(int) 12 => 'value'
),
(int) 5 => array(
(int) 8 => 'value',
(int) 10 => 'value',
(int) 15 => 'value'
)
)
答案 0 :(得分:2)
我将根据C接口公开的调用来编写以下内容(为了普遍性;规范本身完全省略了前面的gl ...)。
glClearColor
选择在调用glClear(GL_COLOR_BUFFER_BIT | …)
时清除帧缓冲区的颜色。没有进行glClear
调用就没有任何效果。
glEnable(GL_DEPTH_TEST)
可以对随后的绘图调用进行深度测试。
想要添加一些线条和其他形状并在其上应用默认颜色 ... 我怎么能这样做?
呃,只是画它们。
不会影响带纹理的形状。
无论如何,这就是OpenGL的工作方式。 OpenGL不描述场景。 OpenGL就是“在当下”发生的事情。它只是一次绘制一个点,线或三角形,唯一的“干涉”是它在帧缓冲区中过度绘制像素。
当然,对于全局状态机,更改状态会对后面的所有内容产生影响。因此,如果您想要回到之前的行为,则必须撤消您为特定绘图所做的所有状态更改。
答案 1 :(得分:1)
WebGL默认合成到网页中。这意味着清除0,0,0,0表示画布是透明的,画布本身的标准网页CSS背景颜色设置或其背后的元素(<body>
,<html>
&gt;等等是什么画布将与
您可能会发现此答案有用