chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

圖撲軟件 3D 場景預(yù)加載應(yīng)用實(shí)現(xiàn)

圖撲-數(shù)字孿生 ? 來源:圖撲-數(shù)字孿生 ? 作者:圖撲-數(shù)字孿生 ? 2025-12-01 16:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

預(yù)加載是在進(jìn)入正式場景之前提前加載所需模型、材質(zhì)、圖片等資源的技術(shù)手段,其核心價(jià)值在于消除資源加載等待,確保場景首次渲染即可完整呈現(xiàn),從而提供無縫、流暢的用戶體驗(yàn)。在復(fù)雜的 Web 3D 可視化應(yīng)用中,資源預(yù)加載尤為重要,可有效解決首次加載時(shí)的卡頓、白屏及交互延遲等問題。

wKgZPGktS_yAU48EAANjcS5lXJs61.jpeg

預(yù)加載實(shí)現(xiàn)方案

01 基礎(chǔ)實(shí)現(xiàn)原理

HT for Web 中所有資源的請求都會(huì)經(jīng)過 ht.Default.convertURL 方法,該方法提供了統(tǒng)一的資源請求入口:

當(dāng)返回字符串路徑時(shí),框架會(huì)按此路徑發(fā)起資源請求;

當(dāng)返回 {data: content} 格式對(duì)象時(shí),框架會(huì)直接使用 content 作為資源內(nèi)容。

基于此特性,我們可實(shí)現(xiàn)預(yù)加載機(jī)制。

// 資源緩存映射表
let sourceMap = {}; 
// 判斷是否為本地資源
functionisLocalUrl(url) {
    return url.startsWith('data:') || url.startsWith('blob:');
}
// 重寫 convertURL 方法
let oldFunc = ht.Default.convertURL;
ht.Default.convertURL = function(url) {
    if (isLocalUrl(url)) return url;
    
    let source = sourceMap[url];
    if (source) {
        return { data: source };
    }
    
    return oldFunc(url);
};

02 資源加載策略

部分資源預(yù)加載適用于資源量較大但部分關(guān)鍵資源需要優(yōu)先加載的場景。

// 關(guān)鍵資源列表
let resources = [
    "models/model.json",
    "assets/texture.png",
    "symbols/symbols.json"
]
wKgZO2ktS_yAX5BbADkKBsmBpgY458.gif

全量資源預(yù)加載獲取所有已注冊資源進(jìn)行預(yù)加載:

functiongetAllResources() {
    return [
        ...Object.keys(ht.Default.getImageMap()),
        ...Object.keys(ht.Default.getCompTypeMap()),
        ...Object.keys(ht.Default.getShape3dModelMap()),
        ...Object.keys(ht.Default.getMaterialMap()),
        ...Object.keys(ht.Default.getHdrTextureMap())
    ];
}
let allResources = getAllResources();
wKgZPGktS_6ATbnYADcK_TvR-V8855.gif

03 資源加載實(shí)現(xiàn)

// 資源類型判斷
const ResourceType = {
    IMAGE: /.(png|jpg|gif|jpeg|bmp|svg)$/i,
    BUFFER: /.(fbx|gltf|glb)$/i,
    HDR: /.hdr$/i,
    TGA: /.tga$/i,
    JSON: /.json$/i
};


class ResourceLoader {
constructor(resources) {
        this.resources = resources;
        this.loaded = 0;
    }
    
    load() {
        this.resources.forEach(url => {
            if (ResourceType.BUFFER.test(url)) {
                this.loadBuffer(url);
            } 
            else if (ResourceType.IMAGE.test(url)) {
                this.loadImage(url);
            }
            // 其他資源類型處理...
        });
    }
    
    loadBuffer(url) {
        ht.Default.xhrLoad(url, res => {
            this.onResourceLoaded(url, res);
        }, { responseType: 'arraybuffer' });
    }
    
    // 其他加載方法...
    
    onResourceLoaded(url, res) {
        sourceMap[url] = res;
        this.loaded++;
        this.onProgress(this.loaded, this.resources.length);
        
        if (this.loaded === this.resources.length) {
            this.onAllLoaded();
        }
    }


    // 加載進(jìn)度回調(diào)
  onProgress(loaded, total) {
    console.log(`加載進(jìn)度: ${loaded}/${total}`);
  };
    
    onAllLoaded() {
        console.log("所有資源預(yù)加載完成");
        // 進(jìn)入主場景...
    }
}
wKgZO2ktTACAHo4cABy_79wUC8Q714.gif

加載頁面優(yōu)化

01 進(jìn)度展示設(shè)計(jì)

class LoadingView{
    constructor() {
        this.initView();
    }


    initView(){
        this.dm = new ht.DataModel();
        this.view = new ht.graph.GraphView(this.dm);
        
        let style = this.view.getView().style;
        style.left = "0";
        style.right = "0";
        style.top = "0";
        style.bottom = "0";
        document.body.appendChild(this.view.getView());
    }
    
    // 更新進(jìn)度
    updateProgress(percent) {
        
    }
    
    // 移除加載頁面
    remove() {
        setTimeout(() => {
            this.view.getView().remove();
            this.enterMainScene();
        }, 1);
    }
    
    // 進(jìn)入主場景
    enterMainScene(){


    }
}

02視覺優(yōu)化建議

進(jìn)度條設(shè)計(jì):使用圖標(biāo)實(shí)現(xiàn)平滑動(dòng)畫。

wKgZPGktTAGAOWK9ADfTX27k4p8260.gif

背景動(dòng)畫:添加輕量級(jí)背景動(dòng)畫提升等待體驗(yàn)。

wKgZO2ktTAOAH6WAACTk7Zd1aoQ642.gif

分段進(jìn)度:將加載過程分為資源加載、場景初始化等階段。

預(yù)估時(shí)間:基于已加載時(shí)間預(yù)測剩余時(shí)間。

性能優(yōu)化方案

01 Service Worker 離線緩存

// sw.js
let CACHE_NAME = 'ht-resources-v1';


self.addEventListener('fetch', event => {
    event.respondWith(caches.match(event.request).then(function (response) {
        if (response !== undefined) {
            return response;
        } else {
            return fetch(event.request).then(function (response) {
                if (event.request.url.indexOf('storage') != -1) {
                    let responseClone = response.clone();
                    caches.open(CACHE_NAME).then(function (cache) {
                        cache.put(event.request, responseClone);
                    });
                }
                return response;
            }).catch(function () {
                return caches.match('./');
            });
        }
    }));
});


self.addEventListener('activate', function (event) {
    event.waitUntil(clients.claim());
    event.waitUntil(
        caches.keys().then(function (keyList) {
            returnPromise.all(keyList.map(function (key) {
                if (key !== CACHE_NAME) {
                    // 刪除舊緩存
                    return caches.delete(key);
                }
            }));
        })
    );
});

02 資源壓縮策略

■模型優(yōu)化:輕量化模型,對(duì)模型進(jìn)行減面。

■圖片優(yōu)化:圖片資源壓縮。

效果對(duì)比與總結(jié)

01 加載效果對(duì)比

預(yù)加載方案雖然初始顯示時(shí)間較長,但提供了更優(yōu)的整體用戶體驗(yàn):

■完整的場景一次性呈現(xiàn),避免零碎加載造成的視覺割裂。

■無卡頓的交互體驗(yàn),所有資源已就緒。

■可控的等待預(yù)期,進(jìn)度反饋降低用戶焦慮。

■更穩(wěn)定的性能表現(xiàn),避免運(yùn)行時(shí)資源加載導(dǎo)致的卡頓。

wKgZPGktTASAdNgxAAFZpUNk_1I799.gif

預(yù)加載效果

wKgZO2ktTASAbIjVAAMF4A7k_YY682.gif

常規(guī)加載效果

wKgZPGktTAWALEu3AAEWTja-nE817.jpeg

02 適用場景

大型 3D 場景:包含復(fù)雜模型和紋理的場景。

wKgZO2ktTAWAFmsLAD8Ja7Px6S8044.gif

儀表盤應(yīng)用:需要快速響應(yīng)的監(jiān)控系統(tǒng)。

移動(dòng)端應(yīng)用:網(wǎng)絡(luò)條件不穩(wěn)定的環(huán)境。

演示系統(tǒng):需要流暢演示效果的場合。

03 實(shí)施建議

分階段實(shí)施:先對(duì)關(guān)鍵資源預(yù)加載,再逐步擴(kuò)展。

性能監(jiān)控:添加加載時(shí)間統(tǒng)計(jì)和分析。

A/B 測試:對(duì)比不同策略的實(shí)際效果。

綜上所述,本預(yù)加載方案能顯著提升 HT for Web 應(yīng)用的加載性能和用戶體驗(yàn),特別適合對(duì)流暢性要求高的可視化應(yīng)用場景。在實(shí)際項(xiàng)目中,應(yīng)根據(jù)資源規(guī)模和用戶場景靈活調(diào)整預(yù)加載策略,平衡加載時(shí)間和用戶體驗(yàn)。

圖撲軟件 (Hightopo) 長期專注于 Web 可視化領(lǐng)域,自主研發(fā) HT for Web 2D 和 3D 圖形渲染引擎、低代碼數(shù)字孿生組態(tài)平臺(tái)及相關(guān)工具。目前產(chǎn)品已廣泛應(yīng)用于工業(yè)組態(tài)、電力能源、孿生工廠、電信機(jī)房、智慧交通、智慧城市、園區(qū)樓宇、智慧水務(wù)、航天軍工等行業(yè)領(lǐng)域,為客戶提供可靠的一站式數(shù)字孿生解決方案。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1313

    瀏覽量

    22571
  • 數(shù)字孿生
    +關(guān)注

    關(guān)注

    4

    文章

    1609

    瀏覽量

    13697
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    智慧汽車展示平臺(tái)全自研技術(shù)方案

    ,為車企提供從研發(fā)設(shè)計(jì)到市場推廣的一站式可視化解決方案,同時(shí)為消費(fèi)者構(gòu)建沉浸式產(chǎn)品認(rèn)知場景。 平臺(tái)整體基于軟件自主研發(fā)的 HT for Web 技術(shù)體系構(gòu)建,核心覆蓋二三維協(xié)同設(shè)計(jì)
    的頭像 發(fā)表于 11-21 15:16 ?81次閱讀
    <b class='flag-5'>圖</b><b class='flag-5'>撲</b>智慧汽車展示平臺(tái)全自研技術(shù)方案

    邀您相聚 2025 國家工業(yè)軟件大會(huì)

    軟件核心技術(shù)攻關(guān)成果、企業(yè)需求與生態(tài)體系、應(yīng)用場景拓展等關(guān)鍵議題展開深入交流。 作為國內(nèi)外領(lǐng)先的 2D3D 數(shù)據(jù)可視化前端圖形技術(shù)解決方案供應(yīng)商 ,將在 A05 展位 全面展示自
    的頭像 發(fā)表于 09-24 15:34 ?294次閱讀
    <b class='flag-5'>圖</b><b class='flag-5'>撲</b>邀您相聚 2025 國家工業(yè)<b class='flag-5'>軟件</b>大會(huì)

    玩轉(zhuǎn) KiCad 3D模型的使用

    時(shí)間都在與 2D 的焊盤、走線和絲印打交道。但一個(gè)完整的產(chǎn)品,終究是要走向物理世界的。元器件的高度、接插件的朝向、與外殼的配合,這些都是 2D 視圖難以表達(dá)的。 幸運(yùn)的是,KiCad 提供了強(qiáng)大的 3D 可視化功能。它不僅能讓你
    的頭像 發(fā)表于 09-16 19:21 ?1w次閱讀
    玩轉(zhuǎn) KiCad <b class='flag-5'>3D</b>模型的使用

    iTOF技術(shù),多樣化的3D視覺應(yīng)用

    視覺傳感器對(duì)于機(jī)器信息獲取至關(guān)重要,正在從二維(2D)發(fā)展到三維(3D),在某些方面模仿并超越人類的視覺能力,從而推動(dòng)創(chuàng)新應(yīng)用。3D 視覺解決方案大致分為立體視覺、結(jié)構(gòu)光和飛行時(shí)間 (TOF) 技術(shù)
    發(fā)表于 09-05 07:24

    基于 HT 的 3D 可視化智慧礦山開發(fā)實(shí)現(xiàn)

    軟件 Hightopo 作為基于 HTML5 標(biāo)準(zhǔn)的 2D/3D 圖形渲染引擎,為 Web 端礦山可視化提供了輕量化、高性能的技術(shù)支撐。
    的頭像 發(fā)表于 07-18 15:49 ?471次閱讀
    基于 HT 的 <b class='flag-5'>3D</b> 可視化智慧礦山開發(fā)<b class='flag-5'>實(shí)現(xiàn)</b>

    軟件邀您相聚第二十屆中國國際中小企業(yè)博覽會(huì)

    作為國家級(jí)專精特新 “小巨人” 企業(yè),軟件將是本次中博會(huì)廈門展區(qū)的重要數(shù)字產(chǎn)品展示窗口。屆時(shí)將攜 Web 端的 UI、2D、3D、GIS
    的頭像 發(fā)表于 06-24 11:45 ?481次閱讀
    <b class='flag-5'>圖</b><b class='flag-5'>撲</b><b class='flag-5'>軟件</b>邀您相聚第二十屆中國國際中小企業(yè)博覽會(huì)

    TechWiz LCD 3D應(yīng)用:微液晶分子摩擦排布

    ) 結(jié)構(gòu)創(chuàng)建完成后在TechWiz LCD 3D加載并進(jìn)行相關(guān)參數(shù)設(shè)置 2.2在TechWiz LCD 3D軟件中設(shè)置微擾方式為用戶自定義,并設(shè)置微擾角度 2.3其它設(shè)置 此例
    發(fā)表于 06-10 08:44

    TechWiz LCD 3D應(yīng)用:撓曲電效用仿真

    完成后在TechWiz LCD 3D加載并進(jìn)行相關(guān)參數(shù)設(shè)置 2.2在TechWiz LCD 3D軟件中開啟應(yīng)用撓曲電效應(yīng)的功能 2.3其它設(shè)置 液晶設(shè)置 電壓條件設(shè)置 光學(xué)分
    發(fā)表于 05-14 08:55

    數(shù)字孿生低空經(jīng)濟(jì) WebGIS 無人機(jī)配送

    軟件 HT 運(yùn)用低代碼數(shù)字孿生工具打造輕量化智慧城市 GIS 低空經(jīng)濟(jì)無人機(jī)運(yùn)維監(jiān)控平臺(tái),在空域管理、智慧物流、外賣配送等場景中,實(shí)現(xiàn)
    的頭像 發(fā)表于 04-22 14:46 ?809次閱讀
    數(shù)字孿生低空經(jīng)濟(jì) WebGIS 無人機(jī)配送

    TechWiz LCD 3D應(yīng)用:微液晶分子摩擦排布

    ) 結(jié)構(gòu)創(chuàng)建完成后在TechWiz LCD 3D加載并進(jìn)行相關(guān)參數(shù)設(shè)置 2.2在TechWiz LCD 3D軟件中設(shè)置微擾方式為用戶自定義,并設(shè)置微擾角度 2.3其它設(shè)置 此例
    發(fā)表于 04-01 08:59

    基于 HT 2D&amp;3D 渲染引擎的新能源充電樁可視化運(yùn)營系統(tǒng)技術(shù)剖析

    在新能源汽車產(chǎn)業(yè)快速發(fā)展的浪潮中,充電樁作為關(guān)鍵配套設(shè)施,其運(yùn)營管理的高效性和智能化愈發(fā)重要。軟件憑借基于 WebGL 和 Canvas 的 HT 2D3D 渲染引擎依托 WebG
    的頭像 發(fā)表于 03-20 11:47 ?693次閱讀
    基于 HT 2<b class='flag-5'>D</b>&amp;<b class='flag-5'>3D</b> 渲染引擎的新能源充電樁可視化運(yùn)營系統(tǒng)技術(shù)剖析

    數(shù)字孿生:解鎖壓縮空氣儲(chǔ)能管控新高度

    在能源轉(zhuǎn)型的關(guān)鍵時(shí)期,壓縮空氣儲(chǔ)能憑借其獨(dú)特優(yōu)勢,成為解決可再生能源間歇性問題、保障可靠能源供應(yīng)的重要技術(shù)。軟件(Hightopo)充分發(fā)揮其在 Web 2D&
    的頭像 發(fā)表于 02-26 15:40 ?816次閱讀
    <b class='flag-5'>圖</b><b class='flag-5'>撲</b>數(shù)字孿生:解鎖壓縮空氣儲(chǔ)能管控新高度

    Techwiz LCD 3D案例:LCOS模擬

    LCOS像素尺寸直接減小到理論要求的尺寸會(huì)明顯導(dǎo)致像素尺寸和LC層厚度的比例過小,使得LCOS中相鄰像素之間電場相互干擾產(chǎn)生邊緣場效應(yīng)。 任務(wù)描述 使用Techwiz LCD 3D模擬的LCOS結(jié)構(gòu)
    發(fā)表于 01-11 13:26

    恭喜!軟件榮獲 2023 年度福建省科學(xué)技術(shù)進(jìn)步獎(jiǎng)

    軟件林意煒團(tuán)隊(duì)以《面向工業(yè)互聯(lián)網(wǎng)的 2D3D 數(shù)字孿生可視化引擎技術(shù)與產(chǎn)業(yè)化應(yīng)用》內(nèi)容榮獲廈門市科學(xué)技術(shù)進(jìn)步獎(jiǎng)三等獎(jiǎng)。
    的頭像 發(fā)表于 12-24 16:02 ?621次閱讀
    恭喜!<b class='flag-5'>圖</b><b class='flag-5'>撲</b><b class='flag-5'>軟件</b>榮獲 2023 年度福建省科學(xué)技術(shù)進(jìn)步獎(jiǎng)

    TechWiz LCD 3D應(yīng)用:撓曲電效用仿真

    完成后在TechWiz LCD 3D加載并進(jìn)行相關(guān)參數(shù)設(shè)置 2.2在TechWiz LCD 3D軟件中開啟應(yīng)用撓曲電效應(yīng)的功能 2.3其它設(shè)置 液晶設(shè)置 電壓條件設(shè)置 光學(xué)分
    發(fā)表于 12-10 13:43