我使用Assimp和我自己的OpenGL渲染器为Collada文件实现了GPU蒙皮。 这很好。
现在, 我的应用程序应该允许指定第三方顶点和片段着色器,并且应该与蒙皮一起使用。
一个示例用例可能是,这个外来着色器围绕Y轴弯曲空间并为场景添加雾..等等。
使用GPU换肤时是否可以使用?
答案 0 :(得分:1)
可能?是。但并不简单。
最难以实现的方法是利用能够为着色器提供多个字符串。使“蒙皮着色器”成为返回顶点的相机空间位置的函数。您甚至可能有此功能的多种变体。一个返回位置的版本,一个返回位置和法线的版本,一个返回位置和TBN切线空间基矩阵的版本。
用户提供的着色器只需调用此函数即可获取相机空间位置/法线。编辑着色器时,只需在调用glShaderSource
的调用中将蒙皮着色器字符串放在着色器之前。