精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何選擇最合適的數字孿生引擎?B/S架構還是C/S架構?

jf_00255370 ? 來源:jf_00255370 ? 作者:jf_00255370 ? 2023-06-25 13:41 ? 次閱讀

上一期講了什么是3D引擎以及3D引擎的發展史,本期回到數字孿生引擎:

什么是B/S架構和C/S架構?

WebGL與WebGPU又有什么關系?

開發數字孿生必須要用數字孿生引擎嗎?游戲引擎不是也可以開發數字孿生嗎?

什么是B/S與C/S架構?

常見的3D引擎可以分成兩大類,一類是Native3D引擎(客戶端),這類引擎以Unity、UE4等游戲引擎為主,另一類是Web3D引擎(瀏覽器),以ThingJS 3D等基于WebGL和WebGPU開發的渲染引擎為主。

wKgaomSX05aAVb-hAAOtv2Bkd7I32.webp

所以,目前數字孿生市場上有兩種技術路線,一個是基于游戲3D引擎的走C/S架構的,一個是基于Web 3D引擎的走B/S架構。

先來說說什么是C/S架構,C/S架構是第一種比較早的軟件架構,主要用于局域網內,分為客戶機和服務器兩層。C/S架構軟件有一個特點,就是如果用戶要使用的話,需要下載一個客戶端,安裝后就可以使用。例如,Office、QQ等軟件。

B/S架構的全稱為Browser/Server,即瀏覽器/服務器結構,Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在服務器端實現,分為表現層、邏輯層和數據層三層。B/S架構的系統無需特別安裝,只用Web瀏覽器即可。

C/S架構數字孿生系統缺點顯而易見,它只能安裝在局域網中,需要下載才能使用,一般規模的數字孿生系統都得十幾個甚至幾十個G,每次升級都要更新所有客戶端,優點就是效果足夠精美,且只有一層交互,因此響應速度較快。B/S架構數字孿生系統效果可能不如C/S架構效果那么好,優點是無需安裝,可以直接放在廣域網上,通過一定的權限控制實現多客戶訪問的目的,交互性較強。

WebGL與WebGPU的區別與聯系

提到WebGL與WebGPU,必須要提OpenGL圖形渲染接口,了解的朋友可能比較熟悉,OpenGL是一個跨平臺的行業標準,可以部署在Windows、MacOS、Linux、Andriod和iOS上,而且學習門檻很低,使用場景更加廣泛,除游戲外,大量的工業設計、仿真和數字孿生應用都在使用OpenGL。

wKgZomSX05eAWC95AAF6mnWena864.webp

OpenGL是一個很大的家族,最早的OpenGL1.0是1991年發布的,后來每隔幾年都會更新一個版本。到了2012年WebGL才發布。WebGL天然是擁抱瀏覽器的,它以OpenGL ES為基礎,做了一些API裁剪和瀏覽器適配。

WebGL誕生的背景是因為互聯網的高速發展,基于瀏覽器的Web應用越來越廣泛。程序員們就想,安裝那么多插件實在太麻煩,能否用瀏覽器直接訪問3D應用呢?而且C++C#太難學,能不能直接用JavaScript開發3D應用程序呢?于是,WebGL在千呼萬喚中應運而生。

而WebGPU是GPU顯卡硬件向瀏覽器開放的低級應用程序接口,底層是基于 Vulkan、Metal和DirectThingJS 3D 12,是WebGL的升級版,更好地支持和開放了GPU顯卡的最新技術,能提供更好的性能,更好地支持多線程,更好地使用GPU實現很多渲染和計算上的優化,并采用了面向對象的編程風格。

為什么說游戲引擎并不是做數字孿生的最佳選擇?

為什么游戲引擎不是做數字孿生的最佳選擇?其實《游戲引擎架構》這本書中給出了答案:在游戲領域,沒有所謂最好的引擎,只有最合適的引擎,這句話同樣適用于數字孿生領域。

那回到本文的主題,如何選擇最合適數字孿生項目的引擎呢?在思考這個問題前,我們先要搞清楚數字孿生場景和游戲場景的區別。

做數字孿生,主要的業務場景是城市、園區、樓宇和數據中心的運營管理,業務價值是幫助人們更好地認知和管理現實世界。所以,這種業務場景和游戲有很大的區別。游戲大都是封閉的虛擬世界,里面出現的人物、事件和地點都是事先設計好的,游戲中做出的決策也不會影響現實世界。

而數字孿生是用來管理現實世界的,現實世界有大量的工具平臺需要兼容和集成、有大量的實時數據需要接入和處理,這些都是傳統游戲引擎難以適應的。

另外,現實世界的管理需求在不斷演變,數字孿生應用就需要不停地迭代,甚至以周為單位交付新的管理功能。如果用游戲引擎來做數字孿生應用開發周期長且不說,而且迭代起來非常麻煩。因此就需要一個低門檻、易調試、高性能的引擎來開發數字孿生應用。

所以數字孿生的最佳引擎應該具備以下特點:

1??支持海量實時數據驅動現實世界有大量的傳感器,這就需要數字孿生體是能夠被實時數據驅動的,能夠根據數據狀態的變化而變化

2??支持與第三方物聯系統的無縫整合目前物聯網領域已經有眾多的樓宇監控系統、資產管理系統和物聯控制系統存在,數字孿生系統并非要取代這些系統工具,而是實現數據互通和界面整合,而且大部分已有系統都是Web應用,所以數字孿生引擎必須兼容Web應用

3??更快的需求響應速度和適變能力對于一個現實世界的管理系統而言,管理場景會不斷演進,功能需求也會不斷變化,系統要發揮價值,就必須不斷地優化,疊加新功能,所以開發的效率十分重要。要提升開發效率,最好的辦法是采用前端編程語言,Javascript是前端開發者使用最廣泛的語言,學習門檻低,開發效率遠遠高于傳統游戲引擎。

為數字孿生而生的渲染引擎——ThingJS 3D

UINO優锘的ThingJS 3D渲染引擎是一款Web 3D渲染引擎。很多伙伴可能想問,Web平臺有很多的開源引擎,如:three.js,BabylonJS,PlayCanvas,ClayGL,Oasis等,以及在CS端也有,如:Unity、UE、CryEngine、Ogre等引擎,為什么UINO優锘要開發自己的引擎呢?

UINO優锘自2012年創立之初,就在項目中對一些引擎做了較深入的研究和實踐,發現這些引擎并不能完全滿足我們所面對的領域的需求。

這種情況下,我們結合了之前使用C++開發的引擎經驗、WebGL的開發經驗、上述引擎的使用經驗、以及項目中的實踐經驗,開發了WebGL版的ThingJS 3D引擎,以便更好地服務于Web平臺的3D渲染。

wKgaomSX05iAVjvUAAlRzXz6hAQ13.webp

ThingJS 3D渲染效果

在ThingJS 3D渲染引擎的框架設計中,主要分為四層:標準封裝層,渲染邏輯層,場景資源層和擴展層。標準封裝層,渲染邏輯層,場景資源層構成核心庫 ThingJS 3D。

核心庫是一個Web優先的,最小可運行的通用圖形渲染庫。Web優先指的是ThingJS 3D主要基于WebGL和WebGPU作為底層繪圖標準。通用圖形渲染庫指的是ThingJS 3D并不限定圖形渲染以外的其它邏輯,適用性與擴展性比較好。另外,UINO優锘官方提供常用需求的擴展,作為第二方庫供開發者使用。至于定制化的需求,支持由開發者基于ThingJS 3D開發第三方庫。

wKgZomSX05mAR-bvAAK2fO3gxZo14.webp

ThingJS 3D渲染引擎架構

渲染引擎封裝的功能,從大的分類來說,可以分為:場景樹,幾何體,材質,渲染管線,下面簡要介紹一下ThingJS 3D在這些方面的改進:

1??場景樹

改進了場景樹矩陣更新的邏輯,基于內置的矩陣標臟系統,可以進行觸發式更新。簡單理解就是,有改變再更新,不改變不更新,在大多數項目中,可以極大提高矩陣更新效率,從而提升渲染幀率。

優化Uniform的預處理,場景中全局參數,燈光參數,可以單獨進行更新并cache,提高Uniform上傳效率。

可擴展的渲染層級列表,更方便地渲染排序。基于渲染層級,可方便地實現背景,場景,覆蓋物的排序分離,并基于深度緩沖分層,滿足特定渲染需求。能一定程度上解決透明圖標遮擋問題,滿足alwaysOnTop,Overlay的需求等等。

wKgaomSX05mAAY2bAACf5el_f4A15.webp

2??幾何體

核心庫提供Geometry,Attribute,Buffer類,提供逐頂點的幾何體描述。同時支持Instance繪制。基于幾何體的封裝,我們可以接收多種類型的數據進行渲染:

模型加載器,例如核心庫示例部分提供的GLTFLoader,VoxLoader等

程序生成,例如:點,線,面,管,擠出等

自定義數據,例如第三方GIS數據,實時傳輸數據等

wKgZomSX05qAYhLCAAN5q3PB3eg01.webp

在點線面的擴展上,ThingJS 3D的官方示例部分,會提供業務場景(ThingJS)中常用的幾何體生成計算模塊。

wKgaomSX05qAcnqaAAE0SDGR-yE40.webp

3??材質

一般的Web渲染引擎中,很難基于內置材質進行擴展。例如three.js,材質的Uniform上傳與材質類型是深度耦合的,因此很難基于Standard材質實現掃光等材質特效。ThingJS 3D提供了材質繼承機制,只需要簡單插入著色器邏輯,即可實現對PBR材質的快捷修改。

wKgZomSX05uAIF_jAAXJ8Zd05Nc91.webp

4??渲染管線

常見的WebGL引擎中,渲染器的渲染功能容易是過度耦合的。ThingJS 3D面向基于GPU加速的圖形接口,即WebGL與WebGPU,基于這樣的思路,我們抽離出RenderPass的概念。

目前我們提供WebGLRenderPass作為默認的渲染通道,未來,幾乎可以無縫切換到WebGPURenderPass。這樣在我們推出WebGPU渲染器后,不需要改變上層代碼邏輯,即可直接實現WebGPU的渲染。

wKgaomSX05uAIao4AABSl4OcEMk51.webp

另外,ThingJS 3D提供的接口可以單獨處理“場景圖信息的收集”與“渲染列表的生成”,并可以執行力度更低的渲染命令。便于實現高性能的后處理流程擴展。在實際渲染中,物體勾邊,發光等后期,往往需要多通道的渲染。在下圖中,同樣是執行兩通道的渲染,ThingJS 3D執行的流程,能避免很多冗余的邏輯。

wKgZomSX05uAV-7YAAFgZ11OUd885.webp

基于這樣的設計,我們提供了高級渲染器(EffectComposer)的擴展。高級渲染器是一個后期混合器,并內置了常用的后期處理模塊。高級渲染器為ThingJS提供了豐富的后期特效支持。

wKgaomSX05yALCPaAAUoxoTIv0g26.webp

除了全屏幕的后期處理效果,EffectComposer還提供逐物體的特效解決方案。未來,ThingJS 3D還在快速迭代中,未來我們還要做:

基于Transform Feedback特性的更強大的粒子系統

節點式材質系統

更加強大的WebGPURenderPass

綜上所述,ThingJS 3D為Web平臺提供強大的3D渲染能力。基于ThingJS 3D引擎,能實現豐富的幾何體定制,材質定制和渲染管線定制。未來ThingJS 3D將本著開放,共享的原則,不斷演進,為用戶提升渲染效果和渲染性能,保證ThingJS在Web端優異的渲染能力。

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 3D引擎
    +關注

    關注

    0

    文章

    6

    瀏覽量

    8141
  • 數字孿生
    +關注

    關注

    4

    文章

    1282

    瀏覽量

    12210
收藏 人收藏

    評論

    相關推薦

    張江發布首個城市級時空計算引擎,引領數字孿生城市新風向

    要素+人工智能”為核心,搭建起開放、共享的城市級時空計算引擎,為培育和發展新質生產力、深入實施數字中國戰略貢獻力量。 該系統由上海浦東軟件園聯合張江本土優勢企業聯合開發,結合數字孿生
    的頭像 發表于 10-15 14:02 ?193次閱讀
    張江發布首個城市級時空計算<b class='flag-5'>引擎</b>,引領<b class='flag-5'>數字</b><b class='flag-5'>孿生</b>城市新風向

    OBOO鷗柏信發系統BS網絡架構安全傳輸和訪問控制的解決方案

    B/S的網絡應用系統,安全傳輸和訪問控制的安全解決方案,OBOO鷗柏基于B/S架構的網絡應用系統,多媒體信息發布系統就是用戶客戶端通過IE瀏
    發表于 08-02 16:54 ?0次下載

    一體式IO與分布式IO:工業控制系統的兩種架構

    受到青睞。然而,一體式IO架構在小型系統中仍然有著廣泛的應用。了解這兩種架構的特點和區別,有助于工程師和決策者為企業選擇最合適的工業控制系統解決方案。
    的頭像 發表于 07-17 16:12 ?894次閱讀
    一體式IO與分布式IO:工業控制系統的兩種<b class='flag-5'>架構</b>

    如何選擇數字孿生開發平臺?

    在當今數字化時代,選擇合適數字孿生開發平臺至關重要。數字孿
    的頭像 發表于 06-21 14:43 ?269次閱讀

    選擇合適數字孿生開發平臺因素有哪些?

    選擇合適數字孿生開發平臺對于企業來說至關重要,因為它將直接影響到數字孿生項目的成功與效率。在
    的頭像 發表于 06-11 14:55 ?347次閱讀
    <b class='flag-5'>選擇</b><b class='flag-5'>合適</b>的<b class='flag-5'>數字</b><b class='flag-5'>孿生</b>開發平臺因素有哪些?

    數字孿生場景構建行業應用和優勢

    數字孿生場景構建利用豐富的業務數據和與實際場景相貼合的模型交互,可以有效地推動業務的高效運轉,為科學決策提供支持。通過雙渲染引擎,1:1還原真實世界,在模型運行流暢的基礎上提供極佳的視覺效果。那么
    的頭像 發表于 06-11 14:26 ?327次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>孿生</b>場景構建行業應用和優勢

    什么是數字孿生

    近年來,數字孿生這個詞不斷出現在公眾視野中,尤其是隨著物聯網技術的發展,數字孿生不斷出現在各行各業。乍一看,這個概念還是比較生僻的。什么是
    的頭像 發表于 06-05 15:45 ?873次閱讀

    進一步解讀英偉達 Blackwell 架構、NVlink及GB200 超級芯片

    ,同時降低水消耗。利用NVIDIA Blackwell架構的高帶寬內存性能、NVLink-C2C和專用解壓縮引擎,GB200大幅提高關鍵數據庫查詢的速度,比CPU提升18倍,并將總體擁有成本(TCO
    發表于 05-13 17:16

    光庭信息推出了基于S32G+8295+J5新架構的中央域控解決方案

    在智能化浪潮席卷汽車行業的今天,光庭信息作為“軟件定義汽車”的引領者,推出了基于S32G+8295+J5新架構的中央域控解決方案。
    的頭像 發表于 05-07 14:33 ?699次閱讀

    MySQL的整體邏輯架構

    支持多種存儲引擎是眾所周知的MySQL特性,也是MySQL架構的關鍵優勢之一。如果能夠理解MySQL Server與存儲引擎之間是怎樣通過API交互的,將大大有利于理解MySQL的核心基礎架構
    的頭像 發表于 04-30 11:14 ?429次閱讀
    MySQL的整體邏輯<b class='flag-5'>架構</b>

    STM8S怎么選擇外設功能還是GPIO功能?

    新人求助:STM8S怎么選擇外設功能還是GPIO功能?
    發表于 04-30 06:53

    數字孿生關鍵技術及體系架構

    的可行思路。首先介紹了數字孿生的演進與價值,然后給出了數字孿生典型特征及其體系架構,并基于該架構
    的頭像 發表于 04-02 14:21 ?726次閱讀

    如何選擇和配置UPS及其供電架構

    本文從用戶在UPS電源及其供電架構選擇和配置以保證可靠供電等方面進行概述,試圖解決用戶的某些困惑。 作為負載用電可靠保障的UPS電源,在各行業領域中得到了廣泛的應用。UPS的研發和應用已有幾十年
    的頭像 發表于 01-13 09:57 ?794次閱讀
    如何<b class='flag-5'>選擇</b>和配置UPS及其供電<b class='flag-5'>架構</b>

    淺談基于數字孿生的配電室關鍵技術研究

    的應用可強化機器人巡檢,AI識別和終端設備控制等手段,能夠*大程度地提升配電室總體工作效率。 5數字孿生關鍵技術在配電室中的應用 5.1智慧云平臺建設 基于當前主流微服務開放源代碼架構的“數字
    發表于 01-09 15:49

    amazon s3采用什么架構涉及的基本概念是什么

    Amazon S3(Simple Storage Service)是亞馬遜公司提供的一種云存儲服務。它采用分布式架構,為用戶提供了一個高可用、高可靠性、低延遲的對象存儲服務。S3不僅為個人用戶和企業
    的頭像 發表于 12-03 16:37 ?1585次閱讀