我实施的应用程序,iPad,iOS8.1 +快速/金属,仅景观
主视图有3个容器,左侧拉出/滑出/图标抽屉用于启动子过程
左侧幻灯片只包含图标,没有文字,如数据库访问,麦克风,模板叠加,视频录制,播放,iTunes,Dropbox,用户配置等
3个主要容器, 视图1将保持3d渲染模型,这将占用75%horz / vert
视图2将在视图1中保持渲染模型的2d侧投影(也称为侧视图或俯视图)
和
视图3将保存视图1或视图2中选择的某个详细子视图 或pdf文件 或网络容器
我担心线程,因为这个应用程序将异步拉入大量数据,通过gpu缓冲区渲染,然后通过airplay将结果推送到视频屏幕。
据说没有" Metal View Containers"但有GLKView,SceneKit为3d / 2d。
我需要定义3个通用容器视图并构建它们吗?或者这是另一种切断现有GLview for Metal的方法吗?
是否有人已经建造了这样的金属容器?
感谢任何积极的帮助。
答案 0 :(得分:0)
不,GLKView
和GLKViewController
并不适用于Metal,即使它们都在GPU上执行。如果使用金属,则必须创建自己的金属View
和金属ViewController
。这是因为OpenGL是使用CAEAGLLayer
完成的,而Metal是使用CAMetalLayer
完成的。我不知道是否有人这样做过。很可能Apple会在SDK的下一次迭代中创建这些类。
对于3容器,您可以创建3个单独的图层,但手动告诉金属绘制3个单独的部分效率更高。但是,这不是一件容易的事。
只要您在执行期间不弄乱Metal缓冲区数据,我认为您不必担心线程。传递给GPU时,不会复制(可能)Metal的缓冲区数据。复制OpenGL缓冲区数据。