国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

動態(tài)構(gòu)建室內(nèi)建筑在三維引擎中的實現(xiàn)方法

2024-10-20 00:00:00陳世林
科技風(fēng) 2024年29期

摘要:在三維引擎的模型使用策略中,目前各行業(yè)所使用的方法幾乎都是采用3D軟件(如3Dmax、Maya)提前構(gòu)建模型,然后將模型導(dǎo)入3D引擎(如Webgl、Unity3d、VirTool、UnrealEnegineing),大多數(shù)缺少對即時環(huán)境的考慮?;陟o態(tài)地構(gòu)建建筑結(jié)構(gòu)仿真的局限,從而提出了動態(tài)構(gòu)建模式(DCM)的方法,對項目工程中所使用的實時構(gòu)建模型的需求進行研究,并成功地運用到相關(guān)項目中得到驗證,得出實現(xiàn)這一模式的方法。

關(guān)鍵詞:三維引擎;建筑結(jié)構(gòu);動態(tài);室內(nèi)

動態(tài)構(gòu)建模式(DCM)即在項目運行過程中動態(tài)創(chuàng)建模型,包括對模型的3D空間的計算、表面結(jié)構(gòu)的計算,材質(zhì)和貼圖的處理以及相互關(guān)系的處理等幾個維度。[1]

本文基于3D圖形學(xué)基本原理,利用游戲引擎(如Unity3d、UnrealEnging)進行動態(tài)模型的場景,并結(jié)合室內(nèi)建筑結(jié)構(gòu)的特點[2],創(chuàng)造性地對墻面、地面、吊頂、門窗、貼腳的動態(tài)實現(xiàn)方法進行研究,并應(yīng)用于實際項目,進行可行性驗證,從而得出室內(nèi)建筑的設(shè)計、效率、質(zhì)量、維護性等方面比原有的設(shè)計方式更加人性化,更適合工程標(biāo)準(zhǔn)化的特點[3]。

1動態(tài)構(gòu)建模型(DCM)的空間研究

1.1三維模型空間位置原理

關(guān)于三維模型構(gòu)造世界空間關(guān)系的問題,我們必須要討論一下空間索引的方法[4]。索引算法很多,主要使用的是八叉樹(Octree)索引算法,如圖1。

八叉樹是三維空間劃分的數(shù)據(jù)結(jié)構(gòu)之一,它用于加速空間查詢,三維模型的元素在空間的存在關(guān)系,正是利用八叉樹確定之間的關(guān)系。

1.2三維物體頂點構(gòu)成原理

三維物體是由基本元素點(Point)、線(Line)、面(Face)構(gòu)建的模型。利用矢量算法,對空間(Space)的位置度量進行計算,空間的表示方法通常有三個軸向:左右(x)、前后(y)、上下(z)。三維模型中,一般使用三個點作為一組數(shù)據(jù)構(gòu)成一個角面,然后根據(jù)節(jié)點關(guān)系得出該組三維信息的索引信息,該索引信息作為圖像的計算依據(jù)[5]。

2三維物體創(chuàng)建過程研究

2.1三維物體頂點坐標(biāo)索引

三維物體的面由三角面構(gòu)成,故一個四邊面一共有兩個三角面,從而會有兩組三角頂點信息。一個正方體有八個頂點,如果要構(gòu)成一個正方體的面,就有12組三角頂點信息,除去重疊的12個節(jié)點,共計24個頂點信息,這種情況稱為頂點的冗余計算。

2.2三維物體UV信息索引

三維物體的表面渲染存在面的方向問題,也就是法線,表現(xiàn)為正面能看見,反面不能看見,三角形的渲染順序與三角形的正面法線呈左手螺旋定則,如圖2。采用k→k+2→k+3的方法組合三角面的方向,就能保證三角面法線方向朝外。

每一個UV信息和三角面的頂點對應(yīng),0,1分別代表貼圖的U和V兩個方向的比例,比如,0代表貼圖某一方向起始位置,1代表貼圖某一方向的結(jié)束位置。采用以下模式存入各個三角點對應(yīng)的列表位置。

uv()=(0,0),(0,1),(1,1),(1,0)…(1)

3建筑結(jié)構(gòu)的動態(tài)構(gòu)建研究

3.1主體結(jié)構(gòu)的實現(xiàn)方法

在對建筑主體進行構(gòu)建時,采用墻體繪制—生成墻體和地面的方法。墻體繪制時,首先確定各個角點,每一面墻體都是一個box,實質(zhì)就是一個六面體,將這個六面體的各個頂點和面按照上述方法進行建模,然后進行組合。在繪制時會對這個box進行動態(tài)運算,達到繪制時跟隨鼠標(biāo)伸縮的效果。

墻的類型分為A型和B型兩類,A型墻是單朝向,B型墻是共墻,需要有兩個朝向。

3.2轉(zhuǎn)角的實現(xiàn)方法

墻體是由box構(gòu)成,box是有厚度的,所以在實際創(chuàng)建時會導(dǎo)致交接的部位有缺口。如圖3,同時模型的表面會重疊,影響表現(xiàn)效果。

解決的辦法是先求出∠O的角度,然后根據(jù)角度對轉(zhuǎn)角模型進行切割運算,實現(xiàn)兩面墻體的完美結(jié)合。

當(dāng)∠O=90°時,延長墻面的外墻線,兩面墻的外墻線的交點就是墻面外墻的最長點,內(nèi)墻面的交點就是墻面的最短點,沿著這兩點就可以實現(xiàn)墻體的切割。

當(dāng)∠O=90°時,需要通過系列運算方法得出角度大?。?]。

首先需要求出兩面墻的斜率k,其中y1,y2代表墻面兩個端點的y軸值,x1,x2代表墻面兩個端點x軸值。然后根據(jù)兩面墻的斜率,就可以得到夾角的值。

tanO=k1-k21+k1k2(2)

tanO=>∠O(3)

3.3頂和地面的實現(xiàn)方法

當(dāng)檢測到區(qū)域封閉的時候,開始計算頂部和地面的模型。首先判斷每個區(qū)域的首位點是否重疊,如果重疊確認(rèn)為一個封閉空間,根據(jù)每個空間的整體形狀,判斷中心點,確定每面墻設(shè)置朝向。

3.4門窗結(jié)構(gòu)的實現(xiàn)方法

確定門窗的位置和大?。捍_定了墻面的方向后,需要在墻體上進行門窗開孔,在2D視圖中先確定門窗的長寬高和位置,然后重新計算墻體的尺寸大小,[10]墻面長度是需要除去墻面厚度的修正值。

通過分割墻體計算門窗開孔:計算時對每一面墻按照方向確定起始和計算位置。如0代表起始點,1代表結(jié)束位置。如pos表示墻面位置,width表示墻面的寬度,門的開洞計算方式如:

pos(walla)=0+width(walla)(4)

方向的切換簡化計算難度:每面墻的各個分塊確定后,用初始的方向開始建模,模型建立完畢,按照墻面已經(jīng)保存的方向還原到初始的方向。

4貼腳的實現(xiàn)

確定貼腳的長度:因為墻面都是box,具有厚度,所以在處理貼腳這種模型時要減去墻面的厚度,將貼腳附著在前面的內(nèi)側(cè)墻面之上。墻面的貼腳分兩種情況,即陰貼腳和陽貼腳。陰貼腳就是區(qū)域空間的內(nèi)面,這時候貼腳的長度小于墻面的實際長度。而如果是陽腳,貼腳會貼在墻面的外面,貼腳的長度會大于墻面的實際長度。采用的方式為墻面長度減去墻面厚度。

確定貼腳的位置:由于貼腳的長度和墻面的長度并不一致,所以貼腳的位置和墻面也有一定的差異。如果是陽貼腳就和墻面同向的位置一致,如果是陰貼腳就用墻面的位置除去墻面厚度的12,然后和墻面中部對齊。

處理貼腳轉(zhuǎn)角點造型:貼腳在墻角的交接部位需要重新處理,否則模型會穿插而不正常。處理的辦法是采用資源配合處理,也就是首先制作一個陰角和陽角的模型,在貼腳轉(zhuǎn)角處加載該模型,并調(diào)整該貼腳轉(zhuǎn)角的高度,完成與其他直線部分貼腳的吻合。

5仿真實驗

5.1實驗實施步驟

仿真實驗以虛擬軟件的形式進行、操作,主要進行墻體繪制、門窗的設(shè)置以及家具的擺放,模式包括2D視圖、3D視圖。2D視圖主要用來進行平面布局,3D視圖主要是用來查看效果。

5.2創(chuàng)建的建筑結(jié)構(gòu)是否更合理和快捷

5.2.1自動生成墻體

墻體制作的方式首先選擇繪制方式,可以分為區(qū)域繪制和線條繪制兩種。接著就是在視圖進行繪制,如圖4。

圖4頂視圖繪制墻體

5.2.2自動生成地面和吊頂

墻體繪制完成后,開始判斷墻體是否構(gòu)成一個封閉空間。如果在一個封閉空間計算由這個封閉空間構(gòu)成的區(qū)域,就可以生成地面和吊頂。

當(dāng)墻面的交接處存在多面墻的交接時,這里采用遞歸的方式進行索引。當(dāng)最后成功返回到第一面墻體時,我們說這些墻面構(gòu)成了一個完整的空間。然后對這個空間進行box建模處理。[11]

5.3是否滿足設(shè)計要求

5.3.1繪制的自動對齊

為了降低繪制墻體的難度,設(shè)置了自動對齊墻面的功能,從橫向和縱向兩個角度實時判斷當(dāng)前鼠標(biāo)的位置是否和其他墻面的坐標(biāo)對齊。設(shè)計首先就是要求仿真能滿足可修改性。

5.3.2墻體的再編輯

墻體繪制完畢后,需要對其進行修改,包括以下方面:

修改墻體:在墻體上設(shè)置碰撞體,用戶可以用鼠標(biāo)拖動墻體。當(dāng)拖動過程中,重新計算當(dāng)前區(qū)域所有墻體的長度。用戶也可以通過面板的方式設(shè)置墻體的長度。

刪除墻體:點擊墻體碰撞體,彈出刪除墻體按鈕。用戶可以進行刪除,之后,系統(tǒng)重新檢測墻體是否構(gòu)成完整的空間。

重新繪制墻體:重新繪制墻體就是在原有空間上添加墻體,用戶在空間中的現(xiàn)有墻體找到兩面墻的起點和終點,通過兩面墻的點的x、y坐標(biāo)檢測墻體是否應(yīng)該封閉。

5.3.3門窗的再編輯

門窗擺放完畢,進行進一步調(diào)整,其中包括位置和大小的調(diào)整。采用的方式就是利用門窗圖標(biāo)和墻體的x、y軸向位置。如果拖動門窗圖標(biāo)在墻體的范圍內(nèi),門窗圖標(biāo)會沿墻體移動,反之,門窗圖標(biāo)就會完全跟隨鼠標(biāo)移動。當(dāng)捕捉到新的墻面的時候,門窗圖標(biāo)會自動吸附到離光標(biāo)最近的墻體位置,并保持和墻體一致。

結(jié)語

綜上所述,動態(tài)構(gòu)建室內(nèi)建筑結(jié)構(gòu)首先是從三維物體空間原理出發(fā),計算出每一個節(jié)點元素的空間位置;其次根據(jù)室內(nèi)建筑結(jié)構(gòu)的特點,從墻面的創(chuàng)建到空間的識別和劃分,再到門窗和貼腳等細節(jié)的處理,總結(jié)了要動態(tài)構(gòu)建室內(nèi)建筑結(jié)構(gòu)需要的邏輯思路和具體實現(xiàn)路徑[12]。通過本文分析,利用其原理,可以滿足在室內(nèi)仿真、設(shè)計等領(lǐng)域需要靈活處理建筑結(jié)構(gòu)的需求,擺脫對固定模型的依賴,提高仿真效率的同時也讓仿真的操作更具靈活性。

參考文獻:

[1]廖浩宏,韋宇煒,劉強.工業(yè)仿真系統(tǒng)動態(tài)導(dǎo)入OBJ模型的研究與實現(xiàn)[J].計算機應(yīng)用,2020,40(S1):161-164.

[2]SteveOmntngham.計算機圖形學(xué)[M].石教英,潘志庚,譯.北京:機械工業(yè)出版社,2008:83-85.

[3]Eisenback,JonathanD.1.Modelingandprinting3Dmodelsofnematodes[J].JournalofNematology,2023,55(1):30.

[4]王飛,張樹生,白曉亮,等.拓?fù)浜托螤钐卣飨嘟Y(jié)合的三維模型檢索[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2008(01):99-103.

[5]鄒英強,姚劍敏,林志賢,等.空間方位向量與包圍體策略結(jié)合的3D模型拾?。跩].光電工程,2015,42(04):49-55.

[6]李淑華.形狀幾何切割和對應(yīng)的研究[D].大連:大連理工大學(xué),2019.

[7]劉柯壯,賀體剛.基于Unity3d的mesh切割及優(yōu)化[J].電子技術(shù)與軟件工程,2019(06):63.

[8]袁玉波,湯偉,趙婷婷,等.一種基于Unity3D的三維體表面重構(gòu)與渲染方法:CN105825471A[P].2016-08-03.

[9]孫立新,任美睿,黃明.計算幾何算法在GIS圖形分析中的應(yīng)用[J].測繪工程,1997(04):30-35.

[10]柴蒙磊.基于單幅圖像的三維發(fā)型建模技術(shù)及其應(yīng)用[D].浙江:浙江大學(xué),2017.

[11]陳煜,林瑋.Web3D引擎中三維圖形對象拾取的算法與實現(xiàn)[J].工程圖學(xué)報,2011,32(06):82-88.

[12]宋福中.建筑工程裝飾裝修施工的關(guān)鍵技術(shù)分析[J].住宅與房地產(chǎn),2020(24):115.

作者簡介:陳世林(1977—),男,重慶人,碩士,講師,研究方向:數(shù)字媒體技術(shù)、仿真游戲。

建德市| 惠水县| 吉水县| 新乡市| 于都县| 福州市| 辽源市| 松桃| 随州市| 北辰区| 濉溪县| 凭祥市| 花莲县| 扬中市| 辉县市| 郁南县| 德庆县| 宁明县| 晴隆县| 普洱| 麟游县| 巩留县| 河间市| 荃湾区| 大名县| 精河县| 敦煌市| 江油市| 临沂市| 宜君县| 分宜县| 称多县| 怀远县| 思茅市| 黔东| 郧西县| 岳普湖县| 静安区| 诸暨市| 朝阳县| 西藏|