OpenGL ES之Swift使用GLSL语言渲染图片的显示
【摘要】
整体思路
一、GLSL和iOS
本片主要使用编译链接自定义的shader(顶点着色器/片元着色器)。用简单的GLSL语言来实现顶点、片元着色器,并对图形进行简单的变换。
OpenGL ES只是用...
整体思路
一、GLSL和iOS
- 本片主要使用编译链接自定义的shader(顶点着色器/片元着色器)。用简单的GLSL语言来实现顶点、片元着色器,并对图形进行简单的变换。
- OpenGL ES只是用来做渲染的,所iOS要提供一个载体,就是CAEAGLLayer,创建的方法是,通过重写UIView的类属性(OC中是类方法)返回CAEAGLLayer.self。它是一个对core animation的封装,它能满足所有的OpenGLES的方法访问。
- CAEAGLLayer:在制定该图层关联的视图作为渲染器的目标图形上下文之前,可以使用drawableProperties属性更改呈现属性。此属性允许您配置呈现表面的颜色格式以及表面是否保留其内容。 因为OpenGL ES渲染的效果是要提交到用户使用的核心动画上,所以使用在该layer上的任何效果和动画都会影响渲染的3D效果,为了时性能最佳你应该做一下操作:设置图层为不透明,设置图层边界以匹配显示的尺寸,确保图层没有做变换。
- 尽量避免在CAEAGLLayer添加其layer。如果必须要添加其他非OpenGL内容,那么如果将透明的2D内容置于GL内容之上,并确保OpenGL内容是不透明的且没有转换过,那么性能还是可以接受的。当在竖屏上绘制横向内容时,应该自己旋转内容,而不是使用CAEAGLLayer转换来旋转它。
二、GLSL实现图片渲染的思路
- 创建图层:重写layerClass,将YDWView返回的图层从CALayer替换成CAEAGLLayer,并设置描述属性;
- 创建上下文ÿ
文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Forever_wj/article/details/107704688
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)