three.js r73着色器材质属性

时间:2015-12-02 18:31:29

标签: three.js

我收到错误:

  

THREE.ShaderMaterial:现在应该在THREE.BufferGeometry中定义属性   THREE.ShaderMaterial:'属性'不属于这种材料的属性。

我想知道发生了什么。

我曾经用一些属性制作缓冲几何。我从来没有弄清楚为什么需要它,但我注意到我需要"键入"它的种类很多,要让三个与着色器连接起来。

{
    attributes: {
        aSomeAttribute:{
            type: 'v3', 
            value:null
        }
    }
}

我试图找出material.prototype.setValues(参数)的作用。从我看到它传递给材料的参数({vertexShader:...,制服:...})并在遇到属性时去疯狂。

1 个答案:

答案 0 :(得分:1)

现在,您可以仅对从THREE.BufferGeometry继承的几何应用自定义属性,例如,如果它是球体,则使用THREE.SphereBufferGeometry而不是THREE.SphereGeometry。然后创建属性数组并将其添加到几何体中,这要归功于THREE.BufferGeometry。之后,您将能够在着色器中使用属性。您可以找到示例here