精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于 Three.js 的 3D 模型加載優化

開發
作為一個3D的項目,從用戶打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些,從而造成大量的用戶流失。為了提升首屏加載的轉化率,需要盡可能的降低loading的時間。這里就分享一些我們在模型加載優化方面的心得。

一、前言

近段時間,我們使用three.js完成了vivo擬我形象的開發工作,大家可以在vivo賬號中擬制屬于自己的3D形象,也可以保存作為自己的頭像名片。


圖片

作為一個3D的項目,從用戶打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些。然而過長的等待時間會造成大量的用戶流失,這部分用戶沒有體驗到具體的功能就退出了頁面非常的遺憾,為了提升首屏加載的轉化率,需要盡可能的降低loading的時間。這里就分享一些我們在模型加載優化方面的心得。

二、模型加載的優化思路

想對加載進行優化,首先需要了解Three.js加載模型時的工作流程,并分析出其中耗時的部分進行針對性的處理。

在Three.js中,模型從加載到渲染需要經過模型下載、序列化模型、網格解析、寫入緩存和渲染模型幾個步驟,經過分析發現主要的瓶頸在網絡請求和網格解析兩個部分,所以整體的優化思路就是減少網絡請求資源的體積和提升網格的解析速度。


圖片

三、縮小模型的體積

3.1 常見的解決方案

目前主流的壓縮方案是使用google的draco庫對模型進行壓縮。draco的原理類似降低圖片的分辨率,通過減少模型的頂點數起到壓縮體積的效果。

也就是說draco是一種有損的壓縮方式,這樣就會帶來諸多的問題

  • 可能在網格連接處存在畫面模型撕裂。
  • 僅僅壓縮頂點只能將50.7mb的人物模型壓縮到49.5,壓縮效果有限。
  • draco前臺decoder在h5中的解算效率不理想,可能節省下來的網絡請求時間還沒有增加的數據解算的時間長。

基于以上幾點,最終我們放棄了draco的壓縮方案。

圖片

使用draco壓縮之后導致的模型撕裂

3.2 進階方案

高端的食材,往往只需要采用最樸素的烹飪方式。經過一些嘗試,我們發現將glb模型直接打成zip包可以明顯的提升模型的壓縮效率。50.7mb的人物模型可以壓縮到11.6mb。

圖片

圖片

但是Three.js提供的gltfloader是不能直接加載zip文件的,于是我們需要對其進行功能擴展。

Three.js加載gltf模型是首先通過fetch請求獲取到模型的arraybuffer,再對arraybuffer進行格式化。所以我們只需要在模型格式化之前攔截zip文件進行解壓縮即可。

圖片

于是我們使用jszip,資源加載完成后判斷資源的后綴,如果是zip文件就使用jszip進行解壓縮。

圖片

看起來還不錯,在保證視覺效果的同時又可以大幅壓縮模型的體積,那么有沒有可能做的再極致一些呢?

既然是針對性的場景,我們就可以從解壓縮的解算開始入手,于是我們使用rust寫了一個解壓工具,將其轉換成wasm包代替jszip,可以發現wasm的冷啟動性能確實要比js好很多,可以將解壓的時長從幾十到100毫秒降低到1毫秒左右,適合體積比較小的解壓縮場景。

圖片

圖片

四、文件的加解密

作為一個h5項目,獲取到靜態資源的鏈接并不困難,所以需要對模型文件進行一點點加密,讓破解起來沒有那么容易。同時解密的過程不能顯著延長資源加載的時間,影響用戶體驗。

基于數據解密的效率,我們可以截取文件buffer的一部分進行加密,而不對全文進行加密,同時將數據解密的過程也放到wasm中,提升解算效率的同時也增強了安全性。采用對稱加密的算法,同一個方法既可以用于加密,也可以用于解密。

按照模型加載的流程,解密的操作應該放在解壓縮之后,序列化之前,那么如何判斷數據是否進行了加密呢,可以通過判斷解壓數據decode以后是否有glTF的標記來確定。

圖片

如下圖,數據解密的耗時幾乎可以忽略不計,可以放心使用。

圖片


五、如何優化首幀的渲染體驗

優化完模型的加載,繼續來優化模型的渲染,在加載一個體積比較大的模型的時候經常會有頁面的卡死的情況出現,需要從兩方面治標也治本的進行優化:

  1. 通過減少頁面的卡停來優化用戶的感官體驗。
  2. 通過縮短首屏渲染的時長來解決根本問題。

5.1 減少頁面的卡停

在模型加載的時候通常會設置一個loading頁面來展示當前的加載進度,同時loading頁也可以播放一些動效或者互動來讓用戶等待的過程中不那么無聊。但是由于js單線程的特性,在進行首幀渲染的時候任何事件都不無法響應,會讓用戶誤以為頁面卡死,造成流失。

為了解決這個問題我們可以使用分步加載的方案,在模型加載的時候先遍歷第一層網格,將所有的網格隱藏起來,然后循環這些網格,每展示一個就執行一次render方法,這樣就可以把一個大的卡頓分散成多個小的,不至于影響前臺的體驗。

圖片

但是這樣的方法只能讓用戶感受起來沒那么卡頓,該等的時間一點沒少,過長的等待時間還是會讓用戶等的不耐煩,有沒有其他解決卡頓的方式呢?這就要從Three.js的渲染邏輯來進行分析了。

5.2 縮短首幀渲染的時間

由于我們做的是一個捏臉的項目,通過形態鍵來實現不同的臉型,表情等表現。在Three.js中存儲形態鍵信息的屬性在geometry.morphAttributes中,形態鍵存放的頂點信息總數與網格的頂點數相同,這就意味著同一個模型有多少個形態鍵,就額外需要加載多少套網格的頂點信息。在首次渲染的時候Three.js會遍歷每一個形態鍵的頂點信息,生成一個float32array,而這個巨量的遍歷操作就是造成卡頓的根本原因。

圖片

如何解決這個循環黑洞呢,我想到了steamdeck上的著色器預緩存,通過將著色器編譯的結果進行持久化,縮短頁面加載的時間。那么我們只要將每一個網格的形態鍵編譯的結果儲存起來就行了。

/three/src/renderers/webgl/WebGLMorphtargets.js

圖片

通過這種方式成功的將首幀渲染的時間從7秒縮短到0.6秒,大幅的提升了用戶的體驗。

講到這里,大家可能發現了,雖然首幀渲染的時長縮短了,但是形態鍵緩存的資源有80mb,壓縮后也有15mb,這塊的時長可不可以繼續壓榨呢,先看一下資源的處理流程,處理解壓后的文件需要將文件解析成JSON字符串,然后在轉換成float32array,這里耗時最大的點就是JSON.parse的操作,有沒有更好的方式處理呢,可以將這部分內容丟到rust里面,平均可以減少0.5s的時間。

圖片

圖片

六、總結與規劃

以上就是我們的優化流程,將glb模型文件壓縮成zip包,配合前臺wasm解壓工具降低模型的加載時間。通過增加形態鍵緩存的方式來降低首幀渲染的時長。

圖片

經過這一系列的操作,成功的將模型的體積從50mb壓縮到11mb,增加了額外80mb的形態鍵緩存也可以使用zip壓縮到15mb,處理后頁面的首次加載時長從15秒縮短到5秒,算是一個不小的提升。

然而,我們也意識到還有進一步的優化空間,譬如目前雖然有了形態鍵緩存,但是原模型中的形態鍵信息還存儲在模型中,這一部分的信息不需要被threejs讀取,卻很大的占用了模型的體積,后續可以開發一個gltf-pipeline類似的處理工具,將形態鍵緩存直接整合進gltf模型中,同時把整個模型的序列化工作放到wasm中處理,降低模型的尺寸的同時也可以減少模型解析的時長。期待為大家帶來更好的使用體驗。


責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2019-11-29 09:30:37

Three.js3D前端

2022-01-16 19:23:25

Three.js粒子動畫群星送福

2016-06-01 09:19:08

開發3D游戲

2021-11-27 10:42:01

Three.js3D可視化AudioContex

2021-11-23 22:50:14

.js 3D幾何體

2025-03-13 10:54:18

2023-07-13 10:48:22

web 3DThree.jsBlender

2025-06-30 09:15:47

2023-08-04 09:56:15

2021-04-21 09:20:15

three.js3d前端

2025-09-19 09:29:53

Web 3D引擎Three.jsGalacean

2023-08-18 08:00:00

游戲開發3D模型

2024-02-26 00:00:00

前端工具Space.js

2022-07-15 13:09:33

Three.js前端

2017-05-08 11:41:37

WebGLThree.js

2021-11-22 06:14:45

Three.js3D 渲染花瓣雨

2023-09-01 09:30:22

Three.js3D 圖形庫

2010-01-04 15:17:52

Ubuntu啟動

2024-12-10 09:40:00

AI3D模型

2021-04-23 16:40:49

Three.js前端代碼
點贊
收藏

51CTO技術棧公眾號

日韩极品一区| 欧美舌奴丨vk视频| 国产91精品精华液一区二区三区| 欧美黄网免费在线观看| 在线观看国产网站| 成人精品一区二区三区电影| 一区二区在线观看视频在线观看| 久久国产精品99久久久久久丝袜| 中文字幕乱码人妻无码久久| 国产精品v欧美精品v日本精品动漫| 日韩av最新在线| 日日躁夜夜躁aaaabbbb| 久草在线新免费首页资源站| 国产拍欧美日韩视频二区| 成人黄动漫网站免费| 夜夜爽妓女8888视频免费观看| 欧美.www| 中文字幕av一区二区三区谷原希美| 在线观看免费看片| 色综合天天色| 欧美日韩午夜剧场| 欧美少妇在线观看| av基地在线| 91免费看片在线观看| 3d动漫啪啪精品一区二区免费 | 视频二区在线观看| 九九**精品视频免费播放| 7777精品视频| 免费一级a毛片夜夜看| 日韩免费在线| 亚洲性无码av在线| 国产 xxxx| 亚洲国产高清在线观看| 欧美男女性生活在线直播观看| 国产在线青青草| 欧美理论电影| 亚洲人成伊人成综合网小说| 亚洲精品日韩精品| 黄色片在线免费看| 久久午夜电影网| 精品一卡二卡三卡四卡日本乱码| 亚洲av无码国产精品永久一区| 久久精品免费看| 国产精品第100页| 天堂网视频在线| 亚洲一区二区毛片| 18久久久久久| 五月天婷婷激情| 香蕉成人久久| 日产精品久久久一区二区福利| 日本一级黄色录像| 亚洲激情av| 97在线免费观看| 日韩欧美高清在线观看| 亚洲天堂久久| 91av在线精品| 99久久精品国产亚洲| 国产欧美日韩一级| 青青草精品毛片| 亚洲乱码国产乱码精品| 久久一区欧美| 国产精品伦子伦免费视频| 国产精品成人久久久| 手机精品视频在线观看| 国产精品盗摄久久久| 亚洲一区在线观| 久久99精品国产91久久来源| 91精品久久久久久久久久久久久久| 在线观看黄色国产| 国产精品亚洲视频| 国产激情美女久久久久久吹潮| 日本免费一区视频| 26uuuu精品一区二区| 日韩欧美99| 毛片在线不卡| 艳妇臀荡乳欲伦亚洲一区| 日韩精品在线中文字幕| 黄视频免费在线看| 欧美中文字幕一区| 中文字幕第66页| 精品亚洲免a| 一区二区三区国产视频| 可以免费看av的网址| 欧美精品日本| 日韩免费精品视频| 国产日本精品视频| 99久久99久久免费精品蜜臀| 欧美不卡三区| 成人免费网站在线观看视频| 亚洲成a人片在线观看中文| 91传媒久久久| 国产人与zoxxxx另类91| 亚洲国产精品电影| 你懂得视频在线观看| 欧美成人午夜| 国产成人精品视频在线观看| 91成人一区二区三区| 高清不卡一区二区| 水蜜桃亚洲一二三四在线| 26uuu亚洲电影在线观看| 欧美性猛交xxxx乱大交极品| 亚洲午夜激情影院| 天天久久夜夜| 欧美日韩成人黄色| 中国黄色一级视频| 不卡免费追剧大全电视剧网站| 色姑娘综合网| 黄毛片在线观看| 欧美一级免费观看| 可以直接看的无码av| 久久精品国内一区二区三区水蜜桃 | 亚洲综合在线一区二区| 任你躁在线精品免费| 久久久av免费| 无码人妻久久一区二区三区 | 国产精品无码毛片| 一区二区三区午夜视频| 国产精品久久久久久影视 | 中文字幕亚洲欧美一区二区三区 | 美女黄网久久| 国产精品国产精品国产专区不卡| 中文字幕在线免费| 色综合久久天天| 超碰caoprom| 中文av一区| 国产日本欧美一区二区三区在线| 飘雪影视在线观看免费观看| 亚洲一区二区三区免费视频| 在线能看的av网站| 郴州新闻综合频道在线直播| 欧美在线观看一区二区三区| www.久久久久久久久久| 亚洲视频在线一区观看| 免费看污污网站| 天堂成人娱乐在线视频免费播放网站 | 女同久久另类69精品国产| 免费日韩av| 国产亚洲精品自在久久| 蜜桃成人365av| 日韩欧美国产不卡| 欧产日产国产v| 国产伦精一区二区三区| 亚洲AV无码成人精品一区| 久久av影院| 最近2019中文字幕mv免费看| 婷婷激情五月综合| 国产日韩欧美精品一区| 亚洲国产精品毛片av不卡在线| 首页亚洲中字| 日韩免费观看网站| h视频网站在线观看| 在线精品观看国产| 天堂在线中文视频| 久久成人av少妇免费| 亚洲免费视频一区| 一区在线不卡| 欧美情侣性视频| 性一交一乱一乱一视频| 亚洲午夜在线电影| 精品无码在线视频| 久久久蜜桃一区二区人| 欧美日韩一区二| 日本欧美韩国| 久久精品国产91精品亚洲| 国产又粗又猛视频免费| 国产精品免费视频观看| 亚洲色图欧美自拍| 亚洲国产免费| 久久婷婷开心| 日本综合视频| 不卡毛片在线看| 国产91免费看| 色天使色偷偷av一区二区| 我想看黄色大片| 国产一区不卡精品| 国产在线精品91| 成人综合久久| 97人人干人人| 无码小电影在线观看网站免费| 亚洲男人第一av网站| www.亚洲激情| 亚洲黄色录像片| 给我看免费高清在线观看| 丝袜亚洲精品中文字幕一区| 麻豆md0077饥渴少妇| 国产毛片久久久| 国产精品久久久久久久7电影| 免费**毛片在线| 亚洲精品电影在线观看| 一区二区视频免费| 亚洲成人av一区二区三区| 国产伦精品一区二区三区视频女| 国产一区二区电影| 欧美两根一起进3p做受视频| 久久久久久久久久久9不雅视频| 国产区二精品视| 国产资源一区| 欧美中文字幕视频在线观看| 秋霞a级毛片在线看| 日韩av在线精品| 国产精品玖玖玖| 一本久久a久久精品亚洲| 成人免费毛片xxx| 久久伊人蜜桃av一区二区| 午夜诱惑痒痒网| 日韩av午夜在线观看| 国产精品视频网站在线观看| 成人网18免费网站| 国产在线一区二区三区欧美 | 亚洲尤物精选| 亚洲色图都市激情| 欧美日中文字幕| 精品久久久三级| 精品国产不卡一区二区| 国产精品久久久久9999| 成人性生交大片免费看网站| 俺也去精品视频在线观看| 日韩欧美电影在线观看| 精品日韩99亚洲| 国产视频第二页| 欧美日韩一区二区在线观看| 色av性av丰满av| 亚洲动漫第一页| 美国黄色小视频| 中文字幕一区二区三区av| 亚洲av无码一区二区三区人| av在线不卡网| 五月天丁香社区| 国产福利一区二区三区视频在线 | 日韩中文字幕在线观看| 九色网友自拍视频手机在线| 亚洲精品mp4| 狠狠躁日日躁夜夜躁av| 日韩欧美成人一区| 国产成人av免费看| 欧美一区二区三区免费大片| 国产在成人精品线拍偷自揄拍| 欧美天堂一区二区三区| 男人的天堂av网站| 色88888久久久久久影院野外| 西西44rtwww国产精品| 精品欧美激情精品一区| 人人干人人干人人干| 婷婷激情综合网| 日韩av在线电影| 五月天网站亚洲| 国产综合精品视频| 欧美午夜电影在线| 五月婷婷亚洲综合| 色婷婷综合中文久久一本| 青青青国产在线| 91电影在线观看| 四虎影院在线免费播放| 欧美性色综合网| 91好色先生tv| 日韩精品一区国产麻豆| 全部免费毛片在线播放一个| 亚洲国产又黄又爽女人高潮的| 天天干在线观看| 亚洲人成在线一二| 日本www在线观看| 欧美成年人视频网站欧美| 色呦呦在线播放| 91精品国产91久久| 欧美亚洲大片| 亚洲va欧美va国产综合剧情| 亚洲精品福利| 久久精品国产第一区二区三区最新章节| 欧美1区二区| 亚洲国产日韩综合一区| 亚洲欧美色图| 国产av天堂无码一区二区三区| 久久xxxx精品视频| 日韩不卡一二三| 国产成人av福利| 欧洲女同同性吃奶| 中文字幕一区二区三区蜜月 | 三年中国中文观看免费播放| 国产精品麻豆久久久| 激情四射综合网| 色综合天天综合给合国产| 一区二区久久精品66国产精品| 日韩免费性生活视频播放| 可以在线观看的av网站| 精品激情国产视频| 精品极品在线| 国产欧美日韩中文字幕在线| 国产精品一线| 亚洲资源在线网| 99精品国产在热久久| 久久这里只精品| gogogo免费视频观看亚洲一| 欧美人与禽zoz0善交| 亚洲一区二区在线免费观看视频 | 美女高潮视频在线看| 国产精品免费一区二区三区都可以 | 中文字幕人妻一区二区| 日韩毛片视频在线看| 综合激情网五月| 日韩你懂的在线观看| 91啦中文在线| 欧美亚洲另类激情另类| 经典三级久久| 五月天国产一区| 亚洲在线视频| 极品人妻一区二区| 国产精品你懂的在线| 伦av综合一区| 亚洲国产成人91精品| а√天堂官网中文在线| 国产精品免费久久久久久| 黑色丝袜福利片av久久| 大片在线观看网站免费收看| 久久精品国产99国产| 亚洲天堂久久新| 亚洲一本大道在线| 99在线小视频| 久久精品国产91精品亚洲| 国产亚洲精品精品国产亚洲综合| 蜜桃视频在线观看91| 影音先锋亚洲电影| 少妇高潮一69aⅹ| 综合久久综合久久| 一级视频在线播放| 国产午夜精品一区理论片飘花 | 91高清在线视频| 热久久免费国产视频| 日本欧美韩国国产| 日韩av高清在线看片| 国产成人日日夜夜| 久久久久亚洲av无码专区体验| 欧美日韩精品欧美日韩精品| 国产香蕉视频在线看| 国产97色在线|日韩| 亚洲人成网亚洲欧洲无码| av免费观看大全| 不卡一区二区中文字幕| 国产第一页第二页| 精品国产成人系列| 超碰在线97国产| 国产一区二区三区高清视频| 国产综合久久| 亚洲啪av永久无码精品放毛片| 一区二区三区在线视频免费观看 | 亚洲人成五月天| sis001欧美| 日本午夜精品电影| 日本亚洲天堂网| 来吧亚洲综合网| 欧美一区二区三区公司| 欧美黄色视屏| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 成人激情综合| 亚洲mv在线看| 国产自产高清不卡| 欧美成人黄色网| 亚洲成人av在线播放| 色吧亚洲日本| 日韩精品第一页| 极品尤物av久久免费看| 国产大片免费看| 亚洲国产小视频在线观看| 亚洲精品一区| 亚洲精品高清视频| 国产一区二区三区免费在线观看| 亚洲综合网在线| 亚洲国产日韩欧美在线99| 在线观看涩涩| 亚洲午夜久久久影院伊人| 国产精品综合二区| 日韩免费在线视频观看| 亚洲免费电影一区| 91丨精品丨国产| 五十路熟女丰满大屁股| 久久久久久久精| 国产特级黄色片| 欧美一区第一页| 99久久99久久精品国产片桃花| 欧美色图校园春色| 色综合久久综合网97色综合| 快射av在线播放一区| 国产一区免费视频| 蜜桃免费网站一区二区三区| 国产精品白嫩白嫩大学美女| 日韩高清有码在线| 四虎国产精品免费久久5151| 欧美又粗又长又爽做受| 国产欧美日韩视频一区二区| 99国产在线播放| 国产999在线| 欧美视频在线观看| 免费一级特黄3大片视频| 日韩欧美国产wwwww| 午夜精品久久久久久久久久蜜桃| 乱子伦一区二区| 国产亚洲综合在线| 成人午夜免费福利| 国产拍精品一二三| 久久午夜视频| 久久精品国产亚洲av麻豆色欲 |