fresnel
This commit is contained in:
11
shader.glsl
11
shader.glsl
@ -252,7 +252,7 @@ float rayMarch(vec3 ro, vec3 rd, int a) {
|
||||
// Raymarching
|
||||
for (int i = 0; i < 100; i++) {
|
||||
d = map(ro + rd * t, 0); // Get distance to objects
|
||||
if (a==0) glow += 0.05/(1.0 + 10.*pow(d.z, .5));
|
||||
if (a==0&&d.z<0.3) glow += 0.05/(1.0 + 10.*pow(d.z, .5));
|
||||
t += d.x; // "march" the ray
|
||||
if (d.x < 1e-3 || t > 400.) break;
|
||||
}
|
||||
@ -287,7 +287,10 @@ float specular(vec3 normal,vec3 lightPos,vec3 rayOrigin,float specular) {
|
||||
}
|
||||
|
||||
vec3 getSeaColor(vec3 p, vec3 n, vec3 l, vec3 eye) {
|
||||
|
||||
vec3 color = SEA_BASE + diffuse(n,l,60.0) * SEA_WATER_COLOR * 0.3;
|
||||
float fresnel = pow(clamp(1.-dot(n, -eye), 0., 1.), .9);
|
||||
color -= vec3(0.73, 0.15, 0.66) * fresnel;
|
||||
color += vec3(specular(n,l,eye,60.0))*0.2;
|
||||
return color;
|
||||
}
|
||||
@ -407,8 +410,8 @@ vec3 sceneGate(vec2 uv)
|
||||
col *= vec3(0.21, 0.35, 0.33) + addSpecular(n,rd,.5, 2.);
|
||||
if(mat==1.)
|
||||
{
|
||||
float fresnel = pow(clamp(1.-dot(n, -rd), 0., 1.), 0.6);
|
||||
col = getSeaColor(p, n, no(vec3(0.0,0.3,0.8)),no(rd)) - vec3(1., 1.0 ,1.) * fresnel;
|
||||
//float fresnel = pow(clamp(1.-dot(n, -rd), 0., 1.), .5);
|
||||
col = getSeaColor(p, n, no(vec3(0.0,0.3,0.8)),no(rd)); //+ vec3(1., 1.0 ,1.); * fresnel;
|
||||
}
|
||||
if(mat==2.)
|
||||
col *= vec3(.8, .8, .5);
|
||||
@ -417,7 +420,7 @@ vec3 sceneGate(vec2 uv)
|
||||
if(mat==4.)
|
||||
col *= vec3(0.0, 0.08, 0.11) + addSpecular(n,rd,0.3,0.7);
|
||||
if(mat ==5.)
|
||||
col = chevronColor*0.4 * pow(cl(1. -dot(n, -rd), 0., 1.), .3);
|
||||
col = chevronColor*0.4;// * pow(cl(1. -dot(n, -rd), 0., 1.), .3);
|
||||
if(mat == 6.)
|
||||
col *= vec3(0.01, 0.04, 0.06) + addSpecular(n,rd,.1, 2.5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user