UE4 使用CustomMesh动态创建网格体
CustomMesh組件?
? ? ? ? 記錄最近使用過(guò)的一個(gè)虛幻4的功能點(diǎn),動(dòng)態(tài)繪制網(wǎng)格體。
? ? ? ? 需求比較簡(jiǎn)單,規(guī)則的圖形用幾何參數(shù)描述來(lái)動(dòng)態(tài)繪制網(wǎng)格體。核心組件是Custom Mesh。
????????CustomMesh關(guān)聯(lián)的函數(shù)很少,都是圍繞三角形的。先列一下函數(shù)。
| 添加自定義網(wǎng)格體三角形 | Add Custom Mesh Triangles |
| 設(shè)置自定義網(wǎng)格體三角形 | Set Custom Mesh Triangles |
| 清除自定義網(wǎng)格體三角形 | Clear Custom Mesh Triangles |
????????添加自定義網(wǎng)格體三角形和設(shè)置自定義網(wǎng)格體三角形非常相似,設(shè)置自定義網(wǎng)格體三角形可以理解為清除之后添加,官方建議使用設(shè)置自定義網(wǎng)格體三角形。函數(shù)形式完全一直,都是需要一個(gè)CustomMeshTriangle的數(shù)組,目標(biāo)為CustomMesh組件。調(diào)用之后模型就會(huì)在場(chǎng)景中繪制。
? ? ? ? CustomMeshTriangle的創(chuàng)建需要一個(gè)CreateCustomMeshTriangle函數(shù)。向量順序影響三角形法線朝向,虛幻為右手定則。這里我投了一下懶,使用了雙面材質(zhì),忽略了法線影響。
?我的使用
? ? ? ? 我在GameInstance?中放置一個(gè)三維向量的數(shù)組來(lái)存儲(chǔ)參數(shù),UI操作調(diào)整幾何參數(shù)。點(diǎn)到三角形為硬編碼,固定的三角形組合方式。(沒想到太好的算法)
? ? ? ? 因?yàn)槭怯簿幋a所以封裝了一個(gè)通過(guò)索引從集合取點(diǎn)創(chuàng)建?CustomMeshTriangle的宏。
? ? ? ? ?而后硬編碼創(chuàng)建CustomMeshTriangle集合。
?????????創(chuàng)建集合之后通過(guò)事件觸發(fā)更新,進(jìn)行繪制。
總結(jié)
????????CustomMesh的使用本身比較簡(jiǎn)單,但是目前硬編碼的方式不太友好,寫起來(lái)也是非常枯燥。
? ? ? ? 我嘗試寫了一個(gè)算法,但是暫時(shí)沒有辦法規(guī)避面重合的問題,所以計(jì)算量非常大,再加上我用得SpinBox調(diào)整得參數(shù)導(dǎo)致引擎已經(jīng)報(bào)無(wú)限循環(huán)的錯(cuò)誤了。
? ? ? ? 如果有好辦法可以留言算法的思路。
總結(jié)
以上是生活随笔為你收集整理的UE4 使用CustomMesh动态创建网格体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库基础运维笔记
- 下一篇: distinct去重用法(简单明了)