2012.02.25 | 


記事とは関係ないけど、Fractal Noiseで遊んでみた動画
というのもHSV変換は絵がないので。
こんばんはこんばんは。muchoです。こんばんは。

以前 ActionScriptでもやったので、全然目新しくないですが、
GLSLでも変換する必要があったので作りました。

01// vertical Shader
02 
03#version 120
04vec3 HSVtoRGB(vec3 hsv)
05{
06    vec3 col;
07    float hue = mod(hsv.r, 360.0);
08    float s = max(0, min(1, hsv.g));
09    float v = max(0, min(1, hsv.b));
10    if(s > 0.0) {
11        int h = int(floor(hue / 60.0));
12        float f = hue / 60.0 - float(h);
13        float p = v * (1.0 - s);
14        float q = v * (1.0 - f * s);
15        float r = v * (1.0 - (1.0 - f) * s);
16 
17        if(h == 0) col = vec3(v, r, p);
18        else if(h == 1) col = vec3(q, v, p);
19        else if(h == 2) col = vec3(p, v, r);
20        else if(h == 3) col = vec3(p, q, v);
21        else if(h == 4) col = vec3(r, p, v);
22        else col = vec3(v, p, q);
23    }else{
24        col = vec3(v);
25    }
26    return col;
27}
28 
29void main()
30{
31    gl_FragColor.rgb = HSVtoRGB(vec3(gl_TexCoord[0].x * 360.0, gl_TexCoord[0].y, 1.0));
32    gl_FragColor.a = 1.0;
33}

こんなかんじで、カラーピッカーもどきなグラデが描画されます。
こういうシンプルなのは今後はWEBGLでブログにアップしたいです。
今後ってのがいつになるやら・・・