0

我正在尝试通过angularjs加载.obj文件。OBJLoader但是输出非常像素化。 对象输出

尝试更改camera positionperspective(代码已注释),然后它会导致输出非常小,在这种情况下我需要通过鼠标放大。但是如果我在 3D Boulder 或任何其他工具中打开相同的 .obj 文件,它看起来很好。

我已经设置了这样的相机和场景 -

    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();

什么应该是好的相机和场景参数,以便它适用于所有模型并且无需放大或缩小。请指导/帮助。

4

1 回答 1

0
    this.renderer.setPixelRatio(window.devicePixelRatio);

这对我有用。

于 2020-02-18T14:24:04.707 回答