IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter

目录

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

零基础 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 , 视觉效果相关.

GPUImageGlassSphereFilter 属于 GPUImage 图像视觉效果相关,用来处理图像水晶球效果。shader 源码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter
//@Time:2022/06/03 06:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageGlassSphereFragmentShaderString = SHADER_STRING
(varying highp vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform highp vec2 center;uniform highp float radius;uniform highp float aspectRatio;uniform highp float refractiveIndex;
// uniform vec3 lightPosition;const highp vec3 lightPosition = vec3(-0.5, 0.5, 1.0);const highp vec3 ambientLightPosition = vec3(0.0, 0.0, 1.0);void main(){highp vec2 textureCoordinateToUse = vec2(textureCoordinate.x, (textureCoordinate.y * aspectRatio + 0.5 - 0.5 * aspectRatio));highp float distanceFromCenter = distance(center, textureCoordinateToUse);lowp float checkForPresenceWithinSphere = step(distanceFromCenter, radius);distanceFromCenter = distanceFromCenter / radius;highp float normalizedDepth = radius * sqrt(1.0 - distanceFromCenter * distanceFromCenter);highp vec3 sphereNormal = normalize(vec3(textureCoordinateToUse - center, normalizedDepth));highp vec3 refractedVector = 2.0 * refract(vec3(0.0, 0.0, -1.0), sphereNormal, refractiveIndex);refractedVector.xy = -refractedVector.xy;highp vec3 finalSphereColor = texture2D(inputImageTexture, (refractedVector.xy + 1.0) * 0.5).rgb;// Grazing angle lightinghighp float lightingIntensity = 2.5 * (1.0 - pow(clamp(dot(ambientLightPosition, sphereNormal), 0.0, 1.0), 0.25));finalSphereColor += lightingIntensity;// Specular lightinglightingIntensity  = clamp(dot(normalize(lightPosition), sphereNormal), 0.0, 1.0);lightingIntensity  = pow(lightingIntensity, 15.0);finalSphereColor += vec3(0.8, 0.8, 0.8) * lightingIntensity;gl_FragColor = vec4(finalSphereColor, 1.0) * checkForPresenceWithinSphere;}
);
#else
NSString *const kGPUImageGlassSphereFragmentShaderString = SHADER_STRING
(varying vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform vec2 center;uniform float radius;uniform float aspectRatio;uniform float refractiveIndex;// uniform vec3 lightPosition;const vec3 lightPosition = vec3(-0.5, 0.5, 1.0);const vec3 ambientLightPosition = vec3(0.0, 0.0, 1.0);void main(){vec2 textureCoordinateToUse = vec2(textureCoordinate.x, (textureCoordinate.y * aspectRatio + 0.5 - 0.5 * aspectRatio));float distanceFromCenter = distance(center, textureCoordinateToUse);float checkForPresenceWithinSphere = step(distanceFromCenter, radius);distanceFromCenter = distanceFromCenter / radius;float normalizedDepth = radius * sqrt(1.0 - distanceFromCenter * distanceFromCenter);vec3 sphereNormal = normalize(vec3(textureCoordinateToUse - center, normalizedDepth));vec3 refractedVector = 2.0 * refract(vec3(0.0, 0.0, -1.0), sphereNormal, refractiveIndex);refractedVector.xy = -refractedVector.xy;vec3 finalSphereColor = texture2D(inputImageTexture, (refractedVector.xy + 1.0) * 0.5).rgb;// Grazing angle lightingfloat lightingIntensity = 2.5 * (1.0 - pow(clamp(dot(ambientLightPosition, sphereNormal), 0.0, 1.0), 0.25));finalSphereColor += lightingIntensity;// Specular lightinglightingIntensity  = clamp(dot(normalize(lightPosition), sphereNormal), 0.0, 1.0);lightingIntensity  = pow(lightingIntensity, 15.0);finalSphereColor += vec3(0.8, 0.8, 0.8) * lightingIntensity;gl_FragColor = vec4(finalSphereColor, 1.0) * checkForPresenceWithinSphere;}
);
#endif

二.效果演示

使用 GPUImageGlassSphereFilter 完成图像哈哈镜效果****,原图:

使用 GPUImageGlassSphereFilter 完成图像哈哈镜效果****:

三.源码下载

OpenGL ES Demo 下载地址 : IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter

四.猜你喜欢

  1. IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter
  2. IOS – OPenGL ES 调节图像曝光度 GPUImageExposureFilter
  3. IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter
  4. IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  5. IOS – OPenGL ES 调节图像伽马线 GPUImageGammaFilter
  6. IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
  7. IOS – OpenGL ES 调节图像褐色 GPUImageSepiaFilter
  8. IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter
  9. IOS – OpenGL ES 调节图像 RGB 通道 GPUImageRGBFilter
  10. IOS – OpenGL ES 调节图像不透明度 GPUImageOpacityFilter
  11. IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
  12. IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter
  13. GPUImage – 色彩直方图 GPUImageHistogramFilter
  14. GPUImage – 色彩直方图 GPUImageHistogramGenerator
  15. GPUImage – 像素平均色值 GPUImageAverageColor
  16. GPUImage – 亮度平均 GPUImageLuminosity
  17. IOS – OpenGL ES 调节图像色度 GPUImageHueFilter
  18. IOS – OpenGL ES 指定颜色抠图 GPUImageChromaKeyFilter
  19. IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter
  20. IOS – OpenGL ES 设置图像 lookup 滤镜 GPUImageLookupFilter
  21. IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter
  22. IOS – OpenGL ES 设置图像滤镜 GPUImageSoftEleganceFilter
  23. IOS – OpenGL ES 设置图像锐化 GPUImageSharpenFilter
  24. IOS – OpenGL ES 绘制十字 GPUImageCrosshairGenerator
  25. IOS – OpenGL ES 绘制线条 GPUImageLineGenerator
  26. IOS – OpenGL ES 设置图像黑白燥点 GPUImageLocalBinaryPatternFilter
  27. IOS – OpenGL ES 设置图像卡通效果(黑色粗线描边) GPUImageToonFilter
  28. IOS – OpenGL ES 桑原滤波/水粉画模糊效果 GPUImageKuwaharaFilter
  29. IOS – OpenGL ES 黑白马赛克效果 GPUImageMosaicFilter
  30. IOS – OpenGL ES 像素化马赛克效果 GPUImagePixellateFilter
  31. IOS – OpenGL ES 同心圆像素化马赛克效果 GPUImagePolarPixel
  32. IOS – OpenGL ES 黑白网状效果 GPUImageCrosshatchFilter
  33. IOS – OpenGL ES 色彩丢失/模糊效果 GPUImageColorPackingFilter
  34. IOS – OpenGL ES 图像晕影 GPUImageVignetteFilter
  35. IOS – OpenGL ES 图像漩涡 GPUImageSwirlFilter
  36. IOS – OpenGL ES 图像鱼眼扩散效果 GPUImageBulgeDistortionFilter
  37. IOS – OpenGL ES 图像鱼眼移动效果 GPUImageBulgeDistortionFilter
  38. IOS – OpenGL ES 图像凹面镜移动效果 GPUImagePinchDistortionFilter
  39. IOS – OpenGL ES 图像凹面镜放大效果 GPUImagePinchDistortionFilter
  40. IOS – OpenGL ES 图像哈哈镜效果 GPUImageStretchDistortionFilter
  41. IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter

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

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

相关文章

大数据下的中国女人,看完惊呆了

戳蓝字“CSDN云计算”关注我们哦!作者 | 辣道娘 转自 | 凯叔讲故事(ID:kaishujianggushi)这个时代的女人比任何一个时代更累。为什么这么呢?因为她们身兼多职。——凯叔美国国家统计局曾对各国劳动人口的总数和人口参…

IOS – OpenGL ES 图像球形折射 GPUImageSphereRefractionFilter

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

云漫圈 | 谈谈怎么做【服务隔离】

戳蓝字“CSDN云计算”关注我们哦!转自: 孤独烟引言OK,如下图所示那显而易见,做服务隔离的目的就是避免服务之间相互影响。毕竟谁也不能说自己的微服务百分百可用,如果不做隔离,一旦一个服务出现了问题&…

linux搭建SonarQube_Oracle

文章目录一、安装声明二、下载软件2.1. sonarqube2.2. sonar-scanner-cli三、SonarQube实战3.1. 解压3.2. 配置3.3. 环境变量3.4. 启动Sonarqube3.5. 访问Sonarqube四、SonarQube 整合Oracle4.1. 创建命名空间4.2. 创建用户和赋予权限4.3. 添加数据库配置4.4. 添加Oracle数据库…

IOS – OpenGL ES 图像色调分离噪点效果 GPUImagePosterizeFilter

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

数据解读京东上最受欢迎的面包

戳蓝字“CSDN云计算”关注我们哦!作者: 黄超 就职顶新集团智能科技公司 数据从业者前言什么样的面包品牌最好卖?什么样的口感最受欢迎?相信每一位喜欢面包的朋友都会关心这些问题。本文通过爬取京东面包类数据,一方面回…

linux 下载mysql5.7.22

一、软件下载方式 第一种方式: 下载到本地,再从本地上传服务器上 第二种方式(推荐使用): 使用wget软件链接直接下载到传服务器上 二、软件下载流程 官网地址 https://dev.mysql.com/downloads/mysql/ 第一种方式:点击即可…

IOS – OpenGL ES 图像CGA色彩滤镜 GPUImageCGAColorspaceFilter

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

大数据背后的无奈与焦虑:“128元连衣裙”划分矮穷挫与白富美?

戳蓝字“CSDN云计算”关注我们哦!作者: 刘丹我们通过卖东西收集数据,数据是阿里最值钱的财富。——马云春天万物复苏,沉睡了一个冬季的爱美之心呼之欲出,连衣裙在姑娘的心里发了芽,不过这次有些意外&#x…

Linux安装SonarQube和sonar-scanner详细安装及配置

文章目录技术选型一、快速入门1.1 上传、解压、创建用户、启动1.2 创建用户(elasticsearch不能以root用户启动),并赋予权限1.3 切换用户,启动SonarQube1.4. 浏览器验证二、配置数据库信息:2.1 编辑sonar.properties文件2.2 添加数据库信息&am…

IOS – OpenGL ES 图像柏林噪点/花边噪点 GPUImagePerlinNoiseFilter

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

win10 下安装、配置、启动mysql5.7

文章目录1. 下载MYSQL2. 解压文件3. 文件移动4. 新建my.ini5. 配置环境变量6. MYSQL安装7. my.ini配置1. 下载MYSQL 前期准备:安装链接: https://blog.csdn.net/qq_28569585/article/details/79072805 https://dev.mysql.com/downloads/mysql/5.7.html#d…

要闻君说:华为与故宫携手共建智慧紫禁城;央视315曝光瞄准大数据黑市;华为官宣称自己也有操作系统了;美国夸口启动6G研发?...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好!偶是要闻君。据说刚刚过去不久的315大曝光还真是“惊掉下巴”的节奏,这不要闻君也精选了一条,随着看看?文/要闻君近日&#x…

IOS – OpenGL ES 图像浮雕3d效果 GPUImageEmbossFilter

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

Spring精华问答 | Spring框架有哪些主要模块?

Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持。今天就让我们一起来看看关于Spring的精华问答吧。1Q:什么是Spring框架?Spring框架有哪些主要模块?A:Spring框架是一个为…

IOS – OpenGL ES 图像加亮边缘 GPUImage3x3ConvolutionFilter

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

IDEA 注释模板

文章目录一、 java 注释1. 类注释一、 java 注释 1. 类注释 类注释模板 创建类时会自动给添加注释 /***Deacription TODO*Author ${USER}*Date ${DATE} ${TIME}*Version 1.0**/路径 【File】-->【settings】-->【Editor】-->【File and Code Templates】-->【Fi…

云有约 | 蚂蚁金服bPaaS究竟是什么?

戳蓝字“CSDN云计算”关注我们哦!作者:孙浩峰去年9月,蚂蚁金服在杭州云栖ATEC发布了分布式金融核心套件bPaaS( Business Platform As a Service ),对外开放自身沉淀的“产品合约”、“资产交换”、“资产核…

IOS – OpenGL ES 图像马赛克圆点 GPUImagePolkaDotFilter

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