IOS OpenGL ES GPUImage 排除混合 GPUImageExclusionBlendFilter

目錄

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 基礎(chǔ)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 轉(zhuǎn)場(chǎng)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 特效

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES 函數(shù)

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GPUImage 使用

零基礎(chǔ) OpenGL (ES) 學(xué)習(xí)路線(xiàn)推薦 : OpenGL (ES) 學(xué)習(xí)目錄 >> OpenGL ES GLSL 編程

一.簡(jiǎn)介

GPUImage 共 125 個(gè)濾鏡, 分為四類(lèi)

1、Color adjustments : 31 filters , 顏色處理相關(guān)
2、Image processing : 40 filters , 圖像處理相關(guān).
3、Blending modes : 29 filters , 混合模式相關(guān).
4、Visual effects : 25 filters , 視覺(jué)效果相關(guān).

GPUImageExclusionBlendFilter 屬于 GPUImage 混合模式相關(guān),用于圖像排除混合。shader 源碼如下:

/******************************************************************************************/
//@Author:猿說(shuō)編程
//@Blog(個(gè)人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES GPUImage GPUImageExclusionBlendFilter
//@Time:2022/07/16 06:30
//@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!
/******************************************************************************************/


#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageExclusionBlendFragmentShaderString = SHADER_STRING
(
 varying highp vec2 textureCoordinate;
 varying highp vec2 textureCoordinate2;

 uniform sampler2D inputImageTexture;
 uniform sampler2D inputImageTexture2;

 void main()
 {
     mediump vec4 base = texture2D(inputImageTexture, textureCoordinate);
     mediump vec4 overlay = texture2D(inputImageTexture2, textureCoordinate2);

     //     Dca = (Sca.Da + Dca.Sa - 2.Sca.Dca) + Sca.(1 - Da) + Dca.(1 - Sa)

     gl_FragColor = vec4((overlay.rgb * base.a + base.rgb * overlay.a - 2.0 * overlay.rgb * base.rgb) + overlay.rgb * (1.0 - base.a) + base.rgb * (1.0 - overlay.a), base.a);
 }
);
#else
NSString *const kGPUImageExclusionBlendFragmentShaderString = SHADER_STRING
(
 varying vec2 textureCoordinate;
 varying vec2 textureCoordinate2;

 uniform sampler2D inputImageTexture;
 uniform sampler2D inputImageTexture2;

 void main()
 {
     vec4 base = texture2D(inputImageTexture, textureCoordinate);
     vec4 overlay = texture2D(inputImageTexture2, textureCoordinate2);

     //     Dca = (Sca.Da + Dca.Sa - 2.Sca.Dca) + Sca.(1 - Da) + Dca.(1 - Sa)

     gl_FragColor = vec4((overlay.rgb * base.a + base.rgb * overlay.a - 2.0 * overlay.rgb * base.rgb) + overlay.rgb * (1.0 - base.a) + base.rgb * (1.0 - overlay.a), base.a);
 }
 );
#endif

二.效果演示

GPUImageExclusionBlendFilter 使用 **,**源圖如下:

使用 GPUImageExclusionBlendFilter,效果如下:

三.源碼下載

OpenGL ES Demo 下載地址 : IOS OpenGL ES GPUImage 排除混合 GPUImageExclusionBlendFilter

四.猜你喜歡

  1. IOS OPenGL ES 設(shè)置圖像亮度 GPUImageBrightnessFilter
  2. IOS OPenGL ES 調(diào)節(jié)圖像曝光度 GPUImageExposureFilter
  3. IOS OpenGL ES 調(diào)節(jié)圖像對(duì)比度 GPUImageContrastFilter
  4. IOS OPenGL ES 調(diào)節(jié)圖像飽和度 GPUImageSaturationFilter
  5. IOS OPenGL ES 調(diào)節(jié)圖像伽馬線(xiàn) GPUImageGammaFilter
  6. IOS OpenGL ES 調(diào)節(jié)圖像反色 GPUImageColorInvertFilter
  7. IOS OpenGL ES 調(diào)節(jié)圖像褐色 GPUImageSepiaFilter
  8. IOS OpenGL ES 調(diào)節(jié)圖像灰色 GPUImageGrayscaleFilter
  9. IOS OpenGL ES 調(diào)節(jié)圖像 RGB 通道 GPUImageRGBFilter
  10. IOS OpenGL ES 調(diào)節(jié)圖像不透明度 GPUImageOpacityFilter
  11. IOS OpenGL ES 調(diào)節(jié)圖像陰影 GPUImageHighlightShadowFilter
  12. IOS OpenGL ES 調(diào)節(jié)圖像色彩替換 GPUImageFalseColorFilter
  13. GPUImage – 色彩直方圖 GPUImageHistogramFilter
  14. GPUImage – 色彩直方圖 GPUImageHistogramGenerator
  15. GPUImage – 像素平均色值 GPUImageAverageColor
  16. GPUImage – 亮度平均 GPUImageLuminosity
  17. IOS OpenGL ES 調(diào)節(jié)圖像色度 GPUImageHueFilter
  18. IOS OpenGL ES 指定顏色摳圖 GPUImageChromaKeyFilter
  19. IOS OpenGL ES 調(diào)節(jié)圖像白平衡/色溫 GPUImageWhiteBalanceFilter
  20. IOS OpenGL ES 設(shè)置圖像 lookup 濾鏡 GPUImageLookupFilter
  21. IOS OpenGL ES 設(shè)置圖像濾鏡 GPUImageAmatorkaFilter
  22. IOS OpenGL ES 設(shè)置圖像濾鏡 GPUImageSoftEleganceFilter
  23. IOS OpenGL ES 設(shè)置圖像銳化 GPUImageSharpenFilter
  24. IOS OpenGL ES 繪制十字 GPUImageCrosshairGenerator
  25. IOS OpenGL ES 繪制線(xiàn)條 GPUImageLineGenerator
  26. IOS OpenGL ES 設(shè)置圖像黑白燥點(diǎn) GPUImageLocalBinaryPatternFilter
  27. IOS OpenGL ES 設(shè)置圖像卡通效果(黑色粗線(xiàn)描邊) GPUImageToonFilter
  28. IOS OpenGL ES 桑原濾波/水粉畫(huà)模糊效果 GPUImageKuwaharaFilter
  29. IOS OpenGL ES 黑白馬賽克效果 GPUImageMosaicFilter
  30. IOS OpenGL ES 像素化馬賽克效果 GPUImagePixellateFilter
  31. IOS OpenGL ES 同心圓像素化馬賽克效果 GPUImagePolarPixel
  32. IOS OpenGL ES 黑白網(wǎng)狀效果 GPUImageCrosshatchFilter
  33. IOS OpenGL ES 色彩丟失/模糊效果 GPUImageColorPackingFilter
  34. IOS OpenGL ES 圖像暈影 GPUImageVignetteFilter
  35. IOS OpenGL ES 圖像漩渦 GPUImageSwirlFilter
  36. IOS OpenGL ES 圖像魚(yú)眼擴(kuò)散效果 GPUImageBulgeDistortionFilter
  37. IOS OpenGL ES 圖像魚(yú)眼移動(dòng)效果 GPUImageBulgeDistortionFilter
  38. IOS OpenGL ES 圖像凹面鏡移動(dòng)效果 GPUImagePinchDistortionFilter
  39. IOS OpenGL ES 圖像凹面鏡放大效果 GPUImagePinchDistortionFilter
  40. IOS OpenGL ES 圖像哈哈鏡效果 GPUImageStretchDistortionFilter
  41. IOS OpenGL ES 圖像水晶球效果 GPUImageGlassSphereFilter
  42. IOS OpenGL ES 圖像球形折射 GPUImageSphereRefractionFilter
  43. IOS OpenGL ES 圖像色調(diào)分離噪點(diǎn)效果 GPUImagePosterizeFilter
  44. IOS OpenGL ES 圖像 CGA 色彩濾鏡 GPUImageCGAColorspaceFilter
  45. IOS OpenGL ES 圖像柏林噪點(diǎn)/花邊噪點(diǎn) GPUImagePerlinNoiseFilter
  46. IOS OpenGL ES 圖像加亮邊緣 GPUImage3x3ConvolutionFilter
  47. IOS OpenGL ES 圖像浮雕 3d 效果 GPUImageEmbossFilter
  48. IOS OpenGL ES 圖像馬賽克圓點(diǎn) GPUImagePolkaDotFilter
  49. IOS OpenGL ES 圖像侵蝕邊緣黑白模糊 GPUImageErosionFilter
  50. IOS OpenGL ES 圖像侵蝕邊緣色彩模糊 GPUImageRGBErosionFilter
  51. IOS OpenGL ES 圖像擴(kuò)展邊緣黑白模糊 GPUImageDilationFilter
  52. IOS OpenGL ES 圖像擴(kuò)展邊緣彩色模糊 GPUImageRGBDilationFilter
  53. IOS OpenGL ES GPUImage 黑白色調(diào)模糊 GPUImageOpeningFilter
  54. IOS OpenGL ES GPUImage 彩色模糊 GPUImageRGBOpeningFilter
  55. IOS OpenGL ES GPUImage 圖像黑白色調(diào)模糊/暗色提亮 GPUImageClosingFilter
  56. IOS OpenGL ES GPUImage 圖像彩色調(diào)模糊/暗色提亮 GPUImageRGBClosingFilter
  57. IOS OpenGL ES GPUImage 圖像 Lanczos 重取樣模糊效果 GPUImageLanczosResamplingFilter
  58. IOS OpenGL ES GPUImage 圖像顯示亮度最高的像素,其他為黑 GPUImageNonMaximumSuppressionFilter
  59. IOS OpenGL ES GPUImage 圖像顯示亮度最高的像素,其他為黑 GPUImageThresholdedNonMaximumSuppressionFilter
  60. IOS OpenGL ES GPUImage 圖像 Sobel 邊緣檢測(cè),類(lèi)似漫畫(huà)反色 GPUImageSobelEdgeDetectionFilter
  61. IOS OpenGL ES GPUImage GPUImageWeakPixelInclusionFilter
  62. IOS OpenGL ES GPUImage GPUImageDirectionalNonMaximumSuppressionFilter
  63. IOS OpenGL ES GPUImage 圖像閾值邊緣檢測(cè) GPUImageThresholdEdgeDetectionFilter
  64. IOS OpenGL ES GPUImage 圖像普瑞維特(Prewitt)邊緣檢測(cè) GPUImagePrewittEdgeDetectionFilter
  65. IOS OpenGL ES GPUImage 圖像 XYDerivative 邊緣檢測(cè) GPUImageXYDerivativeFilter
  66. IOS OpenGL ES GPUImage 圖像閥值素描,形成有噪點(diǎn)的素描 GPUImageThresholdSketchFilter
  67. IOS OpenGL ES GPUImage 圖像陰影和深度效果 GPUImageMultiplyBlendFilter
  68. IOS OpenGL ES GPUImage 圖像混合 GPUImageNormalBlendFilter
  69. IOS OpenGL ES GPUImage 圖像透明混合 GPUImageAlphaBlendFilter
  70. IOS OpenGL ES GPUImage 圖像溶解 GPUImageDissolveBlendFilter
  71. IOS OpenGL ES GPUImage 圖像疊加 GPUImageOverlayBlendFilter
  72. IOS OpenGL ES GPUImage 圖像加深混合 GPUImageDarkenBlendFilter
  73. IOS OpenGL ES GPUImage 圖像減淡混合 GPUImageLightenBlendFilter
  74. IOS OpenGL ES GPUImage 圖像源混合 GPUImageSourceOverBlendFilter
  75. IOS OpenGL ES GPUImage 圖像平移 GPUImageTransformFilter
  76. IOS OpenGL ES GPUImage 圖像縮放 GPUImageTransformFilter
  77. IOS OpenGL ES GPUImage 圖像旋轉(zhuǎn) GPUImageTransformFilter
  78. IOS OpenGL ES GPUImage 圖像鏡像 GPUImageTransformFilter
  79. IOS OpenGL ES GPUImage 色彩加深混合 GPUImageColorBurnBlendFilter
  80. IOS OpenGL ES GPUImage 色彩減淡混合 GPUImageColorDodgeBlendFilter
  81. IOS OpenGL ES GPUImage 濾色混合 GPUImageScreenBlendFilter
  82. IOS OpenGL ES GPUImage 排除混合 GPUImageExclusionBlendFilter

本文由博客 - 猿說(shuō)編程 猿說(shuō)編程 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容