问题标签 [mtlbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
453 浏览

ios - 从通用 MTLBuffer 中读取内容?

在我的应用程序中,我有一个MTLBuffer正在使用泛型类型实例化的。在一种特定情况下,缓冲区将保存与点云中的粒子相关的值,并被定义为这样;

我正在实例化我的MTLBuffer喜欢;

然而,我正在努力的地方是了解如何读取缓冲区的内容。更重要的是,我希望将缓冲区中每个项目的一个元素复制到 CPU 上的一个数组中,稍后我将使用该数组。

实际上,缓冲区包含 的集合ParticleUniforms,我想访问position每个项目的值,将该位置保存到单独的数组中。

我在 Stack Overflow 上看到的所有示例似乎都显示MTLBuffer为持有一组浮点数,尽管我没有看到任何使用泛型类型的示例。

0 投票
0 回答
44 浏览

swift - 使用 void* 访问 MTLBuffer 内容

我正在尝试访问目标 C 中ARMeshGeometry缓冲区内容的内容。

到目前为止,我正在访问缓冲区的内容如下:

我在通过顶点时遇到内存访问错误,并且它似乎是随机的 - 或者当顶点数量大于 1500 时至少是随机的 - 。

我尝试使用Visualizing and Interacting with a Reconstructed Scene中提供的示例代码来做同样的事情:

它在 swift 中完美地工作,但在 Objective C 中却没有,我不知道为什么......

有什么帮助吗?

最好的,

0 投票
1 回答
180 浏览

gpgpu - 如何将动态大小的超大数组传递给 Metal Argument 缓冲区?

我有一个包含超过 100 万个结构实例的大型数组。大小实际上是动态的。它可以正常工作MTLBuffer,它似乎是金属着色器中的一个指针,我不必编写一些硬编码的大小或长度。

问题是,我不想为每一帧绑定或设置它。所以,我正在研究ArgumentBuffersand Heap。但是我没有为我的用例找到解决方案或示例。看起来 ArgumentBuffers 中数组中的所有内容都将占用一些插槽。这对我的大型阵列来说不是一个好主意。而且我没有找到在 ArgumentBuffers 中有指针的好例子。

毕竟,我的用例的最佳实践是什么?