我正在使用顶点和片段着色器,GLSL版本130.Ubuntu 12.04 LTS。着色器工作正常。照明已禁用。
通过glutBitmapCharacter()绘制文本,但颜色不可预测。当我调整着色器使用的调色板并重新编译时,颜色会发生变化。
glColor4f()当然没有效果,因为着色器会覆盖固定的管道行为。那么如何设置glutBitmapCharacter()将呈现的“光栅颜色”? (或者每个帧应该使用着色器和然后固定管道吗?Yuck。)
答案 0 :(得分:1)
请与我联系:我不会将OpenGL光栅操作与可编程管道混合使用。正如您所知,结果非常,错误,令人讨厌。
此外,光栅操作已完全从现代OpenGL中删除(即上面的所有内容,包括OpenGL-3.0)。试图将它们与着色器一起使用是纯粹的受虐狂。观看其他人尝试这样做甚至会很痛苦。所以请不要。
或者每个帧应该使用着色器然后修复管道吗?
您可以随时在固定功能和着色器之间切换。在需要时使用glUseProgram(0)
切换到固定功能。使用光栅操作时会出现这种情况。但是在使用光栅操作时,你当然仅限于OpenGL-2.1。