我可以发送一个数据数组作为顶点属性吗?
can I send an array of data as a vertex attribute?
我有一个 PointCloud
,我用它来可视化一些与时间相关的数据点。对于 PointCloud.Geometry 中的每个顶点,我想分配一个属性,它是一个纪元时间数组。
这些纪元时间是整数,例如:
epochTimes = [1432314839, 1432314840, 1432314841];
自定义属性如下所示:
attributes = {
epochTimes: { type: 'f', value: [] }
};
'f'
真的有用吗?
我看到了一些有趣的制服类型in the wiki,特别是uIntArray
,也就是iv1
。使用该数据类型作为属性时出现错误。它可能只保留给制服。
有什么方法可以将值数组作为属性分配给顶点?
这些类型的属性分配是 Three.js 特定的。如果你的数组中总是乘以三倍,你可以使用 vec3
类型。
attributes = {
epochTimes: { type: 'iv3', value: null } // 'iv3' specifies that attribute type is ivec3, like as 'f' specifies that it would be float type in the shader
};
有关更多代码和完整示例,请查看 http://threejs.org/examples/webgl_buffergeometry_custom_attributes_particles.html。
您可以尝试绑定其数据实际编码纪元时间的纹理,并在片段着色器中使用它。
为了回答您的问题,您能否将数据数组发送到顶点着色器 - 不能。 (相关主题 - Is it possible for a vertex attribute to be an array in GLSL-ES 2.0?)
我有一个 PointCloud
,我用它来可视化一些与时间相关的数据点。对于 PointCloud.Geometry 中的每个顶点,我想分配一个属性,它是一个纪元时间数组。
这些纪元时间是整数,例如:
epochTimes = [1432314839, 1432314840, 1432314841];
自定义属性如下所示:
attributes = {
epochTimes: { type: 'f', value: [] }
};
'f'
真的有用吗?
我看到了一些有趣的制服类型in the wiki,特别是uIntArray
,也就是iv1
。使用该数据类型作为属性时出现错误。它可能只保留给制服。
有什么方法可以将值数组作为属性分配给顶点?
这些类型的属性分配是 Three.js 特定的。如果你的数组中总是乘以三倍,你可以使用 vec3
类型。
attributes = {
epochTimes: { type: 'iv3', value: null } // 'iv3' specifies that attribute type is ivec3, like as 'f' specifies that it would be float type in the shader
};
有关更多代码和完整示例,请查看 http://threejs.org/examples/webgl_buffergeometry_custom_attributes_particles.html。
您可以尝试绑定其数据实际编码纪元时间的纹理,并在片段着色器中使用它。
为了回答您的问题,您能否将数据数组发送到顶点着色器 - 不能。 (相关主题 - Is it possible for a vertex attribute to be an array in GLSL-ES 2.0?)