繁体   English   中英

使用ThreeJS将Vec3阵列传递到顶点着色器

[英]Passing Vec3 Array to Vertex Shader with ThreeJS

如何使用ThreeJS将vec3数据数组传递给顶点着色器?

air_parcel_pos: {
   type: "???",
   value: the array of data
}

初始化值必须是对应于GLSL数据类型的值数组。

例如

如果uniform变量是vec3的数组

uniform vec3 u_array[3];

那么初始化值可以是THREE.Vector3的数组

var uniforms = {
    u_array: {value: [
        new THREE.Vector3(1, 0, 0),
        new THREE.Vector3(0, 1, 0),
        new THREE.Vector3(0, 0, 1)
    ] }
};

var material = new THREE.ShaderMaterial({  
    uniforms: uniforms,
    vertexShader: // ...
    fragmentShader: // ...
});

其他数据类型是Vector2Vector4Color 可以通过值数组设置floatint数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM