我试图理解以下内容:
我有一个对象,我想能够使用两组不同的顶点/片段着色器进行渲染,每个着色器都有它们各自的uniform和纹理,并在这两种设置之间来回切换。(我知道在这种情况下,我可以只使用一个shader,并在其中使用一个uniform来控制运行哪些逻辑,但这是较大项目中的一部分,我无法这样做)
- 我应该使用一个还是两个gl程序(由
glCreateProgram()
创建)? - 如果我使用两个程序,是否可以放弃未使用的程序并在需要时重新构建它?或者速度太慢了?
- 如果我只使用一个程序:
- 我可以在一开始编译着色器吗?
- 切换时,我应该分离旧的着色器,附加新的着色器并再次链接程序吗?
- 链接后,我应该重新计算所有uniform的位置吗?
- 链接后,我应该重新绑定数组缓冲区吗?
- 我应该执行某些操作以删除先前附加的纹理吗?