好的,所以这是我的问题.我的学校使用了一个用于可视化的框架,我一直在尝试将其设置为3D图形.问题是,框架目前只使用固定功能管道来绘制.在没有搞砸的情况下,我一直在尝试解决仍然需要使用固定功能管道的旧代码,并且我一直在设置工具以允许创建着色器和着色器程序.我有一个简单的颜色着色器来编译,我也做了一个测试顶点数组(绿色三角形).
现在当我试图渲染它时,屏幕变黑了.在手之前,有很多2D精灵和什么不在屏幕上移动,但是通过我添加到渲染功能的代码,我发现当我调用glUseProgram时屏幕变黑.如果我注释掉glUseProgram,以及我设置制服和绘画的部分,一切正常.glUseProgram是否禁用固定功能管道?如果是这样的话,无论如何都要重新激活它本身?
Abh*_*sal 13
您使用glUseProgram固定功能管道的那一刻被可编程管道所取代.你不能同时拥有固定功能+可编程管道.例如,假设您的场景包含雾.但是如果你没有在片段着色器中处理它,你将不会在最终输出中看到它.
虽然在你的渲染/绘图功能中你可以做这样的事情
draw
{
glUseProgram(program);
// render stuff with shader
glUseProgram(0)
// render stuff with fixed pipeline
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2682 次 |
| 最近记录: |