IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter

目录

  • 一.简介
  • 二.效果演示
  • 三.源码下载
  • 四.猜你喜欢

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 特效

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程

一.简介

GPUImage 共 125 个滤镜, 分为四类

1、Color adjustments : 31 filters , 颜色处理相关
2、Image processing : 40 filters , 图像处理相关.
3、Blending modes : 29 filters , 混合模式相关.
4、Visual effects : 25 filters , 视觉效果相关.

GPUImageHighlightShadowFilter 属于 GPUImage 颜色处理相关,用来处理图片阴影,shader 源码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
//@Time:2022/03/17 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageHighlightShadowFragmentShaderString = SHADER_STRING
(
uniform sampler2D inputImageTexture;
varying highp vec2 textureCoordinate;uniform lowp float shadows;
uniform lowp float highlights;const mediump vec3 luminanceWeighting = vec3(0.3, 0.3, 0.3);void main()
{lowp vec4 source = texture2D(inputImageTexture, textureCoordinate);mediump float luminance = dot(source.rgb, luminanceWeighting);mediump float shadow = clamp((pow(luminance, 1.0/(shadows+1.0)) + (-0.76)*pow(luminance, 2.0/(shadows+1.0))) - luminance, 0.0, 1.0);mediump float highlight = clamp((1.0 - (pow(1.0-luminance, 1.0/(2.0-highlights)) + (-0.8)*pow(1.0-luminance, 2.0/(2.0-highlights)))) - luminance, -1.0, 0.0);lowp vec3 result = vec3(0.0, 0.0, 0.0) + ((luminance + shadow + highlight) - 0.0) * ((source.rgb - vec3(0.0, 0.0, 0.0))/(luminance - 0.0));gl_FragColor = vec4(result.rgb, source.a);
}
);
#else
NSString *const kGPUImageHighlightShadowFragmentShaderString = SHADER_STRING
(uniform sampler2D inputImageTexture;varying vec2 textureCoordinate;uniform float shadows;uniform float highlights;const vec3 luminanceWeighting = vec3(0.3, 0.3, 0.3);void main(){vec4 source = texture2D(inputImageTexture, textureCoordinate);float luminance = dot(source.rgb, luminanceWeighting);float shadow = clamp((pow(luminance, 1.0/(shadows+1.0)) + (-0.76)*pow(luminance, 2.0/(shadows+1.0))) - luminance, 0.0, 1.0);float highlight = clamp((1.0 - (pow(1.0-luminance, 1.0/(2.0-highlights)) + (-0.8)*pow(1.0-luminance, 2.0/(2.0-highlights)))) - luminance, -1.0, 0.0);vec3 result = vec3(0.0, 0.0, 0.0) + ((luminance + shadow + highlight) - 0.0) * ((source.rgb - vec3(0.0, 0.0, 0.0))/(luminance - 0.0));gl_FragColor = vec4(result.rgb, source.a);}
);
#endif

二.效果演示

三.源码下载

下载地址 : IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter

四.猜你喜欢

  • IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter
  • IOS – OPenGL ES 调节图像曝光度 GPUImageExposureFilter
  • IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter
  • IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  • IOS – OPenGL ES 调节图像伽马线 GPUImageGammaFilter
  • IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
  • IOS – OpenGL ES 调节图像褐色 GPUImageSepiaFilter
  • IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter
  • IOS – OpenGL ES 调节图像 RGB 通道 GPUImageRGBFilter
  • IOS – OpenGL ES 调节图像不透明度 GPUImageOpacityFilter
  • IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDN精华问答 | SDN可以做什么?

进入2019年,基于SDN的解决方案再次成为最热门的话题之一, 从运营商、到OTT再到大的企业都已经开始大谈SDN网络规划和部署,甚至WannaCry蠕虫爆发时有人谈到利用SDN的方法抵御。今天,我们就来看看关于SDN的精华问答吧。1Q: SDN可以做…

React之非受控组件

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_非受控组件</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <sc…

IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

K8S精华问答 | Kubernetes集群不能正常工作,难道是防火墙问题?

作为是Google开源的容器集群管理系。在Docker技术的基础上&#xff0c;为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能&#xff0c;提高了大规模容器集群管理的便捷性。今天&#xff0c;我们就来看看关于k8s的精华问答吧。1Q: Kubernetes集群不能正…

React之受控组件

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_受控组件</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <scri…

小团队的微服务之路

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Dean文章转载自Docker微服务是否适合小团队是个见仁见智的问题。回归现象看本质&#xff0c;随着业务复杂度的提高&#xff0c;单体应用越来越庞大&#xff0c;就好像一个类的代码行越来越多&#xff0c;分而治之&#xff0c…

5G精华问答 | 什么是5G?5G与LTE有什么关系?

从2016年以来&#xff0c;5G热度逐步攀升。作为下一代移动通信网络&#xff0c;如果用一个关键词来形容5G&#xff0c;那就是“快”。5G不仅会极大地改变人们现有的生活和工作方式&#xff0c;提升通信效率&#xff0c;还可以加大很多前沿技术和产品落地的可能性。今天&#xf…

React之不用函数柯里化的实现

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_不用函数柯里化的实现</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --&…

React之引出生命周期

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_不用函数柯里化的实现</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --&…

IOS – OpenGL ES 调节图像色度 GPUImageHueFilter

目录 一.简介二.效果演示三.源码下载二.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

中国开发者真实现状:40 岁不做开发,算法工程师最稀缺!

戳蓝字“CSDN云计算”关注我们哦&#xff01;互联网的 2018 年&#xff0c;注定是不平凡的一年。浩浩荡荡的美国制裁中兴事件唤醒了科技界对芯片产业的重视&#xff0c;倒逼了一系列芯片方面的布局和投资&#xff1b;互联网人口红利不断消耗&#xff0c;推动百度、腾讯、阿里巴…

react之生命周期(旧)组件挂载流程代码+图片

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期&#xff08;旧&#xff09;</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div>…

React之生命周期-setState

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-setState</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 -…

微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?

戳蓝字“CSDN云计算”关注我们哦&#xff01;过去几年来&#xff0c;“微服务架构”这个术语出现了&#xff0c;它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义&#xff0c;但围绕业务能力&#xff0c;自动化部署&#xff0…

React之生命周期-forceUpdate

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-forceUpdate</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库…

女神节 | 那些奋斗在IT领域的“女神”们

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;刘丹今天就是3月8日女神节&#xff0c;在这个日子里&#xff0c;我们的视线自然要转移在女性身上&#xff0c;来看看她们的真实生活与丰富的人生经历。CSDN作为中国专业IT技术社区&#xff0c;我们此次将视线聚焦于…

React之生命周期-父组件render流程

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_react生命周期-父组件render流程</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- …

IOS – OpenGL ES 调节图像单色 GPUImageMonochromeFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

IOS – OpenGL ES 指定颜色抠图 GPUImageChromaKeyFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

要闻君说:华为“发飙”了;快手抛出了1000+社招岗位;迅雷2018年度财报:云连续三年上涨;定论!小米成立AIoT战略委员会...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。紧锣密鼓的工作转眼到了“周五时间”&#xff0c;最近圈里的大事儿还挺多&#xff0c;看看&#xff01;文/要闻君华为决定起诉美国政府。在近日举行…