【发布时间】:2021-09-16 08:18:04
【问题描述】:
我在 SceneKit 中使用 SCNShadable's 着色器修改器。我想传递一个浮点向量数组(float3's)。
在 SCNShadable 文档中,在 “为着色器修改器提供自定义输入”部分下,下表显示了数据类型转换:
要将值传递给着色器,必须将值包装为指定类型之一。似乎不支持数组类型,但仅支持 NSValue、NSNumber 或 SCMaterialProperty 类型。
在着色器中,您还需要定义您传递的类型。例如,我可能希望定义如下内容:
uniform vec3 points[100];
真的不能传一个float数组来初始化这个uniform吗?
否则,我认为也许可以将 float3 数组作为纹理存储在 SCNMaterialProperty 类型中并传递它。但是,我不确定如何访问着色器中的各个 float3 值。
以下是我看到的其他可能相关的类似问题:
SceneKit shader modifiers with GLSL arrays
Is it possible to pass a float array to an iOS SceneKit vertex shader modifier?
【问题讨论】:
标签: swift glsl shader scenekit metal