- OpenGL ES のシェーダーを書く言語
- C言語っぽいやつ
- だけどポインタはない
- OpenGL ESでは2つのシェーダーを設定
- バーテックスシェーダー
- ワールド座標変換
- ビュー座標変換
- 射影変換
- フラグメントシェーダー
- テクスチャ探索
- デプステスト
- ブレンディング
こいつらの処理を定義するプログラム
詳しくは、こちら
- 時間情報や位置情報使って場所と色を定義するやつ
https://sifue.github.io/webgl-study/
- コード全体はこちら
- HTMLの中にscriptタグで書いたりする
precision mediump float;
uniform float time;
uniform vec2 mouse;
uniform vec2 resolution;
void main(void){
vec2 p = (gl_FragCoord.xy * 2.0 - resolution) / min(resolution.x, resolution.y);
vec2 color = (vec2(mouse) + p.xy) * 0.5;
gl_FragColor = vec4(color, 0.0, time / 5.0);
}
- マウス位置とか時間とか解像位置を取れるよ
- vec2は浮動小数点数の2要素ベクトル、vec4は4要素
attribute vec3 position;
void main(void){
gl_Position = vec4(position, 1.0);
}
- 位置はなにもいじってないよ
このデフォルトで見えてるのはジュリア集合というフラクタル画像。シェーダーはフラクタル書くのが楽らしい...。そういうのを書くセンスがない...。
- OpenGL ES Shading Language (GLSL ES) Reference Pages
- 誰か〜日本語に訳してくれ〜
- 型だけ日本語にまとめたページ、助かる
- このQiita記事がGLSLについて学べる神チュートリアルでした
- プリントデバッグとか甘えたものはありません!