This is the code
const width = mount.current.clientWidth;
const height = mount.current.clientHeight;
var scene = new THREE.Scene();
scene.background = new THREE.Color(0xdddddd);
const camera = new THREE.PerspectiveCamera(60, width / height, 1, 5000);
camera.position.set(0, 200, 300);
let renderer = new THREE.WebGLRenderer({
antialias: true,
});
renderer.toneMapping = THREE.ReinhardToneMapping;
renderer.toneMappingExposure = 2.3;
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.BasicShadowMap;
renderer.setSize(width, height);
if (mount.current.children.length > 0) {
mount.current.removeChild(mount.current.children[0]);
}
if (mount.current.children.length === 0)
mount.current.appendChild(renderer.domElement);
scene.add(new THREE.AxesHelper(500));
const BACKGROUND_COLOR = 0x717171;
scene.background = new THREE.Color(BACKGROUND_COLOR);
//////////////////////////////////////////////////////////////////////////////////////
//Lights
let spotLight = new THREE.SpotLight(0xffffff, 1);
spotLight.position.set(-50, 50, 50);
spotLight.castShadow = true;
spotLight.shadow.camera.top = 1;
spotLight.shadow.camera.bottom = -2;
spotLight.shadow.camera.left = -2;
spotLight.shadow.camera.right = 2;
spotLight.shadow.camera.near = 0.1;
spotLight.shadow.camera.far = 40;
scene.add(spotLight);
////////////////////////////////////////////////////////////////////////////////////////
//Creating FLoor
var floor = new THREE.PlaneGeometry(1000, 1000, 10, 10);
var material = new THREE.MeshPhongMaterial({
color: 0x7d7d7d,
wireframe: false,
});
var finalfloor = new THREE.Mesh(floor, material);
finalfloor.material.side = THREE.DoubleSide;
finalfloor.rotation.x += Math.PI / 2;
finalfloor.receiveShadow = true;
scene.add(finalfloor);
const controls = new OrbitControls(camera, renderer.domElement);
controls.enablePan = false;
controls.enableZoom = true;
controls.dampingFactor = 0.1;
controls.rotateSpeed = 0.7;
controls.autoRotate = true;
controls.update();
var animate = function () {
requestAnimationFrame(animate);
spotLight.position.set(
camera.position.x + 10,
camera.position.y + 10,
camera.position.z + 10
);
renderer.render(scene, camera);
};
var bb = new THREE.Box3();
var vector3 = new THREE.Vector3();
let loader = new GLTFLoader();
loader.load(
Horse, //the model
(gltf) => {
result = gltf.scene.children[0];
result.position.set(0, -5, -25);
bb.setFromObject(gltf.scene);
bb.getCenter(vector3);
gltf.scene.position.set(vector3.x, vector3.y - 100, vector3.z);
gltf.scene.position.multiplyScalar(-1);
gltf.scene.traverse((n) => {
if (n.isMesh) {
n.castShadow = true;
n.receiveShadow = true;
}
});
scene.add(gltf.scene);
console.log(gltf.scene);
},
(xhr) => {
console.log((xhr.loaded / xhr.total) * 100 + "% loaded");
}
);
animate();
The model is looking like this
I dont understant what im doing wrong here,