Я добавил cubecamera в свою сцену A-Frame с помощью кода Three.js (v.0.8.0), и когда я хочу проецировать захваченную текстуру cubecamera как envMap, например, на сферу, это результат: текстура cubecamera на сфере
Она в основном не отображает текстуры окружающих объектов, а некоторые объекты просто черного цвета.Я пытался часами, и я устал.Некоторые советы и / или решения?Спасибо!
Мой код кубической камеры:
function setupCubecam(){
var cubeCamera = new THREE.CubeCamera( 0.005, 100000, 64 );
scene.add( cubeCamera );
var cubecamMaterial = new THREE.MeshStandardMaterial({
color: 0xffffff,
envMap: cubeCamera.renderTarget.texture,
metalness: 1,
roughness: 0,
});
sphere.material = cubecamMaterial;
sphere.visible = false;
cubeCamera.position.copy( sphere.position );
cubeCamera.update( renderer, scene );
sphere.visible = true;
renderer.render( scene, camera );
}
РЕДАКТИРОВАТЬ: И я получаю эту ошибку при назначении кубической камеры в качестве envMap для материала:
Error: WebGL warning: texParameteri: pname 0x2802: Invalid param 0x0000. three.js:18014:4
Error: WebGL warning: texParameteri: pname 0x2803: Invalid param 0x0000. three.js:18015:4
Error: WebGL warning: texParameteri: pname 0x2802: Invalid param 0x0000. three.js:18014:4
Error: WebGL warning: texParameteri: pname 0x2803: Invalid param 0x0000. three.js:18015:4
РЕДАКТИРОВАТЬ 2: Когда я удаляю материалы из других объектов, это работает. без других материалов
Это другие материалы:
var wall_MAT = new THREE.MeshStandardMaterial({
map: wallTexture,
aoMap: wallAO,
metalness: 0,
lights: true,
});
var floor_MAT = new THREE.MeshStandardMaterial({
map: floorTexture,
aoMap: floorAO,
metalnessMap: floorMETAL,
envMap: floorENV,
metalness: 1,
roughness: 0,
lights: true,
});
РЕДАКТИРОВАТЬ 3: Так что я понял, что текстура - это моя проблема.Работает с простыми цветами.(Но почему?) пример