4

我正在尝试进入“现代”OpenGL。我想我到目前为止了解shaders 的概念并且我知道如何编译它们,但是我不确定什么时候这样做是好的。

有一个函数可以shader在应用程序启动时编译所有 s 并将它们存储在某种管理器中,这可以满足当前需要shader吗?

或者也许我应该只在需要它们时编译它们,而下次需要它们时只使用我已经创建的那个?

而且我认为创建shader program每一帧不是一个好主意。

我将不胜感激有关如何以一种好的方式组织它的任何提示。

4

1 回答 1

2

是否有一个函数可以在应用程序启动时编译所有着色器,将它们存储在某种管理器中,该管理器将服务于当前需要的着色器?

是的。这是可以被视为OpenGL“初始化”的一次性初始化的事情之一。

于 2013-02-28T10:45:41.443 回答