OpenGL ES2顶点阵列中的GLubyte颜色不起作用
问题描述:
Apple建议在iOS上使用GLubyte数据类型来处理颜色数据,所以我试图让它起作用。我得到的结果是,所有颜色组件< 255是完全黑色的,并且只有设置为255的颜色组件才是真正的颜色。OpenGL ES2顶点阵列中的GLubyte颜色不起作用
我在做什么: - 保存单个物体的颜色在我自己的颜色类GLubytes(取值范围为0-255) -pass颜色到顶点属性阵列类型GLubyte着色器(依然范围0-255) - 在片段着色器中,直接使用颜色或将组件分成255,都不起作用。
编辑:这没有工作,问题是在我的代码中的其他地方。
答
这只是工作正常,问题是在我的代码中的其他地方。
答
Apple推荐使用GLubyte
作为顶点属性?我认为你误解了这个提示。你实际想要做的是将这些值存储在256x1灰度(GL_LUMINANCE
)纹理中,并将其作为统一传递给着色器。这确实比使用数组更快。
你应该发布你的代码。 – 2011-06-10 20:37:33
如果使用泛型属性,请确保在“glVertexAttribPointer”中设置标准化标志,以便您的值自动转换为[0,1]。 – 2011-06-10 21:52:20
将颜色传递为范围[0-255]中的GLubytes并将标准化参数设置为true会得到相同的结果:仍然不起作用? – Jonesy 2011-06-11 09:31:59