一、整体思路
① GLSL 和 iOS
- 本篇主要使用编译链接自定义的 shader(顶点着色器/片元着色器),用简单的 GLSL 语言来实现顶点、片元着色器,并对图形进行简单的变换。
- OpenGL ES 只是用来做渲染,所以 iOS 要提供一个载体,就是 CAEAGLLayer,创建的方法是,通过重写 UIView 的类属性(OC 中是类方法)返回 CAEAGLLayer.self,它是一个对 core animation 的封装,它能满足所有的 OpenGL ES 的方法访问。
- CAEAGLLayer:在制定该图层关联的视图作为渲染器的目标图形上下文之前,可以使用 drawableProperties 属性更改呈现属性。此属性允许您配置呈现表面的颜色格式以及表面是否保留其内容。 因为 OpenGL ES 渲染的效果是要提交到用户使用的核心动画上,所以使用在该 layer 上的任何效果和动画都会影响渲染的 3D 效果,为了时性能最佳你应该做一下操作:设置图层为不透明,设置图层边界以匹配显示的尺寸,确保图层没有做变换。
- 尽量避免在 CAEAGLLayer 添加其 layer,如果必须要添加其他非 OpenGL 内容,那么如果将透明的 2D 内容置于 GL 内容之上,并确保 OpenGL 内容是不透明的且没有转换过,那么性能还是可以接受的。当在竖屏上绘制横向内容时,应该自己旋转内容,而不是使用 CAEAGLLayer 转换来旋转它。
② GLSL 实现图片渲染的思路
- 创建图层:
超级会员免费看
本文介绍如何在iOS中结合OpenGL ES和Swift,利用GLSL语言实现自定义着色器来渲染和显示图片。内容涵盖GLSL与iOS的关系、图片渲染思路、渲染流程,包括创建图层、上下文、清空缓存区、设置RenderBuffer和FrameBuffer等步骤。
订阅专栏 解锁全文
1450

被折叠的 条评论
为什么被折叠?



