日本a级久a级,欧美精品与黑人又粗又长,精品久久久一,久久影院一区

從量子疊加看數字孿生(上)

1_量子的疊加性

量子物理因為區別于經典物理而被稱為新物理,它最著名的三個特性就是疊加態、糾纏態和坍縮性。雖然目前尚不能完美地解釋這些特性,但因為數學公式的嚴格推導、實驗的間接證明和生活中的廣泛應用,所以量子理論已經成為了真理的一部分。

所謂的疊加態,就是一個粒子可以同時多個具備排他的狀態。比如一個電子在雙縫干涉實驗中同時出現在兩個地方,造成明暗相間的條紋。但是,這怎么可能呢?確實,不僅僅是普通人,就連愛因斯坦到死的時候,也無法接受量子理論。

但是,無論能不能理解,如剛才所說,它就是真理。最重要的是,疊加性因為同時具備一些矛盾的特性,也擁有了逆天的實用價值。量子計算機的并行計算能力,就是利用疊加特性。如果有一天,人類能精準地預測天氣,快速發明治療各種疾病的藥物,就是量子計算機在背后貢獻力量。

知道了什么是疊加態,我們不難發現,在現實世界中,程序員們已經通過編寫程序,在計算機的虛擬世界中創造了很多具備疊加性的應用系統,數字孿生就是典型的代表。

那么,數字孿生系統到底存在哪些疊加態?這些疊加態又是如何實現的呢?下面,就以北京優锘科技有限公司的數字孿生系統,即ThingJS 3D可視化平臺(以下簡稱ThingJS)為例來進行具體的說明。

2_ 亦近亦遠

當宇航員置身太空中時,盡管地球如此巨大,但依然能盡收眼底。再大的物體,只要距離它足夠遠,我們也能看清它的全貌,知道它的形狀,顏色,其表面都覆蓋著什么。

另一方面,就算距離地球如此之遠,宇航員依然能夠利用高精密度的觀測設備,拉近了與地球的距離,甚至能夠看清楚地面上的一只螞蟻。可以說,利用了宇宙飛船和觀測設備,宇航員同時具備了亦近亦遠這種看似矛盾的能力。

現實工作中人們通常不需要觀察或者管理地球這么大尺度的物體,但就算一棟樓或者城市的某個區域,也不是想遠就遠,想近就近的。要么借助某些工具,要么就是人自己跑的遠一點或者近一點。

這一切在數字孿生系統出現后,便發生了變化。借助ThingJS,使用者只需要操作鼠標,便能改變與物體的距離,讓人具備了遠看全局近看細節的能力。

為了實現這種亦近亦遠的能力,ThingJS都做了哪些工作呢?

2.1?虛擬攝像機

在解釋亦近亦遠能力如何實現之前,要說一個ThingJS的專業術語:攝像機,它是可視化應用開發過程中必不可少的一個概念,它是用戶觀察3D場景的切入點。你可以把電腦的屏幕理解成攝像機,屏幕后面就是三維虛擬世界。亦近亦遠的三維場景,就是通過控制攝像機的可視范圍來實現的,即可視范圍越大,物體顯得更遠;可視范圍越小,物體顯得更近。

ThingJS還有一種能力,就是攝像機不動的情況下,某個被觀察物體可以單獨進行縮放,這種伸縮可以是長寬高同時縮放,也可以是某個方向上單獨縮放。

?

2.2?精簡切換

可視化應用很重要的一個使用場景就是宣傳展示,展示的設備會由普通的電腦顯示器變成了大屏,分辨率可能達到2K、4K甚至8K。在這種分辨率下,模型必須制作的非常精細,才能夠保證在近距離和高分辨率下,模型依然保持正常的觀感,不模糊,不出現鋸齒。但這又帶來了另外一個問題,精細的模型比普通的模型占用更多的內存和顯卡計算能力,精細的模型多的時候,就會出現大家所說的“卡”。

經常玩游戲的人深有體會,配置低的電腦如果各種游戲特效都打開,流暢度就會大大下降,原因之一就是特效打開的情況下,加載過多的高精細度的模型(人物模型、道具模型、特效模型等)造成的。

ThingJS巧妙的使用了精模簡模切換的辦法,兼顧了性能和視覺效果。也就是說在場景初始化后,用戶是遠距離觀察整個場景,此時系統雖然加載了所有模型,但加載的是精細度較低的模型,保證了系統響應速度;當用戶近距離觀察某個設備(比如數據中心的機柜)的時候,系統會自動把那些在用戶視野范圍內且距離較近的設備切換為精細的模型,因為同時在用戶視野內且距離較近的設備數量不可能過多,所以雖然是精細模型也不影響系統性能。

2.3?小地圖

ThingJS支持小地圖方式,幫助用戶在全局視角下,通過點擊右上角小地圖的某個點,在3D場景中觀察該位置的詳細情況。這個功能讓用戶同時擁有了遠近觀察的能力。

3_?亦內亦外

小時候很喜歡看動畫片,印象最深的動畫片之一便是嶗山道士。片中的王生習得了法術,可以念動咒語,穿過墻壁進入室內,不過因為他心術不正,最終導致法術失靈。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

時至今日,嶗山道士換成了ThingJS,穿墻術換成了層級切換,而且這個法術百試百靈,永遠不存在失效的情況。

3.1?層級切換

首先,ThingJS將3D場景中的空間單位按從大到小的順序進行了層級劃分,比如分別為園區,建筑、樓層、房間、物體等等。

以此結構為基礎,ThingJS提供了層級切換的能力,讓用戶的觀察視角在各個層級之間實時變化,穿墻瞬移都不是問題。比如在園區層級,雙擊某個建筑物,可以切換到建筑層級,近距離的觀察建筑物外立面;再雙擊建筑物的某個樓層,可以切換到樓層層級,查看該樓層的布局結構。

層級切換能力可以從外到內,也可以從內到外,但都是逐級切換。

?

?

更神奇的是,無論在任何層級,用戶可以立刻飛到某個物體的旁邊,就像X戰警中的瞬移人。這個功能通常用來實現物體的搜索和空間定位。

3.2?第一人稱行走

如果覺得層級切換和瞬移這種超能力太過逆天,而你只想做個普通人,規規矩矩的從外到內,也沒問題。ThingJS還提供了第一人稱行走的能力,就像玩游戲一樣。

A:左移;

D:右移;

W:前進;

S:后退;

空格:跳躍;

鼠標:旋轉場景;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

在此功能基礎上,還可以自定義行走路線。設定完成后,視角就會根據設定的路線自動行走并切換。


4?_亦分亦合

請看下面兩張圖,看出有什么差別了嗎?

第一張圖中,是變電站的一臺主變壓器,但為了管理和觀察上的方便,在第二張圖上將這個變壓器的各個組件進行了拆解,可以查看每個組件的外形和監控數據。

在應用系統所管理的對象中,有很多類似的物體,它包含了眾多復雜的組件。如果拆開表示,雖然能夠仔細觀察到各個組件的外觀和運行情況,但卻破壞了系統總體外觀上的完整性;如果不拆開,就難以了解復雜對象的物理結構,在理解這個對象的運行原理,以及發生故障時候的根源分析和問題解決的情況下,都會造成困難。由此可見,具備了聚合分解能力的模型和可以承載這種模型的可視化平臺是多么重要。

4.1?模型制作

閱讀過了上面的部分,我們自然可以想到,ThingJS平臺亦分亦合的能力是要有相應的模型支持的,程序還沒有達到能把一個模型拆解成多個模型組件的智能化程度。

優锘的建模工程師從客戶處獲取物體各個組件的外觀照片,然后分別建模再整合到一起。這個過程中,每個組件模型的美觀和組合在一起的完整性和契合性都要保證,其制作的復雜性和時間上的高成本,導致了在實際項目中,只有一些大型的、重要的物體,比如變壓器、盾構機等,才進行分合模型的制作。

4.2?模型分合

分合模型制作完成后,接下來就是程序處理了。程序可以按照視覺上的合理性,設置各個組件的運動軌跡和向量,然后對物體的各個組件進行位移,最后形成一個整體模型分開,變成多個組件模型的動畫效果。

實際開發過程中,一個分合模型的組件數量比較少還好,但是如果組件數量多,一個個進行軌跡和向量的設置然后測試,最后形成一個合理的視覺效果,會耗費很大的工作量。因此,ThingJS提供了一個可視化工具,實現了模型移動和代碼自動生成的雙向交互。也就是說,將一個分合模型導入到這個可視化工具后,可以用鼠標拖動模型中的一個組件,系統就會自動生成相應的腳本。如此往復,把每一個組件都用鼠標拖動到分開狀態下的合適位置,也就完成了所有的代碼開發工作。如果對位置的細節不滿意,還可以修改代碼中代表位移長度的數字,則可視化區域中的組件會進行對應的移動。

4.3?動態組合

分合模型的動畫效果無論從視覺感受,還是實際管理上都有很重要的意義。不過,ThingJS亦分亦合的能力不僅于此,比如動態組合。

在與某廠的合作過程中了解到,他們為客戶生產的數據中心微模塊中,包含的機位數量是不固定的,每一種類型的微模塊有十幾種可能性,而且微模塊的類型有很多種。在這種情況下,一般的做法就是要做幾十種模型,更要命的是,如果某種類型的微模塊的模型要進行改動,這個系列的所有模型都要改變,費時費力易出錯。

為此,ThingJS新增了一種動態組合的能力,像上文中提到的微模塊,會制作一個含有三個組件,即兩側的門和一對機柜(如果是單列微模塊就是一個機柜)的模型。在3D場景中,系統可以根據外部系統傳入的參數(包括方向和機柜數量),動態的加載模型組件,即微模塊前門,動態數量的機柜和微模塊后門,最終在3D場景中形成大小不一的微模塊。

5?_亦靜亦動

一般人理解數字孿生系統,只是簡單地理解為二維變三維,殊不知,比起維度的改變,更重要的是,數字孿生系統讓原來靜止的世界動了起來。ThingJS也是如此,如果用戶想仔細地清楚,它就靜止;如果用戶想全面的了解,它就轉動。當然,為了更好地展示被管理的對象,ThingJS平臺研發出的更多能力是向著動的方向傾斜的。

5.1?物體控制

ThingJS提供了很多控制物體的方法,包括:

顯示/隱藏:可以讓某個或者某些物體模型顯示或者隱藏;

旋轉:讓某個物體模型沿任意方向,旋轉任意的角度;

移動:讓某個物體模型沿著一定的線路移動;

?

上面提到的物體顯示隱藏、旋轉和移動都是比較簡單的運動能力,ThingJS還提供了一些復雜的運動能力,比如一個物體圍繞著另一個物體旋轉,一個物體追隨著另一個物體運動等等。各種簡單和復雜的運動方式組合起來,為各種業務場景的可視化展示和管理提供了無數的可能性。

還有一種活動效果是模型本身就具有的,比如數據中心場景中的機柜門的開關。ThingJS可以獲取并展現該模型具備的所有活動效果。

5.2?視點動畫

如果把物體控制能力形成的效果比喻成小視頻的話,那么ThingJS的動畫制作能力就可以看成是動畫片的制作。設想一下,如果有機會變成宮崎駿,誰還會在乎抖音上火不火呢。那么,ThingJS的動畫的制作過程是怎樣的呢?

首先了解一下視點的概念。其實很容易理解,在3D場景中,某一個固定的畫面就是一個視點。當然了,從用戶的角度看是一個靜止的畫面,而從系統后臺看這個畫面卻包含了眾多的數據,比如場景的編號和角度,攝影機到場景的距離和角度等等。

在了解了視點的概念后,下一步就是獲取視點,相當于把你認為合適的3D場景畫面按個暫停鍵然后截圖。

如果想動畫過程中表現的內容多一些,就要多獲取一些視點,形成一個視點列表。

完成了一個視點列表,其實就是完成了一個動畫的制作。你可能會想怎么會這么容易,如果一個視點是園區的鳥瞰圖,下一個視點是某個設備的細節放大圖,兩個視點連續播放豈不就是圖片的切換,跟動畫有什么關系呢?

ThingJS的強大之處,就在于它沒有把視點切換做成生硬的圖片切換,而是在后臺做了大量的工作,計算兩個視點中場景的層級和角度,攝像機的距離和角度等信息,然后按照一定速度均勻地進行變換,從用戶的角度看起來,就是一個平滑的動畫過程。

如果還不明白,就想象一下那些能夠進行變臉的APP吧,這些APP通過算法把一張臉漸漸地,毫無違和感地變成另外一張臉。雖然這算法復雜,但是用戶只需要關心前后兩張臉的圖片就行了,剩下的交給計算機。

限于篇幅原因,ThingJS量子宇宙的疊加態先介紹到這里。接下來的一篇中,我們還將介紹亦簡亦繁,亦舊亦新,亦真亦幻和亦獨亦群四種疊加態。

數字孿生/智慧園區/IOC/三維可視化/

主站蜘蛛池模板: 灯塔市| 泸西县| 赤壁市| 左贡县| 新泰市| 南安市| 长治县| 阳曲县| 通化县| 延长县| 盐亭县| 丁青县| 黑山县| 连平县| 格尔木市| 文登市| 施秉县| 北川| 庄河市| 明光市| 永城市| 云霄县| 剑川县| 石景山区| 武城县| 阿尔山市| 兴宁市| 乌拉特后旗| 随州市| 台东市| 遂昌县| 改则县| 宝丰县| 霍州市| 苍溪县| 墨江| 嘉义市| 剑阁县| 扬州市| 平舆县| 巴彦县|