10得票1回答
如何创建一个由CVPixelBuffer支持的MTLTexture

如何正确生成由CVPixelBuffer支持的MTLTexture? 我有以下代码,但似乎会导致内存泄漏: func PixelBufferToMTLTexture(pixelBuffer:CVPixelBuffer) -> MTLTexture { var texture:...

8得票1回答
除了metal着色器文件中的顶点|片段|内核外,其他函数的语法

我正在将一些基本的OpenCL代码移植到Metal计算着色器中。在尝试转换杂项辅助函数时遇到了困难。例如,在.metal文件中包含以下函数会导致Xcode(7.1)给出“函数没有先前的原型”的警告: float maxComponent(float4 a) { return fmax...

75得票1回答
现实套件 vs 场景套件 vs 金属 - 高质量渲染

我正在开发一款iOS应用程序,我打算在AR中显示逼真/高质量的渲染效果。在尝试这三个选项时,我仍然不确定应该选择哪一个来开发我的应用程序框架:SceneKit、RealityKit和Metal。 我已经了解到SceneKit是建立在Metal之上的,但我不确定是否值得花费时间/精力编写任何自...

9得票3回答
如何在Swift中导入Metal?

每当我试图在Swift文件或播放器中导入Metal时,Xcode都会显示“没有这个模块'Metal'”。这是Beta 1的一个bug吗?

9得票1回答
Metal / UIKit与.presentsWithTransaction的同步问题

CAMetalLayer的Apple文档说明属性presentsWithTransaction是: 一个布尔值,用于确定该图层是否使用Core Animation事务呈现其内容。 由于我正在使用UIKit来驱动一些Metal动画(类似于Apple在WWDC 2012会议中建议OpenG...

7得票1回答
使用Xcode调试Metal计算着色器

在苹果公司2018年WWDC会议上的“Metal Shader Debugging and Profiling” session中,演讲人详细介绍了当时全新的Metal调试工作流程。然而,在演示中他们没有深入研究计算着色器,只是简要提及了在调试计算内核时出现的选项,并集中精力于顶点和片段着色器...

10得票2回答
手动编译Metal着色器

我有兴趣远离Xcode,在一个混合语言应用程序的项目中手动编译Metal着色器。 我不知道怎么做。Xcode隐藏了着色器编译的细节以及在运行时将其加载到应用程序中(只需调用device.newDefaultLibrary())。这是否可行,还是我必须使用运行时着色器编译来实现我的目的?

10得票1回答
如何为SceneKit预编译PBR着色器?

我注意到如果你有一个空场景,然后加载一个带有物理基础光照的3D模型,对象出现时会有一点卡顿。如果我在此之后添加另一个对象,则不会发生这种卡顿。 通过分析器,可以看出默认的PBR着色器正在编译第一帧缓慢的画面。是否可能预编译这些着色器,以便在第一次渲染模型时不会发生这种情况? 类似的问题已经...

9得票1回答
SceneKit - 在着色器修改器中访问目标颜色以进行混合

有没有一种方法可以在Metal着色器修改器中访问最后一个片段颜色(目标颜色),类似于中的?我的目标是使用着色器修改器执行自定义混合(在我的情况下,SceneKit的不足够)。目前,我正在使用3个传递的来实现这一点(渲染目标,渲染源,合并),这对我来说似乎是一个重大的过度杀伤+很难有几个混合组而...

7得票1回答
金属视图(MTKView)绘制尺寸问题

我这里有一个MTKView,在摄像头输入的简单CIFilter下运行。这个很正常。 问题 在旧设备(例如iPhone 5、iPad Air)的自拍摄像头上,输入的画面被缩小了。 更新:当这种情况发生时,传递给MTKView的CMSampleBuffer大小会变小。 我猜每次更新中的纹理需要...