首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webgl 3D场景的默认颜色

webgl 3D场景的默认颜色
EN

Stack Overflow用户
提问于 2016-10-21 09:04:00
回答 2查看 309关注 0票数 0

我有webgl 3D scenebackground image,很少有形状和textures

我想添加一些线条和其他形状,并应用在他们的默认颜色,这不影响形状与纹理。

我该怎么做?

这就是我现在拥有的:

代码语言:javascript
复制
gl.clearColor(0.0, 0.0, 0.0, 0.0); //alpha=0 for background img
gl.enable(gl.DEPTH_TEST);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-21 19:11:41

默认情况下,WebGL被组合到网页中。这意味着清除到0,0,0,0表示画布是透明的,画布本身的标准网页CSS背景色设置或其背后的元素(<body><html>>等)将与画布混合。

你可能会发现这个答案很有帮助

https://stackoverflow.com/a/39354174/128511

票数 1
EN

Stack Overflow用户

发布于 2016-10-21 10:25:41

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

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

glEnable(GL_DEPTH_TEST)允许对下面的绘图调用进行深度测试。

想要添加一些线条和其他形状,并在它们上应用默认颜色…我该怎么做?

画出来就行了。

不影响纹理的形状。

无论如何,这就是OpenGL的工作方式。OpenGL没有描述一个场景。OpenGL关注的是“此刻”发生的一切。它只绘制点、线或三角形,一次只画一个,唯一的“干扰”是,它在帧缓冲区中过度绘制像素。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40172476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档