Can I use a Material Array for ShaderMaterial?
The BoxBufferGeometry used a material array for Skybox.
just like :
let envMap = new THREE.CubeTextureLoader()
.setPath('images/skybox/')
.load(['px.jpg', 'nx.jpg', 'py.jpg', 'ny.jpg', 'pz.jpg', 'nz.jpg']);
let cubeShader = THREE.ShaderLib['cube'];
cubeShader.uniforms['tCube'].value = envMap;
let skyBoxMaterial = new THREE.ShaderMaterial({
fragmentShader: cubeShader.fragmentShader,
vertexShader: cubeShader.vertexShader,
uniforms: cubeShader.uniforms,
side: THREE.BackSide
});
var skyBox = new THREE.Mesh(new THREE.BoxBufferGeometry(1000, 1000, 1000), skyBoxMaterial);
scene.add(skyBox);
If I use the THREE.SphereBufferGeometry or THREE.SphereGeometry with a material array.
How can I do?
1、load the material array to a big Canvas?
2、use UVs mapping?