? ,,

亚洲午夜精品视频_国产黄大片_网站av_99亚洲伊人久久精品影院红桃_91av入口_永久免费av片在线观看全网站

聯(lián)系我們

給我們留言

聯(lián)系我們

地址:福建省晉江市青陽街道洪山路國際工業(yè)設(shè)計(jì)園納金網(wǎng)

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當(dāng)前位置:主頁 > 3D教程 > 圖文教程

使用ProceduralMeshComponent實(shí)現(xiàn)模型實(shí)時(shí)切割

來源: 52vr | 責(zé)任編輯:傳說的落葉 | 發(fā)布時(shí)間: 2019-06-13 08:19 | 瀏覽量:
這篇文章介紹了如何使用UE4.13的ProceduralMeshComponent來實(shí)現(xiàn)針對一個模型的實(shí)時(shí)切割。
 
背景說明
 
在游戲潛龍諜影崛起:復(fù)仇 中,主角可以針對場景中的大部分物體進(jìn)行實(shí)時(shí)切割。在游戲中,玩家需要指定一個切割平面,在主角揮刀后,對應(yīng)的物體便可以根據(jù)這個平面進(jìn)行切割。
 
在UE4中可以使用Apex Destruction來實(shí)現(xiàn)物體的破碎效果,但由于該破碎效果是離線生成的,換句話說一個DM只能夠有一種破碎效果,因此無法達(dá)成實(shí)時(shí)切割的效果。
 
在UE4.13中,Epic加入了ProceduralMeshComopnent插件,使用這個插件可以進(jìn)行針對于模型的實(shí)時(shí)切割操作。
 
前置準(zhǔn)備工作
 
首先準(zhǔn)備好需要進(jìn)行切割的模型,我這里使用的是UE4示例中的人頭模型。值得一提的是,由于要達(dá)成實(shí)時(shí)切割的目的,因此需要啟用StaticMesh中的AllowCPUAccess屬性。
 

Unreal Engine 4 —— 使用ProceduralMeshComponent實(shí)現(xiàn)模型實(shí)時(shí)切割

 
新建ActorBP,添加Procedural Mesh Component,調(diào)用CopyProceduralMeshfromStaticMeshComopnent方法來生成一個Procedural Mesh Component.
 

Unreal Engine 4 —— 使用ProceduralMeshComponent實(shí)現(xiàn)模型實(shí)時(shí)切割

 
模型切割
 
ProceduralMeshComponent有Slice Procedural Mesh函數(shù),這個函數(shù)可以將Procedural Mesh進(jìn)行切割,并且生成另外的一半模型塊。
 

Unreal Engine 4 —— 使用ProceduralMeshComponent實(shí)現(xiàn)模型實(shí)時(shí)切割

 
參數(shù)介紹:
 
Plane Position: 世界坐標(biāo)系下該平面的中心位置
Plane Normal: 世界坐標(biāo)系下該平面的發(fā)現(xiàn)
Create Other Half: 是否將切下來的那一塊模型獨(dú)立出來
Cap Option: 切面狀態(tài) 
No Cap: 切面不縫合,模型中空
Create New Section for Cap: 切面縫合,使用自定義的材質(zhì)
Use Last Section for Cap: 切面縫合,使用與模型一樣的材質(zhì)
Cap Material: 如果Cap Option是Create New Section for Cap時(shí)自定義的材質(zhì)
效果如下: 
 
 
 
原理分析
 
在UKismetProceduralMeshLibrary::SliceProceduralMesh()函數(shù)中,可以看到它實(shí)現(xiàn)的方法如下:
 

[代碼]:

01 SliceProceduralMesh(plane)
02 1. create two maps of base vert index to vert index m1,m2
03 2. for each vertice∈{v}
04 3.     if (vertice on the positive side of the plane)
05 4.         m1←vertice
06 5.     else
07 6.         m2←vertice
08 7. create two sections s1,s2
09 8. for each face∈{(v1,v2,v3)}
10 9.     if (v1,v2,v3on the positive side of the plane )
11 10.         s1←v1,v2,v3
12 11.     if (v1,v2,v3on the negative side of the plane )
13 12.         s2←v1,v2,v3
14 13.     else
15 14.         s1← positive vertices
16 15.         s2← negative vertices
17 16.         find clipped verticesvclip1,vclip2,vclip3,vclip4
18 17.         triangulate the clipped polygon
19 18. create cap geometry for s1,s2
20 19. create collision convex shape for s1,s2
簡單來說,就是遍歷所有的面和點(diǎn),找到切割平面正向和負(fù)向的點(diǎn),并且補(bǔ)好三角面即可。
 
運(yùn)用以及注意事項(xiàng)
 
被切割的模型面數(shù)不宜太高,一方面是效率考慮,另一方面是切面的表現(xiàn)會有些奇怪。
被切割的模型的拓?fù)浣Y(jié)構(gòu)不宜太復(fù)雜,否則碰撞體的構(gòu)建容易表現(xiàn)的很怪異。
實(shí)際運(yùn)用的時(shí)候,可以考慮在切面處生成一個力場將兩個section分開一些,否則有可能因?yàn)橄嗷サ哪Σ炼绊懕憩F(xiàn)。

相關(guān)文章
網(wǎng)友評論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊

關(guān)閉

全部評論:0條

推薦
熱門
主站蜘蛛池模板: 日韩av片无码一区二区不卡电影 | 女人被狂躁高潮啊的视频在线看 | 久久96精品国产 | 色婷婷亚洲精品综合影院 | 影视先锋资源在线观看 | 欧美黑人成人www在线观看 | 精品人妻少妇一区二区三区在线 | 亚洲av午夜精品一区二区三区 | av不卡国产在线观看 | 在熟睡夫面前侵犯我在线播放 | 国产亚洲精品日韩综合网 | 一级做a爱过程免费视 | 成人福利片 | 一级@片 | 秋霞免费手机理论视频在线观看 | 国产免费一区二区三区 | 亚洲性片| 成人凹凸短视频在线观看 | 韩国主播19福利视频在线观看 | 亚洲精品1区| 99热久久这里只精品国产ww | 欧美在线视频a | 毛茸茸性xxxx毛茸茸毛茸茸 | 精品国产三级a∨在线 | 成人h漫在线观看 | 草草网| 国产亚洲美女精品久久久久狼 | 精品在线第一页 | 精品国产国语对白主播野战 | 国产欧美日韩精品一区二 | 精品国品一二三产品区别在线观看 | 国产精品激情 | 成人区人妻精品一区二区不卡 | 免费国产成人18在线观看 | 国产一区二区三区免费视频 | 一级欧美毛片成人 | 久久国产精品国产自线拍免费 | www在线免费观看 | 亚洲精品成人av在线 | 99精品在线观看 | 精品久久久视频 |