OpenGL,交错的 VBO(顶点、法线和颜色)与光
Posted
技术标签:
【中文标题】OpenGL,交错的 VBO(顶点、法线和颜色)与光【英文标题】:OpenGL, interleaved VBO (vertex, normal and color) with light 【发布时间】:2012-10-04 08:26:00 【问题描述】:我有一个包含顶点、法线和颜色的交错 VBO。一切正常。
我也想要灯,但如果我启用它,颜色就不再起作用了。
我猜这是因为灯光不适用于 gl.glColor,而是使用颜色材料(也指定了here,第一个问题)
那么,考虑到我需要渲染不超过 10000 个三角形,并且在渲染过程中需要切换 3 次颜色,这是最适合我需求的策略吗?
Ps:我还在用其他 VBO 渲染数百万个三角形(但每个 VBO 只有一个颜色),所以我猜 gl.glBegin 对我来说不是一个有效的选项..
【问题讨论】:
【参考方案1】:如果您的硬件不支持着色器,您可以使用 glColorMaterial(GL_FRONT, GL_DIFFUSE) 和 glEnable(GL_COLOR_MATERIAL)。
【讨论】:
我试过了,它似乎可以工作,虽然颜色看起来很暗,尤其是白色。着色器呢?我怎么能和他们在一起? (你有一个好的链接吗?) nehe.gamedev.net/article/glsl_an_introduction/25007 类似的东西。 Shader 只是一个 GPU 程序,你可以在其中计算任何你想要的结果颜色。但是,在您的情况下,我猜光线计算得很好,而您的颜色缺陷是光源设置错误的结果。再次检查您的灯光属性。此外,您可能想要添加一些环境光以使一切更亮 - 我认为它应该通过调用 glMaterialf 为 GL_AMBIENT_COLOR 来工作以上是关于OpenGL,交错的 VBO(顶点、法线和颜色)与光的主要内容,如果未能解决你的问题,请参考以下文章