GLSL shader程序可以像C++那样调用另外一个文件里面的函数吗


我用OpenGL渲染语言GLSL写GPU加速的程序-三维重建,分别实现了几个不同的算法,每个算法都写在对应的顶点着色器和片断着色器里面。现在我要做的是,向这几个算法都加入另外一个功能比如光照(Phong光照模型),光照计算可以写一个函数实现。普通的做法是在每个算法对应的shader程序中都定义这个函数,然后分别调用。但是这样存在代码冗余。

我想问的是,能否把计算光照模型的函数写在另外一个shader里面,然后在不同的算法对应的shader里面调用,这样可以减少代码冗余。问下这可以实现么?如果可以实现,应该具体怎么做?

opengl C++

禁丨雅蠛蝶 12 years, 10 months ago

Your Answer