Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void main()
- {
- vec4 colorPixel = texture2D( gm_BaseTexture, v_vTexcoord );
- vec4 colorResult = colorPixel;
- vec4 colorHSV = vec4( rgb_to_hsv( colorPixel.rgb ), colorPixel.a);
- for (int i=0; i<maxcolors; i+=1)
- {
- vec4 colorInHSV = vec4( rgb_to_hsv( colorIn[i].rgb ), colorIn[i].a);
- vec4 colorDelta = colorHSV - colorInHSV;
- if (abs(colorDelta.r)>0.5) colorDelta.r -= sign(colorDelta.r);
- if ( all( lessThanEqual( abs(colorDelta), colorTolerance[i] ) ) )
- {
- vec4 colorOutHSV = vec4( rgb_to_hsv( colorOut[i].rgb ), colorOut[i].a);
- colorResult = mix( colorOut[i],
- vec4 ( hsv_to_rgb( vec3( mod( colorOutHSV.r + colorDelta.r, 1.0 ),
- clamp( colorOutHSV.g + colorDelta.g, 0.0, 1.0 ),
- clamp( colorOutHSV.b + colorDelta.b, 0.0, 1.0 ) ) ),
- clamp( colorOut[i].a + colorDelta.a, 0.0, 1.0) ),
- blend[i] );
- }
- }
- gl_FragColor = v_vColour * colorResult;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement