我有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);发布于 2016-10-21 19:11:41
默认情况下,WebGL被组合到网页中。这意味着清除到0,0,0,0表示画布是透明的,画布本身的标准网页CSS背景色设置或其背后的元素(<body>、<html>>等)将与画布混合。
你可能会发现这个答案很有帮助
发布于 2016-10-21 10:25:41
我将按照C接口公开的调用编写以下内容(为了通用性;规范本身完全省略了gl…在前面)。
glClearColor选择帧缓冲区在调用glClear(GL_COLOR_BUFFER_BIT | …)时被清除到的颜色。如果不执行glClear调用,它就没有任何效果。
glEnable(GL_DEPTH_TEST)允许对下面的绘图调用进行深度测试。
想要添加一些线条和其他形状,并在它们上应用默认颜色…我该怎么做?
画出来就行了。
不影响纹理的形状。
无论如何,这就是OpenGL的工作方式。OpenGL没有描述一个场景。OpenGL关注的是“此刻”发生的一切。它只绘制点、线或三角形,一次只画一个,唯一的“干扰”是,它在帧缓冲区中过度绘制像素。
当然,对于全局状态机,更改状态对后续的一切都有影响。因此,如果您想回到以前的行为,就必须撤消对特定绘图所做的所有状态更改。
https://stackoverflow.com/questions/40172476
复制相似问题