我想将一组Javascript对象传递给我用+this->height
编写的自定义着色器,但仍然无法弄清楚如何实现这一点。
具体来说,我想手动执行与THREE.RawShaderMaterial
相同的操作。我目前通过使用Three.js的功能来实现这一目标:
THREE.PointLightSource
假设我有
var matrixUniforms = {
projectionMat: { value: new THREE.Matrix4() },
modelViewMat: { value: new THREE.Matrix4() },
normalMat: { value: new THREE.Matrix3() },
};
var material = new THREE.RawShaderMaterial( {
uniforms: THREE.UniformsUtils.merge( [
matrixUniforms,
THREE.UniformsLib[ "lights" ],
] ),
vertexShader: $( "#" + vShader ).text(),
fragmentShader: $( "#" + fShader ).text(),
lights: true,
} );
如何将其添加到var pointLights = [
{ position: new THREE.Vector3(0,0,0),
color: new THREE.Vector3(1,1,1) },
{ position: new THREE.Vector3(10,10,10),
color: new THREE.Vector3(2,2,2) }
];
的制服中?有没有简单的方法来传递具有相同属性的对象数组?我可能已经找到了旧版本的Three.js的解决方案,但找不到使用最新版本(r84)的方法。
编辑: 我找到了this thread和this thread。但是,它似乎没有在任何地方记录......