vue+three.js导入obj模型不显示问题

本文介绍了在使用Vue+Three.js构建3D页面时遇到的obj模型无法显示的问题。作者通过分析目录结构、模型导入及相机设置,发现模型实际已加载但因相机位置不当导致不可见。解决方案是确保模型存于静态资源目录,正确导入,并调整相机位置,如使用轨道控制器查看场景。
摘要由CSDN通过智能技术生成

前言:最近用vue+threre.js实现3d页面的时候,发现导入obj模型时模型在页面中显示不出来的问题。也纠结了好几天,换了好几种方式去试,到底是模型有问题还是代码有问题?真是个令人头痛的问题啊!

一、关于obj模型存放的目录

  • 这里我用的vue是4.x版本的。
  • 在vue中存放obj模型必须要放在静态资源(static)文件下,否则会出错。
  • 由于4.x版本的vue没有static这个文件夹,但是他的静态资源文件夹是叫public,这样我在public下面创建一个文件夹叫static,再在static文件夹下存放的我的obj模型文件以及mtl文件。
  • 文件目录如下:
    在这里插入图片描述

二、关于obj模型的导入

直接上代码吧:

<template>
    <div id="academy">
    </div>
</template>

<script>
import * as THREE from "three";
import {
   OBJLoader,MTLLoader} from "three-obj-mtl-loader";
const OrbitControls = require('three-orbit-controls')(THREE);
export default {
   
    name:'academy',
    data(){
   
        return{
   
        }
    },
    methods: {
   
    /**加载模型 */
    loadPlant() {
   
      let that = this;
      let objLoader = new OBJLoader();
      let mtlLoader = new MTLLoader();
      mtlLoader.load("/static/academic/bluegrayhome.mtl", function(materials) {
   
        // materials.preload();
        objLoader.setMaterials(materials);
        objLoader.load(
          "/static/academic/bluegrayhome.obj",
          function(obj) {
   
            obj.position.set(0, 0,0);
            obj.scale.set(0.01, 0.01, 0.01);
            that.scene.add(obj);
          },
        //   called while loading is progressing
          function(xhr) {
   
            console.log((xhr.loaded / xhr.total) * 100 + "% loaded");
          },
        //   called when loading has errors
          function(error) {
   
            console.log("An error happened");
          }
        );
      });
    },
  },
  mounted() {
   
    this.loadPlant();
  }
}
</script>

这里关于相机,场景等初始化的内容没有放上去。

在导入obj之前还要 npm install three-obj-mtl-loader,并在组件中引入。

三、关于obj模型显示不出来的问题

敲黑板,这个问题真的是!!!!!一言难尽!!!

在我的这里obj模型已经是加载出来了,但就是在页面中显示不出来,也就是我看不到它!!!!
在这里插入图片描述

那这是为什么呢?为什么显示不出来呢?于是我又发现控制台中报了warnings,起初我以为是这个warning的问题,可后来经过多种方法的调试发现并不是这个问题。
在这里插入图片描述

于是乎我又开始崩溃了,怎么就是看不到呢?后来我又以为是模型太大的问题,但其实并不是。一次偶然我向页面中添加了轨道控制器,使场景可以旋转起来,然后我就发现!!!!!原来我的模型一直都在,只是它在我看不到的地方!!也就是我的相机根本照不到我的物体,所以我什么也看不到。(不要问我为什么起初没考虑这

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值