私のゲームでは、状況ごとに個別の GLSL シェーダーを作成したいと考えています。たとえば、3 つのモデルがありcharacter
、shiny sword
とblury ghost
を に設定し、次にとを設定しrenderShader
、最後にとを設定したいとします。animationShader
lightingShader
character
renderShader
lightingShader
specularShader
shiny sword
renderShader
lightingShader
blurShader
blury ghost
は頂点のrenderShader
位置を投影、ワールド、およびその他のマトリックスで乗算する必要があり、フラグメント シェーダーは単純にモデルにテクスチャを設定する必要があります。
animationShader
指定されたボーン変換によって頂点を変換する必要があります。
lightingShader
照明をspecularLighting
行い、鏡面照明を行う必要があります。
blurShader
ぼかし効果を行う必要があります。
まず、異なるシェーダーで複数の頂点変換を行うにはどうすればよいですか? はanimationShader
頂点のアニメーション化された位置を計算し、renderShader
その位置を取得していくつかの行列で変換する必要があるためです。
次に、別のシェーダーでフラグメントの色を変更するにはどうすればよいですか?
基本的な考え方は、状況/効果ごとに異なるシェーダーを使用できるようにしたいということですが、それを実現する方法がわかりません。
これらのシェーダーを opengl で使用する方法と、GLSL を使用してすべてのシェーダーが互いに完成し、シェーダーが別のシェーダーが使用されているかどうかを気にしないようにする方法を知る必要があります。