metal相关内容

结果 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 移动开发

我可以在没有 Xcode 的情况下对 Apple Metal 图形进行编程吗?

是否可以仅使用编辑器和终端来编写 Metal 图形程序?如果是,那么最小应用程序的示例是什么? 我想尝试一些生成式编码,但没有 Xcode.我能够使用 OpenGL 编写小型 C 或 Python 程序,但它被 Apple 弃用让我考虑使用 Metal. 我可以使用 Swift 和一些头文件或类似的东西吗?还是我需要更多? 解决方案 您可以从命令行编译和运行使用 Metal 的 ..
发布时间:2021-06-02 20:37:22 移动开发

使用 SKRenderer 渲染文本

我在我的项目中初始化了 SKRenderer 以将它与金属一起使用.虽然我不确定我做得是否正确,但我需要知道如何使用它渲染简单的 2D 文本? 例如,这里是我们如何使用 SKLabelNode 绘制文本的方法,我们是否有类似的 SKRenderer 方法?非常感谢 让获胜者 = SKLabelNode(fontNamed: "Chalkduster")赢家.text = "你赢了!"赢家. ..
发布时间:2021-06-02 20:37:18 移动开发

如何创建由 CVPixelBuffer 支持的 MTLTexture

生成由 CVPixelBuffer 支持的 MTLTexture 的正确方法是什么? 我有以下代码,但它似乎泄漏: func PixelBufferToMTLTexture(pixelBuffer:CVPixelBuffer) ->纹理{var 纹理:MTLTexture!让宽度 = CVPixelBufferGetWidth(pixelBuffer)让高度 = CVPixelBuffer ..
发布时间:2021-06-02 20:36:57 移动开发

确切地说,我如何在后台线程上渲染 Metal?

这个问题是由用户界面交互引起的,例如在全屏时显示标题栏.该问题的答案提供了一个解决方案,但没有提供如何实施该解决方案. 解决方案是在后台线程上渲染.问题是,苹果提供的代码是为了覆盖很多内容,所以大部分都是无关代码,所以即使我能理解它,使用苹果的代码也是不可行的.我无法理解它,所以它只是简单的不是一种选择.如何使用尽可能简洁的后台线程制作简单的 Swift Metal 游戏? 以这个为例 ..
发布时间:2021-06-02 20:36:52 移动开发

没有界面生成器的Apple Metal

我正在为此绞尽脑汁.我一直在尝试复制Apple提供的初始金属项目,但完全不使用界面生成器.我可以创建一个窗口,但是它是空白的,没有任何渲染,我也不知道为什么. main.m #import#import"AppDelegate.h"int main(int argc,const char * argv []){@autoreleasepool {NSApp ..
发布时间:2021-05-31 18:57:41 移动开发

MacOS-运行时Vulkan在vkPhysicalDeviceFeatures wideLines = VK_TURE时vkCreateDevice()失败,并且也不支持vkCmdSetLineWidth API

我是Vulkan的新手,最近开始学习. 我正面临一个问题,当启用 VkPhysicalDeviceFeatures 时,在 vkCreateDevice()中运行失败 VkPhysicalDeviceFeatures功能{};features.wideLines = VK_TRUE;错误– [mvk错误] VK_ERROR_FEATURE_NOT_PRESENT:vkCmdSetLi ..
发布时间:2021-05-31 18:52:16 其他开发

iOS/金属:如何从深度缓冲区读取一点?

我想从深度缓冲区中读取内容.在OS X的GL中,我可以这样做: 浮动深度[2] [2];//获得2x2的双线性插值glReadPixels(s.x,s.y,/*宽度*/2,/*高度*/2,GL_DEPTH_COMPONENT,GL_FLOAT,深度); (请注意,在iOS上使用OpenGL ES时,您无法从深度缓冲区读取内容) Metal相当于什么? 看来我需要做: _ren ..
发布时间:2021-05-16 20:50:43 移动开发

Xcode日志记录:“启用金属API验证";

我正在通过Xcode构建一个macOS应用.每次构建时,我都会得到日志输出: 启用了金属API验证 据我所知,我的应用程序未使用任何Metal功能.我没有使用硬件加速的3D图形或着色器,视频游戏功能或类似功能. 为什么Xcode打印Metal API日志输出? 我的应用程序中正在使用Metal吗?我可以还是应该禁用它? 如何禁用此“启用金属API验证"日志消息? ..
发布时间:2021-05-16 20:08:52 移动开发

如何解决透视投影失真?

我是图形编程的新手.我从来没有意愿坐下来研读任何漫长的OpenGL教程,但是当Apple发布Metal时,我感到非常兴奋,从那以后我走了很长一段路.我了解所有矩阵数学背后的原因(尽管当然不是它们的推导方式),但我在投影时遇到了困难.使用正交投影矩阵时,没有深度,因此在这种情况下您最好放弃3D图形.但是,虽然起初我的透视投影效果不错,但是当我将立方体从投影中心移开时,我注意到了一些东西: 现在 ..
发布时间:2021-05-13 19:13:43 其他开发

最小矩阵尺寸可受益于GPU上的矩阵乘法

我对使用Metal Performance Shaders进行矩阵乘法特别感兴趣,但是有关其他框架的答案也很好. 矩阵乘法在理论上是高度可并行化的运算.我需要自己乘以A′A(撇号代表换位)的许多矩阵.矩阵A的大小约为4000 x300.考虑到这些矩阵的大小,我想知道是否值得将乘法代码移植到GPU.据我了解,在GPU上进行乘法运算还涉及将数据从主内存复制到GPU内存(我使用的是eGPU,因此不 ..
发布时间:2021-05-13 18:43:00 其他开发

如何以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 其他开发

LiDAR和RealityKit –捕获扫描模型的真实世界纹理

任务 我想 捕获 一个真实的纹理,并将其应用于借助LiDAR扫描仪生成的3D网格.我想应该使用Projection-View-Model矩阵.必须从固定的视点(例如从房间的中心)制作纹理.但是,如果我们可以应用场景中作为 cube-map 纹理收集的 environmentTexturing 数据,那将是一个理想的解决方案. 查看 3D扫描仪应用.这是一个参考应用程序,允许我们导出带有 ..
发布时间:2021-04-09 19:20:49 移动开发

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

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

SceneKit-从SCNView作为MTLTexture获取渲染的场景,而无需使用单独的SCNRenderer

我的 SCNView 使用的是Metal作为渲染API,我想知道是否有一种方法可以将渲染的场景作为 MTLTexture 来捕获,而不必使用单独的 SCNRenderer ?当我尝试通过 SCNView 显示场景并通过 SCNRenderer 将场景从屏幕外重新渲染为 MTLTexture 时,性能会下降.我正在尝试每帧抓取输出.) 通过 SCNView ,我可以访问它使用的 MTLDevic ..
发布时间:2020-12-01 06:48:55 移动开发