VUE項目引入Threejs加載模型文件

項目新需求,要在頁面中顯示已做好的3D模型比搭,做過技術(shù)調(diào)研后選擇了Threejs三維引擎。demo基本都是獨立頁面的,自己搞了一下身诺,在vue項目中完美運行了蜜托。分享一下

資源引入

npm i three-js

組件內(nèi)使用

引入:

import * as THREE from "three"; //引入Threejs
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";

首先,創(chuàng)建初始化方法:

init() {
    this.scene = new THREE.Scene();
    this.scene.add(new THREE.AmbientLight(0x404040, 6)); //環(huán)境光
    this.light = new THREE.DirectionalLight(0xdfebff, 0.45); //從正上方(不是位置)照射過來的平行光霉赡,0.45的強度
    this.light.position.set(50, 200, 100);
    this.light.position.multiplyScalar(0.3);
    this.scene.add(this.light);
    /**
    * 相機設(shè)置
    */
    let container = document.getElementById("threeContainer");//顯示3D模型的容器
    this.camera = new THREE.PerspectiveCamera(
        70,
        container.clientWidth / container.clientHeight,
        0.01,
        10
      );
    this.camera.position.z = 1;
    /**
       * 創(chuàng)建渲染器對象
       */
    this.renderer = new THREE.WebGLRenderer({ alpha: true });
    this.renderer.setSize(container.clientWidth, container.clientHeight);
    container.appendChild(this.renderer.domElement);
    //創(chuàng)建控件對象
    this.controls = new OrbitControls(this.camera, this.renderer.domElement);
    
}

外部模型加載函數(shù):

loadGltf() {
    let self = this;
    let loader = new GLTFLoader();
    //load一個測試模型路徑:public/model/zhuozi2.gltf
    loader.load("/model/zhuozi2.gltf", function(gltf) {
        self.isLoading = false;//關(guān)閉載入中效果
        self.mesh = gltf.scene;
        self.mesh.scale.set(0.4, 0.4, 0.4);//設(shè)置大小比例
        self.mesh.position.set(0, 0, 0);//設(shè)置位置
        self.scene.add(self.mesh); // 將模型引入three橄务、
        self.animate();
        });
    }

動畫效果:

animate() {
   if (this.mesh) {
     requestAnimationFrame(this.animate);

     // this.mesh.rotation.x += 0.01;
     this.mesh.rotation.y += 0.004;
     this.renderer.render(this.scene, this.camera);
   }
 }
在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市穴亏,隨后出現(xiàn)的幾起案子蜂挪,更是在濱河造成了極大的恐慌,老刑警劉巖嗓化,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棠涮,死亡現(xiàn)場離奇詭異,居然都是意外死亡刺覆,警方通過查閱死者的電腦和手機严肪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谦屑,“玉大人驳糯,你說我怎么就攤上這事∏獬龋” “怎么了酝枢?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悍手。 經(jīng)常有香客問我隧枫,道長量九,這世上最難降的妖魔是什么系吭? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任绳姨,我火速辦了婚禮闻牡,結(jié)果婚禮上钠糊,老公的妹妹穿的比我還像新娘俺泣。我一直安慰自己茧泪,他們只是感情好炼列,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布仑撞。 她就那樣靜靜地躺著赤兴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隧哮。 梳的紋絲不亂的頭發(fā)上桶良,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音沮翔,去河邊找鬼陨帆。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疲牵。 我是一名探鬼主播承二,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纲爸!你這毒婦竟也來了亥鸠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤识啦,失蹤者是張志新(化名)和其女友劉穎负蚊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颓哮,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡盖桥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了题翻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揩徊。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嵌赠,靈堂內(nèi)的尸體忽然破棺而出塑荒,到底是詐尸還是另有隱情,我是刑警寧澤姜挺,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布齿税,位于F島的核電站,受9級特大地震影響炊豪,放射性物質(zhì)發(fā)生泄漏凌箕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一词渤、第九天 我趴在偏房一處隱蔽的房頂上張望牵舱。 院中可真熱鬧,春花似錦缺虐、人聲如沸芜壁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慧妄。三九已至,卻和暖如春剪芍,著一層夾襖步出監(jiān)牢的瞬間塞淹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工罪裹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饱普,地道東北人运挫。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像费彼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子口芍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容