fragment シェーダー
バーテックスシェーダーは、頂点の計算だがフラグメントシェーダは、色情報の計算を行う。フラグメントシェーダはバーテックスシェーダーによって計算された、図形のピクセル数だけ実行され各ピクセルにどういう色を付けるのかを求める。
今回は、画面の選択した範囲全体に緑に変えるプログラムを作成する。ソースコードは以下のようになる。新しくshader.fragファイルに以下を書き込む
#version 450
#extension GL_ARB_separate_shader_objects : enable
layout(location = 0)out vec4 outColor;
void main(){
outColor = vec4(0.0, 1.0, 0.0, 1.0);
}
layout(location = 0)で、フレームバッファーインデックス[0]に出力します。
outColorでは、画面に表示するカラーを設定している。それぞれの要素は、RGBaとなっており、値は0~1の範囲です。Rを上げてあげると赤みが増えます。αは、画面の透過度0に近いほど透過していきます。
このファイルも同様にglslangValidatorでコンパイルします。
するとfrag.vertが出来上がります。
C:\VulkanSDK\1.1.82.1\Bin32\glslangValidator.exe -V shader.frag