基于Qt的OpenGL可编程管线学习(17)- 差值、反差值、排除
1、差值
shader
//差值uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4blendColor=texture2D(U_SubTexture,M_coord);vec4baseColor=texture2D(U_MainTexture,M_coord);gl_FragColor=abs(vec4(blendColor.rgb-baseColor.rgb,1.0));}
效果图
2、反差值
shader
//反差值uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4blendColor=texture2D(U_SubTexture,M_coord);vec4baseColor=texture2D(U_MainTexture,M_coord);gl_FragColor=vec4(vec3(1.0)-abs(vec3(blendColor.rgb-baseColor.rgb)),1.0);}
效果图
3、排除
shader
//排除uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4blendColor=texture2D(U_SubTexture,M_coord);vec4baseColor=texture2D(U_MainTexture,M_coord);gl_FragColor=vec4(blendColor.rgb+baseColor.rgb-2.0*blendColor.rgb*baseColor.rgb,1.0);}
效果图
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。