qvolray
diff volray.p.glsl @ 8:ae10631bb11b
cleaning up a bit to expand
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 07 Apr 2012 16:07:12 +0300 |
parents | f40e4edfee7e |
children |
line diff
1.1 --- a/volray.p.glsl Thu Apr 05 00:52:11 2012 +0300 1.2 +++ b/volray.p.glsl Sat Apr 07 16:07:12 2012 +0300 1.3 @@ -63,15 +63,14 @@ 1.4 vec3 pos = ray.origin + ray.dir * t; 1.5 t += ray_step; 1.6 1.7 - float val = eval(pos) * energy; 1.8 + float val = eval(pos); 1.9 vec3 norm; 1.10 1.11 norm.x = eval(pos + vec3(OFFS, 0.0, 0.0)) - val; 1.12 norm.y = eval(pos + vec3(0.0, OFFS, 0.0)) - val; 1.13 norm.z = eval(pos + vec3(0.0, 0.0, OFFS)) - val; 1.14 - norm = normalize(norm); 1.15 1.16 - col += shade(ray, pos, norm) * val; 1.17 + col += shade(ray, pos, normalize(norm)) * val * energy; 1.18 energy -= val; 1.19 if(energy < 0.001) { 1.20 break; 1.21 @@ -84,15 +83,15 @@ 1.22 1.23 vec3 shade(Ray ray, vec3 pos, vec3 norm) 1.24 { 1.25 - vec3 ldir = normalize(vec3(10.0, 10.0, -10.0) - pos); 1.26 + vec3 ldir = -pos;//normalize(vec3(10.0, 10.0, -10.0) - pos); 1.27 vec3 vdir = -ray.dir; 1.28 vec3 hdir = normalize(ldir + vdir); 1.29 1.30 float ndotl = dot(ldir, norm); 1.31 float ndoth = dot(hdir, norm); 1.32 1.33 - vec3 dcol = vec3(1.0, 1.0, 1.0) * max(ndotl, 0.0); 1.34 - vec3 scol = vec3(0.6, 0.6, 0.6) * pow(max(ndoth, 0.0), 50.0); 1.35 + vec3 dcol = vec3(0.9, 0.9, 0.9) * max(ndotl, 0.0); 1.36 + vec3 scol = vec3(0.5, 0.5, 0.5) * pow(max(ndoth, 0.0), 50.0); 1.37 1.38 return vec3(0.01, 0.01, 0.01) + dcol + scol; 1.39 }