25 lines
		
	
	
		
			578 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			578 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| 
								 | 
							
								#version 330 core
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								out vec4 FragColor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								in vec2 TexCoord;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uniform sampler2D textureY;
							 | 
						||
| 
								 | 
							
								uniform sampler2D textureU;
							 | 
						||
| 
								 | 
							
								uniform sampler2D textureV;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void main(){
							 | 
						||
| 
								 | 
							
								    vec3 yuv, rgb;
							 | 
						||
| 
								 | 
							
								    vec3 yuv2r = vec3(1.164, 0.0, 1.596);
							 | 
						||
| 
								 | 
							
								    vec3 yuv2g = vec3(1.164, -0.391, -0.813);
							 | 
						||
| 
								 | 
							
								    vec3 yuv2b = vec3(1.164, 2.018, 0.0);
							 | 
						||
| 
								 | 
							
								    yuv.x = texture(textureY, TexCoord).r - 0.0625;
							 | 
						||
| 
								 | 
							
								    yuv.y = texture(textureU, TexCoord).r - 0.5;
							 | 
						||
| 
								 | 
							
								    yuv.z = texture(textureV, TexCoord).r - 0.5;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    rgb.x = dot(yuv, yuv2r);
							 | 
						||
| 
								 | 
							
								    rgb.y = dot(yuv, yuv2g);
							 | 
						||
| 
								 | 
							
								    rgb.z = dot(yuv, yuv2b);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    FragColor = vec4(rgb, 1.0);
							 | 
						||
| 
								 | 
							
								}
							 |