jjzjj

ios - 使用 alpha 颜色绘制 Metal 三角形时颜色不正确。例如 (0.9,0.6,0,0.4)

vertexVertexline_vertex_main(deviceVertex*vertices[[buffer(0)]],constantUniforms&uniforms[[buffer(1)]],uintvid[[vertex_id]]){float4x4matrix=uniforms.matrix;Vertexin=vertices[vid];Vertexout;out.position=matrix*float4(in.position);out.color=in.color;returnout;}fragmentfloat4line_fragment_main(Vert

ios - 如何使用 Metal IOS 正确渲染 3d 模型?

我使用blender创建了一个3D对象并将其导出为OBJ文件,然后我尝试按照此http://metalbyexample.com/modern-metal-1使用Metal渲染它教程。但是我的一些3D对象部分丢失了。它们未正确呈现。这是我在blender中的3D对象:-这是我在Metal中渲染的对象:-这是我的blender文件:-https://gofile.io/?c=XfQYLK我应该如何解决这个问题?我已经成功渲染了一些其他形状,例如矩形、圆形、星形。但问题在于这种形状。我没有改变我创建形状的方式,也没有改变它从blender导出的方式。即使我以同样的方式做了所有事情,问题仍然

ios - 从 Metal 内核写入 32 位浮点纹理?文档说是,运行时说不

在检查Metal接口(interface)的GPGPU部分时,我在尝试从内核写入32位浮点纹理时遇到断言失败(编辑:在iPhone6上,使用iOS8.4.1):`Non-writabletextureformatMTLPixelFormatRGBA32Floatisbeingboundatindex2toashaderargumentwithwriteaccessenabled.'使用RG32Float和R32Float得到相同的结果。这似乎是错误的,因为:据我所知,thedocssayitshouldbesupported.(见链接页面上的表格。)片段着色器允许写入32位纹理(在iP

ios - 将 SkeneKit 场景捕获为视频

我将SceneKit与Metal(不是openGL)一起使用,并希望允许用户录制他玩游戏的视频。有什么想法可以将场景渲染成视频吗?(不需要录制场景音频,这样可能会更简单) 最佳答案 我想我会把它添加为答案:ReplayKit应该可以很好地完成这项工作,尽管它确实需要iOS9和支持Metal(A7或更高版本)的设备。我从未使用过它,但根据我对WWDC2015的内存,它只需要几行代码即可设置。网上有大量关于它的教程。Thisone似乎包括大多数位,例如开始和停止录制,以及在需要时从视频中排除界面对象。

ios - OpenGL - 计算着色器 - iOS - 选项?

我正在尝试实现一种自定义算法,该算法在给定点周围的指定半径处获取一系列像素。因为我想潜在地对1080p图像中的每个像素运行此算法,所以我认为与GPU并行化是一个不错的选择。问题是我需要让它在iOS上运行。我遇到了一个名为GPUImage2的有用iOS库,它允许一堆预定义的功能,但我现在遇到了障碍.据我所知,我不能在iOS中使用计算着色器?是我切换到使用Metal的唯一选择吗?我知道android支持ES3.1,但iOS没有这样的选项吗?我想我的另一个问题是;在这里使用计算着色器是正确的选择吗?我的想法是将一系列点分成线程组,然后让每个线程迭代半径点并执行计算,这样我就可以计算所有同时组

ios - 带有 BT.709 矩阵的 H.264 编码视频是否包含任何 Gamma 调整?

我已阅读BT.709spec很多次,只是不清楚的是编码的H.264比特流是否应该将任何Gamma曲线应用于编码数据?请注意在BT.709规范中特别提到了类似Gamma的公式。Apple提供了从CoreVideo提供的缓冲区读取YUV数据的OpenGL或Metal着色器示例,它们不进行任何类型的gamma调整。正在读取和处理YUV值,就好像它们是简单的线性值一样。我还检查了ffmpeg的源代码,发现在BT.709缩放步骤之后没有应用Gamma调整。我然后createdatestvideo只有两个线性灰度颜色5和26对应于2%和10%级别。当使用ffmpeg和iMovie转换为H.264时

ios - 使用 Metal 间接命令缓冲区时出错 : "Fragment shader cannot be used with indirect command buffers"

我正在开发一个基于Metal、MTKView的应用程序,它利用A11TBDR架构在单个渲染channel中执行延迟着色。我用的是苹果的DeferredLightingsamplecode作为引用,效果很好。我想尝试将几何缓冲区channel更改为GPU驱动,使用A11硬件上Metal2的间接命令缓冲区功能。我一直在使用Apple的EncodingIndirectCommandBuffersontheGPUsamplecode作为我的主要引用点。我可以在我的iPhoneXR上运行这个示例(尽管可能跑题了,滚动不流畅,它会抖动)。但是,当我尝试将我的几何缓冲区传递移动到间接命令缓冲区时,我

swift - ARKit 3 People Occlusion 是否仅限于 iPhone X 和更新版本?

我开始研究iOS13上新的PeopleOcclusion效果,所以我下载了sampleproject并尝试在我的设备上编译。在iOS13iPhone7Plus上运行,出现如下错误:2019-09-1113:49:41.257236-0300ARMatteExampleSwift[7298:1369425]MetalGPUFrameCaptureEnabled2019-09-1113:49:41.257845-0300ARMatteExampleSwift[7298:1369425]MetalAPIValidationEnabled2019-09-1113:49:41.589383-03

ios - MTLCreateSystemDefaultDevice 在 iOS 13 模拟器上返回 nil

我正在使用Xcode11GM种子(11A419c)。当我在iOS13模拟器上运行Metal代码并尝试访问使用MTLCreateSystemDefaultDevice()创建的Metal设备时,它返回nil。如果没有这个设备,Metal应该如何在模拟器上运行?XCode中是否有任何设置可以修复它?如果重要的话,我有运行MacOS10.14.6的MacbookProretina2012型号。 最佳答案 只有在macOSCatalina(10.15)或更高版本上运行时,Metal才能在iOS13和tvOS13模拟器中使用。这记录在Xcod

ios - 如何将 CVPixelBuffer 设置为顶点着色器的输入?

我想使用AppleMetal渲染路径来处理CVPixelBuffer。如何转换CVPixelBuffer使其符合顶点着色器的输入?不确定如何从CVPixelBuffer中提取颜色/位置值,以便我能够从主机设置它们。 最佳答案 这是我用来将CVPixelBuffer数据转换为Metal纹理的代码。#pragmamark-AVCaptureVideoDataOutputSampleBufferDelegate-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSamp