glslで複数のシェーダの使い方
解決したいこと
glslにて複数のシェーダを使う際どうすればよいかを知りたいです。具体的には、
のように複数のモデルのデータを個別のシェーダで処理し、最後に一つのバーテックスシェーダで処理してフラグメントシェーダに出力するといった流れにしたいです。
一般的なopenGLでしたらどんな言語でも構わないので、複数のシェーダを使用する際の初期化生成の手順を教えて頂きたいです。
現在、シェーダ側は上図の左側から順に以下のように実装してます。
#version 150 core
in vec3 pos; // 頂点座標
in vec4 color; // 頂点属性
out vec3 pos_1;
out vec4 color_1;
void main() {
pos_1 = pos;
color_1 = color;
}
#version 150 core
in vec3 pos_1;
in vec4 color_1;
out vec4 color_2
void main() {
color_2 = color_1;
gl_Position = pos_1;
}
#version 150 core
in vec4 color_2;
out vec4 fragColor;
void main() {
fragColor = color_2;
}
0