2010-04-26 55 views

回答

6

着色器程序只有在安装时才有效。只有在程序安装时绘制的调用将使用着色器。您必须安装着色器,绘制对象,然后卸载着色器。

编辑:通过“安装”着色器我的意思是使用glUseProgram与你的着色器的句柄。通过“卸载”我的意思是安装另一个着色器或调用glUseProgram与参数0。请参阅glUseProgram。我的“安装/卸载”术语来自那里。

+0

呃你在说什么?安装?卸载?你对着色器的定义究竟是什么? – 2010-04-26 17:47:54

+0

如何卸载着色器?通过glDetachShader?是否有与glUseProgram - > glDontUseProgram相反的东西? – Andrey 2010-04-26 17:48:02

+1

@Jonas,@Andrey,我的“安装”/“卸载”术语来自'glUseProgram'的文档。我编辑了我的回复以澄清。 – 2010-04-26 17:52:36

2

在您的绘图调用中绘制该着色器的对象,并在没有它的情况下绘制其他对象;不能真的比这更简单; P您可以在对象类中使用枚举,您可以在其中指定启用的着色器对于该对象,只有当它们应该穿过该着色器时...当然,如果它是全屏像素着色器,那么当它处理每个像素并呈现新的图像时,您都遇到麻烦。除非你有一种将对象作为参数传递的方法,并且只有在该对象的位置上应用变更。

相关问题