简体   繁体   English

从 SketchUp 导出到 three.js 的 3D model 看起来很糟糕

[英]3D model exported from SketchUp to three.js looks terrible

Cheers,干杯,

I'm using a SketchUp 3D model in a Mapbox custom layer (with threebox/THREE.js) and I'm having a problem getting it to look less than awful.我在 Mapbox 自定义层(使用 threebox/THREE.js)中使用 SketchUp 3D model 并且我在让它看起来不那么糟糕时遇到了问题。

The model looks great in SketchUp but when I add it to Mapbox, the lights are all messed up. model 在 SketchUp 中看起来很棒,但是当我将它添加到 Mapbox 时,灯光全乱了。 The triangles seem to have individual directional light sources that point all over the place.三角形似乎有指向各处的独立定向光源。

SketchUp 模型

And this is what it looks like after exported (as.OBJ +.MTL) and imported:这是导出(as.OBJ +.MTL)和导入后的样子:

Mapbox 中的模型

The onAdd looks like this: onAdd看起来像这样:

      onAdd: function(map, gl) {
        this.tb = new Threebox(map, gl, { defaultLights: true });

        const baseName = "hanse388_006";

        var manager = new THREE.LoadingManager();
        new THREE.MTLLoader(manager).load(
          baseName + ".mtl",
          function(materials) {
            materials.preload();

            new THREE.OBJLoader(manager).setMaterials(materials).load(
              baseName + ".obj",
              function(object) {
                this.boat = this.tb.Object3D({ obj: object, units: "meters" });
                this.boat.setCoords([DEFAULT_LNG, DEFAULT_LAT, 0]);
                this.tb.add(this.boat);
              }.bind(this)
            );
          }.bind(this)
        );

The default lights from threebox (slightly changed by me) look like this:三盒的默认灯(我稍微更改了)如下所示:

        this.scene.add( new THREE.AmbientLight( 0xffffff, 0.6 ) );
        var sunlight = new THREE.DirectionalLight( 0xffffff, 0.7 );
        sunlight.position.set(0,80000000,100000000);
        sunlight.matrixWorldNeedsUpdate = true;
        this.world.add(sunlight);

As a workaround suggested by @Mugen87, I tried the export/import in a different format.作为@Mugen87 建议的解决方法,我尝试了不同格式的导出/导入。

SketchUp doesn't support glTF but when I used Collada (.dae) it worked nicely! SketchUp 不支持 glTF,但是当我使用 Collada (.dae) 时,它运行良好!

科拉达模型

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM