- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我同时在纹理立方体旁边绘制了一个顶点彩色立方体,使用 glDrawArrays()
,并发现启用照明后,纹理立方体变得“稍微亮一些”。
经过一些调试,我发现第一刻 glEnable(GL_COLOR_MATERIAL)
被调用,即使 glDisable(GL_COLOR_MATERIAL)
之后立即调用,对带纹理的立方体产生“稍微亮一点”的效果!
以下是简短说明:
glEnable(GL_COLOR_MATERIAL);
glDisable(GL_COLOR_MATERIAL);
(...)
glDrawArrays(GL_QUADS, 0, n);
glEnable(GL_COLOR_MATERIAL)
根本没有调用,立方体是用黄色绘制的。
glEnable(GL_COLOR_MATERIAL)
被调用,即使后面跟着
glDisable(GL_COLOR_MATERIAL)
,立方体被绘制为稍微亮一点的黄色,我无法切换回“初始较暗的黄色立方体颜色”。
最佳答案
这不完全是预期的行为,但应该很容易修复。 GL_COLOR_MATERIAL 允许使用顶点颜色覆盖 Material 属性。错误是颜色不仅在顶点颜色规范上被重写,而且还在颜色 Material 启用上被重写(我的猜测是它可能是为了防止错误而故意完成的)。
要使立方体再次变暗,您需要做的就是使用 glMaterialfv() 恢复默认的颜色 Material 属性(可能是漫反射和环境颜色)。您可以找到 default material colors here .
关于OpenGL glEnable(GL_COLOR_MATERIAL) 后跟 glDisable(GL_COLOR_MATERIAL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965871/
我需要绘制一个带有三角形和球体的对象。我的对象有自己的 Material 属性,我用 glMaterialfv 定义了它们。球体只是一个带有颜色的球体。但是,我的对象的某些部分(它是它的多边形之一)用
我同时在纹理立方体旁边绘制了一个顶点彩色立方体,使用 glDrawArrays() ,并发现启用照明后,纹理立方体变得“稍微亮一些”。 经过一些调试,我发现第一刻 glEnable(GL_COLOR_
编辑:在场景中所有其他对象之前渲染天空盒解决了这个问题。 我看过问题 here但添加 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 似乎没有帮
我是一名优秀的程序员,十分优秀!