GLSL GPU使用第三方着色器进行蒙皮

时间:2012-04-13 07:57:55

标签: glsl gpu shader skinning

我使用Assimp和我自己的OpenGL渲染器为Collada文件实现了GPU蒙皮。 这很好。

现在, 我的应用程序应该允许指定第三方顶点和片段着色器,并且应该与蒙皮一起使用。

一个示例用例可能是,这个外来着色器围绕Y轴弯曲空间并为场景添加雾..等等。

使用GPU换肤时是否可以使用?

1 个答案:

答案 0 :(得分:1)

可能?是。但并不简单。

最难以实现的方法是利用能够为着色器提供多个字符串。使“蒙皮着色器”成为返回顶点的相机空间位置的函数。您甚至可能有此功能的多种变体。一个返回位置的版本,一个返回位置和法线的版本,一个返回位置和TBN切线空间基矩阵的版本。

用户提供的着色器只需调用此函数即可获取相机空间位置/法线。编辑着色器时,只需在调用glShaderSource的调用中将蒙皮着色器字符串放在着色器之前。