metal

    2热度

    1回答

    我正在尝试使用SceneKit编写增强现实应用程序,并且我需要使用SCNSceneRenderer's unprojectPoint方法给出的2D像素和深度,从当前渲染帧准确的3D点。这需要x,y和z,其中x和y是像素坐标,通常z是从该帧处的深度缓冲区读取的值。 的SCNView的代表有这个方法来呈现深度帧: func renderer(_ renderer: SCNSceneRenderer,

    1热度

    1回答

    对于iOS应用程序,我将一些Objective-C代码转换为Swift。 Objective-C的代码使用的方法与此签名: + (nullable NSArray<MTKMesh*>*)newMeshesFromAsset:(nonnull MDLAsset *)asset device:(nonnull id<MTLDevice>)device sourceMeshes:(NSAr

    1热度

    2回答

    我需要从MDLMeshBufferData实例创建一个MTKMeshBuffer实例。这里是一个代码片段: let mdlm = MDLMesh(scnGeometry:sceneGeometry, bufferAllocator:nil) let mdlSubmesh:MDLSubmesh = mdlm.submeshes?[ 0 ] as! MDLSubmesh let mdlInde

    0热度

    1回答

    我是新来的苹果金属API和图形编程的一般。我正在慢慢构建一个游戏引擎,从UI开始。我的用户界面基于每个都有自己的子节点列表的节点。因此,如果我有一个带有三个“按钮”的子菜单的“菜单”节点,调用render(:MTLDrawable:CommandQueue),菜单将通过向队列提交一个命令缓冲区将自身呈现给drawable,然后使用相同的方法为其所有子节点调用相同的方法绘制和队列,直到整个节点树已经

    0热度

    2回答

    我写了一个方法来解析包含顶点数据的数组。该方法的目标是从该数据生成一个新的独特顶点阵列和一个新的索引。 这是我用来存储顶点在数组中的结构。 struct Vertex: Hashable { var x, y, z, nx, ny, nz, s, t: Float var hashValue: Int { return "\(self.x),\

    5热度

    1回答

    我正在使用Swift和Metal在GPU上进行图像处理的macOS项目。上周,我收到了我新的15英寸MacBook Pro(2016年末),并注意到我的代码有些奇怪:应该写入纹理的内核似乎没有这样做... 经过大量挖掘,我发现问题与金属(AMD Radeon Pro 455或英特尔(R)HD Graphics 530)使用哪种GPU进行计算有关。 初始化MTLDevice使用MTLCopyAllD

    1热度

    1回答

    我最近买了已故的2016年的MacBook Pro用的Radeon GPU 445,现在我在与运行在iOS和埃尔卡皮坦细内核函数麻烦Nvidia GPU。看来,3D纹理未在Z轴插补,即使我指定我的采样器是这样的: constexpr sampler s = sampler(coord::normalized, address::repeat, fil

    2热度

    2回答

    我已经能够创建一个MDLMesh并将其转换为SCNGeometry以在SceneKit中呈现。但是我没有能够在我的网格或几何图形中获得折痕支撑。 我只是想验证我正在采取正确的步骤为我的网格添加折痕支撑。 创建MDLSubmeshTopology 对于新的拓扑对象分配MDLMeshBuffers到edgeCreaseIndices,edgeCreases和Int到edgeCreaseCount性能。

    3热度

    1回答

    我使用的是金属在iOS与下面的片段着色器: constexpr sampler s(coord::normalized, address::clamp_to_zero, filter::linear); fragment half4 passThroughFragment(VertexInOut inFrag [[stage_in]],

    1热度

    1回答

    我正在尝试为Metal中的n大小的向量编写一个标准或平方长度函数。为此,我计划让每个线程平均每个元素,然后选择一个线程来总和所有元素。 这里是我当前的内核: #include <metal_stdlib> #include <metal_compute> using namespace metal; kernel void length_squared(const device float