草庐IT

template-metal

全部标签

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

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

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

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

iphone - 按下特定选项卡时无法隐藏 TabBar [Tab Bar Application]-template

开发者!我目前正在开发一个使用标签栏应用程序模板的应用程序。我想做什么是模拟与第一个选项卡对应的我的应用程序的起始页。因此,当应用程序启动时,第一个选项卡被选中并且UITabBar不应该可见。在这个“开始View”中有多个按钮,它们的作用与其他选项卡类似,例如,我按下按钮#2,第二个选项卡View被按下,UITabBar再次可见。我的问题是我有办法隐藏栏,但subview没有调整到全屏。通过使用:[self.tabBarController.tabBarsetHidden:YES];我也试过使用:self.hidesBottomBarWhenPushed=YES;但它似乎没有效果,我不

ios - iOS Metal 中的透视正确纹理映射

我尝试了各种方法来进行插值并生成透视正确的图像,但建议的方法均无效。我当前的代码是:structVertexStruct{float4normalizedPosition[[position]];float4texCoord;}vertexVertexStructtestVertex(devicefloat4*vertices[[buffer(0)]],uintvid[[vertex_id]]){VertexStructoutVertices;outVertices.normalizedPosition=...;outVertices.texCoord=float4(vertices[

IOS 9, iPhone 6S plus, metal, 无法链接到函数frex

IOSmetal的新手,我正在尝试编写内核。我的函数需要链接到frexp函数。不幸的是,我的内核引用了frexp函数将无法编译。floatexponent=0.0;floatmantissa=frexp(value,exponent);Metal文档将函数协议(protocol)列为:Tfrexp(Tx,Ti&exp)我能够编译成其他类似的数学函数,例如exp、exp2、exp10、ldexp。有没有人能够链接到Metal的frexp函数?或者知道如何查看metal_math包含文件以查看编译器引用的frexp协议(protocol)?谢谢! 最佳答案

ios - 'read' 中没有名为 'metal::texturecube' 的成员

根据Apple'sMetalshadinglanguagespecification,纹理立方体有一个读取方法,read(uint2coord,uintface,uintlod=0)const但是,当我尝试构建此着色器时,出现编译错误,fragmenthalf4passFragment(VertexInOutinFrag[[stage_in]],texturecubetex[[texture(0)]]){float4out=tex.read(uint2(0,0),uint(0));returnhalf4(out);}错误是,Nomembernamed'read'in'metal::te

ios - 如何在 Metal 中使用 texture2d_array 数组?

我一直在尝试使用texture2d_array来应用Metal中的实时滤镜。但我没有得到正确的结果。我是这样创建纹理数组的,代码:ClassMetalTextureArray。classMetalTextureArray{private(set)vararrayTexture:MTLTextureprivatevarwidth:Intprivatevarheight:Intinit(_width:Int,_height:Int,_arrayLength:Int,_device:MTLDevice){self.width=widthself.height=heightlettexture

iOS/Metal : how to read from the depth buffer at a point?

我想从深度缓冲区中读取。在OSX上的GL中我可以这样做:floatdepth[2][2];//get2x2forbilinearinterpolationglReadPixels(s.x,s.y,/*width*/2,/*height*/2,GL_DEPTH_COMPONENT,GL_FLOAT,depth);(请注意,使用iOS上的OpenGLES时,您无法从深度缓冲区中读取数据)Metal的等价物是什么?看起来我需要做:_renderPassDescriptor.depthAttachment.storeAction=MTLStoreActionStore;然后以某种方式通过CPU

【云原生技术】云计算与网络:裸金属服务器(Bare Metal Server,简称BMS)简介

【云原生技术】云计算与网络:裸金属服务器(BareMetalServer,简称BMS)简介裸金属服务器(BareMetalServer,简称BMS)是云计算领域的一种服务,提供给客户独占使用的物理服务器。与传统的虚拟化云服务器不同,裸金属服务器为用户提供了对整个物理服务器的直接访问,无需虚拟化层。这种服务器类型特别适用于对性能、安全性和可控性有高要求的应用。以下是关于裸金属服务器的详细介绍:裸金属服务器,又不仅限于物理服务器,它是物理服务器和云服务的结合。“裸金属”,意味它不包括相应的操作系统和软件,这个是客户后期自选配置的。大部分云服务提供商的裸金属服务器产品,不提供本地硬盘(可以支持),主

ios - GLM数学库是否与Apple的 Metal 着色语言兼容?

我即将将利用C++编写的OpenGL的iOS应用移植到Apple的Metal。目标是完全摆脱OpenGL,并用Metal取代它。OpenGL代码是分层的,我试图替换渲染器,即实际调用OpenGL函数的类。但是,整个代码库都使用GLM数学库来表示向量和矩阵。例如,有一个摄像机类提供视图和投影矩阵。它们都为glm::mat4类型,并被简单地传递到GLSL顶点着色器,在这里它们与GLSL给出的mat4数据类型兼容。我想利用该相机类,因为它将这些矩阵发送到Metal顶点着色器。现在,我不确定glm::mat4是否与Metal的float4x4兼容。我没有一个可以在其中进行测试的有效示例,因为我