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

使用第三方着色器的GLSL GPU蒙皮,glsl,gpu,shader,skinning,Glsl,Gpu,Shader,Skinning,我已经使用Assimp和我自己的OpenGL渲染器实现了Collada文件的GPU蒙皮。 这很好用 现在,, 我的应用程序应该允许指定第三方顶点和片段着色器,并且应该与蒙皮一起工作 一个示例用例可能是,此外来着色器围绕Y轴弯曲空间,并向场景添加雾..等等 使用GPU蒙皮时可能吗?可能吗?对但这并不简单 最简单的方法是利用能够为着色器提供多个字符串的优势。使“蒙皮着色器”成为返回顶点的摄影机空间位置的函数。您甚至可能有此函数的多个变体。一个版本返回位置,一个版本返回位置和法线,另一个版本返回位置和

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

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

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


使用GPU蒙皮时可能吗?

可能吗?对但这并不简单

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


用户提供的着色器只需调用此函数即可获得摄影机空间位置/法线。编译着色器时,只需在调用中将蒙皮着色器字符串置于其着色器之前。

可能吗?对但这并不简单

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

用户提供的着色器只需调用此函数即可获得摄影机空间位置/法线。编译着色器时,只需在调用中将蒙皮着色器字符串置于其着色器之前