12得票1回答
这段代码如何在Swift中找到结构体的内存对齐大小?为什么它需要进行二进制运算?

我正在学习 Metal iOS Swift 的示例,试图理解他们建议的三倍缓冲实践。这在统一动画的演示中展示。 据我所知,对齐内存只是从设备喜欢的某些字节数量的倍数开始的特定增量。我的困惑在于这行代码:// The 256 byte aligned size of our uniform s...

12得票2回答
Metal - `include` 或 `import` 函数

能否将一个metal文件导入或包含到另一个metal文件中?比如我有一个包含所有数学函数的metal文件,只有在我的metal项目中需要时才会导入或包含它。这种做法可行吗? 我尝试过: #include "sdf.metal" 我遇到了错误: metallib:_Z4vmaxDv2...

12得票1回答
使用纯Metal-API与SceneKit或SpriteKit一同使用

我有一个SKView和MTKView在同一个应用程序中运行,到目前为止一切都很顺利。 唯一的问题是这两个视图的视觉整合很差。它们只是并排放置。但我想在SKView内部使用纯Metal渲染,并与其中的一些SKNode一起移动。这是SKView内部快速显示的一种方式。 在Metal方面,运行了...

12得票1回答
MTKView绘制性能

我想做什么 我正在尝试通过使用Metal视图:MTKView在相机视频上显示滤镜。我紧密跟随苹果的示例代码 - 利用TrueDepth摄像头数据增强实时视频 (链接)。 我现在拥有什么 以下代码效果很好(主要是从上述示例代码中解释而来): class MetalObject: NS...

12得票3回答
使用Metal Swift并行计算数组值的总和

我正在尝试使用Metal Swift并行计算大数组的总和。 有没有更好的方法? 我的计划是将数组分成子数组,在并行计算中计算一个子数组的总和,然后在并行计算完成时计算子总和的总和。 例如,如果我有array = [a0,....an] 我将数组分为子数组:array_1 = [a_0,...

12得票2回答
在构建iOS模拟器目标时忽略.metal文件

每当我构建一个包含金属着色器的项目到 x86_64 目标 (iOS 模拟器) 时,都会收到依赖分析警告: 警告: 没有处理源代码类型为 sourcecode.metal 的文件 '[文件路径]/Shaders.metal' 以供架构 x86_64 使用。 我知道这不是一个重大问题,但我希望...

12得票2回答
在Metal中如何使用多个模型?

这是一个绝对初学者的问题。 背景:我并不是一个游戏开发者,但我正试图学习低级别的三维编程基础,因为这是一个有趣且有意思的主题。我选择了苹果的Metal作为图形框架。我知道SceneKit和其他更高级别的框架,但我故意尝试学习低级别的部分。不幸的是,我深陷其中,似乎网络上没有很多面向初学者的M...

12得票5回答
如何使用UnsafeMutableRawPointer填充数组?

我有一张金属质感的纹理,我想通过将其转换为float4数组来从Swift中访问其数据(以便我可以访问每个像素4个颜色组件)。我发现了这个 MTLTexture 的方法:getBytes(UnsafeMutableRawPointer, bytesPerRow: Int, bytesPerIma...

11得票1回答
使用initWithVertexBuffers进行MDLMesh对象的程序化生成

如果您正在使用iOS Metal,并且有自定义的编程对象模型,而且(像我一样)您的模型在Metal2和iOS 11出现后停止工作,那么您可能已经开始研究如何以编程方式生成MDLMesh。 苹果文档称:“通常情况下,您通过遍历MDLAsset对象的对象层次结构来获得网格,但您也可以从自己的顶点...

11得票4回答
iOS12导致Metal命令缓冲区执行出错,渲染效果不佳或者无法正常进行。

我们有一个使用Metal渲染的应用程序。该应用程序在运行iOS11的设备上工作正常。当在运行iOS12的设备上使用相同的应用程序时,我们开始在渲染中遇到故障和卡顿。我们也尝试重新编译iOS12版本,但是出现了相同的错误行为。在控制台上,我们得到了以下不同的消息: 2018-09-22 0...