OpenGLES
文章平均质量分 63
正在注销账号
等风来不如追风去~
展开
-
OpenGLES(八)GPUImage滤镜链与将滤镜修改后的图片保存到相册
1.滤镜链在一个复合滤镜中,多种滤镜效果处理时,通常都是图片 -> 设置顶点/纹理坐标 -> 滤镜效果处理 -> 帧缓冲区 -> 新的纹理 -> 滤镜效果处理 -> 帧缓冲区 -> 新的纹理。此过程就是滤镜链。思考:那如何将滤镜处理完之后存到帧缓冲区,并生成纹理的呢?2.滤镜处理 -> 帧缓冲区 -> 新的纹理 -> 相册2.1 步骤根据屏幕上的显示,重新获取顶点坐标和纹理坐标,并生成新的纹理(将纹理加载到帧缓冲区中)- 根据屏幕原创 2020-08-16 17:13:32 · 713 阅读 · 1 评论 -
OpenGLES(七)使用GLSL实现滤镜效果之动态滤镜
(图片暂时不方便用,后期补上GIF动态图)普通图片加载的顶点着色器和片元着色器代码如下:顶点着色器://顶点坐标attribute vec4 Position;//纹理坐标attribute vec2 TextureCoords;//需要传入片元着色器的纹理坐标varying vec2 TextureCoordsVarying;void main (void) { gl_Position = Position; TextureCoordsVarying = Texture原创 2020-08-13 22:37:07 · 1023 阅读 · 1 评论 -
OpenGLSL初探(六)使用GLSL实现滤镜之灰度滤镜、正方形马赛克滤镜、六边形马赛克滤镜和三角形马赛克滤镜
此博客只为记录滤镜的算法,所以修改的只是片元着色器代码注:具体代码请查看上一篇博客:https://blog.csdn.net/weixin_40918107/article/details/1077488651. 准备工作创建顶点着色器和片元着色器加载着色器,并链接创建图层和上下文清空缓冲区,并设置渲染缓冲区与帧缓冲区开始绘制2.滤镜的实现2.1灰度滤镜...原创 2020-08-11 22:30:00 · 818 阅读 · 0 评论 -
OpenGLES初探(五)GLSL使用索引绘图并开启颜色和图片混合
使用语言是Swift效果图:步骤与绘制图片的步骤基本一致,所以引用了上一篇文章中步骤图。自定义顶点着色器和片元着色器顶点着色器文件名:shaderv.glslattribute vec4 position;attribute vec4 positionColor;attribute vec2 textCoordinate;uniform mat4 projectionMatrix;uniform mat4 modelViewMatrix;varying lowp vec4原创 2020-08-02 18:47:29 · 572 阅读 · 1 评论 -
OpenGLES初探(四)Swift将GLKit中矩阵传递给glUniformMatrix4fv
此代码使用的Swift4//在GLSL文件中获取投影矩阵let projectionMatrix = glGetUniformLocation(self.myProgram, "projectionMatrix")//初始化一个投影矩阵,并赋值单元矩阵var _projectionMatrix : GLKMatrix4 = GLKMatrix4Identity //设置透视投影 _projectionMatrix = GLKMatrix4MakePerspective(GLKMath原创 2020-08-02 17:51:27 · 509 阅读 · 1 评论 -
初探OpenGLES(三) - 使用GLSL加载图片
本案例是使用OC语言完成的。一、步骤总的来说就6个步骤:创建⼀个顶点着⾊器对象和⼀个⽚段着⾊器对象将源代码链接到每个着⾊器对象编译着⾊器对象创建⼀个程序对象将编译后的着⾊器对象连接到程序对象链接程序对象二、 使用到的方法解析1.glCreateShader创建着色器//type — 创建着⾊器的类型,GL_VERTEX_SHADER 或者GL_FRAGMENT_SHADER //返回值 — 是指向新着⾊器对象的句柄.GLuint glCreateShader(GLenum t原创 2020-07-30 22:25:46 · 1258 阅读 · 1 评论 -
初探OpenGLES(二) GLSL在iOS中的初次使用
GLSL语言简介OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言。简而言之,就是可以自定义编写顶点着色器和片元着色器的语言。GLSL官方手册http://www.opengl.org/sdk/docs/man/GLSL指南 http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf在xcode中不支持GLSL语言对顶点/片元着色器的编译和连接,因此需要在项目中创建.vsh和.f原创 2020-07-28 20:56:42 · 447 阅读 · 0 评论 -
初探OpenGLES(一) GLKit常见API与使用
GLKitGLKit框架的设计目的是为了简化基于OpenGL/OpenGL ES的应用开发,加快了OpenGL/OpenGL ES应用程序开发1.GLKit功能提供高性能的数学运算(Math libraries):提供常用的向量,四元数和矩阵运算。加载纹理(Texture loading):允许加载各种纹理,且可以后台加载,通过GLKTextureLoader类来加载。提供常见的着色器(effect):包含以下3种着色器(GLKBaseEffect,GLKReflectionMapEffect,原创 2020-07-26 15:34:36 · 502 阅读 · 1 评论