Imaging & Videochevron_right
Softwarechevron_right
Hardwarechevron_right
Convertir una imagen a color a escala de grises usando el promedio RGB y Luma por Hardware.
1link> precision mediump float;
2link>
3link> uniform sampler2D texture;
4link>
5link> varying vec4 vVertexColor;
6link>
7link> varying vec2 vTexCoord;
8link>
9link> void main() {
10link> vec4 col = texture2D(texture, vTexCoord) * vVertexColor;
11link> float grayRGB = dot(col.rgb, vec3(0.333, 0.333, 0.333));
12link> gl_FragColor = vec4(vec3(grayRGB), 1.0);
13link> }
El resultado es el siguiente:
1link> precision mediump float;
2link>
3link> uniform sampler2D texture;
4link>
5link> uniform bool form;
6link>
7link> varying vec4 vVertexColor;
8link>
9link> varying vec2 vTexCoord;
10link>
11link> void main() {
12link> vec4 col = texture2D(texture, vTexCoord) * vVertexColor;
13link> float grayLuma;
14link> if(form){
15link> grayLuma = dot(col.rgb, vec3(0.299, 0.587, 0.114));
16link> }else{
17link> grayLuma = dot(col.rgb, vec3(0.2126, 0.7152, 0.0722));
18link> }
19link> gl_FragColor = vec4(vec3(grayLuma), 1.0);
20link> }
Hacer click para correr el video.
1link> precision mediump float;
2link>
3link> uniform sampler2D texture;
4link>
5link> varying vec4 vVertexColor;
6link>
7link> varying vec2 vTexCoord;
8link>
9link> void main() {
10link> vec4 col = texture2D(texture, vTexCoord) * vVertexColor;
11link> float grayRGB = dot(col.rgb, vec3(0.333, 0.333, 0.333));
12link> gl_FragColor = vec4(vec3(grayRGB), 1.0);
13link> }