マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

色をmixしてみた

前回のエントリでLambertシェーディングをやってみたが、物体の色は気にしていなかった。そこで今回は、試しに物体の色をmixしてみた。使ったのはGLSLのmix関数で、物体の色とライトで計算した色をmixしている。物体の色とライトの向きはJavaScriptから渡すべきだとは思うが、シェーダーに直接書いてしまっている。今回はFragment Shaderとスクリーンショットだけ載せる


precision mediump float;

varying vec3 N;

//物体の色
vec3 color = vec3(0.0, 0.0, 0.0);

//ライトの向き
vec3 light_dir = vec3(1.0, 0.0, 0.0);

//diffuseカラー
vec3 light_diffuse = vec3(0.8, 0.8, 0.8);

void main(){
    vec3 light_color = light_diffuse * dot(N, light_dir);
    
    gl_FragColor = vec4(mix(color, light_color, 0.5), 1.0);
}