Я пытаюсь загрузить файл .obj
через OBJLoader
в angularjs. Но вывод очень неровный.
Попытка изменения camera position
& perspective
(коды прокомментированы), тогда это приводит к очень маленькому выводу, в этом случае мне нужно увеличивать изображение с помощью мыши. Но если я открою тот же файл .obj в 3D Boulder или любом другом инструменте, он выглядит хорошо.
Я настроил камеру и сцену так -
this.renderer = new THREE.WebGLRenderer({ canvas: this.canvasRef.nativeElement });
// this.renderer.setSize( window.innerWidth, window.innerHeight );
// this.renderer.setSize(640, 720);
// scene
this.scene = new THREE.Scene();
this.renderer.setClearColor(0xcdcbcb, 1);
// camera
this.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.01, 1000);
// this.camera = new THREE.PerspectiveCamera(35, window.innerWidth / window.innerHeight, 0.01, 10000);
this.camera.position.set(1, 1, 1);
// this.camera.position.set(0, 0, 1);
// this.camera.position.set(113, 111, 113);
this.camera.aspect = window.innerWidth / window.innerHeight;
this.scene.add(new THREE.AmbientLight(0x222222));
this.scene.add(this.camera); // required, because we are adding a light as a child of the camera
// controls
this.controls = new OrbitControls(this.camera, this.renderer.domElement);
// lights
var light = new THREE.PointLight(0xffffff, 0.8);
this.camera.add(light);
var geometry = new THREE.BoxGeometry(1,1,1);
Загрузка файла .obj вот так -
var objLoader = new OBJLoader();
objLoader.load("../../assets/temp_data/11.obj", function (object) {
console.log(object);
this.scene.add(object);
}.bind(this));
this.animate();
что должно быть хорошей камерой и сценой параметры, так что он будет работать на всех моделях и не нужно увеличивать или уменьшать масштаб. Пожалуйста, руководство / помощь.