2012-04-13 80 views
1

我已經使用Assimp andx我自己的OpenGL渲染器實現了Collada文件的GPU蒙皮。 這工作正常。使用第三方着色器GLSL GPU蒙皮

現在, 我的應用程序應該允許指定第三方頂點和片段着色器,並且應該與皮膚一起工作。

一個示例用例可能是,這個外部着色器彎曲了Y軸的空間,並將霧添加到場景..等等。

使用GPU蒙皮有可能嗎?

回答

1

可能嗎?是。但並不簡單。

做到這一點的最痛苦的方法是利用能夠爲着色器提供多個字符串。使您的「蒙皮着色器」功能返回頂點的相機空間位置。你甚至可能有這個功能的多種變化。一個版本返回一個位置,一個返回一個位置和法線,一個返回一個位置和TBN切線空間基礎矩陣。

用戶提供的着色器只需調用此函數來獲取相機空間位置/法線。在編譯着色器時,只需在glShaderSource的調用中將您的蒙皮着色器字符串放在它們的着色器之前。