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