7得票1回答
如何将SCNRenderer与现有的MTLCommandBuffer结合起来?

我将Vuforia SDK图像目标跟踪特性成功地整合到了iOS项目中,通过将SDK提供的OpenGL上下文(EAGLContext)与SceneKit的SCNRenderer实例相结合。这使我能够利用SceneKit的3D API的简单性,同时又从Vuforia的高精度图像检测中受益。现在,我...

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

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

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

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

11得票1回答
如何在Xcode中调试iOS的Metal内核?

我用着色语言编写了金属内核(.metal)。但它的效果不如我所预期,因此我考虑进行调试,并遵循Metal技巧和技术进行调试。我调用了MTLCommandQueue的insertDebugCaptureBoundary方法来通知Xcode进行调试。 但仍然无法像在CPU中那样调试代码的GPU部...

7得票3回答
为什么在将SCNProgram应用于SceneKit节点时,金属着色器渐变会比在MTKView中表现出来的更浅?

我有一个渐变,由我应用于平面几何定义的SCNNode的Metal片段着色器生成。 它看起来像这样: 使用相同的着色器(Shader)应用于在Xcode Playground中渲染的MTKView时,颜色会变暗。 造成SceneKit版本颜色较浅的原因是什么? 这是金属着色器和Ga...

10得票1回答
Metal中使用的坐标系是什么?

在Metal中,在着色器内部使用什么坐标系(输入和输出)?当我们渲染到纹理时,是否相同?深度缓冲区也是如此吗?是否存在任何不一致性?最后,Metal、OpenGL和DirectX之间有什么区别?

17得票3回答
iOS的Metal编译错误

import UIKit import Metal import QuartzCore class ViewController: UIViewController { var device: MTLDevice! = nil var metalLayer: CAMetalLayer! =...

9得票2回答
如何释放MTLBuffer和MTLTexture的内存空间

我知道如何创建MTLBuffer和MTLTexture,但是当这些资源不再需要时,如何释放GPU内存呢?

7得票1回答
GLSL - `out`在参数中的含义

我正在学习GLSL和CG,现在遇到了这段代码: float trace( vec3 origin, vec3 direction, out vec3 p ) //<-- What is "out"? { float totalDistanceTraveled = 0.0; ...

7得票2回答
在使用Metal的旧设备上,内存使用量不断增加。

我使用 Metal 和 CADisplayLink 实时过滤一个 CIImage 并将其渲染到 MTKView 中。 // Starting display link displayLink = CADisplayLink(target: self, selector: #selector...