change sobel to show lighted grey instead of black when no borders, update mobile instructions, add scrollbar
This commit is contained in:
parent
431877ea09
commit
e568664fa7
|
@ -10,7 +10,6 @@ body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#glCanvas {
|
#glCanvas {
|
||||||
|
|
|
@ -59,9 +59,12 @@ async function main() {
|
||||||
const fsSource = `
|
const fsSource = `
|
||||||
precision highp float;
|
precision highp float;
|
||||||
|
|
||||||
|
varying highp vec2 vTextureCoord;
|
||||||
varying highp vec4 vNormal;
|
varying highp vec4 vNormal;
|
||||||
varying highp vec3 vPosition;
|
varying highp vec3 vPosition;
|
||||||
|
|
||||||
|
uniform sampler2D uSampler;
|
||||||
|
|
||||||
vec3 extremize(vec3 v, float n) {
|
vec3 extremize(vec3 v, float n) {
|
||||||
if (v.x > n / 2.)
|
if (v.x > n / 2.)
|
||||||
v.x = n;
|
v.x = n;
|
||||||
|
@ -94,9 +97,12 @@ async function main() {
|
||||||
const fsSource2 = `
|
const fsSource2 = `
|
||||||
precision highp float;
|
precision highp float;
|
||||||
|
|
||||||
|
varying highp vec2 vTextureCoord;
|
||||||
varying highp vec4 vNormal;
|
varying highp vec4 vNormal;
|
||||||
varying highp vec3 vPosition;
|
varying highp vec3 vPosition;
|
||||||
|
|
||||||
|
uniform sampler2D uSampler;
|
||||||
|
|
||||||
vec3 extremize(vec3 v, float n) {
|
vec3 extremize(vec3 v, float n) {
|
||||||
if (v.x > n / 2.)
|
if (v.x > n / 2.)
|
||||||
v.x = n;
|
v.x = n;
|
||||||
|
@ -128,24 +134,11 @@ async function main() {
|
||||||
const fsSource3 = `
|
const fsSource3 = `
|
||||||
precision highp float;
|
precision highp float;
|
||||||
|
|
||||||
|
varying highp vec2 vTextureCoord;
|
||||||
varying highp vec4 vNormal;
|
varying highp vec4 vNormal;
|
||||||
varying highp vec3 vPosition;
|
varying highp vec3 vPosition;
|
||||||
|
|
||||||
vec3 extremize(vec3 v, float n) {
|
uniform sampler2D uSampler;
|
||||||
if (v.x > n / 2.)
|
|
||||||
v.x = n;
|
|
||||||
else
|
|
||||||
v.x = 0.;
|
|
||||||
if (v.y > n / 2.)
|
|
||||||
v.y = n;
|
|
||||||
else
|
|
||||||
v.y = 0.;
|
|
||||||
if (v.z > n / 2.)
|
|
||||||
v.z = n;
|
|
||||||
else
|
|
||||||
v.z = 0.;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec3 n = normalize(vec3(-50000., 100000., 50000.) - vPosition);
|
vec3 n = normalize(vec3(-50000., 100000., 50000.) - vPosition);
|
||||||
|
@ -155,7 +148,6 @@ async function main() {
|
||||||
reflect(n, normalize(vNormal.xyz)),
|
reflect(n, normalize(vNormal.xyz)),
|
||||||
normalize(vec3(0., 0., -50.) - vPosition)),
|
normalize(vec3(0., 0., -50.) - vPosition)),
|
||||||
0.), 10.);
|
0.), 10.);
|
||||||
vec3 texture = extremize(mod(vPosition.xyz + vec3(1000.), vec3(2.)), 2.) / vec3(2);
|
|
||||||
gl_FragColor = vec4((diffuse * 0.8) + (vec3(0.2)) + (specular * vec3(1.)), 1.0);
|
gl_FragColor = vec4((diffuse * 0.8) + (vec3(0.2)) + (specular * vec3(1.)), 1.0);
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
|
@ -216,8 +208,16 @@ async function main() {
|
||||||
|
|
||||||
if ((1. - sobel.r) + (1. - sobel.g) + (1. - sobel.b) < 2.5)
|
if ((1. - sobel.r) + (1. - sobel.g) + (1. - sobel.b) < 2.5)
|
||||||
gl_FragColor = vec4(1.0 - sobel.rgb, 1.0 );
|
gl_FragColor = vec4(1.0 - sobel.rgb, 1.0 );
|
||||||
else
|
else {
|
||||||
gl_FragColor = vec4(vec3(0.), 1.);
|
vec3 n = normalize(vec3(-50000., 100000., 50000.) - vPosition);
|
||||||
|
float diffuse = max(dot(normalize(vNormal.xyz), n), 0.);
|
||||||
|
float specular = pow(
|
||||||
|
max(dot(
|
||||||
|
reflect(n, normalize(vNormal.xyz)),
|
||||||
|
normalize(vec3(0., 0., -50.) - vPosition)),
|
||||||
|
0.), 10.);
|
||||||
|
gl_FragColor = vec4((diffuse * 0.8) + (vec3(0.2)) + (specular * vec3(1.)), 1.0);
|
||||||
|
}
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
|
@ -390,7 +390,7 @@ async function main() {
|
||||||
[programInfo, fragmentShader] = changeFragmentShader(gl,
|
[programInfo, fragmentShader] = changeFragmentShader(gl,
|
||||||
shaderProgram, fragmentShader, fsSource2, vsSource);
|
shaderProgram, fragmentShader, fsSource2, vsSource);
|
||||||
});
|
});
|
||||||
$('#s_flat').on('click', function() {
|
$('#s_grey').on('click', function() {
|
||||||
[programInfo, fragmentShader] = changeFragmentShader(gl,
|
[programInfo, fragmentShader] = changeFragmentShader(gl,
|
||||||
shaderProgram, fragmentShader, fsSource3, vsSource);
|
shaderProgram, fragmentShader, fsSource3, vsSource);
|
||||||
});
|
});
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<div class='ui-block'>
|
<div class='ui-block'>
|
||||||
<button id='s_blackandwhite'>Change Shader to black and white</button>
|
<button id='s_blackandwhite'>Change Shader to black and white</button>
|
||||||
<button id='s_color'>Change Shader to colored</button>
|
<button id='s_color'>Change Shader to colored</button>
|
||||||
<button id='s_flat'>Change Shader to flat</button>
|
<button id='s_grey'>Change Shader to grey</button>
|
||||||
<button id='s_texture'>Change Shader to texture</button>
|
<button id='s_texture'>Change Shader to texture</button>
|
||||||
<button id='s_sobel'>Change Shader to sobel edge detection</button>
|
<button id='s_sobel'>Change Shader to sobel edge detection</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<button id='t_racer_wireframe'>Set texture to racer wireframe</button>
|
<button id='t_racer_wireframe'>Set texture to racer wireframe</button>
|
||||||
</div>
|
</div>
|
||||||
<div class='ui-block'>
|
<div class='ui-block'>
|
||||||
<p>If you're on mobile, you need to set the shader to texture to change object, then you can change the shader</p>
|
<p>If you're on mobile, you need to set the shader to texture or sobel to change object, then you can change the shader</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue