昨日はMacでも開発できるよう環境を整えました。
本日は水分子を画像を使わずにシェーダで描画するようにしてみます。まずポイントスプライトを円形にするため、フラグメントシェーダを以下のように改変しました。
#version 330 core
out vec4 Color;
void main()
{
vec3 target;
// 座標値変換 (0, 1) -> (-1, 1)
target.xy = (gl_PointCoord - 0.5) * 2.0;
// 半径の2乗
float r2 = target.x * target.x + target.y * target.y;
if (1.0 < r2) {
discard;
}
Color = vec4(0.0f, 0.0f, 1.0f, 0.3f);
}
円外の場合はdiscardで色を付けないようにしています。結果は以下のようになりました。
明日はアルファ値を調整します。