好的,这是我的问题。我的学校使用了一个可视化框架,并且一直在尝试将其设置为3D图形。问题是,框架当前仅使用固定功能管线绘制。在不打扰的情况下,我一直在尝试解决仍然需要使用固定功能管道的旧代码,并且我一直在设置便利性以允许创建着色器和着色器程序。我有一个简单的颜色着色器可以编译,并且我还制作了一个测试顶点数组(一个绿色三角形)。
现在,当我尝试渲染它时,屏幕变黑了。之前,有很多2D子画面,屏幕上没有什么动静,但是逐步浏览我添加到render函数的代码后,我发现在调用glUseProgram的那一刻,屏幕就变黑了。如果我注释掉glUseProgram以及设置制服和绘图的部分,则一切正常。glUseProgram是否禁用固定功能管道?如果是这样,那么是否有本身可以重新激活它?
您使用glUseProgram
固定功能管线的那一刻将被可编程管线取代。您不能同时拥有固定功能+可编程管线。例如,假设您的场景包含雾。但是,如果您没有在片段着色器中进行处理,则最终输出中将不会看到它。
尽管在渲染/绘制功能中您可以执行以下操作
draw
{
glUseProgram(program);
// render stuff with shader
glUseProgram(0)
// render stuff with fixed pipeline
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句