第0回
画像付きで自分で解説する。
// - glslfan.com --------------------------------------------------------------
// Ctrl + s or Command + s: compile shader
// Ctrl + m or Command + m: toggle visibility for codepane
// ----------------------------------------------------------------------------
precision mediump float;
uniform vec2 resolution; // resolution (width, height)
uniform vec2 mouse; // mouse (0.0 ~ 1.0)
uniform float time; // time (1second == 1.0)
uniform sampler2D backbuffer; // previous scene
void main(){
vec2 p = gl_FragCoord.xy / resolution;
vec4 col = vec4(p, mouse.y, 1.1);
if(length(mouse.xy - p.xy) < abs(sin(time)) / 3.0) {
col = vec4(0.0, 0.0, 1.0, 1.0);
}
gl_FragColor = col;
}
void main
からの解説
vector
vec2 p = gl_FragCoord.xy / resolution;
vec4 col = vec4(p, mouse.y, 1.1);
- vec2 Float32[2]のList
- vec3 vec4 -> Float[3-4]
- 値を取り出す際は x y z w の順番で取り出せる。
こういう感じで作成することも可能
vec4 tmp = vec4(vec3(vec2(0.1, 0.1), 0.1), 0.1);
vec4 sample = vec4(tmp.xyzw)
if(length(mouse.xy - p.xy) < abs(sin(time)) / 3.0)
length関数
mouse.xy と p.xyの距離を算出できる。(?)
それを sin(time) で一定期間で変更させる。
それをabs(絶対値表現 マイナスがなくなる形に変換)
col = vec4(0.0, 0.0, 1.0, 1.0); RGBAの形式
青色だけ表示させるように変更
gl_FragColor = col;
組み込み関数 gl_FargColor
へ 4vec
を渡す事によりピクセルの色を確定させる
今回の勉強会で出た資料一覧
sandbox
入門記事
- GLSLについてのメモ - Qiita
- wgld.org | GLSL |
-
Inigo Quilez :: fractals, computer graphics, mathematics, shaders, demoscene and more
- なんか物体のレンダリングができるらしい
- 固定長進行レイマーチングやってみたので簡単なサンプルと解説 - やぎりのブログ
- [GLSL] レイマーチング入門 vol.1 - Qiita
- 2017年度GLSLお役立ちシート - Qiita
- GLSL で暖を取るための準備をしよう! GLSL お役立ちマニュアル - Qiita
- Tokyo Demo Fest 2018
- ComputeShader入門 - Google スライド