我是靠谱客的博主 热心眼神,最近开发中收集的这篇文章主要介绍学习ios Metal(1)—工程化的metal框架设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        metal是苹果端设备的一个底层图形API,功能与opengl类似,支持图形渲染和GPU通用计算。而且苹果ios已经弃用opengles,metal将会成为ios的图形开发的唯一选择。metal的基础知识入门,首推Metal By Example系列:http://metalbyexample.com/。博主此后的相关文章,主要给出工程实际遇到的典型问题及其解决方案。

        网络教程往往只关注基础知识的讲解,对于工程化的框架设计没有涉及。自行开发metal相关的图形渲染项目,需要设计一个合适的框架组织metal图形API的代码。这里给出一个简易的框架设计项目,方便大家进行下一步的学习和实际开发,源码地址:https://github.com/sjy234sjy234/Learn-Metal/tree/master/HelloMetal。

        与opengl类似,metal的实现代码主要包括3个部分:context, view, renderer。其中,context类用于分配和维护device及其相应的library和commandQueue。view类提供一个继承于UIView的视图,提供支持metal渲染的layer,并提供触摸事件代理,方便图形界面交互的拓展。renderer类用来执行实际的绘制操作,所有的renderer实例都需要一个context实例进行初始化。

        此外,context中可以考虑加入一些图形相关的通用方法作为类方法,例如pixelBuffer转texture的方法等等。renderer是具体完成绘制操作的类,因此可以做很多的拓展,支持各种各样的绘制操作。可以考虑编写一个统一的基类renderer,而实现具体功能的renderer类都由该基类继承而来。

        源码地址已经给出,就不贴代码进行说明了,renderer的基类,博主有时间的时候会修改添加上去的。下面是绘制的两个三角形的效果。

                   

 

 

最后

以上就是热心眼神为你收集整理的学习ios Metal(1)—工程化的metal框架设计的全部内容,希望文章能够帮你解决学习ios Metal(1)—工程化的metal框架设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部