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