metalkit相关内容

纹理ARMesh来自ARKit相机框架的几何图形?

这个问题在一定程度上建立在thisPOST的基础上,其中的想法是从带有LiDAR扫描仪的iOS设备中获取ARMeshGeometry,计算纹理坐标,并将采样的相机帧作为给定网格的纹理应用,从而允许用户创建其环境的照片级真实感和3D表示。 根据该帖子,我调整了其中一个响应来计算纹理坐标,如下所示; func buildGeometry(meshAnchor: ARMeshAnchor, ..
发布时间:2022-04-14 11:46:17 其他开发

绘制到 MTKView 或 CAMetalLayer 是否需要在主线程上进行?

众所周知,更新AppKit 或UIKit 中的用户界面需要在主线程上进行.Metal 在呈现 drawable 时是否有相同的要求? 在我一直在玩的层托管 NSView 中,我注意到我可以从 dispatch_queue 调用 [CAMetalLayer nextDrawable] 不是 main_queue.然后我可以像往常一样更新该 drawable 的纹理并呈现它. 这看起来工作 ..
发布时间:2021-11-16 20:26:06 其他开发

使用 Metal 对 SceneKit 渲染进行抗锯齿处理

我是 Metal 的新手.我正在使用 此 Apple 示例代码渲染带有 Metal 的 SceneKit 场景.TLDR;它调用 SCNRenderer's render 函数并传入命令缓冲区.我正在为 Big Sur 编译. 它有效,但没有抗锯齿.我已经尝试了几种方法来实现它,您可以在下面的更新中看到. 如果没有 Metal,我只需在 SCNRenderer 上将 isJitteri ..
发布时间:2021-06-02 20:37:53 其他开发

结果 MTLTexture 比 CGImage 轻

我有内核函数,它必须将从 pixelBuffer(ARFrame.capturedImage) 创建的 Y 和 CbCr 纹理转换为 RGB 纹理,就像在苹果指南中一样 https://developer.apple.com/documentation/arkit/displaying_an_ar_experience_with_metal但我克服了光照纹理 kernel void render ..
发布时间:2021-06-02 20:37:29 移动开发

金属中的混合模式

这是我在 OpenGL 中使用的两种混合模式,IOS 中的金属转换是什么 glEnable(GL_BLEND);glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_ONE,GL_ONE_MINUS_SRC_ALPHA);glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_SRC_ALPHA, ..
发布时间:2021-06-02 20:37:25 移动开发

如何以bgra8Unorm像素格式绘制MTLTexture

当我使用 rgba32Float 像素格式的 MTLTexture 绘制代码时,我的代码可以正常工作,然后可以从其中删除 CVPixelBuffer . 但是 FlutterTexture 需要 bgra8Unorm 格式.由于性能开销,我不想转换 CVPixelBuffer . 因此,我尝试使用 bgra8Unorm 像素格式在 MTLTexture 上进行渲染,但是以下片段着色器代 ..
发布时间:2021-05-08 20:15:51 移动开发

在MacOS中使用AVFoundation和Metal的帧速率非常慢

我正在尝试将Apple的 AVCamFilter 示例修改为MacOS.过滤似乎有效,但是通过Metal渲染处理后的图像使我获得了每帧几秒钟的帧速率.我尝试了不同的方法,但已经停留了很长时间. 这是项目 AVCamFilterMacOS -任何对AVFoundation with Metal有更好了解的人都可以告诉我怎么了?我一直在阅读文档,并练习如何显示未处理的图像,以及将其他模型(如模型 ..
发布时间:2021-04-12 20:47:43 其他开发

是否需要在主线程上绘制MTKView或CAMetalLayer?

众所周知,需要在主线程上更新 AppKit 或 UIKit 中的用户界面.在呈现 drawable 时,Metal是否有相同的要求? 在我一直在玩的图层托管的 NSView 中,我注意到可以从 dispatch_queue调用 [CAMetalLayer nextDrawable] 而不是 main_queue .然后,我可以照常更新该drawable的纹理并将其呈现. 此似乎可以正常 ..
发布时间:2021-04-09 18:48:34 其他开发

如何以编程方式获取最大纹理大小(宽度和高度)

如何以编程方式获得金属的最大纹理大小(宽度和高度)?使用openGL我可以做到:glGetIntegerv(GL_MAX_TEXTURE_SIZE, ...)但是如何用Metal做到这一点? 解决方案 当前没有用于检索Metal设备最大纹理尺寸的API.您应该参考金属功能集表,并而是将其添加到您的应用中. 对于运行当前版本的iOS/tvOS/iPadOS的A9和更新的GPU,2D纹理 ..
发布时间:2020-12-01 01:46:39 移动开发

用"const constant"声明变量的目的是什么?

在Metal shader中,声明像const constant Vertex *vertexArray [[buffer(0)]]这样的变量的目的是什么(我指的是const constant)?为什么仅靠常数还不够?另外,constant和const有什么区别? 以同样的方式const device和constant有什么区别? 解决方案 const是类型限定符. constant ..
发布时间:2020-06-30 20:51:27 移动开发

在draw()循环中重复使用currentDrawable.texture时,MTKView混合问题

我正在一个金属支持的绘画应用程序中,将笔画分为两步:第一步将笔画的前边缘绘制到屏幕上,并通过以下方式将其捕获到MTLTexture中: metalTextureComposite = self.currentDrawable!.texture 第二步绘制前进笔触的更新前缘,并在使用最后保存的metalTextureComposite纹理化的多边形上进行合成. 这种方法使我可以画出无 ..
发布时间:2020-05-09 02:08:14 其他开发

金属阴影语言中平移手势上纹理的重新排列

我是金属着色语言的新手,所以您的友好指导会非常有帮助. 我只是使用金属重复纹理,如下图所示 (图像序列). 但是它似乎不平滑.我如何使其像下面的金属点链接一样显示为平滑线.(此刻,我要做的是在手势的每个触摸点为顶点缓冲区(MTLBuffer)分配内存. 代码: func allocateMemoryForVetexBuffer(vertices: Array){ ..
发布时间:2020-05-09 02:08:06 移动开发

金属中使用的坐标系是什么?

在金属中,在着色器内部(输入和输出)使用什么坐标系?当我们渲染到纹理时是一样的吗?用z缓冲区也可以吗?是否有任何不一致之处?最后,metal,opengl和directX有什么区别? 解决方案 金属坐标系 金属定义了几个标准坐标系以表示转换后的图形数据 渲染流程的不同阶段. 1)NDC(标准化设备坐标):开发人员可以使用此坐标来构造其几何形状,并通过模型和视图矩阵在顶点着色器中 ..
发布时间:2020-05-09 02:08:04 其他开发

在iPhone 6s的Swift 3中设置Metal

我一直在尝试转换Apple的 MetalBasicTessellation validateAttachmentOnDevice:347: failed assertion `MTLRenderPassDescriptor texture must be MTLTextureType2DMultisample when using a resolveTexture.' 我已经正确设置了ren ..
发布时间:2020-05-09 02:07:47 其他开发