我收到错误:
THREE.ShaderMaterial:现在应该在THREE.BufferGeometry中定义属性 THREE.ShaderMaterial:'属性'不属于这种材料的属性。
我想知道发生了什么。
我曾经用一些属性制作缓冲几何。我从来没有弄清楚为什么需要它,但我注意到我需要"键入"它的种类很多,要让三个与着色器连接起来。
{
attributes: {
aSomeAttribute:{
type: 'v3',
value:null
}
}
}
我试图找出material.prototype.setValues(参数)的作用。从我看到它传递给材料的参数({vertexShader:...,制服:...})并在遇到属性时去疯狂。
答案 0 :(得分:1)
现在,您可以仅对从THREE.BufferGeometry继承的几何应用自定义属性,例如,如果它是球体,则使用THREE.SphereBufferGeometry而不是THREE.SphereGeometry。然后创建属性数组并将其添加到几何体中,这要归功于THREE.BufferGeometry。之后,您将能够在着色器中使用属性。您可以找到示例here。