Alex May's Wiki : ShadersGLSL

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

OpenGL GLSL Shaders


As I'm getting to OpenGL shaders I thought it would be useful for myself, and possibly others, to catalogue various routines here as I progress in my experiments.

If you have any optimisation tricks then I'd be happy to hear them!

RGB to Luma


float toLuma( vec3 pRGB )
{
	return( ( pRGB.r * 0.2126 ) + ( pRGB.g * 0.7152 ) + ( pRGB.b * 0.0722 ) );
}


Hard Edge Luma Key


Vertex Shader

varying vec2 vTexST;

void main()
{
	gl_Position = ftransform();
	
	vTexST= gl_MultiTexCoord0.st;
}


Fragment Shader

uniform sampler2D uTex;
uniform float uLumaKeyMin;
uniform float uLumaKeyMax;

varying vec2 vTexST;

void main()
{
	float		Luma  = toLuma( texture2D( uTex, vTexST).rgb );
	
	if( Luma < uLumaKeyMin || Luma > uLumaKeyMax )
	{
		discard;
	}
	
	gl_FragColor = texture2D( uTex, vTexST);
}

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3