1
我已經使用Assimp andx我自己的OpenGL渲染器實現了Collada文件的GPU蒙皮。 這工作正常。使用第三方着色器GLSL GPU蒙皮
現在, 我的應用程序應該允許指定第三方頂點和片段着色器,並且應該與皮膚一起工作。
一個示例用例可能是,這個外部着色器彎曲了Y軸的空間,並將霧添加到場景..等等。
使用GPU蒙皮有可能嗎?
我已經使用Assimp andx我自己的OpenGL渲染器實現了Collada文件的GPU蒙皮。 這工作正常。使用第三方着色器GLSL GPU蒙皮
現在, 我的應用程序應該允許指定第三方頂點和片段着色器,並且應該與皮膚一起工作。
一個示例用例可能是,這個外部着色器彎曲了Y軸的空間,並將霧添加到場景..等等。
使用GPU蒙皮有可能嗎?
可能嗎?是。但並不簡單。
做到這一點的最痛苦的方法是利用能夠爲着色器提供多個字符串。使您的「蒙皮着色器」功能返回頂點的相機空間位置。你甚至可能有這個功能的多種變化。一個版本返回一個位置,一個返回一個位置和法線,一個返回一個位置和TBN切線空間基礎矩陣。
用戶提供的着色器只需調用此函數來獲取相機空間位置/法線。在編譯着色器時,只需在glShaderSource
的調用中將您的蒙皮着色器字符串放在它們的着色器之前。