ACPI
ACPI

Reputation: 27

CubeTextureLoader() not working. Or I'm doing something wrong

Here is my code:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

var renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

var controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
controls.dampingFactor = 0.25;
controls.enableZoom = true;
controls.autoRotate = true;

// Cube
var Cubegeometry = new THREE.BoxGeometry(1, 1, 1);
const CubeImgTexture = new THREE.CubeTextureLoader().setPath('imgs/textures/cube/').load([
  's1.png', 's5.png',
  's2.png', 's4.png',
  's3.png', 's6.png'
]);
var Cubematerial = new THREE.MeshStandardMaterial({
  map: CubeImgTexture
});
var CubeMesh = new THREE.Mesh(Cubegeometry, Cubematerial);
scene.add(CubeMesh);

camera.position.z = 5;
controls.update();

var animate = function() {
  requestAnimationFrame(animate);
  renderer.render(scene, camera);
};

When I run it, I get a blank screen and an error saying that "Argument 6 is not valid for any of the 6-argument overloads."

Errors

What does this mean?

Upvotes: 0

Views: 670

Answers (1)

M -
M -

Reputation: 28497

The problem is with

var Cubematerial = new THREE.MeshStandardMaterial({
  map: CubeImgTexture
});

You never initialize anything named CubeImgTexture. If you're trying to pass a cubeTexture into the .map property, you're going to run into problems because map only expects a regular texture. Maybe you're trying to assign it to the .envMap property instead?

Upvotes: 1

Related Questions