Vue-3D-Model:用簡單的方式來展示三維模型

一個用來展示三維模型的Vue組件,用最簡單的方式在網(wǎng)頁中展示三維模型,解決模型視角控制、鼠標事件等一系列問題。
項目地址:https://github.com/hujiulong/vue-3d-model

為什么做這個組件

我經(jīng)常聽到前端朋友們抱怨,在網(wǎng)頁上展示三維模型太麻煩了。但是這方面的需求又有很多,例如做房地產(chǎn)的需要展示戶型、賣汽車的需要展示汽車模型等。

在網(wǎng)頁上展示三維模型就只能用WebGL技術了(別跟我說Flash和其他非標準插件啦),但是WebGL編程和JS區(qū)別太大,最好的方式大概是使用在WebGL基礎上封裝的庫,例如three.js,但是three.js的學習成本也非常高,并且坑非常多。

所以我就開始做這個組件,目的只有一個:用最簡單的方式來解決三維模型展示的需求

解決了哪些問題

當一個新手試圖用three.js來展示一個模型(這一般是經(jīng)過了數(shù)天的學習以后),他通常不會一開始就得到自己想要的結(jié)果。要么模型是一片黑色,或者模型根本就看不到。這里實際上有三個問題:

  1. 建模軟件或軟件配置的區(qū)別,導致模型尺寸的單位不統(tǒng)一,需要手動調(diào)節(jié)參數(shù)放大或者縮小
  2. 模型可能偏移了中心點,導致可視范圍內(nèi)看不到模型
  3. 沒有給模型合適的光照

這些看似簡單的問題實際上并不容易解決。即使解決了這些問題,還有更大的BOSS等著你:

你可能需要通過鼠標來旋轉(zhuǎn)模型,或者通過滾輪來放大縮小。或者更進一步,你需要知道鼠標點擊時,是否點中了模型,點中的是哪個部分。

這些都是聽起來就很頭疼的問題,要解決他們你至少需要有一定的圖形學知識,或者對three.js的各種類了如指掌。

現(xiàn)在這些問題都被Vue-3D-Model解決了,如果你已經(jīng)會使用vue(不會的話可以花幾個小時學習一下),那么只需要短短幾行代碼就可以解決這些問題了:

<body>
    <div id="app">
        <model-obj src="static/model.obj"></model-obj>
    </div>
    <script src="vue.js"></script>
    <script src="vue-3d-model.min.js"></script>
    <script>
        new Vue({
            el: '#app'
        })
    </script>
</body>
效果

它會自動將模型以合適的大小顯示出來,如果模型偏離了中心點也會自動校正。并且直接就可以通過鼠標來旋轉(zhuǎn)和縮放了。這是一個在線的例子(墻內(nèi)可能加載比較慢):DEMO

當然,你也可以通過給組件傳入?yún)?shù)來手動調(diào)節(jié)。更詳細的使用方式可以在github上看到。

接下來要做的事

目前組件只支持OBJ格式以及three.js的JSON格式,后面馬上就會支持dae、stl、fbx等格式的模型了。

文檔和示例我也會找時間繼續(xù)補充的,如果有問題或者其他需求,也可以來提issue。

github: https://github.com/hujiulong/vue-3d-model
點個星星吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護的Vue相關開源項目庫...
    果汁密碼閱讀 23,170評論 8 124
  • 來源:github.com Vue.js開源項目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei閱讀 11,651評論 1 159
  • 為了更多的彩民中獎,我的膽你放心用
    十拿八穩(wěn)閱讀 172評論 2 0
  • 2016年11月26日每個周六下午都是音樂素養(yǎng)課,暄很喜歡上音樂素養(yǎng)課,除了上課好玩,還有就是在這課上她很自信,都...
    暄媽食尚閱讀 178評論 0 0
  • 對的時間,錯的人 錯的時間 再也遇不上那個對的人 青春的記憶,只留在當下 不帶去未來 那年,你我22 那年,青春年...
    桃夭0703閱讀 246評論 0 1